TRIBE
Not deployed yet · no mint · no token

500 degens, drawn by the contract.

No IPFS. No metadata server. No folder of PNGs on someone's laptop. Every face on this page is 2,500 bytes of traits and a pile of Solidity string concatenation.

500Genesis supply, fixed
13Archetypes, 5 tiers
2,500 BEntire trait dataset
0Bytes stored off-chain
95%Hard cap on upgrade odds

/// The machine

Feed it degens.
Ask for a bigger degen.

Stake up to four characters, pick a target worth more than what you staked. The contract does one division, rolls, and either mints your target or burns everything you put in. There is no third outcome.

Your stake

Tap to add, tap a pill to remove. Four maximum.

Nothing staked yet.

What the contract returns

— stake something first
chanceBps(0, 0) → 0

The 0.95 is the house edge. The 95% ceiling exists so nobody buys a certainty.

/// Fairness

The house rolls first,
in public, before you play.

Commit-reveal, the same scheme the browser demo runs with HMAC, moved on-chain with keccak. The operator cannot change the seed after committing it, and cannot predict your half of it.

Operator commits

A random server seed is hashed and published. commitSeed(keccak256(seed)). The seed itself stays hidden.

You add your half

Your request carries your own clientSeed and a nonce. Neither side can now steer the result alone.

Seed is revealed

keccak256(seed, clientSeed, nonce) % 10000 against your odds in basis points. Anyone can recompute it forever.

One honest gap: the operator sees the outcome before settling, so it could stall on a loss. That is why any request can be refunded by anyone after an hour. Removing the operator entirely means Chainlink VRF, which Robinhood Chain shipped with at launch.

/// On-chain or it didn't happen

The whole collection
fits in a tweet. Twice.

One token, five bytes

0archetype
1eyes·mouth·acc
2R
3G
4B

500 × 5 = 2,500 bytes, uploaded in five chunks and then sealed. After the seal the owner cannot touch it. The hash was committed at deploy, before anyone saw a single face:

0xb8439869c8be34cd6f67893e60fffa8bd546c624706ed25649dec0bc3d40947a

Mint order is shuffled

Token #1 is not trait #1. A one-time reveal() picks a random offset, so nobody can look at the sealed blob, count backwards and snipe the Lost Wallet.

Supply only goes down

Genesis is #1–500 and that is all there will ever be. Winning an upgrade mints a Forged token above #500, but every round burns at least one input first. Circulating supply cannot grow — it can only get rarer as degens gamble it away.

Measured, not promised

21,036 bytes of runtime bytecode, 25,700 gas per mint, 43,400 gas to settle a round. All 500 rendered from a deployed contract in a local EVM before this page existed.

/// The roster

Thirteen ways to be
early or exit liquidity.

ArchetypeTierValueSupplyOdds from one Paper Hand

/// Roadmap

Short, because most of it
is already written.

01
On-chain renderer

SVG generator ported to Solidity, 500 traits generated and verified against the contract's own output.

Done
02
Testnet deploy

Robinhood Chain testnet, chain 46630. Upload, seal, reveal, and a public faucet claim.

Next
03
Crate + redeem

Crates as their own NFT, and burning a character back into its ERC-20 value.

Planned
04
VRF and mainnet

Replace the operator with Chainlink VRF, audit the game math, then chain 4663.

Planned

/// FAQ

Wen mint?

Wen mint, seriously

Not yet. The contract is written and tested but nothing is deployed, there is no mint page, no allowlist, no token and nothing to buy. Anyone telling you otherwise is not us.

Why Robinhood Chain?

It is an Arbitrum Orbit L2, fully EVM compatible, gas paid in ETH. Storing 2,500 bytes and rendering SVG in a view function is cheap there in a way it is not on L1. Mainnet is chain 4663, testnet 46630.

What stops the team from changing the art?

The trait blob's keccak hash is set in the constructor, before upload. sealTraits() refuses to seal if the bytes do not hash to that commitment, and nothing can write to the blob after the seal. The renderer itself is immutable contract code.

Is the upgrade game +EV?

No. Every round pays a 5% edge to the house and the odds are capped at 95%. Over enough rounds the expected value of a stake is strictly less than the stake. That is the entire point of the mechanic and pretending otherwise would be a lie.

Can I verify the 500 myself?

Yes. The generator is deterministic from one seed string. Run it, hash the 2,500 bytes it produces, compare to the hash the contract committed. Same 500 every time, on any machine.

Rarity ranks?

There is no ranking algorithm and no rarity score. Tier and supply are printed in the table above, traits are on every token, and you can count them yourself in the gallery.