Contracts
Everything is on Robinhood Chainand every contract is verified, so you can read the game’s state yourself rather than trusting the interface.
Addresses
| Contract | Address | What it does |
|---|---|---|
| SectorRegistry | 0x852eC82936340bCf275C80c7D4F1914E70Fc866E | The universe: industries, sub-industries, the 61 companies, and every tunable parameter. Append-only — ids are permanent and entries are deactivated, never deleted. |
| SectorOracle | 0x56D2156bc2903bE0cE0a725c2677Ed7BA5025b5E | Ranks the five industries each epoch on Uniswap tick log returns. Settling is permissionless; nobody chooses the outcome. |
| DailyOracle | 0xA8A2CCec96bba98f93766c934781a80F403D3728 | Ranks every company daily on its own 24-hour move. Also permissionless. |
| PriceRouter | 0x961210497F2D6fA63C41D297b0Dd85A4CD7eDABe | Decides which venue prices a given company and answers with a USD value. Both Uniswap v3 and v4 sit behind it. |
| SectorVault | 0x8F6c2d71F38bAB97e8044cf3896DeAc72f56F1aa | Custody. This is where your shares live, and it is never upgraded — the logic modules are replaceable around it while custody stays fixed. |
| CitadelToken (SCRIP) | 0xF6F57f6B7852167713812010170d0e526Bf303cC | The in-game currency. Minted by production, burned by building. No market, no redemption. |
| Production | 0x2899B7A3d653F2344560e0B204F373EB2C1C448f | Turns staked value into SCRIP. Holds the rate, the storage ceiling, the funding share and the boost curve. |
| Raid | 0x53637e2785B3c995462D8095e146C19cAE180c2f | Declaring, transit, resolution, walls, loot and every fairness rule. |
| Buildings | 0xfbb5e37343a537f7f0D3a0e6DD25AD788A4bA3A1 | Coverage, levels, the cost curve, build times and the frontier that gates the eras. |
| Guilds | 0x8A209ae5e2B9Dc810F8beFbd65E012E6aa10dE07 | Membership, industry control and the levy. |
| Resources | 0x72C244E56Ed9849483C39d81285887b354e370A0 | The five raw materials and the recipe each level burns. |
| ShieldShop | 0x4Edafd4062B2a58d2BBb828650961828A624e03c | Sells shields for USDG. Payment goes to the treasury and leaves the game economy. |
| BoostVault | 0x801482fFcC3BD13793EdAc249d89A0E62526d7Bc | Holds staked CDLT and integrates time. It does not know what a boost is — the curve lives in Production. |
What can change, and what cannot
The design draws one hard line: custody is never upgraded. The vault is the one place player assets live, so the game’s logic — production, raids, buildings — is replaceable around it while the vault stays fixed. A broken upgrade can break gameplay; it must never be able to lose the assets.
| Replaceable | Why | |
|---|---|---|
| SectorVault | Never | It holds the shares. |
| SectorRegistry | Never in place; append-only | Ids are permanent so nothing that references them can break. |
| Production, Raid, Buildings | Yes, by the owner | Logic. Pointed at through settable references. |
| Guilds, Resources, BoostVault | Yes, and optional | A missing one costs its own feature and nothing else. |
| Oracles | Yes | Pricing and ranking are swappable behind an interface. |
Reading the game yourself
Useful calls, if you want to check the interface against the chain:
production.claimableOf(you)— what is in your store right now.production.boostWadOf(you)— your live staking multiplier, as a 1e18 fixed-point number.vault.powerUsdOf(you)— what your city weighs, which is what raids are matched on.raid.defenceOf(them)— anybody’s walls. All six fronts are public.registry.currentEpoch()andsectorOracle.lastSettledEpoch()— where the game is in its cycle, and whether the last epoch has been ranked.
Ownership
The owner can turn the dials listed on every number and replace the logic modules. It cannot touch custody, cannot mint SCRIP outside the per-epoch budget, and cannot take a player’s shares. Moving ownership to a multisig is a stated pre-condition for treating the deployment as final.