Event Streams
ℹ️ Note: We're actively indexing new event types - if your event type isn't available for field filtering yet, we'll add support shortly after you create your stream.
Stream specific Move event types emitted by smart contracts, in real time over WebSocket or SSE.
Overview
Event streams push matching Move events to your application the moment they land on-chain. This is the most common stream type for DeFi applications, NFT platforms, and gaming applications - the streaming counterpart of Event Webhooks.
Configuration
Create the stream in the dashboard:
| Field | Required | Description |
|---|---|---|
| Event Type | Yes | Full event type (e.g., 0x2::coin::CoinCreated) |
| Sender | No | Filter to events from a specific address |
| Field Filters | No | Filter by specific event field values |
Then connect with the Stream ID via WebSocket (recommended) or SSE - see Setup & Connection.
Example Message
Messages arrive with the event name event and this shape (WebSocket shown; SSE delivers the same data under an event: SSE event type):
{
"id": "12345678_4_0",
"event": "event",
"data": {
"activityType": "package_event",
"txDigest": "9abc123def",
"eventSequence": 0,
"checkpoint": 12345678,
"timestamp": 1703097600000,
"type": "0x2::coin::CoinCreated<0x2::sui::SUI>",
"sender": "0x1234abcd",
"data": {
"coin_type": "0x2::sui::SUI",
"amount": "1000000000"
}
}
}Payload Fields
| Field | Type | Description |
|---|---|---|
| data.activityType | string | Always package_event |
| data.txDigest | string | Transaction digest |
| data.eventSequence | number | Event index within the transaction |
| data.checkpoint | number | Checkpoint sequence number |
| data.timestamp | number | Unix timestamp in milliseconds |
| data.type | string | Full Move event type |
| data.sender | string | Address that emitted the event |
| data.data | object | Parsed event data (varies by event type) |
The top-level id is the message ID - ACK it on WebSocket for exactly-once delivery, or use it for deduplication on SSE.
Event Field Filtering
Event streams support the same field filtering as event webhooks: for indexed event types you can add one filter per field with type-appropriate operators (equals, not equals, numeric comparisons, contains), combined with AND logic. See Event Webhooks → Field Filtering for the full reference - the behavior is identical for streams.
💡 Tip: Filter at the source for high-volume events (e.g., only swaps above a threshold). Each delivered event costs 2 credits, so filtering saves credits too.
Use Cases
- DEX trading interfaces: Render swaps live as they execute
- NFT marketplaces: Show mints, listings, and sales in real time
- Gaming: Sync on-chain game events into live game state
- Alerting: Trigger notifications on liquidations, large transfers, or governance events
Next Steps
- Setup & Connection - Authentication, ACKs, reconnection
- Address Streams - Stream wallet activity
- Coin Streams - Stream balance changes
- Object Streams - Stream object mutations