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.
- Paired with IMD — RUNNER trades against IMD in a Uniswap v4 pool with liquidity locked forever. Every trade there pays a 4% fee in IMD: 2% to the protocol, 2% shared by holders.
- 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
Three ways to use it:
- Android app — version 1.0.1, out now at runearn.fun/download (an APK, about 3.5 MB, Android 6 or newer, no Play Store needed). It keeps recording with the screen locked and counts steps for fair play.
- Website — runearn.fun in any browser, on a phone or a computer.
- iPhone home screen — add runearn.fun to your home screen from Safari or Chrome. There you sign in with email; Google, Apple and wallet sign-in work in the browser. An iPhone app follows later.
Sign in with Google, Apple or email and a Robinhood Chain wallet is created for you (via Privy) — no seed phrase to manage. On the website you can instead sign in with your own wallet (MetaMask, Phantom, WalletConnect, Coinbase Wallet, Rainbow, OKX and others). 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, run-reward claims and the current emission, and sells Genesis sneakers with ETH.
- The Rewards tab is for RUNNER holders: whether you qualify today, what each of the last 7 days paid you in IMD, and a button to claim it. You can also connect another wallet that holds RUNNER — WalletConnect, MetaMask, Coinbase Wallet and others — or look up any address.
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, on sale now (contract 0x7ded…32CC). 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 (0x52cE…804e) with a fixed supply of 1,000,000,000 RUNNER, all created when the contract was 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. The pool opened on 25 October 2026 at a market cap of about 642 IMD (the 635 IMD target on the pool's price grid). |
| 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: 10,000,000 RUNNER per day, halving every 30 days, never below 100,000 per day. Emission started on 25 October 2026.
| Dates (UTC) | Daily maximum | Earn rate |
|---|---|---|
| 25 Oct – 23 Nov 2026 | 10,000,000 | 100% |
| 24 Nov – 23 Dec 2026 | 5,000,000 | 50% |
| 24 Dec 2026 – 22 Jan 2027 | 2,500,000 | 25% |
| 23 Jan – 21 Feb 2027 | 1,250,000 | 12.5% |
| 22 Feb – 23 Mar 2027 | 625,000 | 6.25% |
| 24 Mar – 22 Apr 2027 | 312,500 | 3.1% |
| 23 Apr – 22 May 2027 | 156,250 | 1.6% |
| From 23 May 2027 | 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 dates above assume the schedule isn't changed. 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's main pool is RUNNER/IMD on Uniswap v4 (Robinhood Chain), run by the RunnerHook. 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 in the app's Rewards tab (or on the token contract directly); after that, anything unclaimed goes to the protocol wallet. Fees from trades through other routers wait in the hook until anyone sends them on — the Rewards tab has a button for that.
- The pool, its hook and the token contract itself get no holder rewards; the team wallet is eligible like any holder.
- The fee is always exactly 4% of what traded: a swap that wouldn't fill completely, or would move nothing, is refused instead of charged. It rounds up, so even tiny trades pay; the odd wei of a fee goes to holders.
- Donations to the pool are refused (they would be lost to the locked position). Don't send tokens to the hook's address: it has no way to return them.
Where to trade
| Pool | Fee | Who gets it |
|---|---|---|
| RUNNER/IMD (Uniswap v4, RunnerHook) | 4% in IMD | 2% protocol, 2% holders. Liquidity locked forever. Buy with IMD, or with ETH in one step through the RUNNER ETH router (it routes through the IMD/ETH pool). |
| RUNNER/ETH (Uniswap v4, no hook) | 10% LP fee | The liquidity providers (the protocol added the first position). These trades don't pay the 4% split; holders earn nothing from them. |
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; at launch, runs from the website earn too.
| 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. At launch, the owner of the token, the pool hook and the NFT is the dev wallet 0x0f39…f1B4; the rewards server signs claims as 0x22be…ac00.
| 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 contracts shaped like a Uniswap pool (RUNNER as one of its two tokens, plus a factory); can't be undone; doesn't affect trading |
| Hook fee recipient | Where the protocol's 2% (in IMD) goes | Can't be the pool manager or the hook; the 4% fee and the locked liquidity can't be changed |
| Protocol wallet | Where expired holder rewards (IMD) go | Can't be the token, the pool manager or the hook |
| 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 |
The emission cap is per UTC day and resets at midnight UTC, so in the worst case (a stolen owner key) two days' maximum — 40M RUNNER, 5% of the pool — could be claimed within minutes of each other.
Nobody — including the owner — can: change the 4% fee, remove the pool's liquidity, mint new tokens, exceed 20M RUNNER of emission per UTC day, change today's emission, or take tokens out of the run-reward pool, locked claims or the holder-reward bucket.
10Security & audits
- IMD audits: six rounds by IMD's multi-agent auditors, each reproducing its findings with tests. Every finding was fixed or documented; the last rounds found nothing above low severity. The fixes from the sixth round were not re-audited before launch.
- Internal review of the contracts and the rewards server, with every finding, fix and owner power in AUDIT.md.
- Automated tests: 383 checks — 40 Foundry tests of the hook against a real Uniswap v4 PoolManager (3 of them on a Robinhood Chain mainnet fork with the real IMD), 177 for the token (including a randomized 45-day model of the holder-reward bookkeeping), 56 for the NFT and 110 for the rewards server. 71 deliberately planted bugs, including every audit fix undone, are all caught.
- Contract addresses (Robinhood Chain, chain 4663) — each checked byte for byte against the audited build:
- RUNNER token: 0x52cE7fC26a4Bb4B8aFef02C1b00486FDF4Bb804e
- RunnerHook (RUNNER/IMD pool, 4% fee): 0x962c745D5feC4BC0Fd6dE15D47fc17C40C4c68EC
- RunnerRouter (IMD): 0x55866De8BD1e5Fbf79433Ee2526D3405F64692Ba
- RunnerEthRouter (ETH): 0xcAc6938E8309Dc9687C82DFb745B21950Fe0F6A1
- RUNNER Genesis NFT: 0x7ded256c6646630dFcf15317aeB7cF40027932CC
- Android app: every version is signed with the same RUNNER key, so Android refuses an update that didn't come from runearn.fun/download. Signing certificate (SHA-256): a50b2fc25bf9546fc4f14ab6f2f5b8e0e047342a7867a7b8043413b81536c70b; the download page also lists each file's SHA-256.
- Verifiable builds: the deploy page refuses to deploy any contract whose bytecode differs from the reviewed build, and each deployed contract was compared byte for byte afterwards. All five contracts are source-verified on Blockscout and Sourcify (token and NFT as exact matches). Source code is public at github.com/0xtenang/Runner.
11Roadmap
- Done — launch (25 October 2026). Six IMD audit rounds; NFT, pool hook and token deployed and checked byte for byte; sneaker sale open; RUNNER/IMD pool open with liquidity locked forever; RUNNER/ETH pool added; rewards server live and emission started; Rewards tab for holders; wallet sign-in and WalletConnect; all contracts source-verified on Blockscout and Sourcify; the Android app at runearn.fun/download.
- Next — hardening. Multisig ownership, phone-app-only earning with Google Play Integrity, an iPhone app.
- Later. 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. A single 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.
- IMD dependency. Holder rewards are paid in IMD, whose issuer can block addresses. If IMD transfers to or from the token contract stopped working, holder claims would wait; trading through RUNNER's routers would not stop.
- Thin early liquidity means large price swings, made larger by the fees (4% in the RUNNER/IMD pool, 10% in the RUNNER/ETH pool). RUNNER's main 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
If something here 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 · v1.0 · 25 October 2026 · Contract addresses: section 10.