SettleMint
Trading venue

Read market data and streams

Read venue markets, depth, trades, candles, and the ticker through the v2 API, and consume the live market-data stream with sequence-gap resynchronization.

The Trading Venue exposes its market data through versioned v2 routes: the markets list, a sequence-numbered depth snapshot, recent trades, OHLC candles, and a trailing 24-hour ticker, plus a live stream for Console-style clients. Every read is safe to repeat. Amounts and prices are integer strings in token base units and price ticks; convert with the market's tickSize and lotSize.

Prerequisites

  • An API key with an active organization, or an authenticated session.
  • A market id from the markets list. Every market-data read is scoped to the active organization.

List and read markets

curl -X GET "https://your-platform.example.com/api/v2/addons/trading-venue-markets" \
  -H "X-Api-Key: sm_dalp_xxxxxxxxxxxxxxxx"
{
  "data": [
    {
      "id": "0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9c",
      "venueAddress": "0x9fE46736679d2D9a65F0992F2272dE9f3c7fa6e0",
      "baseTokenAddress": "0x71C7656EC7ab88b098defB751B7401B5f6d8976F",
      "quoteTokenAddress": "0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9",
      "tickSize": "1000000",
      "lotSize": "1000000000000000000",
      "minNotional": "100000000",
      "makerFeeBps": 10,
      "takerFeeBps": 20,
      "protectionBandBps": 500,
      "status": "live",
      "createdAt": "2026-08-01T09:00:00.000Z"
    }
  ],
  "meta": { "total": 1 },
  "links": { "self": "/v2/addons/trading-venue-markets" }
}

The list includes every market in the active organization, halted and pending listings included. status is pending (a listing ceremony still missing a precondition), live, halted, or delisted. GET /api/v2/addons/trading-venue-markets/{marketId} returns one market.

Read the depth snapshot

curl -X GET "https://your-platform.example.com/api/v2/addons/trading-venue-markets/0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9c/book" \
  -H "X-Api-Key: sm_dalp_xxxxxxxxxxxxxxxx"
{
  "data": {
    "marketId": "0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9c",
    "sequence": "42",
    "bids": [{ "priceTick": "1010", "quantity": "5000000000000000000", "orderCount": 2 }],
    "asks": [{ "priceTick": "1012", "quantity": "3000000000000000000", "orderCount": 1 }],
    "lastTradeTick": "1011",
    "asOf": "2026-08-01T09:00:00.000Z"
  },
  "links": { "self": "/v2/addons/trading-venue-markets/0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9c/book" }
}

Levels are aggregated, best price first. sequence is the engine log position the snapshot reflects; use it to order snapshots and to detect a gapped stream. Depth includes only working orders: an order pending its reservation is not shown.

Read trades, candles, and the ticker

curl -X GET "https://your-platform.example.com/api/v2/addons/trading-venue-markets/0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9c/trades?limit=100" \
  -H "X-Api-Key: sm_dalp_xxxxxxxxxxxxxxxx"

Trades return newest first, capped by limit (1 to 500, default 100). Each trade carries its engine sequence, priceTick, base quantity, and executedAt.

curl -X GET "https://your-platform.example.com/api/v2/addons/trading-venue-markets/0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9c/candles?interval=1m" \
  -H "X-Api-Key: sm_dalp_xxxxxxxxxxxxxxxx"

Candles aggregate one interval per request: 1m, 5m, 15m, 1h, 4h, or 1d. Buckets return oldest first with open, high, low, close in price ticks, volume in base units, and tradeCount.

GET /api/v2/addons/trading-venue-markets/{marketId}/ticker returns the trailing 24-hour statistics: lastTradeTick, openTick, highTick, lowTick, baseVolume, tradeCount, and asOf. Tick fields are null before the first trade in the window.

Consume the live stream

GET /api/v2/addons/trading-venue-markets/{marketId}/stream serves server-sent events. The first event is a full sequence-numbered depth snapshot; later events carry depth diffs, trade batches, heartbeats, or a terminal error.

event: message
data: {"type":"snapshot","snapshot":{"marketId":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9c","sequence":"42","lastTradeTick":"1011","bids":[{"priceTick":"1010","quantity":"5000000000000000000"}],"asks":[{"priceTick":"1012","quantity":"3000000000000000000"}],"asOf":"2026-08-01T09:00:00.000Z"}}

event: message
data: {"type":"diff","diff":{"marketId":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9c","fromSequence":"42","toSequence":"43","lastTradeTick":"1011","bids":[{"priceTick":"1010","quantity":"0"}],"asks":[],"asOf":"2026-08-01T09:00:05.000Z"}}

event: message
data: {"type":"heartbeat","sequence":"43"}

Apply the events in order:

  • snapshot replaces your whole local book.
  • diff applies on top of the sequence named by fromSequence. A level with quantity "0" is removed. If fromSequence does not match your current sequence, you missed events: reconnect for a fresh snapshot instead of rendering stale depth.
  • trades carries a batch of fills with their sequences.
  • indicative carries the live indicative auction price and matchable quantity during preopen and auction collection; see Trade through sessions and auctions.
  • heartbeat confirms the connection while the book is quiet.
  • error is terminal; reconnect.

Events key on the engine log sequence, not on trades, so preopen book changes stream without any trade occurring. Snapshots and diffs also carry indicativePriceTick and indicativeQuantity, null outside auction phases. Trade lists and the blotter carry a status per trade: settled, or busted after an operator-approved compensating reversal, with candles and the ticker recomputed excluding busted trades.

The stream is consumed same-origin by the Console, and a request from another origin answers 404. For a server-to-server integration, poll the depth snapshot and trades endpoints and use sequence to order the results. Design any stream client to fall back to the snapshot poll when the connection ends.

Read participant data

Three reads are additionally scoped to the selected participant:

RouteReturns
GET /api/v2/addons/trading-venue-ordersWorking orders for wallets the participant controls, filterable by marketId and status.
GET /api/v2/addons/trading-venue-blotterThe trade blotter: fills newest first, with the participant's side and fee per fill, filterable by marketId.
GET /api/v2/addons/trading-venue-reservationsReserved balances backing the participant's open orders, per wallet and token.

On this page