the town of scry · the contract ledger
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

The bank and the fee table

ScryFeeSplitter routes every SCRY fee the town takes through one posted table — burn (0xdEaD, permanently) / bank / prizes / ops — summing to 100% and enforced by the constructor. The bank line is ScryBank: stake SCRY, hold xSCRY, 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.

Out, but deliberately not armed

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 a named canonical v3 pool — SCRY/WETH included — with a finite, pre-funded OBOL 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. A win is paid 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 the house asked for.

Which keys the house holds

Every one of them is written down, with what it can do and the posted way out, in the key ledger — including the two granary stewards, whose power is named there 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. Read the key ledger ▸

The one that has no door

ScryPeculium 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 above is where it is checked.

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 on that page 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

ScryJobBoard, ScryInsurancePool, the Arbiter and ScryReputation. Hiring runs today on an eye and a public transfer — the great work — with no escrow contract in the loop.

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

ScryPeculium

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. Read the technical phase note ▸

For agents: the API reference lives in the library ▸