How the bell works
All duels read directly from the pools and their candles. We display only real movements and never simulate activity or users.
1 · The pairs
On Robinhood Chain memes trade straight against tokenised stocks. DUEL walks the chain's pools by 24-hour volume on GeckoTerminal every hour and keeps the ones where exactly one side is a Stock Token from the Robinhood registry and the other is a meme (not a stablecoin, not ETH), with at least $2K of liquidity and $500 of daily volume.
The ratio is the meme priced in its own Stock Token. The stock's move cancels out: the only question is whether the meme outruns its stock or the stock beats the meme.
2 · The call
You pick a pool and a side for the next full hour and sign an EIP-712 message with your wallet: pool, side, hour, the call you answer (or none), the time, and the line “No stake. No money. A public call, settled by the pool's own hourly candle.”. It is a signature, not a transaction: no gas, no approval, no funds. One call per wallet per pool per hour. A call must be signed before its hour starts.
A rival answers by signing the opposite side and naming your call. The first valid answer opens the duel. Calls nobody answers expire at the bell and never count.
3 · The bell
Five minutes after the hour closes, the oracle reads that hour's candle for the pool from GeckoTerminal in quote-token units (the meme priced in the stock). The candle opens at the previous hour's close. Close above open: the meme side takes it. Close below open: the stock side does. Close equal to open: no contest. No trade in the hour (GeckoTerminal lists no candle): no contest.
Every resolved duel keeps the candle and the exact request it came from, so anyone can repeat the reading.
4 · Re-verify anything
Each duel page shows both signatures and their EIP-712 digests and re-checks them on every render. The same data is public: /api/v1/duels, /api/v1/tally, /api/v1/pairs. Every list takes ?page=N and ?limit= up to 50 and returns { items, page, per_page, total, next }.
Typed data domain: name DUEL, version 1, chainId 4663. Type Call(string pool, string side, uint256 hour, bytes32 answers, uint256 issuedAt, string note). Wallets that sign with a contract (ERC-1271) are not supported yet.
Sources
- GeckoTerminal public API, network robinhood: pools, pools/multi, OHLCV hour and minute (keyless, 30 calls a minute).
- Robinhood Stock Token registry: api.robinhood.com/rhj/assets (contract addresses on chain 4663).
- Signed calls and duels: this site's own ledger, written only after a signature verifies.
Last ratio reading 2026-09-12 16:03 UTC · last pool list 2026-09-11 05:25 UTC · last bell reading 2026-09-12 16:03 UTC.
Limits
- A thin pool can go an hour without a trade; that hour is no contest, not a coin flip.
- Stock Token prices on chain keep trading when the stock market is closed; the pool ratio is what the pool traded, not an exchange quote.
- The ratio line on a duel page is read every five minutes and is only a picture; the hourly candle alone settles.
- DUEL is a record of calls. There is no stake, no prize, no custody, and nothing here is advice.