1Summary
RUNNER is a running app first: live GPS tracking, pace, splits and heart rate, free for everyone. On top of it sits an optional run-to-earn layer:
- RUNNER Genesis — 9,999 sneaker NFTs. Owning one lets you earn.
- RUNNER token — a fixed supply of 1,000,000,000. 80% is reserved for runners and released on a halving schedule.
- Verified runs — every run is re-checked by a server with the same rules as the app, plus fair-play checks, before it earns anything.
2The app
Available at runearn.fun and as Android and iPhone apps. Sign in with Google, Apple or email and a Robinhood Chain wallet is created for you (via Privy) — no seed phrase to manage. Guests can track runs without signing in.
- Record runs with a live map, distance, pace, splits, elevation and heart rate (Bluetooth sensors supported).
- Only runs recorded live with GPS in the app earn.
- The Earn tab shows your sneakers, energy, balance, claims, holder rewards and the current emission.
3How earning works
Pace zones
Each sneaker has a class. You earn only while your GPS pace is inside its zone; above 25 km/h counts as a vehicle and earns nothing.
| Class | Speed | Pace | Earn rate | Share of collection |
|---|---|---|---|---|
| Recovery Runner | 1–6 km/h | 10:00 /km or slower | 100% | 1,902 |
| Daily Runner | 4–10 km/h | 6:00–15:00 /km | 100% | 4,113 |
| Tempo Runner | 8–20 km/h | 3:00–7:30 /km | 100% | 2,447 |
| Hybrid Runner | 1–20 km/h | any running pace | 85% | 1,537 |
Energy
1 energy = 30 minutes of earning. Energy refills fully over 24 hours. You can keep running after it's used up — the app keeps tracking, you just stop earning.
| Sneakers owned | Energy | Earning time per day |
|---|---|---|
| 1–2 | 1 | 30 min |
| 3–8 | 2 | 1 h |
| 9–14 | 4 | 2 h |
| 15–29 | 6 | 3 h |
| 30+ | 10 | 5 h |
Earn rate
(+10% with a live heart-rate sensor)
The emission factor is today's emission ÷ 10,000,000 — 100% at launch, then it halves with the emission schedule (section 6). NFT boosts come from future collections (up to +100% in total). Example for one sneaker, month 1, 30 minutes: a typical Common earns about 20,000 RUNNER, an Epic about 118,000.
Levels, attributes and durability
- Levels 0–30. A level-up costs 1,100 × (next level)^1.5 × emission factor RUNNER — about 1,100 for level 1, 35,000 for level 10, 181,000 for level 30 at launch prices. Each level gives attribute points (Common 1, Uncommon 1, Rare 2, Epic 2) for Efficiency (more RUNNER) or Resilience (less wear). A Common that reinvests its earnings reaches level 30 in about a month.
- Durability drops about 5.4 per energy for a typical Common (≈9 days of daily runs to 50%). Below 50, Efficiency is reduced (down to 20%). Repairs cost 75 RUNNER per point × (1 + 10% per level) × emission factor — about 2% of what the sneaker earns between repairs. Sneakers never break or disappear.
- RUNNER spent on level-ups and repairs is never paid out — it stays in the run-reward pool.
4Sneaker NFTs — RUNNER Genesis
9,999 ERC-721 sneakers on Robinhood Chain. An open sale with no reveal: buyers pick the exact sneaker they want. A token's number fixes its rarity, class, starting stats and look, using the same formula in the app and in the contract.
| Rarity | Supply | Price | Starting Efficiency / Resilience |
|---|---|---|---|
| Common | 7,097 | 0.005 ETH | 4–8 |
| Uncommon | 1,904 | 0.015 ETH | 8–14 |
| Rare | 795 | 0.04 ETH | 15–25 |
| Epic | 203 | 0.1 ETH | 28–42 |
- Four original running lines (Stride, Pod, Knit, Trail) and rare Neon (150), Ghost (88) and Gold (56) editions.
- Sale payments go to the project's dev wallet. A 5% royalty on resales (ERC-2981, with ERC-721C support so marketplaces such as OpenSea can enforce it).
- Metadata and artwork are served from runearn.fun/nft/; the collection page on OpenSea is managed by the dev wallet.
5The RUNNER token
An ERC-20 token on Robinhood Chain with a fixed supply of 1,000,000,000 RUNNER, all created when the contract is deployed. There is no mint function; burns can only reduce supply.
| Share | Amount | Where it goes |
|---|---|---|
| Run rewards | 800,000,000 | Locked in the token contract. Paid out only to runners through verified claims, following the emission schedule. Nobody, including the owner, can withdraw it otherwise. |
| Liquidity | 100,000,000 | Locked forever in the RUNNER/IMD Uniswap v4 pool by its hook, starting at a market cap of about 635 IMD. |
| Team | 100,000,000 | Team wallet 0x0f4FE718eb8492533E600b30F3287E2f04087332. |
Where RUNNER is used: level-ups and repairs in the app, trading on exchanges, and holding for holder rewards (section 7). Where it's removed: instant claims and early releases burn 20% (section 6).
6Emission & claims
Halving emission
The run-reward pool releases at most a set amount per UTC day. The launch schedule: 10,000,000 RUNNER per day, halving every 30 days, never below 100,000 per day. It starts on launch day, when the dev wallet starts it on-chain.
| Days from launch | Daily maximum | Earn rate |
|---|---|---|
| 1–30 | 10,000,000 | 100% |
| 31–60 | 5,000,000 | 50% |
| 61–90 | 2,500,000 | 25% |
| 91–120 | 1,250,000 | 12.5% |
| … | halves every 30 days | … |
| From about month 8 | 100,000 (floor) | 1% |
If every day's maximum were used, about 38% of the pool would be released in month 1, 66% by month 3 and 75% by month 7, after which 100,000 per day continues for about 5.5 years. In practice runners only earn what energy, pace zones and fair-play checks allow; with 100 active runners, about 2.9M RUNNER per day would be emitted in month 1.
The dev wallet can set a new schedule (daily amount, halving period, floor). A change never affects the current day — it starts the next UTC day — and can never exceed 20,000,000 per day. Runners' earn rates follow the schedule automatically.
From earnings to tokens
- Finish a run. The server checks it and credits your in-app balance. New earnings become usable 24 hours after the run.
- Spend in the app, or claim to your wallet. The server signs your claim; your wallet submits it to the token contract.
- Choose: Lock 7 days → 100%, or Now → 80% to you, 20% burned. Locked rewards can be released after 7 days (one transaction a week is enough), or taken early at 80%. Only you can choose "now" for your own rewards.
Claims across all runners can never exceed the day's emission; if it's nearly used up, you get a partial claim and the rest the next day — nothing is lost.
7Trading fee & holder rewards (in IMD)
- RUNNER trades against IMD in one Uniswap v4 pool on Robinhood Chain. Its liquidity (the 100M allocation) is locked forever: the pool's hook added it and has no way to take it out.
- 4% fee on every trade, paid in IMD, fixed in the hook: 2% to the protocol wallet and 2% to holders. The token itself has no transfer tax — wallet-to-wallet transfers and run-reward claims move exactly what you send.
- Holder rewards, in IMD: each UTC day's 2% is shared by every wallet that held at least 300,000 RUNNER for the whole day, in proportion to the lowest balance it held that day. Buying just before the day ends doesn't count — you need to hold through a full day.
- Each day's share can be claimed for 7 days; after that, anything unclaimed goes to the protocol wallet.
- The pool, its hook and the token contract itself get no holder rewards; the team wallet is eligible like any holder.
8Fair play
No run-to-earn app is completely cheat-proof. RUNNER aims to make cheating cost more than it pays, decided by rules rather than people:
- The server decides, not the phone. Every uploaded GPS track is re-scored with the same rules as the app. Sneaker ownership is read from the chain; replayed or overlapping runs, and one sneaker used by two wallets at once, are rejected.
- Trust score (0–100). Real GPS is messy; scripts and spoofers tend to be too clean. Points are lost for perfectly regular fix timing, constant speed, identical segments, perfectly straight routes, unchanging GPS accuracy, a fake-GPS app, steps that don't match the pace, or a route copied from another upload.
- Phone app checks. The phone apps send the step counter (bikes, scooters and cars give almost no steps) and a device proof (Google Play Integrity / Apple App Attest) showing the run came from the genuine app on an unmodified phone. Real-token earning can be limited to the phone apps.
| Trust score | Outcome |
|---|---|
| 70–100 | Paid in full |
| 40–69 | 50% paid, no penalty |
| Under 40, fake-GPS app, or copied route | Not paid + 1 strike |
Three strikes within 30 days suspend the wallet automatically — 7 days, then 30 days, then permanently — and cancel its earnings still in the 24-hour hold. Strikes expire after 30 days. Requests are also rate-limited, and per-wallet energy plus the daily emission cap how much any single wallet can earn.
9Controls & limits
The project keeps a few controls so the economy can be corrected after launch. Each has a hard limit set in code. The owner of both contracts is the dev wallet.
| Control | What it does | Limit |
|---|---|---|
| Emission schedule | New daily amount, halving period and floor | From the next UTC day; ≤ 20M/day |
| Pause claims · server key | Stop run-reward claims; rotate the server's signing key | Can't move tokens |
| Exclude other pools | Stops another RUNNER pool from counting as a holder | Only real RUNNER pools; doesn't affect trading |
| Hook fee recipient | Where the protocol's 2% (in IMD) goes | The 4% fee and the locked liquidity can't be changed |
| Protocol wallet | Where expired holder rewards (IMD) go | — |
| Game settings (server) | Level prices, per-runner daily max, NFT boosts, fair-play thresholds, phone-app-only earning | Boosts ≤ +100%; always within the day's emission |
| NFT admin | Pause minting, metadata links, royalty receiver, OpenSea royalty enforcement | Can't take anyone's NFTs |
Nobody — including the owner — can: change the 4% fee, remove the pool's liquidity, mint new tokens, exceed 20M RUNNER of emission per day, change today's emission, or take tokens out of the run-reward pool, locked claims or the holder-reward bucket.
10Security & audits
- Internal review of both contracts and the rewards server, with findings, fixes and a full list of owner powers in AUDIT.md. It was done by the same AI-assisted process that wrote the code, so it is not a substitute for an independent audit.
- Automated tests: 278 checks across the token, the NFT and the rewards server, including a randomized 45-day check of the holder-reward bookkeeping and deliberately planted bugs to prove the tests catch them. Static analysis with Slither found no outstanding issues.
- Independent audit: planned with IMD before any mainnet deployment.
- Verifiable builds: the deploy page refuses to deploy any contract whose bytecode differs from the reviewed build. Source code is public at github.com/0xtenang/Runner.
11Roadmap
Order, not dates — each step starts when the previous one is ready.
- Now — open beta. Run tracking live at runearn.fun; earning in local test mode; contracts written and internally reviewed.
- Audit & hardening. Independent audit (IMD), multisig ownership, phone apps in the stores with device checks.
- Launch. Deploy the NFT and token, open the sneaker sale, add liquidity, register the pool, start emission.
- After launch. Watch auto-sync (Garmin and others), future sneaker collections with earning boosts, more ways to use RUNNER in the app.
12Risks
- No guaranteed value. RUNNER and the sneakers may lose value or become illiquid. Earnings in dollars depend on the market price, which nobody controls. At a low market cap, daily earnings are worth only cents.
- Front-loaded emission. Most rewards can be released in the first months, which can create heavy selling pressure.
- Smart-contract risk. Bugs are possible despite reviews and tests. Contracts are not upgradeable.
- Centralization. The dev wallet holds the controls in section 9 until ownership moves to a multisig; the rewards server decides which runs earn.
- Cheating. Fair-play checks reduce but cannot eliminate cheating.
- Thin early liquidity means large price swings, made larger by the 4% fee. RUNNER's price is in IMD, so it also moves with IMD's own price.
- Regulation. Rules for tokens differ by country (in Indonesia, for example, OJK oversight applies). Check what applies to you.
13Review this paper
This is a draft published so people can check it before launch. If something is unclear, wrong or looks unfair, please say so:
- Open an issue: github.com/0xtenang/Runner/issues
- Read the code and the internal review: source · AUDIT.md
- Try the app: runearn.fun
RUNNER Whitepaper · Draft v0.1 · Contract addresses will be published here at launch.