NSDQ Weekly
# NSDQ Weekly
A three-rung ladder on the Nasdaq-100 index, settled from the **Pyth
`Equity.Index.US100/USD` feed**. Three independent weekly lanes expire at the
16:00 New York cash close on Monday, Wednesday, and Friday. Each lane rolls to
the same weekday one week later.
The outcome markets are hedgeable with `xyz:XYZ100`, but settlement reads the
Pyth cash index rather than that perp's trades.
## At a glance
| | |
|---|---|
| Question | Will the Nasdaq-100 be above the strike at the 16:00 ET expiry? |
| Settlement measure | [Pyth](/price-feeds/pyth) `Equity.Index.US100/USD` confidence-weighted TWAP |
| Strike | `round(TWAP, 245)` with offsets `−525 / 0 / +525` |
| Rungs | 3 per expiry — down, middle, and up |
| Cadence | Monday, Wednesday, and Friday at 16:00 `America/New_York` |
| UTC time | 20:00 during EDT; 21:00 during EST |
| Lifetime | 168 hours; each lane is a full week |
| Settlement window | The 90 seconds ending exactly at expiry |
| Payout | Yes if TWAP is strictly above the strike; equality pays No |
| Concurrency | 9 markets — 3 rungs × 3 weekly lanes |
| Deploy cost | 9 registrations/week — 3 on each roll day |
## Three lanes, not one rotating expiry
Monday's market runs Monday to Monday, Wednesday's Wednesday to Wednesday, and
Friday's Friday to Friday. The three dates are live together. This gives every
rung five trading sessions of horizon, rather than alternating two-, two-, and
one-session legs.
The cadence is defined in `America/New_York`, so the expiry stays at the cash
close through daylight-saving changes. Only its displayed UTC hour moves.
## Strike identity
The offsets are fixed and have distinct residues on the 245-point grid:
| Rung | Offset | Residue mod 245 |
|---|---:|---:|
| Down | −525 | 210 |
| Middle | 0 | 0 |
| Up | +525 | 35 |
Those residues let the deployer identify sibling rungs sharing an expiry. The
±525 wings are about 0.67 standard deviations over five sessions using the
60-day volatility measurement behind the live slate, placing them near the
25th and 75th percentiles at mint.
## Naming and resolution
The immutable on-chain terms name `perp:xyz:XYZ100`, “the Pyth US100 index
price”, `seconds:90`, the threshold, and the exact expiry. The chain renders
names in this form:
```text
US100 above {strike} at {YYYYMMDD-HHMM}?
```
Settlement uses the confidence-weighted computation documented on the
[Pyth feed page](/price-feeds/pyth#how-the-window-resolves). There is no
closeness band: above pays Yes, while equality and below pay No. Missing
evidence can void at 0.5 after retries, but the window never slides.
## Notes for makers
The hedge carries basis. `xyz:XYZ100` is a perp; the settlement value is Pyth's
cash index. The index also stops moving outside its trading session while the
outcome books remain open. Size both risks explicitly.
All three Mon/Wed/Fri lanes are live on mainnet. Read current strikes from the
markets API or chain metadata rather than extrapolating from prior ladders.