Architecture¶
Three contract types make up the Vault-K-NO system. Each has a distinct, non-overlapping role.
LiquidityVault¶
The single user-facing contract. All investor interactions happen here.
Responsibilities: - Holds all USDC (idle reserve + deployed capital tracked by adapters) - Manages the four-slot position registry - Contains all pricing logic: modeled NAV, market NAV, gap calculation - Applies the quadratic redemption curve to exits - Enforces the daily cap and pause condition - Maintains the FIFO withdrawal queue - Emits all protocol events
MarketAdapter¶
One instance per active prediction market. Deployed by the operator when entering a new position.
Responsibilities: - Handles all venue-specific logic: order submission, price reading, settlement claiming - Buys NO shares with USDC from the vault - Reports current position value to the vault - Claims settled funds and returns USDC to the vault
Key properties: - Up to four adapters active simultaneously (one per vault slot) - Stateless beyond the position it holds - Decommissioned when its market settles and capital is redeployed - Venue-specific implementation — each venue requires its own adapter
HouseBuffer¶
Shared USDC reserve backing one or more vaults.
Responsibilities: - Collects 0.5% liquidity fee from every vault redemption - Provides reserve top-ups when a vault's idle cash runs low - Can back multiple vaults simultaneously
Scope
The HouseBuffer does not calculate gap coverage and does not insure against market losses. It is a liquidity float, not an insurance fund.
Contract Interaction Map¶
Investor ──── deposit() ────────────────────────► LiquidityVault
Investor ──── requestWithdraw() ─────────────────► LiquidityVault
Keeper ──── processWithdrawals() ───────────────► LiquidityVault
│
Operator ─── openPosition() ─────────────────────► LiquidityVault
│ buyNoShares()
MarketAdapter[0..3]
│ (prediction market venues)
Operator ─── closePosition() ────────────────────► LiquidityVault
│ claimSettlement()
MarketAdapter
│
LiquidityVault ─── fee ──────────────────────────► HouseBuffer
HouseBuffer ─── topUpReserve() ───────────────► LiquidityVault