Skip to the ledger
DUEL
method

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.