Architecture
TAPER is one Anchor program (programs/today) and nothing else on chain. It reads each xStock's price from its own Raydium pool, holds xStocks (Token-2022) and USDC (SPL Token) in program-owned accounts, and swaps fees on a Raydium CPMM pool.
Accounts
| Account | Seeds | Holds |
|---|---|---|
Config | "config" | The TAPER mint and token program, the burn pool, and all-time usdc_spent and today_burned |
Market | "market", xStock mint | The vaults, strike tick, volatility floor, learned variance, vault shares and assets, premium per share, whether a day is live |
Day | "day", market, New York day (i64 LE) | The day's listed price, volatility, five strikes, calls sold per strike, cover, premium, fee, settlement price and payout |
Position | "position", market, owner | A holder's vault shares and premium owed |
Ticket | "ticket", day, owner, strike index | A buyer's calls at one strike of one day, and what they paid |
| Burn authority | "burn" | PDA that owns the fee USDC and signs the swap and the burn |
There is exactly one Market per xStock mint and one Day per market per date, because both are PDAs built from those values.
Token accounts
- The market's xStock vault and USDC vault are associated token accounts of the market PDA. The xStock vault uses Token-2022.
- The burn authority's USDC and TAPER accounts are its associated token accounts.
Outside programs
| Program | Address | Used for |
|---|---|---|
| Raydium CLMM | CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK | Owner of the three xStock/USDC pools and their observation rings the program reads prices from |
| Raydium CPMM | CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C | The fee crank's swap into TAPER |
| USDC | EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v | The only currency premiums are paid in |
Listed markets
| Market | xStock mint | Raydium CLMM pool (against USDC) |
|---|---|---|
| NVDAx | Xsc9qvGR1efVDFGLrVsmkzv3qi45LTBjeUKSPmx9qEh | 49iMatQtoyabsYAQc8GafVq6aeBFVDxSRH44oiatyyw6 |
| AAPLx | XsbEhLAtcf6HdfpFZ5xEMdqW8nfAvcsP5bdudRLJzJp | ApniVWuZbZoruTAJdyJcLBA4AVw4DKGdV5fHxo6qrAZT |
| TSLAx | XsDoVfqeBukxuZHWhdvWHBhgEHjGNst4MLodqsJHzoB | 8aDaBQkTrS6HVMjyc6EZebgdiaXhLYGriDWKWWp1NpFF |
The calendar
calendar.rs works out New York sessions from the date alone: US daylight saving, the ten NYSE holidays with their observance rules, Good Friday from the Easter computus, and the 1:00 pm early closes. It is tested against NYSE's published calendar for 2026 to 2028. A day cannot be opened on a date with no session.
The xStock token
xStocks carry Token-2022 extensions. The program reads the scaled UI amount multiplier (the dividend adjustment) when it prices a sale, and refuses to move a mint whose transfer hook is switched on.
