Start here

Contract architecture

Users call SecurityPools, the Statoblast contracts that expose each market's shares and reporting. Each question belongs to a portfolio, which holds cash in its central settlement engine. Pools rely on Zoltar for universes and REP, on a price coordinator for REP/ETH prices, and on the SecurityPoolForker after a fork.

Related reading: the generated transaction reference for exact caller and prerequisite rules, How Statoblast works for lifecycle context, and the invariant catalog for cross-contract safety properties.

Product layers

Product-layer map. These products share protocol data but retain separate responsibilities and deployment boundaries.

What each contract owns

Purchase and resolution

A trader purchases complete sets through the portfolio. Admission, fresh price, healthy capacity, fees and the question's backing floor are checked atomically. The question adapter mints distinct outcome shares. After final resolution, winning claims redeem against their question's settlement accounting. Returning complete sets earlier reduces demand and can free commitment for retirement.

Fork boundaries

Owners choose once per portfolio and universe. Shared roots and branch balances avoid a migration transaction per owner per question. A question adapter and reporter continuation are materialized only when used. Token holders still migrate their own claims through each intervening universe. Reporter checkpoint preparation is bounded per transaction and reusable by descendants.

See the fork lifecycle, uniform auctions, and the contract inventory for module interfaces and limits.