Blocksight Docs
Market Makers

Performance Reporting

Blocksight uses a push-only model for performance monitoring. Market Makers configure their internal systems to send standardized trade and quote event payloads to dedicated webhooks every 10 minutes.

Authentication

All requests require two headers:

HeaderDescription
x-api-keyYour API key — provided during onboarding
x-client-idYour client ID — provided during onboarding

Network Access Control

We support static IP whitelisting. If you provide your outbound static IP addresses, we will configure our firewalls to block any requests originating from unauthorized locations before they reach the verification API.

Key Distribution

For initial onboarding, your Client ID and API Key will be shared via a secure, encrypted note-sharing platform (e.g., 1Password). These should be treated as sensitive credentials.

Future Capability

We are developing a feature that will allow MMs to generate, revoke, and manage their API keys directly within the Blocksight platform interface.

Endpoint

EnvironmentURL
Staginghttps://staging.blocksight.xyz/api/market-maker/event
Productionhttps://app.blocksight.xyz/api/market-maker/event

Event Types

Quote Update

Report your current bid/ask quotes. Send these at regular intervals — e.g. every 10 minutes — to track uptime and spread performance.

{
  "event_type": "quote_update",
  "event_id": "unique-event-id-123",
  "timestamp": "2024-12-17T10:30:00.000Z",
  "exchange": "Binance",
  "base_asset": "TOKEN",
  "quote_asset": "USDT",
  "exchange_best_bid": 0.99,
  "exchange_best_ask": 1.01,
  "exchange_mid_price": 1.00
}
FieldTypeRequiredDescription
event_typeliteralYesquote_update
event_idstringYesUnique identifier for this event — used for deduplication
timestampstringYesISO 8601 timestamp of when the event is sent
exchangestringYesExchange name — must match a supported exchange (e.g., "Binance", "Bybit")
base_assetstringYesToken symbol being market made — e.g. "TOKEN"
quote_assetstringYesQuote currency — e.g. "USDT"
exchange_best_bidnumberYesCurrent exchange best bid price (quoted in USD)
exchange_best_asknumberYesCurrent exchange best ask price (quoted in USD)
exchange_mid_pricenumberNoExchange mid price (quoted in USD) — calculated from bid/ask if not provided

Depth Snapshot

Report your order book depth at various basis point levels from mid price.

{
  "event_type": "depth_snapshot",
  "event_id": "unique-event-id-456",
  "timestamp": "2024-12-17T10:30:00.000Z",
  "exchange": "Binance",
  "base_asset": "TOKEN",
  "quote_asset": "USDT",
  "mm_best_bid": 1.00,
  "mm_best_ask": 1.00,
  "mm_bid_size": 10000,
  "mm_ask_size": 10000,
  "depth_metrics": [
    {
      "bps": 25,
      "bid_depth": 25000,
      "bid_depth_notional": 25000,
      "ask_depth": 25000,
      "ask_depth_notional": 25000,
      "total_depth": 50000,
      "total_depth_notional": 50000
    },
    {
      "bps": 50,
      "bid_depth": 50000,
      "bid_depth_notional": 50000,
      "ask_depth": 50000,
      "ask_depth_notional": 50000,
      "total_depth": 100000,
      "total_depth_notional": 100000
    },
    {
      "bps": 100,
      "bid_depth": 100000,
      "bid_depth_notional": 100000,
      "ask_depth": 100000,
      "ask_depth_notional": 100000,
      "total_depth": 200000,
      "total_depth_notional": 200000
    },
    {
      "bps": 200,
      "bid_depth": 200000,
      "bid_depth_notional": 200000,
      "ask_depth": 200000,
      "ask_depth_notional": 200000,
      "total_depth": 400000,
      "total_depth_notional": 400000
    }
  ]
}
FieldTypeRequiredDescription
event_typeliteralYesdepth_snapshot
event_idstringYesUnique identifier for this event
timestampstringYesISO 8601 timestamp of when the event is sent
exchangestringYesExchange name — must match a supported exchange
base_assetstringYesToken symbol being market made — e.g. "TOKEN"
quote_assetstringYesQuote currency — e.g. "USDT"
mm_best_bidnumberNoYour current best bid price (quoted in USD)
mm_best_asknumberNoYour current best ask price (quoted in USD)
mm_bid_sizenumberNoYour current best bid size (quoted in base_asset tokens)
mm_ask_sizenumberNoYour current best ask size (quoted in base_asset tokens)
depth_metricsarrayYesArray of depth measurements — must include entries for bps 50, 100, and 200; bps 25 is optional

Depth Metric Fields:

FieldTypeDescription
bpsnumberBasis points from mid price — must be 50, 100, or 200 (required); 25 is optional
bid_depthnumberDepth of bids within this bps range, quoted in base_asset tokens
bid_depth_notionalnumberNotional value of bid depth, quoted in USD
ask_depthnumberDepth of asks within this bps range, quoted in base_asset tokens
ask_depth_notionalnumberNotional value of ask depth, quoted in USD
total_depthnumberTotal depth — bid + ask, quoted in base_asset tokens
total_depth_notionalnumberNotional value of total depth, quoted in USD

Response Codes

StatusOutcomeDescription
200OKSuccess. The event was either accepted or identified as a duplicate and silently dropped.
400Bad RequestValidation Error. The payload failed schema validation or business logic.
401UnauthorizedSecurity Error. Failed authentication due to invalid credentials.

Integration Requirements

  • Send events every 10 minutes — Regular reporting is required to accurately track uptime and spread performance.
  • Ensure idempotency with UUIDs — Include a unique, client-generated event_id (UUID) in every payload. This allows Blocksight to process the same event multiple times without creating duplicate records.
  • Implement exponential backoff — Market Makers are responsible for internal delivery resilience. If a request fails due to transient errors (e.g., network timeouts or 5xx errors), you must retry with increasing delays.
  • Rely on timestamps for consistency — Due to retries, events may arrive out of order. Blocksight uses the timestamp field to maintain temporal accuracy and ensure eventual data consistency.
  • Standardized asset strings — Ensure asset symbols are sent in all-caps (e.g., BTC, USDT).
  • Supported exchange names — The exchange field must match one of our supported venues (e.g., "Binance", "Bybit").
  • Snapshot reporting — All data reported must be a real-time snapshot at the time that the event is sent. Do not send time-averaged or aggregated values.

Example Request

curl -X POST https://app.blocksight.xyz/api/market-maker/event \
  -H "Content-Type: application/json" \
  -H "x-api-key: your-api-key" \
  -H "x-client-id: your-client-id" \
  -d '{
    "event_type": "quote_update",
    "event_id": "93b4a2d3-1f8e-4a7b-a01c-0b7c8e9f0d12",
    "timestamp": "2025-11-10T14:30:00.000Z",
    "exchange": "Coinbase",
    "base_asset": "TOKEN",
    "quote_asset": "USDT",
    "exchange_best_bid": 0.99,
    "exchange_best_ask": 1.01,
    "exchange_mid_price": 1.00
  }'

On this page