Every character, as it is on chain.
A character is an NFT you can keep or sell. This page is the run itself — what has been minted, what each one rolled, who holds it, and where it trades. It reads the chain and holds nothing: there is no vault here, no listing book, and no price scry sets. Mint one ▸ What a character is, in plain words ▸
what a character is
An NFT: a pixel character you own, can sell, and that says you were here early. It holds three things — a face drawn on chain, a tier you unlock with SCRY, and its number in the run — and it is not required to play anything. The pass is the entry ticket, and it stays uncapped.
It is a free mint, and free is the whole of it. The way in is a snapshot of holders across the collections we flagged, taken at blocks that had already happened — nothing anyone does after the announcement changes who is on it, and being in more than one collection still gets you one character. The contract carries other doors — play, build, paid — but the decided caps give them nothing: the whole float goes through the snapshot, and a character it never hands out is never minted by anyone, so the run can only come up short. Which doors are open is read off the chain, never typed here. Paste an address and see if it is on the list ▸
A character mints benched. It is yours, it has a face and a number, and it
draws nothing until you unlock it. Unlocking is paid in SCRY and buys exactly one
thing: weight — how many allotments the character draws when a distribution round
fires. The ladder is deliberately worst value at the top — a big wallet pays many
times the capital for a modest multiple of the weight, and the contract will not deploy on
any other shape. A fixed share of what you pay is burned by transfer to
0x…dEaD (SCRY’s totalSupply() does not fall; the tokens
become unspendable), upgrades pay the difference rather than the rung again, and
every transfer clears the tier — including moving your own character between
your own wallets. The rungs and their prices are on
the mint page, read off the chain at load; what an unlocked
character draws, and when, is the drop bar.
Selling a character resets it to benched. The tier does not travel with
the sale — tierOf is cleared by every transfer, so a buyer starts at
tier 0 and what you paid to unlock is spent. Nothing you earn playing is held by the
character either — a record that outlives a sale is unbuilt, and this page will not
describe one until a contract backs it.
No tier buys an advantage. Weight decides how many allotments a character draws, never what is inside one. No amount of SCRY, at any rung, buys a rank, a score, the odds in a case, or power, progression or matchmaking in any game. A character is not a job either: where one leads to paid work, enrolling is free and tier is not an input to it.
Where a character trades is further down this page, with the royalty asked on a sale — an ask, not a collection: some venues honour it and some do not.
the character, stood up
reading…
the run
reading the chain…
what a wallet holds
Paste any address — no wallet, no signature, no connection. Ownership is
public, so looking at somebody's shelf needs nobody's permission. The
count comes from balanceOf, which is an eth_call
and is the authority; the ids come from the explorer, because no RPC
method enumerates an owner's tokens at all.
A shelf here shows what is on chain and nothing else — a face, a tier and a number, read back per character. Selling one hands over exactly that, and the tier resets to benched on the way.
where a character trades
reading…
check every number here
Nothing on this page is typed into the markup. Each figure is read at load time from the endpoints below, which read the chain.
/api/seat/gallery every minted character — ids from the index, each re-read on chain /api/seat/<id> one character: tier, door, owner, traits, where it trades /api/seat/of/<address> what a wallet holds, and which doors it may still walk /api/seat/<id>/face.svg the face itself — the same bytes the contract returns
Every route above is documented in the API reference, and an agent with its own wallet reads and mints through exactly the same ones a browser does.
The face on this page is not our drawing of the token — it is the
token's, byte for byte. art/seat/test_parity.py compares the
renderer we serve from against the contract's own svg(),
character for character, against a fixture taken from a real EVM run. The
three-dimensional one is those same bytes with depth added, and the depth
is a function of the silhouette alone.