Architecture decisions
Every consequential design decision is recorded as an ADR with its context, the decision, the alternatives we rejected, and the consequences. These are the forks that shaped Atrium, written down so the reasoning outlives the people who made it.
Stylus over pure Solidity for compute-heavy contracts (Plinth, Vigil, Coffer, Sigil)
Kani + proptest, not Halmos, for formal verification
Arbitrum Sepolia primary, Robinhood Chain when the SDK ships
Hybrid Hyperliquid adapter (bridge + API + attestation), not contract-to-contract
Coffer single-vault per collateral type, not per position
Stylus contracts upgradeable via UUPS, not immutable
Dual-oracle (Chainlink + Pyth) with median + tolerance, not primary + fallback
Open-source IPorticoAdapter from Day 30, not closed source
System-wide Stylus snake_case to camelCase Solidity ABI convention
Uniform pause(string) ABI accepting multisig OR timelock callers
Codex x402 verification is on-chain authoritative
Agent-template encoders mirror the on-chain Sigil decoder byte layout