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:
| Header | Description |
|---|---|
x-api-key | Your API key — provided during onboarding |
x-client-id | Your 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
| Environment | URL |
|---|---|
| Staging | https://staging.blocksight.xyz/api/market-maker/event |
| Production | https://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
}| Field | Type | Required | Description |
|---|---|---|---|
event_type | literal | Yes | quote_update |
event_id | string | Yes | Unique identifier for this event — used for deduplication |
timestamp | string | Yes | ISO 8601 timestamp of when the event is sent |
exchange | string | Yes | Exchange name — must match a supported exchange (e.g., "Binance", "Bybit") |
base_asset | string | Yes | Token symbol being market made — e.g. "TOKEN" |
quote_asset | string | Yes | Quote currency — e.g. "USDT" |
exchange_best_bid | number | Yes | Current exchange best bid price (quoted in USD) |
exchange_best_ask | number | Yes | Current exchange best ask price (quoted in USD) |
exchange_mid_price | number | No | Exchange 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
}
]
}| Field | Type | Required | Description |
|---|---|---|---|
event_type | literal | Yes | depth_snapshot |
event_id | string | Yes | Unique identifier for this event |
timestamp | string | Yes | ISO 8601 timestamp of when the event is sent |
exchange | string | Yes | Exchange name — must match a supported exchange |
base_asset | string | Yes | Token symbol being market made — e.g. "TOKEN" |
quote_asset | string | Yes | Quote currency — e.g. "USDT" |
mm_best_bid | number | No | Your current best bid price (quoted in USD) |
mm_best_ask | number | No | Your current best ask price (quoted in USD) |
mm_bid_size | number | No | Your current best bid size (quoted in base_asset tokens) |
mm_ask_size | number | No | Your current best ask size (quoted in base_asset tokens) |
depth_metrics | array | Yes | Array of depth measurements — must include entries for bps 50, 100, and 200; bps 25 is optional |
Depth Metric Fields:
| Field | Type | Description |
|---|---|---|
bps | number | Basis points from mid price — must be 50, 100, or 200 (required); 25 is optional |
bid_depth | number | Depth of bids within this bps range, quoted in base_asset tokens |
bid_depth_notional | number | Notional value of bid depth, quoted in USD |
ask_depth | number | Depth of asks within this bps range, quoted in base_asset tokens |
ask_depth_notional | number | Notional value of ask depth, quoted in USD |
total_depth | number | Total depth — bid + ask, quoted in base_asset tokens |
total_depth_notional | number | Notional value of total depth, quoted in USD |
Response Codes
| Status | Outcome | Description |
|---|---|---|
200 | OK | Success. The event was either accepted or identified as a duplicate and silently dropped. |
400 | Bad Request | Validation Error. The payload failed schema validation or business logic. |
401 | Unauthorized | Security 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
timestampfield 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
exchangefield 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
}'