Contract architecture
The components and how they relate.
Components
- EventVaultFactory
- Deploys a vault per declared corporate action, scoped to one asset and one event.
- EventVault
- Custodies the eligible underlying, mints and burns the token pair, enforces the solvency invariant.
- PrincipalToken
- Transferable claim on the underlying, redeemable once the vault settles.
- DistributionToken
- Transferable claim on one declared corporate action, burned on redemption.
- SettlementAdapter
- Converts a delivered distribution into a distributable balance. One implementation per settlement type.
- BasketComposer
- Issues basket units against a set of distribution tokens and enforces the published rule.
- EventRegistry
- Records declared terms and operator attestations for each action.
Trust boundaries
The vault is trusted with custody but has no discretion: it can only mint in pairs and burn in pairs or against a reported delivery. Discretion sits in the registry, where operators attest to declared terms, and in the adapters, which interpret what arrives. Those are the components that carry stake and are subject to slashing.
Upgradeability
Vaults are immutable once deployed. A vault is scoped to a single event, so a change in behaviour is expressed by deploying a new vault for the next event rather than by upgrading one holding live collateral. Adapters and the composer are governed separately.
No contracts are deployed. No audits have been performed. This page describes intended architecture and will be updated with addresses, verification links and audit reports as they exist.