Earn

Put vaults (large caps)


Put vaults for NEET, ANSEM, ZCAT and PAID run on mainnet. They start empty: nothing sells until USDC is deposited, and ZCAT and PAID list only once their pools have 31 days of price history.

A put vault is a pool of USDC for one large-cap token. Depositors put in USDC. Every day the vault sells capped put spreads on the token: a buyer who pays a premium is paid in USDC if the token finishes the day below the strike, up to a fixed cap.

  • Daily. One listing a day, just after 20:15 UTC, expiring at 20:00 UTC the next day.
  • European. Nothing happens until expiry. There is no early exercise.
  • Cash-settled. You are paid in USDC. No tokens move at any point: you never need to own the token, and depositors only ever hold USDC.
  • Capped. The most you can be paid is about 3 to 4 times what you paid.

What you are paid

At expiry the vault works out one settlement price S for the token (see "How the day's price is set"). Per token, you are paid:

  • nothing, if S is at or above the strike K;
  • K minus S, if S is between the strike and the floor of the spread (K minus the width W);
  • W, the cap, if S is at or below that floor.

The vault locks W for every token you buy, in USDC, when you buy. That money can only go to you or back to the vault.

Worked example (illustration, not a forecast)

The recommended listing for NEET: strike at 98% of the reference price, width 12.0% of the reference, premium about 3.24% of the reference (so the cap is about 3.7 times the premium). Take a position covering $1,000 of NEET at the reference price:

Amount
Strike value (98%)$980
Width, the most you can be paid$120
Premium you payabout $32.40 (0.5% of it goes to the protocol)
If NEET settles atYou are paid
$1,000 or anything at or above $980$0 (you lose the $32.40)
$950 (5% down)$30
$900 (10% down)$80
$860 or lower$120, the cap

The settlement prices in the second table are made up to show the payoff; the strike, width and premium are the backtest medians for NEET.

How a day works (UTC)

  1. 19:55 to 20:15, price reads. Anyone can record the token's pool price, once per 20-second slot, up to 60 reads. Each read must be alone in its transaction.
  2. From 20:15, settlement. S is the median of all the reads (at least 3). Yesterday's spreads are settled at S, and queued deposits and withdrawals are processed.
  3. Within 30 minutes of the reads closing, listing. The same S becomes the reference for the next day's spreads. The listing is done by a named lister key (see "Who lists"). The new spreads expire at 20:00 UTC the next day.
  4. The sale window. Each spread is sold on a falling-price clock that starts when the listing lands. The price is re-computed at the live pool price every time someone buys: it starts at 3 times the lister's fair value and falls over 15 minutes to 1.2 times fair value. Sales close 30 minutes after listing.

A day whose reads spread too widely (the middle half of the reads more than 5% apart) is settled but not listed. A day with fewer than 3 reads settles at the next round's price.

Buying

  • You pay the clock price in USDC. 0.5% goes to the protocol treasury; the rest goes to the vault.
  • The sale is refused if the pool is more than 5% from the reference, if the token is already at or below the strike, if the premium would be under one 4.5th of the cap (so the cap is never more than 4.5 times what you paid), or if the vault's caps are full.
  • You receive one NFT that holds the position. See Option NFTs.

After settlement you claim. If your spread paid anything, you sign a claim: the USDC is sent to you, the NFT is burned and its rent comes back to you. Claims do not expire; the USDC stays set aside for you until you claim. A spread that paid nothing can be burned by anyone, with its rent going to you.

How the day's price is set

S decides every payout, so the reads are built to be hard to push:

  • Up to 60 reads over 20 minutes, and S is their median. Moving S means holding the pool down for a large part of the 20 minutes.
  • A read must be the only instruction in its transaction, so nobody can trade, read and trade back in one transaction.
  • On Meteora pools the read can use the pool's own time-weighted price, which a trade in the same slot does not move. ANSEM, ZCAT and PAID trade on such pools.
  • NEET's main pool (PumpSwap) has no time-weighted price, so its vault also checks a second NEET pool on Meteora. A read or a sale is refused if the two disagree by more than 2%.
  • The caps are sized so that pushing the price costs more than it could win.

What remains: a group of transactions bundled together can still sandwich reads. The median, the time-weighted reads and the caps raise the cost; they do not make it impossible.

Depositing USDC

  • Deposits and withdrawals are queued. You send USDC (or request a withdrawal of shares) at any time. The request is processed at the next daily settlement, at that moment's net asset value, when everything the vault holds is USDC. You then collect your shares or your USDC.
  • Every withdrawal queued before a settlement is paid in full at that settlement's net asset value; the USDC is then set aside for you to collect. (The spec describes a partial payout limited by the next listing; the program does not do that.)
  • The vault's money is in one of five buckets at all times: idle, locked behind live spreads, set aside for claims, queued deposits, or processed withdrawals waiting to be collected.

What depositors earn and risk

Depositors earn premiums. They pay claims. The honest summary from our backtests:

  • The vault is "positive or idle". Priced this way, buyers who value the spread the way the lister does never buy. The vault sells only to buyers who pay at least 1.2 times fair value. Against those buyers the backtest was positive; with no such buyers the vault sits idle and earns nothing.
  • Every profit comes from buyers paying above fair. Nobody has measured whether such buyers exist for these four tokens.
  • Losses are sharp. A day that ends below the spread's floor costs about 71% of that day's cap. 40-55% of sales paid a claim; 0-9% paid the full cap.
  • Hold several times the cap. Our research recommends deposits of about 4 times the per-day cap. A vault holding only one day's cap lost 64-98% of its deposits in the worst week.

With deposits at 4 times the cap, weekly return per dollar deposited (mean / worst 5% of weeks / worst week, price history as it happened, against buyers paying 1.25 times fair):

TokenMeanWorst 5% of weeksWorst weekData
NEET+9%-15%-25%180 days of its settlement pool
ANSEM+6%-12%-18%75 days, thin sample
ZCAT+9%-10%-21%proxy path (pool only 22 days old)
PAID+9%-10%-16%proxy path (pool only 12 days old)

These large numbers measure the modelled buyer's markup, not a market anyone has observed. A rerun of ANSEM on the pool it actually settles on (60 days) reached the same verdict: idle against careful buyers, a mean of +9.4% of the cap per day against the 1.25x buyer, and a worst day of -66% of the cap.

The first list

TokenMost the vault pays out per day (all spreads)StatusSettlement pool
NEET$1,300listedPumpSwap, checked against a Meteora pool
ANSEM$1,800listedMeteora DLMM
ZCAT$3,000pilotMeteora DLMM
PAID$4,000pilotMeteora DLMM

ZCAT's and PAID's pools were 1-2 weeks old, so they run at pilot size until they have 60 days of history. The caps are the lower of two limits from our research: what a sandwich attack on the reads could profitably take, and a limit from each pool's depth. ZCAT's 3% transfer fee does not matter here, because no ZCAT ever moves.

Who lists

Each day's strikes, widths and fair values are computed off chain and submitted by one lister key fixed when the vault is created. It is a trusted role: a careless or dishonest lister could list spreads too cheaply and let buyers pick off depositors. Who holds that key (for example a multisig) may change.