Protocol
Parameters and units
Every number a market is configured with, its bounds, and the units the program counts in.
Market parameters
Set once when a market is created and stored on its account. The program refuses any value outside these bounds.
| Parameter | Meaning | Bounds | Tack's maturities |
|---|---|---|---|
marketIndex | Phoenix perp slot | 0 (SOL) | 0 |
maturity | End of trading, Unix seconds | more than 1 hour and at most 31 days after creation | Fridays 08:00 UTC |
initialBps | Initial margin floor, share of notional | 2,500 to 10,000, and at least twice maintenanceBps | 2,500 (25%) |
maintenanceBps | Maintenance margin floor | at least 1,000 | 1,000 (10%) |
shockRate | Funding move assumed in the stress loss | 100% to 1,000% a year | 100% |
maxFixedRate | Largest fixed rate, either sign | up to 500% a year | 100% |
tickSize | Step for fixed rates | above 0, at most maxFixedRate | 0.01% |
oiCapBps | Open-interest cap, share of Phoenix's | 1 to 100 (0.01% to 1%) | 100 (1%) |
maxAge | Oldest acceptable source reading, seconds | 60 to 3,600 | 900 |
freezeGrace | Wait before a frozen close, seconds | 86,400 to 604,800 | 86,400 |
Listing schedule
A listing opens the next count maturities on its schedule that are more than lead seconds away. Its authority can change any of this; markets already open keep their terms.
| Field | Meaning | Bounds | Tack's listing |
|---|---|---|---|
anchor | One maturity on the schedule, Unix seconds | any | Friday 2 January 2026, 08:00 UTC |
interval | Seconds between maturities | 3,600 to 2,678,400 | 604,800, a week |
lead | A maturity lists only while more than this many seconds away | 3,600 or more | 129,600, 36 hours |
count | Maturities listable at once | 1 to 8, with lead + count × interval at most 31 days | 3 |
terms | initialBps to tickSize above | as above | as above |
Fixed in the program
| Constant | Value |
|---|---|
| Collateral mint | USDC, EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v, 6 decimals |
| Smallest notional | 1 USDC |
| Checkpoints per settlement | 8 |
| Year | 31,536,000 seconds |
| Trading fee | none |
| Liquidation bounty | none |
Units
| Quantity | Unit | Example |
|---|---|---|
| Notional, collateral, balances | micro-USDC, 1 USDC = 1,000,000 | 2500000000 is $2,500 |
| Fixed rate, shock rate | 1,000,000,000 = 100% a year, signed | 60000000 is 6% |
| Rate tick | same as fixed rate | 100000 is 0.01% |
| Cumulative funding | USD per SOL at 1e9, signed | Phoenix's quote lots per base lot × 100,000 |
| Reference price | USD per SOL at 1e6 | 150000000 is $150 |
| Base exposure | SOL at 1e9 | Phoenix base lots × 10,000,000 |
| Times | Unix seconds |
The API returns 64-bit and larger integers as decimal strings and accepts every integer as one.