trading-venue.price-alert.triggered
A trade print crossed a client's price alert: an above alert fires at or over its threshold tick, a below alert at or under it. An alert fires once. The print is a matched trade that may still settle later or be busted.
Delivery contract
| Field | Value |
|---|---|
| Event type | trading-venue.price-alert.triggered |
| Version | 1 |
| Lifecycle state | provisional |
| Counter-signed receipts | No event-specific advice |
| SDK type | Webhook.TradingVenuePriceAlertTriggeredV1 |
The receipt recommendation does not change delivery behavior. DALP waits for a counter-signed receipt only if the webhook endpoint's counterSignedReceipts value is true when DALP queues the delivery. When the value is false, a normal 2xx response completes the delivery.
Related references:
marketIdalertId
Payload schema
The schema and examples describe the full payload. Thin delivery omits personal data fields. Use the payload-shape guidance to choose the endpoint configuration.
{
"type": "object",
"properties": {
"alertId": {
"type": "string",
"minLength": 1
},
"marketId": {
"type": "string",
"minLength": 1
},
"chainId": {
"type": "integer",
"exclusiveMinimum": 0
},
"userId": {
"type": "string",
"minLength": 1
},
"direction": {
"type": "string",
"enum": ["above", "below"]
},
"thresholdTick": {
"type": "string",
"pattern": "^(?:0|[1-9]\\d*)$"
},
"priceTick": {
"type": "string",
"pattern": "^(?:0|[1-9]\\d*)$"
},
"tradeId": {
"type": "string",
"minLength": 1
},
"sequence": {
"type": "string",
"pattern": "^(?:0|[1-9]\\d*)$"
},
"occurredAt": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?Z$"
}
},
"required": [
"alertId",
"marketId",
"chainId",
"userId",
"direction",
"thresholdTick",
"priceTick",
"tradeId",
"sequence",
"occurredAt"
],
"additionalProperties": true
}TypeScript SDK example
Use the request's raw body and headers with your endpoint's webhook secret. This handler illustrates verification and event selection. Before writing downstream state, deduplicate deliveries by evt_id and recognize replayed outcomes by their domain identifiers.
const result = await verifyWebhook({
rawBody,
headers,
secret: process.env.DALP_WEBHOOK_SECRET!,
});
if (!result.ok) {
throw new Error(`Webhook verification failed: ${result.code}`);
}
if (result.event.type === "trading-venue.price-alert.triggered") {
const event: Webhook.Event<"trading-venue.price-alert.triggered"> = result.event;
console.log(event.payload);
}HTTP delivery example
This illustrative request shows the delivery shape. Its timestamp and signature are placeholders; a verifier rejects them. Use a signed platform delivery to verify your endpoint.
curl -X POST https://consumer.example.com/dalp/webhooks \
-H "content-type: application/json" \
-H "webhook-id: evt_feba4c94986e3f21ef2fe60c1d6e8f6c" \
-H "webhook-timestamp: 1778112000" \
-H "webhook-signature: v1,docs-example-signature" \
--data '{"evt_id":"evt_feba4c94986e3f21ef2fe60c1d6e8f6c","source_id":"example:trading-venue.price-alert.triggered@1:0","lifecycle_state":"provisional","payload":{"alertId":"0192a4c1-5f3e-7a01-9b2c-3d4e5f607182","marketId":"mkt_01J9ZQ4F3K8V2N6T0R5W7Y1B3D","chainId":537001,"userId":"usr_01J9ZQ7C8E0G2J4L6N8Q0S2U4W","direction":"above","thresholdTick":"1200","priceTick":"1250","tradeId":"trd_01J9ZQ6B7D9F1H3K5M7P9R1T3V","sequence":"1843","occurredAt":"2026-09-28T09:15:02.417Z"},"related":{"marketId":"marketId_example","alertId":"alertId_example"},"type":"trading-venue.price-alert.triggered","version":1,"request":{"idempotency_key":"idem_01JZP7R5W8M9N0P1Q2R3S4T5"}}'Version and manifest
This page documents version 1 of trading-venue.price-alert.triggered. This event type is not deprecated. The DALP events manifest contains the machine-readable AsyncAPI entry.
trading-venue.order-status.provisional
An order's state changed on the venue engine log. Fills are matched off chain and settle later, so a filled status is not a settled trade.
trading-venue.trade-settled.final
A matched trade settled on chain and the venue recorded it. Sent once per trade after the settlement transaction is confirmed; delivery says whether the market's holding period still holds the tokens. A later trading-venue.trade-settled.retracted names a trade a bust reversed.