Concepts
Ditto Spot
One token with no expiry that holds LONG and rolls into each new week.
A Ditto Spot vault holds LONG of this week's series plus L in USDC per unit. Inside the band, one unit is worth the price itself: the LONG pays P − L and the cash adds L. Every Friday the vault's LONG settles into USDC, and the vault buys the next week's LONG from makers, strung around the new price.
Vault shares are a token with six decimals, Ditto Spot (DSPOT), so you can hold the price week after week without minting, settling or redeeming yourself.
Vaults
Anyone can create a vault on an open series whose L is above zero, because the vault keeps L in USDC as its floor. A vault belongs to one feed and one creator: each wallet runs at most one vault per feed. Creating one costs only the account rent.
Deposits
You deposit whole LONG of the vault's current series plus USDC in the vault's own ratio.
| Vault state | Shares you receive | USDC you add |
|---|---|---|
| Empty | 1.000000 per LONG | L per LONG |
| Holding assets | your LONG × shares ÷ vault LONG, rounded down | your LONG × vault USDC ÷ vault LONG, rounded up |
The app shows both numbers before you approve and sends them as limits, so the deposit lands at those numbers or not at all. Deposits are open while the vault holds an unexpired series and no roll is running.
Withdrawals
Shares return their part of the vault's LONG and USDC, each rounded down. LONG comes out in whole tokens, so a small withdrawal can return USDC only; the app tells you which share amount takes the next whole LONG. The last holder receives everything that is left.
Withdrawals are open whenever the vault is not rolling. During a roll they open again once the auction window ends without an offer, or once next week's series has expired.
The weekly roll
- The current series expires on Friday at 20:00 UTC and settles on Pyth.
- Next week's series opens with the same width, centred on the settlement price: its L is the settlement price minus half the width. Its expiry is exactly one week later.
- Start the roll: the vault redeems its LONG into USDC and opens an auction. The roll fee is set aside from the vault's USDC; the rest is the auction budget.
- Makers offer next week's LONG at an ask. The lowest ask wins. See Roll auctions.
- Finalize: after the auction window, the vault pays the winning maker, takes the LONG, pays the roll fee, and holds next week's series. For every LONG it buys it keeps that series' L in USDC.
Ditto's keeper runs steps 2, 3 and 5 by itself; anyone can run them from the app too.
When no maker bids
If an auction ends without an offer, the vault keeps its USDC. Holders can withdraw at once, and anyone can retry the auction. If next week's series expires before a roll finishes, anyone can recover: a new series opens centred on Pyth's price at that moment, with the same width, and a new auction starts on it. See Recover a roll.