Skip to content

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:

FieldRequiredDescription
Event TypeYesFull event type (e.g., 0x2::coin::CoinCreated)
SenderNoFilter to events from a specific address
Field FiltersNoFilter 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):

json
{
  "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

FieldTypeDescription
data.activityTypestringAlways package_event
data.txDigeststringTransaction digest
data.eventSequencenumberEvent index within the transaction
data.checkpointnumberCheckpoint sequence number
data.timestampnumberUnix timestamp in milliseconds
data.typestringFull Move event type
data.senderstringAddress that emitted the event
data.dataobjectParsed 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

Released under the MIT License.