Tier progression — auto-graduating trust
Five tiers. Sandbox key issued in 30 seconds. Clean 30-day history auto-promotes to the next tier. No volume application, no admin queue for the middle tiers. Cap enforcement bounds mistakes; time-in-tier and clean history unlock larger caps.
Five tiers
Auto-graduation criteria
Two crons run daily and check every T2 credential:
Time
Age of the api_key ≥ 30 days
Volume
Sum of notional across successful fills ≥ 10,000 USDT
Clean
Zero unresolved abuse_flags on builder, app, or api_key
KYC not required
Neither declared nor implied. Handle + jurisdiction is the whole check.
If all four pass, tier flips from trade_capped to trade_full and a row lands in graduation_events. You get notified on your registered contact channel. Nothing changes on your side — your existing sk_live_* just starts accepting bigger orders.
pax.tier_status from any MCP agent, or hit GET /v1/builders/me/tier. Returns time-remaining, volume-remaining, and abuse-flag count. Use it to render a progress bar in your app.
Downgrade
Abuse detection is separate. A single confirmed wash trade, self-trade, or manipulation flag on your account triggers auto-downgrade back to T2 with the reason recorded in graduation_events.reason = 'auto_downgrade_abuse'. Contested via /request-access?track=appeal.
Cap enforcement
Tier caps enforce at the auth middleware — the check runs before every POST /v1/orders. If notional_used_today_usdt + this_order > daily_cap, the request returns TIER_LIMIT_EXCEEDED with a Retry-After hint to next-midnight-UTC. Notional counter resets at midnight UTC.
Sandbox tier additionally rejects orders on any market not tagged is_sandbox_market = true. Read-Live tier rejects all POST /v1/orders unconditionally with TIER_UPGRADE_REQUIRED.
See also: Rate Limits · Fee Architecture · Creator Economy · Grants