Robinhood Chain · Pons launchpad · $BRAWL

64 fighters.
One bracket a day.
Top 4 wins the daily prize pool.

Hold the token, claim a fighter, watch the bracket. Every punch is decided by a public engine and a seed nobody can pick. Replay it yourself against on-chain data.

Claiming is free: it never moves your tokens. Prizes are paid manually by the operator from the fee wallet, with every transaction hash published here.

Title odds
Price
Record

Fight night now

Two rounds, always visible

The current round fights on a pool locked at fight time. The next round is taking claims while its pool accrues.

Loading rounds

Current round

Next round

The roster in numbers

64 prices, 64 fighters, 8 archetypes

Read live from fighters.json and /api/config. Nothing here is typed in by hand.

Unique fighters64one price each
To claim all 64 of supply
Price rangetokens per fighter
Prize split1st to 4th, percent of the pool
Fight timeevery day
Token supplyfixed

Loading odds.

Join the Brawlhood

Hold, claim, fight, paid

Four steps. No deposits, no bets, no token leaves your wallet.

  1. 1

    Hold

    Buy the token on Pons. Each of the 64 fighters has a fixed price in tokens, 5M to 35M. Your balance decides which fighters you can claim.

  2. 2

    Claim

    Sign a free message to prove you own the wallet, then claim any fighter whose price is at or below your balance. Nothing moves. One fighter per wallet. Your balance must cover that fighter's price.

  3. 3

    Fight

    At fight time (18:00 UTC daily) claims lock and balances are re-checked. 64 fighters, single elimination, 63 matches plus a 3rd-place match. Pure stat-driven RNG from a seed committed before it exists; the whole bracket is fixed before match 1 and shown one match at a time.

  4. 4

    Paid

    The round's locked prize pool, accrued since the last lock and funded by the token's launchpad creator fee, is split 50 / 30 / 10 / 10 across the top 4. The operator sends the payouts by hand from the fee wallet and records each tx hash on the bracket page.

Provably fair

Why it can't be rigged

Commit first, seed from the chain, replay in public. Every round leaves a trail anyone can re-run.

Verify a round in your browser
  1. Commit tx

    Before fight time the operator hashes the frozen roster with a secret salt and writes that hash to Robinhood Chain in a 0-value transaction.

    keccak(PFC1 · roundId · rosterHash · salt)
  2. Seed block

    The seed block is the commit block + 10. It does not exist yet when the commit is sent, so nobody can pick a roster or salt to fit it.

    seedBlock = commitBlock + 10
  3. Seed

    The seed is a hash of the round id, the roster hash, the salt and that block's hash. Change any input and the seed changes.

    keccak(PFS1 · roundId · rosterHash · salt · blockHash)
  4. Engine replay

    An open-source, deterministic engine turns seed + stats into 64 matches, turn by turn. The results root is fixed before match 1; the seed stays sealed while matches are shown. Same inputs, same output, in any browser.

    engine.js · bracket.js
  5. Reveal tx

    After the last match is shown, the salt and the results root go on-chain. Only then is the seed public: anyone can decode both transactions, recompute everything and compare.

    PFR1 · roundId · salt · resultsRoot
Honest caveat: the only party that could influence a future block hash is the chain's sequencer. A public randomness beacon (drand) can be added later as a second entropy source.

Hall of fame

Titles, top-4s, best records

Computed from every finished round by /api/stats. House-owned fighters count like any other: the record is the fighter's, not the wallet's.

Rounds played
Prize pools to date
Reigning champion
Best win rate

Last podium

Loading records

Win rate ranks fighters with at least 5 fights. Sorted by titles, then top-4 finishes, then win rate.

Classic view

All 64, one table

Click a column to sort, click a row to open the fighter.

Loading fighters

Odds are Monte-Carlo engine odds: a run of the public engine over many full 64-man brackets (data/sim-config.json). They describe the engine, not a promise of anything.

FAQ

Questions people ask

Does claiming a fighter move or lock my tokens?

No. A claim is a signed message plus a balance check. Nothing is transferred, approved or locked. You can sell at any time, but see the next question.

What happens if I sell before fight time?

At lock time every claim is re-checked against the wallet's live balance. If your balance no longer covers your fighter's price, the claim fails and that fighter fights for the house. Buying back before lock restores it.

What is a house fighter?

Any fighter that is unclaimed at lock, or whose claimant failed the balance re-check, fights anyway as a house fighter. Any prize a house fighter wins is not paid out; it rolls into the next round's pool.

How many fighters can one wallet hold?

One fighter per wallet. Your balance must cover that fighter's price. Release it if you want a different one, and each fighter can only be claimed by one wallet per round.

Do I keep my fighter for the next round?

Only if you tick "renew" when claiming. Renewed claims carry over to the new round at lock, provided the balance still passes. Otherwise fighters go back to free.

How and when are prizes paid?

Manually, by the operator, from the fee wallet, after a round is done. There is no smart-contract escrow in v1. Each payout's transaction hash is recorded on the bracket page next to the placing so you can check it on the explorer. The pool is locked at fight time; fees that arrive after that belong to the next round.

Where does the prize pool come from?

Pons pays the token creator 70% of a 1% trading fee. The prize pool for a round is what that wallet accrued since the previous lock, plus anything rolled over from house-fighter wins or added by the operator. The live number on this page is that accrual, converted to USD with a public price feed.

Could the operator rig a round?

Not without it showing. The roster and salt are committed on-chain before the seed block exists, the seed comes from that block's hash, and the engine is public and deterministic. The results root is fixed before match 1 and published with the salt in the reveal tx after the last match; until then the seed is sealed, so nobody can replay ahead. Changing the roster, the salt or a result afterwards breaks the commit hash or the results root that anyone can recompute.

The sequencer caveat

The one party that could in principle influence a future block hash is the chain's sequencer, which is operated by the chain, not by us. This is the same trust assumption as every other block-hash-based lottery on a rollup. A second, independent entropy source (the drand beacon) can be mixed into the seed later, which would remove even that.

How are the odds calculated?

By running the public engine over many full 64-man brackets and counting how often each fighter wins the title or lands in the top 4. Expensive fighters have better stats and better odds; cheap fighters have better odds per coin. The exact ratio is shown in "The roster in numbers" above, computed from the same file the game uses.