Three products send the events on this page: token sales, which sell a token to investors, trading venues, which match orders and settle trades on chain, and XvP settlements, which exchange assets between parties. For each event, the tables give its lifecycle state, when the platform sends it and what your endpoint does with it. The event catalogue lists the events of every other domain and the reserved names. Payload fields, schemas and examples live in the machine-readable event definitions and in the Webhook types of @settlemint/dalp-sdk.
In a State cell, beta is an event-contract maturity label. It is not a value of the envelope's lifecycle_state field. New endpoints use thin payloads, which omit personal data fields such as accountAddress. If your receiver needs an address field, configure fat payloads and acknowledge the required fields before the platform records those events: a replay resends the stored payload and cannot restore a field a thin event left out. Before using payload fields describes the change.
Primary market
Primary market events report the life of a token sale, and the platform sends each one after the block that holds its chain log reaches chain finality. Every event names the sale in saleAddress. An amount is an integer in base units, the smallest unit of its token or currency, so apply the asset's decimals before you show it.
Trading venue
A trading venue matches orders off chain, settles each trade on chain, and delivers the assets when the instrument's holding period, the delay between settlement and delivery, ends. A bust is an approved reversal of a trade. A provisional event reports matched activity that has not settled, and the chain events trading- and trading- have the state final because the platform sends them after chain finality. trading- and trading- go out when the settlement transaction confirms, without waiting for chain finality, and only a bust retracts them.
The status of a trading- event is the engine status the order holds after the change: pending_reservation, armed, working, partially_filled or suspended while the order can still execute, and filled, cancelled, expired, rejected or pruned once it cannot. closeReason carries the engine's reason for a closed order.
To reconcile these events with the venue's FIX drop copy, match them on the identifiers both feeds carry. The sequence of a trading- event is the log sequence in the ExecID, tag 17, of the drop-copy reports for the same entry. That ExecID has the form <market. The event's occurredAt equals the reports' TransactTime, tag 60. For trading-, tradeId equals the TrdMatchID, tag 880, of the two fill reports, and executedAt equals their TransactTime.
XvP settlement
XvP stands for exchange-versus-payment. An XvP settlement is a contract that exchanges assets between parties in transfers called legs. Each sending participant approves it and locks its assets in the contract, which is called escrow. A settlement with a leg on another chain also has a hashlock, a hash that blocks execution until its secret is revealed. Every event includes settlementAddress. The platform sends it once the block reaches chain finality, and only to endpoints on the System that owns the settlement's factory. A System is an organisation's on-chain DALP deployment.
Related
- Event catalogue: the events of every other domain, and the reserved names.
- Subscriptions: the patterns that select events, and the events the default subscriptions skip.
- Lifecycle states: what each state means, with worked sequences.
- Consuming webhooks: identifiers, deduplication, ordering, retries and retractions.