Skip to content

Address Streams

Stream all transaction activity involving a specific Sui address, in real time over WebSocket or SSE.

Overview

Address streams push a message whenever the monitored address sends a transaction or receives an object. Ideal for live wallet activity feeds, treasury monitoring, and user notifications - the streaming counterpart of Address Webhooks.

Configuration

Create the stream in the dashboard:

FieldRequiredDescription
AddressYesThe Sui address to monitor (sender or recipient)

Then connect with the Stream ID via WebSocket (recommended) or SSE - see Setup & Connection.

Example Messages

Messages arrive with the event name address.

Sender Activity

When the monitored address sends a transaction:

json
{
  "id": "12345680_Hx7Kj2mnop_0x1234abcd",
  "event": "address",
  "data": {
    "address": "0x1234abcd",
    "activityType": "sender",
    "txDigest": "Hx7Kj2mnop",
    "checkpoint": 12345680,
    "timestamp": 1703097650000,
    "objectId": null,
    "objectType": null
  }
}

Object Received

When the monitored address receives an object:

json
{
  "id": "12345680_Hx7Kj2mnop_0x5678efgh",
  "event": "address",
  "data": {
    "address": "0x1234abcd",
    "activityType": "object_received",
    "txDigest": "Hx7Kj2mnop",
    "checkpoint": 12345680,
    "timestamp": 1703097650000,
    "objectId": "0x5678efgh",
    "objectType": "0x2::coin::Coin<0x2::sui::SUI>"
  }
}

Payload Fields

FieldTypeDescription
data.addressstringThe monitored address
data.activityTypesender | object_receivedWhether address sent a tx or received an object
data.txDigeststringTransaction digest
data.checkpointnumberCheckpoint sequence number
data.timestampnumberUnix timestamp in milliseconds
data.objectIdstring | nullObject ID (only for object_received activity)
data.objectTypestring | nullMove type of object (only for object_received)

Use Cases

  • Portfolio dashboards: Live wallet activity without polling
  • Treasury monitoring: Instant alerts on fund movements
  • User notifications: Push notifications for incoming tokens
  • Compliance: Real-time audit trails for monitored addresses

Best Practices

  1. Handle both activity types - your handler should process sender and object_received
  2. Use objectType to filter for specific token types client-side
  3. ACK on WebSocket after processing for exactly-once delivery

Next Steps

Released under the MIT License.