Architecture

Spout has three layers: your wallet, programs on Solana that hold the rules and the money, and Spout's operational services that run routine work within limits the programs enforce. You sign your own actions. The keeper can only call specific program instructions, each checked by the program.

On Solana

PartWhat it does
Spout vault programHolds the collateral pools and their receipt tokens, loans, lending tranches, settlement logic and the Insurance Fund. Enforces every limit in these docs: LTV, thresholds, the utilization cap, the Junior minimum, fee rules and the loss order.
Identity registryRecords a verified flag for wallets that complete identity verification, and links extra wallets to the same identity. Holds no personal data.
Stork price feedsSigned prices for each supported asset, verified by Stork's own program before Spout reads them.
USDCThe stablecoin for every loan, deposit and payout.

Spout operations

PartWhat it does
KeeperRuns each options cycle: locks and unlocks pools, records premium, delivers settlement cash, settles assignments, and runs liquidations.
Brokerage accountHolds the real shares behind collateral that has joined a pool. Calls on those shares are sold here as listed options on US exchanges, liquidation sales are executed here, and assigned stock is bought back here.
IssuerRedeems collateral tokens for the underlying shares, delivered to the brokerage account, and reissues the tokens when the shares are returned. Spout mints or burns a matching receipt token at each step.
Price relayCarries Stork's signed prices onchain. It cannot change a price, because Stork's program checks the signature.
App and APIThe app you use. It reads the chain and builds transactions for you to sign.

How a typical action flows

  1. You choose an action in the app, such as borrowing $1,000.
  2. The app builds the transaction and your wallet asks you to sign it.
  3. The vault program checks it: is the price fresh, is your LTV within 50%, does the pool have the USDC, is borrowing paused?
  4. If every check passes, the USDC moves to your wallet. If any fails, nothing happens.