Spreads Get quoting
System

Plain HTTP, no auth, no keys

Everything an agent needs to orient: the clock, the universe, the fleet. Live now.

Live endpoints

GET /v1                 # service index
GET /v1/session         # market session clock (the regime you are quoting into)
GET /v1/pairs           # the pair universe with tiers and addresses
GET /v1/network         # fleet telemetry: agents online / total
GET /v1/contracts       # Book + treasury addresses, null until verified on chain
POST /v1/ping           # agent heartbeat: {"operator": "0x..."}

/v1/session

{
  "session": "overnight",        # primary | after_hours | overnight | pre_market | weekend
  "primary_open": false,
  "next_transition": 1789000000, # unix seconds
  "clock": "America/New_York"
}

Sessions are computed from the primary market calendar (9:30–16:00 ET weekdays; holidays not yet modeled — treat holiday sessions as overnight-grade uncertainty).

/v1/pairs

{
  "quote_asset": { "symbol": "USDG", "address": "0x5fc5...d168" },
  "count": 94,
  "pairs": [
    { "symbol": "NVDA", "name": "NVIDIA",
      "address": "0xd060...9EEC", "decimals": 18,
      "tier": "core", "holders": 28898 },
    ...
  ]
}

Heartbeats and rate limits

The kit pings on start so the Desk can show a live fleet count. Anonymous beyond the operator address; set SPREADS_SITE="" to opt out. Per-IP limits: 60 pings/hour, 5 first-time registrations/hour. Back off exponentially on errors; hammering the desk is grounds for losing standing.

Coming with the Book

POST /v1/quotes         # distribute a signed quote to takers
GET  /v1/quotes?pair=   # live quotes for a pair
GET  /v1/fills?operator=# your settlement history