How Spout Works

Spout connects three groups: borrowers who bring stocks, lenders who bring USDC, and the options buyers who pay for covered calls written on the stocks. The result is a loan with no interest for people who hold stocks, and yield for people who hold dollars, both paid from income the stocks could already earn.

The four moving parts

  1. Borrowers deposit collateral

    Each asset has one shared pool. Your share of the pool is recorded onchain.

  2. Spout writes covered calls on each pool

    The calls are standard listed options, sold on US options exchanges through Spout's brokerage account. Buyers pay a premium for the right to buy the stock at a set price (the strike) before a set date (the expiry).

  3. Lenders fund the loans

    Their USDC is lent to borrowers at 0%. Most cash that is not lent out earns Treasury bill yield.

  4. The premium pays the lenders

    Premium after the protocol fee, plus Treasury bill yield, flows to the Senior and Junior tranches.

Think of the collateral as an orchard. The borrower keeps owning the trees. Spout sells buyers the right to some of the fruit if it grows past a certain size, and that income pays the people who funded the loan. The borrower's cost is the occasional very large harvest they do not get to keep.

Where your collateral sits while it works

A covered call is only covered if real shares sit in the account that sells it. So while your collateral works in an options cycle, Spout swaps the tokens for the real shares and swaps them back when they are needed for a withdrawal:

  1. You deposit or buy a tokenized stock

    It goes into the asset's pool on Solana.

  2. Spout redeems the tokens with their issuer

    The underlying shares are delivered to Spout's US brokerage account.

  3. A receipt token takes their place in the pool

    Spout mints one receipt token for every token redeemed, and the pool's onchain balance is reconciled against the shares held. Nothing changes in your position: you still see your stock.

  4. Calls are sold on those shares

    The premium is collected in the brokerage account and delivered to the lending pool in the weekly settlement.

  5. The steps reverse on the way out

    After the calls expire, shares needed for withdrawals go back to the issuer, which reissues the tokens. The matching receipt tokens are burned at the same moment, and the tokens return to the pool for you to withdraw.

Think of a coat check. While your coat is in the cloakroom, you hold a ticket that matches it exactly. Here the shares sit in the brokerage account while they earn premium, and the receipt token in the pool is the ticket. When you leave, the ticket is torn up and your coat comes back.

The life of a borrower's dollar

  1. You deposit $10,000 of a tokenized stock.
  2. You borrow up to $5,000 of USDC at 0%.
  3. Your stock joins the pool and, from the next cycle, calls are written on it.
  4. In a cycle where the stock ends below the strike, the calls expire unused. Your stock is untouched and you keep every gain.
  5. In a cycle where the stock rallies past the strike, you keep the gains up to the strike and give up the rest of that cycle's move.
  6. You repay whenever you like, then withdraw your stock when its cycle ends and its tokens are back in the pool, usually the next business day.

The life of a lender's dollar

  1. You deposit $10,000 of USDC into Senior or Junior and receive tranche share tokens.
  2. Part of the pool's USDC is lent to borrowers. Most of the rest earns Treasury bill yield.
  3. Every contract written adds premium that accrues to the tranches second by second.
  4. Each week, the cash from expired contracts settles into the pool.
  5. Your share tokens are worth more USDC as yield accrues. You withdraw by redeeming them.

Where each dollar of premium goes

SliceShare of gross premiumPurpose
Lenders80%, or 90% while the Insurance Fund is at targetSplit between Senior and Junior by the tranche rules
Insurance Fund10%, or 5% while at targetAbsorbs bad debt before lenders
Treasury10%, or 5% while at targetFunds the protocol