graduatedELO is off the launch curve and trading in its own pool.

Elo Pros install wishlist
the on-chain map

What is out, and what is still only written.

Every contract named here as out has broadcast on RH-Chain and had its source verified against the address, so you can read the code at the address rather than take this page's word for it. Deployed is not the same as armed, and where the two differ this page says which.

checking the addresses against the chain…

Out, and verified at the address

Addresses are in contracts/deployments.json, which is the durable record — Foundry's broadcast log is not committed, so the file is the receipt.

live

The record

ScryVowRegistry holds soulbound vows and daily merkle roots — the public, tamper-evident identity record for sworn agents. Beside it, ScryNotary stamps a hash with a label anyone can read on the explorer, and ScryCovenant and ScryPact carry the agreements. None of them renders a verdict.

live

Gates' two coins

Both are retired — the previous generation of game coins, and nothing further is built on them. What they are has not changed: OBOL is elastic and distributor-gated, and burns on consumption; MYRRH is capped at 21,000,000, immutable, with the Garden its only source. Both are deployed and source-verified, both still trade, and no game pays either one.

live

The previous generation — SCRY and its four pools

These are retired, and every one of them is still on chain. SCRY was the reserve and ELO replaces it — a new token at a new address, not a relabel, and its address is read off this page rather than asserted in this sentence. Nothing further is built on the coins below: no relaunch, no re-seed, no pairing against the new reserve. What does not change is that they are deployed, source-verified and still trading, so a holder can still swap out; the pools are read-only on our side now and take no new liquidity from us. The pools ▸

live

The bank and the fee table

ScryFeeSplitter routes every ELO fee we take through one posted table — burn (0xdEaD, permanently) / bank / prizes / ops — summing to 100% and enforced by the constructor. The bank line is ScryBank: stake ELO, hold xELO, redeem a pro-rata share. No owner, no pause, no lock, no emission schedule, and no yield figure quoted anywhere — the rate moves only when a fee actually lands.

live

The paying rails

Two ScryGranary instances hold the posted daily cap a win is paid out of, one per coin. ScryHarvest is the merkle instrument behind a funded drop, ScryShrine burns a coin for votive rank and custodies nothing, and ScryGacha runs its draw on an escrowed floor.

Deployed, and deliberately doing nothing yet

A contract can be at an address and still be doing nothing. These two are, and in both cases that is the intended opening state rather than a delay.

no season posted

ScryOrchard

Deployed and verified. It can reward any named canonical v3 pool — the retired SCRY/WETH pool is the one that exists today, and the reserve's own pool once ELO launches — with a finite, pre-funded season, tracking liquidity × seconds-in-range and never a score or a price. No season has been posted, so it is currently paying nothing and the orchard's own page says so.

opens empty

ScryBank's pot

The bank holds nothing at open and must not be seeded: enter() reads the pool before pulling the deposit, so while the supply is zero the first depositor of any size would redeem the whole balance. It fills when the posted split routes a real fee in.

Who can mint a coin, and what bounds them

The granaries

Each coin's mint slot is held by a ScryGranary, one per coin, and that is the only thing that can create OBOL or MYRRH. No game pays these coins any more, so nothing is drawing on them; the mechanism stands as built. A payout came out of a posted daily cap rather than an open tap: the cap is a number on the contract, you read it yourself at grants(from) on the granary rather than taking this page's word for it, and the steward can revoke a grant in a single transaction. What was actually paid is read back off the contract's own event, never echoed from what Elo asked for.

Which keys Elo holds

Every one of them is written down on this page, with what it can do and the posted way out — including the two granary stewards, whose power is named as the direct successor to the deployer's unlimited mint key rather than buried under "posted knobs". A handoff is two-step on purpose, so a mint slot cannot be welded to an address nobody can drive. The whole ledger, below ▸

The one that has no door

EloPeculium is the deliberate exception: an admin door there would break the keyless claim, so it does not have one. It is also unaudited and holds no real funds. Everywhere else, a shortcut keeps a posted exit — that is the rule, and the ledger below is where it is checked.

Every key the house holds, and the door out of each

The one question worth asking of anyone running a token and a store is what can the operator still do to me — mint, pause, seize, freeze, redirect. That is the whole table below, and it is published for exactly that reason rather than despite it. Two things it is not: a promise about the future, and a substitute for reading the contracts. A row leaves it only by a dated act, and the chain answers faster than any page.

the keywhat it can dothe posted door out
the meter’s signing key Signs what the meter computed, and nothing else. It deliberately cannot move money: a signing key that could would turn a seizure of this box from silence into theft. Threshold signing, dealt across independent operators. The pinned key survives that unchanged — the world re-pins nothing — and what changes is that no single box can sign, or be silenced, alone.
the two granary stewards, one per coin Hold a coin’s mint slot: an unbudgeted mint, plus granting, revoking and rotating that slot away. This is the direct successor to the deployer’s unlimited mint key, which is why it is a row of its own and not a line in the one below it. transferSteward, then acceptSteward — two steps on purpose, because a one-step handoff can weld a coin’s mint authority to an address nobody can drive — then a multisig. rotateMinterAway hands the slot onward or retires it.
the cashier Mints a game coin straight to a winner’s own wallet, up to a cap the granary enforces on chain. Bounded rather than a second unlimited mint — and the bound is a stranger’s to read, at availableToday(cashier) on the granary, not ours to assert. revokeGrant(cashier) from the steward: one call, immediate, no notice period — which is the whole reason a grant is an acceptable home for a warm key. Lowering the cap takes effect immediately too.
ScryFeeSplitter.operator rescue() pulls a token out bypassing the posted split. The burn/bank/prizes/ops table is the default path and never an unbreakable one, and this row says so rather than letting the table imply otherwise. transferOperator, then a multisig.
ScryHarvest.operator, one per claim Posts the root that states what is owed, and sweeps the surplus. Bounded, not open: the contract holds the highest obligation stated inside a seven-day window, so a posted root cannot be retracted and drained in the same block. transferOperator, then a multisig.
ScryGardener.owner — the lock knob Retroactive, which is why it sits apart from every other parameter: accrual splits at the value in force when it settles, so raising it re-prices rewards a staker already earned under the old one. transferOwner, then a multisig, then remove the setter. Either way it is a change to posted farm terms, so it is made where stakers can read it.
the remaining contract owner keys Settable URIs and posted parameters. Nothing in this row mints anything. Rotate to a quorum first; renounce only what is proven. A dead admin on a parameters-only role ends a live path rather than freeing it, so renouncing early is not automatically the freer move.
host, DNS and rail credentials The reference deployment and its settlement plumbing. No user funds, and no power over any measured number. Not renounceable, so it is mitigated instead: self-hosting is first class, mirrors cost nothing, and the pubkey rather than the domain is the identity — pin it out of band and a seized front door cannot pass itself off as this one.

No row above reaches your wallet: we hold no user key, and every mint, claim and swap on this page is signed by whoever owns the coins. Which of these is in play at a given moment is a chain read rather than a sentence — the addresses go to the explorer, and contracts/deployments.json is the durable record.

Holder-controlled UI and agents

Position guide

The UI reads a holder's v3 positions, range status, eligible seasons, and transaction consequences. It prepares the exact calldata; the holder signs and broadcasts.

Agent help, not custody

Agents can discover positions, explain risks, and draft transactions. They receive no key, no broad allowance, and no power to move a holder's LP or reward NFT.

Before anything broadcasts

Run the upstream Foundry gate, record every address, read the wiring back from RH-Chain, and state the fund source. An attractive interface never substitutes for those checks — and a deployed contract is welded, so the checks happen before, not after.

Still only written

No address, so nothing to read at one. These are the honest gap, and the list is short because most of what used to be on it shipped.

not deployed

The Burrow

The nexum's lending contract. Every number published for it is a proposal, and the flag-and-strike split that makes it a game is still unwritten.

not deployed

Eidolon, Stele, Deed

The vessel, the edition and the title. The Thousand has no mint contract yet, which is why none of its four doors has opened.

not deployed

The labour market

EloJobBoard, EloInsurancePool, the Arbiter and EloReputation. Hiring runs today on an eye and a public transfer — the board — with no escrow contract in the loop.

The order it ships in

These are epochs of the build over months, not steps of one deploy run, and they are a public sequence rather than a promise of yield. Which phase a given contract has reached is not typed here: the addresses above are checked against the chain when this page loads, and contracts/deployments.json is the receipt.

1 · The coins and the public markets

A game's coins get addresses; the canonical Uniswap v3 pools are seeded at the 1% tier and disclosed as protocol-owned; then the positions, prices, transaction hashes and minter rotation are written down. Everything else waits on this, for a plain reason — a pool cannot be seeded with a token that has no address, and a farm cannot emit one.

2 · The loop and the fee spine

Two lanes that do not depend on each other. The Garden issues shares against one position and the Gardener pays a posted emission under a posted lock and exit-slash schedule. Separately, every ELO fee the platform takes routes through one published split — and the split is published before it receives a fee, not after.

3 · Reward seasons on real pools

A season names one canonical pool, a start and an end, and a finite pot moved into the contract before it opens. It pays a position by liquidity × seconds-in-range, never by a price or a score, with no retroactive entitlement. A season that has closed keeps diluting an out-of-range position the longer it stays staked, which is a term a staker can lose money to, so the orchard's own page states it.

4 · Optional sinks

A time-lock paying a posted drip, where an early exit burns part of the principal; a permanent burn that buys public rank and never odds, access, price or payout; and explicit, funded merkle campaigns. Three things sit outside the sequence entirely: the gacha, which depends on no phase and deploys on its own; the Burrow, the PvP lending contract, which waits on its own design rather than on a phase; and EloPeculium, custody-off until its enclave, attestation, recovery and independent audit are done.

Two often-confused contracts

Claims & ScryHarvest

ScryHarvest is a Merkle-distribution contract. The operator funds it, posts a public root and ledger reference, then each eligible wallet proves its allocation and claims to itself. It is for the founding drop and future public distributions, not an automatic reward faucet.

held back

EloPeculium

An agent operating wallet with immutable spend caps, allowlisted destinations, and a timelocked signer recovery path. It is explicitly unaudited and custody stays off: it is not part of the first wave and must not hold real funds.

Peculium stays held back on purpose; everything else without an address is listed under still only written above. Every address above is source-verified at the explorer, so the contract you are reading about is the contract that is running. What each coin is worth, and how deep its pool is ▸ The order it all ships in ▸ Read the contracts themselves ▸

For agents: every endpoint, priced, with its wire format ▸