Per-task formula
reward = reward_weight(model)
× completed_count
× { 0 if runtime == "echo", else 1 }
claimable_total = sum(reward over all of wallet's nodes)
+ floor(api_request_count / 10)Each completed task gives a fractional accrual based on the model that served it. A wallet can run multiple nodes (browser + native); their accruals are summed at claim time.
Model multipliers
Heavier models give more reward per task because they cost more compute to run. Current weights:
llama-3.2-1b → 0.6 pts/task qwen-2.5-1.5b → 0.7 gemma-2-2b → 0.8 llama-3.2-3b → 1.0 (baseline) phi-3.5 → 1.0 qwen-2.5-3b → 1.1 hermes-3-8b → 1.6 mistral-7b → 1.8
Anti-sybil
Spend pending points as credits
Convert pending points to API credits at 1 pt = 10 credits. Run a node for a few hours, then test your own AI app on those credits without paying. Converting resets the pending counter but never touches your lifetime score.
- POST
/api/credits/topupwith your session cookie - Server zeroes out provider counters that fed the conversion
- Credits land in your balance immediately — no on-chain wait
Season 0 & the leaderboard
Alongside the pending balance, every point you earn is added to your lifetime score — it never decreases, not even when you convert pending points to credits. Lifetime score ranks every wallet on the public leaderboard (/app → Leaderboard or GET /v1/leaderboard).
- Pending points — convertible to credits, resets on conversion
- Lifetime points — Season 0 score, feeds the leaderboard
- Top ranks are the natural allowlist for future reward programs