Eidos

Contracts

Solidity 0.8.24, OpenZeppelin 5, Foundry. Every contract uses typed errors and emits events for indexers. Source lives in contracts/src of the repository.

Mainnet addresses: coming soon. The contract address is published on the front page the moment there is one to publish.

EidosToken

ERC-20 with a fixed supply minted at deployment and no transfer fee. The contract carries a fee mechanism that can only move down, and it was deployed at 0 bps, so no fee can ever be introduced. A fee on transfers would break selling through Uniswap v3 (the pool checks that the full input arrived and reverts with IIA when a fee skims it); test/UniswapPool.fork.t.sol proves a buy and a sell of EIDOS through a real v3 pool on a fork of the chain. The treasury is funded by the 5% launch allocation instead.

EidosTreasury

AgentRegistry

CallLedger

PriceOracle

Prices are quoted in USDG with 18 decimals: 1e18 is one dollar.

Deployment

contracts/script/Deploy.s.sol reads config/launch.json, deploys the five contracts, wires them, funds the treasury and registers the deepest USDG pool for every asset. It writes deployments/mainnet.json. The website does not read that file: the contract address it advertises comes from the NEXT_PUBLIC_CA environment variable.

Verification

Sources are verified on Sourcify, which Blockscout reads. If a contract page shows no source, the Sourcify match may still be propagating.