Skip to main content
Source: instructions/admin/{protocol,assets,reserves,integrations}.rs.

Protocol

The allowed-token list may hold at most max_assets_per_margin minus the debt and venue limits. That way, allowing a token never stops borrowing, and a liquidation always fits in one transaction.

Operating modes

Assets and venues

Risk parameters are validated: ltv < liquidation_threshold ≤ 100%, bonus at most 5%, and threshold × (1 + bonus) ≤ 100%. Issuer controls. A mint whose issuer keeps power over balances or value needs accept_issuer_controls = true. That covers a freeze authority, a close authority, a transfer-fee, interest-rate or scaled-UI authority, a permanent delegate, pausing, or a settable transfer hook. Fixed transfer fees, metadata, groups and confidential transfers need nothing. A live transfer hook, non-transferable mints, accounts created frozen and unknown extensions are refused. A token allowed again is screened again, and must keep its token program and decimals.

Reserves

Reserve status: Active (0), SupplyOnly (1), RepayOnly (2), Frozen (3). Borrowing needs Active. Supply needs Active or SupplyOnly. Redeem is blocked only when Frozen. Repay is always allowed. The configured pools are USDC, USDT and SOL. The bootstrap scripts refuse to initialize a reserve for any other asset.

Integrations

Oracle admin

The oracle’s price book and market book are configured through vanna_oracle instructions, gated by the core protocol admin. See Oracle Program.