Contracts
Everything DOGMA CAPITAL owns on Robinhood Chain, with a live code check against the chain rather than against our own deploy log. Addresses are CREATE-derived from the deployer at a fixed nonce, so they were reserved and predictable before a single transaction was sent.
contracts/scripts/deploy.js will produce when run from the deployer at nonce 0 -
the deployer refuses to run at any other nonce, and aborts if a deployed address does not
land on the reserved one.
The suite
In deployment order| Nonce | Contract | Address | Roles | Code | State | Tx |
|---|---|---|---|---|---|---|
| 0 | DogmaVenueRegistry | 0xe81a0C5a4446bF1eC985d065C130CcBDBaa5d9F5 | Venue allowlist, Routing surface | - | Reserved | - |
| The on-chain list of liquidity venues the aggregator reads. Deployed first because the Quoter, the Book and the Router all take it as a constructor argument. | ||||||
| 1 | DogmaAssetRegistry | 0x47CCcc16D18A8aF397c98C09E42E67D8596dF26d | Instrument universe, Listing control | - | Reserved | - |
| Every instrument the terminal will price, with its class, decimals and quote asset. The front end boots off this contract, not off a server-side file. | ||||||
| 2 | DogmaQuoter | 0xefbB66D602fB3fC80A4Bb9939712Cd1192eEFFd2 | Exact sizing | - | Reserved | - |
| Prices a size against one venue. V2 in closed form; V3 by starting the real pool swap and reverting inside the pool callback before anything settles. | ||||||
| 3 | DogmaBook | 0x410F79a42EB6B9d4F712398CC1B730Cd5Ae8a53d | Liquidity aggregation, Split solver | - | Reserved | - |
| Consolidates every venue into one sorted book and solves the split the router executes. Read-only in effect - it changes no state anywhere. | ||||||
| 4 | DogmaTreasury | 0x2451d5428569151ea9C5a9caF48e7a59c8b87702 | Fee custody, Revenue split | - | Reserved | - |
| Every fee lands here and is split by published shares. Sweeping is permissionless; the destinations are fixed on the books. | ||||||
| 5 | DogmaRouter | 0x43Be2E6f5ae6245e52BF38e22a80802Cf9c41773 | Smart order routing, Router fee take | - | Reserved | - |
| Settles a split route in one transaction and enforces the signed minimum output, or reverts. Fee is capped at 1.00% in the deployed bytecode. | ||||||
| 6 | DogmaToken | 0x3a2746cAAf865E6d131B3d00343aAD22f5863FC4 | DGMA desk token | - | Reserved | - |
| Fixed-supply ERC-20 with EIP-2612 permit. No mint, no tax, no pause. Staked for a desk tier. | ||||||
| 7 | DogmaStaking | 0xC487f33CAD90eb1cee38D3f22A2A3049cE4E5B3A | Desk tiers, Fee rebates | - | Reserved | - |
| Stake DGMA to hold a tier. Rewards are funded, never minted, so the runway is visible on chain before anyone stakes. | ||||||
contracts/ and is self-contained. Nothing is
imported from an external package, so the deployed bytecode can be matched byte for byte
against the repository through the explorer's standard-JSON verification.
Role wallets
Addresses only: no key is stored anywhere the web server can read| Role | Address | Responsibilities | Rate | Balance | Key |
|---|---|---|---|---|---|
| keeper | 0x33d632cF94F7F8D92372Ade00a7978087Fe7d3f7 | Keeper, Automation The only hot key. Sweeps the treasury, refreshes registry state and can suspend a venue or an instrument. Holds no funds. |
n/a | 0 ETH | Hot |
| deployer | 0xf5eFA1e96D1EcA1e98c6cB045D08D5E94f9F08ef | Deployer, Contract owner Signs every DOGMA CAPITAL contract deployment at nonce 0..N and owns the result. Holds no revenue - fund it with gas only. |
n/a | 0 ETH | Cold |
| insurance | 0x82361d530Ea9c37268947a3CDbE6a1c3e08EDed5 | Insurance fund, Execution backstop Backstop reserve. Makes users whole for an execution failure caused by DOGMA CAPITAL rather than by a venue. |
10% of router fees | 0 ETH | Cold |
| listing_fee | 0xc695e1e3483809DF915527a2914c5b554e79D40C | Listing fee Collects the one-off fee charged when an instrument is listed into DogmaAssetRegistry. |
0.01 ETH flat | 0 ETH | Cold |
| market_maker | 0xaE9d3F7BD8Bbf6A5692867EBbb8Cf66EaB8188dA | Inventory, Quote seeding Holds working inventory used to seed quotes on thin listings. Operational capital, not revenue. |
n/a | 0 ETH | Cold |
| operations | 0x7880898AB9158130B773EA19e0F5e3FcDb39ee3d | Operations, Infrastructure costs Funds RPC, indexing and terminal infrastructure. A DogmaTreasury beneficiary. |
20% of router fees | 0 ETH | Cold |
| reserve | 0x4e392B38704243F7f6Bb1AbBea46737F81fC19Fb | Cold reserve (standby) Cold standby. Receives nothing today; exists so any role above can be rotated to a fresh key without a redeploy. |
n/a | 0 ETH | Cold |
| reward_funder | 0xE2d552F25B8bD91817df3e728D41e1812C2AaF88 | Staking reward funder Tops up the DogmaStaking reward pool. Outbound only - never a fee destination. |
n/a | 0 ETH | Cold |
| router_fee | 0x95cba54c26279Ea19f4Da836e6362ed8a39AdF31 | Router fee - standby sink Standby destination for the DogmaRouter input-side fee. Live routing points at the DogmaTreasury contract. |
0.25% of routed notional | 0 ETH | Cold |
| treasury | 0xCb2136Cb3e51E0FA2Bca302902Ecd49b7b883272 | Protocol treasury, Primary revenue The desk primary revenue wallet. Receives the protocol share of every fee distributed by DogmaTreasury. |
70% of router fees | 0 ETH | Cold |
Why the addresses were known in advance
A CREATE address is a pure function of the deploying account and its nonce. Generate the deployer key, and every contract address the deploy will produce is determined before any transaction exists.
That is what lets these addresses be published, funded and referenced ahead of the deploy. It also makes the deployer's two rails meaningful: it refuses to run unless the nonce is 0, and it aborts on the first address that does not land where it was reserved.
The result is that nobody has to take the desk's word for which contract they are trading through. The address was committed to first.
What each contract can and cannot do
Router: settles a route and enforces the signed minimum. Takes no custody beyond one call, and its fee is capped at 1.00% in the deployed bytecode; no owner key can raise it past that.
Book and Quoter: read-only. They hold no funds, have no owner, and cannot move a token. Their worst possible behaviour is returning a wrong number, which the router's minimum-output check then rejects on the user's behalf.
Treasury: sweeping is permissionless. Anyone may trigger the distribution; the money can still only travel to the beneficiaries already on the books.
Registries: the owner lists; the keeper may only suspend. A compromised keeper can degrade the desk but can never widen what it may touch.