Why the protocol is what it is
Every architectural decision Solieum has taken, numbered and dated, in the words it was written in at the time. Pages across this site cite these by number; this is where the numbers resolve.
- ADR-0001: System class: optimistic rollup with Solana DA (accepted, 2026-08-13): Solieum is an optimistic rollup: execution off-chain, batch data published on Solana, state roots committed to Solana, invalid roots removable by fraud proof.
- ADR-0002: Proof system: interactive bisection now, validity prover second, never alone (accepted, 2026-08-13): Invalid roots are made unfinalizable by an interactive fraud proof: log₂(steps) bisection rounds narrowing to one instruction, verified in a single Solana transaction. A ZK validity prover is added later as a…
- ADR-0003: Settlement parameters at launch (accepted, 2026-08-13): Window length: multi-prover live → revisit. Bond floor: any TVL milestone → mandatory re-derivation.
- ADR-0004: Sequencing: single sequencer + forced inclusion from day one (accepted, 2026-08-13): Launch with a single operator sequencer, stated plainly as a liveness and ordering monopoly — made survivable, not custodial, by forced inclusion shipped in the same release (hard ceiling ≤ 24 h, then…
- ADR-0005: Execution environment: fork the SVM, wrap it deterministically (accepted, 2026-08-15): Fork Agave's SVM rather than reimplement: bug-for-bug compatibility is the product promise the compatibility matrix depends on, and divergence risk is the one risk we cannot bound. Costs accepted: upstream…
- ADR-0006: 100 ms confirmations: accountable, then covered (proposed, 2026-08-15): Product wants "100 ms settlement." Physics: nothing lands on Solana inside one ~400 ms slot ⟨VERIFY⟩, and withdrawable finality is bounded below by L1 rooting (~13 s ⟨VERIFY⟩) plus the proof system. So the 100…
- ADR-0007: State commitment tree: sorted-leaf now, sparse for witnessed insertion (accepted, 2026-08-26): v1 uses a sorted-leaf binary Merkle tree. Leaves are (key, value_hash) sorted by key; internal nodes hash their two children; a lone node is promoted, never duplicated. Proofs are compact (⌈log₂ n⌉ siblings,…
- ADR-0008: One-step verification: instruction classes now, an SBF interpreter eventually (accepted, 2026-08-26): A one-step verifier receives the disputed instruction and the accounts it touches as Merkle witnesses. Those accounts are L2 accounts. They do not exist on Solana, they have no addresses the runtime knows, and…
- ADR-0009: A deposit is a forced-inclusion entry (accepted, 2026-09-02): solieum-bridge-portal::deposit locked lamports in the vault and emitted an event. Nothing on L1 obliged anyone to credit the L2, nothing on L1 recorded the deposit beyond a counter, and the depositor had no way…
- ADR-0010: A withdrawal is initiated on the L2 and proven from its own block (accepted, 2026-09-02): The L1 half of a withdrawal has existed and been deployed for some time: prove_withdrawal verifies a state-tree inclusion proof against a FINAL settlement root and binds it to (id, amount, recipient);…
- ADR-0011: The v1 trace is what a dispute is about (accepted, 2026-09-03): A state root commits to pre_state → post_state for one block. The dispute game (ADR-0003, solieum-dispute, solieum-dispute-game) does not reason about blocks. It reasons about a trace: num_steps state…
- ADR-0012: Sequencer bond and slashing (accepted, 2026-09-03): The sequencer's ordering receipt (Appendix E2, solieum-receipt) turns a soft confirmation into an accountable promise: two validly signed receipts for the same (batch, position) with different order hashes are…
- ADR-0013: Bridge security posture after the 2026 bridge losses (accepted, 2026-09-03): On 2026-04-18 the KelpDAO rsETH bridge on LayerZero lost 116,500 rsETH (about $292M), the largest loss of the year, attributed by LayerZero and Chainalysis to North Korea's Lazarus Group (TraderTraitor). The…
- ADR-0014: Execution happens at admission, not at block seal (accepted, 2026-09-04): A Solana transaction can end three ways: it lands and succeeds, it lands and fails, or it never lands. The middle case is priced in by nobody. On the sample this project took itself — 39 finalized mainnet…
- ADR-0015: An air gap between finality and payout (accepted, 2026-09-04): The challenge window (ADR-0003, 7 days) answers exactly one question: was this root challenged? It cannot answer was the dispute machinery itself sound? Two failures live in that gap:
- ADR-0016: The challenge window is two timers, and only one of them is seven days (accepted, 2026-09-04): ADR-0003 set the challenge window at seven days and wrote the policy that it is "shortened only when a validity proof, not a timer, guarantees correctness." ADR-0015 then added the air gap and recorded the…
- ADR-0017: The revenue model: fees are kept, rent is reclaimed, and the fee path is SOL only (accepted, 2026-09-05): The devnet chain earns nothing by design and pays for every block.
- ADR-0018: The Solieum token is a governance token: it governs the economic surface and pays for work, and is never gas and never collateral (accepted, 2026-09-05): Solieum is a rollup. Its security is Solana's finality plus anyone's ability to prove a bad root wrong; nothing is mined and no validator set of its own decides state (the GitBook once claimed one, and ADR-0001…
- ADR-0019: The program set is part of the state transition and is not committed to the chain (proposed, 2026-09-10): A Solieum chain executes the programs an operator names at startup: