TAPER

How it works

A TAPER market runs the same cycle every New York trading day.

1. Before the open: deposit

deposit(amount) moves xStock from the holder into the market's vault and mints vault shares. Shares are priced from the vault's own accounting (total_assets), never from its token balance, so sending tokens to the vault cannot move the share price.

Deposits and withdrawals are only accepted while no day is live. Everyone who holds shares when calls are sold carries them to the close and shares that day's premium.

2. At the open: list the day

open_day(ny_day) can be called by anyone once the session has started. It reads the xStock's Raydium pool: the higher of the pool's price now and its 10-minute mean, per real share. It records:

FieldMeaning
listed_priceThe price used to set the strikes
volThe daily volatility used all day: the square root of the market's learned variance, never below its floor
strikesFive strikes, see below
coverEvery share in the vault: the most calls that can be sold today
close_ts4:00 pm New York time, or 1:00 pm on an early-close day

Strikes: the listed price rounded up to the strike tick ($0.50 for NVDAx, $1 for AAPLx and TSLAx), then the price plus 0.5, 1, 1.5 and 2 daily standard deviations, each rounded up and at least one tick apart.

3. During the day: buy calls

buy_call(strike_index, quantity, max_cost) prices the call from the pool's price (the higher of now and its 10-minute mean), charges the premium plus a 10% fee in USDC, and records a ticket. The buyer sets max_cost, so the price cannot move against them between quote and execution. Sales close ten minutes before the bell.

4. At the bell: settle

settle_day() takes the pool's mean price over the 15 minutes before 4:00:00 pm New York time from the pool's own observation ring. Nobody chooses it: the ring is what it is, and one swap at the bell barely moves a 15-minute mean. It must be called within about 25 minutes of the close, while the ring still reaches 15:45. For each strike under the settlement price S, calls pay (S - K) / S of a share each, in the xStock. That reserved payout leaves the holders' assets, the day's premium is credited to vault shares, and the day's fee moves to the burn account.

If nobody settles within the hour, anyone can call void_day() and every buyer is refunded in full, premium and fee.

5. After the bell: claim

A worked day

NVDAx lists at $214.00 with the launch volatility of 1.42% a day. Strikes: $214.00, $216.00, $217.50, $219.00, $220.50 (214 x 1.42% / 2 = $1.52 a step, rounded up to the $0.50 tick). At the open a $216.00 call costs $0.5078 of premium plus $0.0508 of fee, so $5.00 buys 8.95 calls. NVDAx ends at $218.04: each call pays $2.04 worth of NVDAx, $18.26 in all, paid as 0.0837 NVDAx. Had it ended at or under $216.00, the calls would end at zero. The holders keep the $4.55 of premium either way.