Create a stream subscription

Creates a subscription that delivers transactions to you in real time.
Each subscription supports two delivery modes — you can use one or both:

Webhook (push delivery)

Set webhookUrl to your HTTPS endpoint. The system will POST each update to your URL as it occurs.
Deliveries are retried with exponential backoff (1m, 5m, 30m, 2h, 12h) for up to 5 attempts.
Each delivery includes an X-Noves-Signature header containing an HMAC-SHA256 hex digest of the
request body, computed with the secret returned when you create the subscription.
Use this to verify that payloads are authentic.

WebSocket (pull delivery)

Set websocketEnabled to true. The response will include a websocketUrl you can connect to.
The generated URL includes the subscription secret; clients should use that URL as-is.
In practice the connection URL is wss://.../streams/{id}/ws?secret=....
Updates are pushed to all connected clients in real time. If no client is connected, messages are
queued for up to 1 hour and replayed automatically when a client reconnects.

Filters

Use the filters object to control which updates are delivered. It contains three
categories of filters (OR'd — a match in any category delivers the update):

partyFilter (top-level) — Only deliver updates involving this Canton party address.
Each filter category applies the party check in its own way.

filters.txTypeFilters

Match by classification type. Pass an array of one or more values:

CategoryTypes
Transferstransfer, mergeSplit, unlock, failedTransfer
RewardsvalidatorRewards, appRewards, svRewards
Feesfee
TrafficbuyTraffic
CouponsissueCoupon, redeemCoupon, convertToCoupon
SubscriptionspaySubscription
PreapprovalscreateTransferPreapproval, acceptTransferPreapproval, createAndAcceptTransferPreapproval
ActivitycreateActivityMarker
Token opsmintToken
AdmincreateValidatorLicense, provisionWallet, createFeaturedAppRight
Otherunclassified

filters.rawEventFilters

Required when the filters object is supplied. Pass an empty array when unused.
Match by the presence of specific raw DAML events. Each entry specifies a template
module (required), entity (optional), and event type: "created", "archived", or omit for any.
Example: [{ "templateModule": "Splice.Amulet", "templateEntity": "Amulet", "eventType": "created" }]

filters.utilityFilters

Required when the filters object is supplied. Pass an empty array when unused.
Composite filters that inspect the transaction payload.
Supported values:

  • allCCMovements — matches any transaction where Canton Coin moves for the party
    (checks classificationData.transfers for CC token transfers where the party is sender or receiver).
    Invalid filter values are rejected with HTTP 400.

Raw data

Set includeRawData to true to receive the original unprocessed transaction alongside the
classified data. When enabled, each message includes a rawData field with the full raw payload.

Payload format

Each delivered message (webhook POST body or WebSocket message) is a JSON object:
{ "subscriptionId": "uuid", "updateId": "...", "effectiveAt": "ISO-8601", "timestamp": "ISO-8601", "data": { /* classified transaction */ }, "rawData": { /* optional, if includeRawData is true */ } }
The data field contains the full classified transaction with parties, values, and transaction data.

Path Params
string
required
Defaults to canton

Name of the chain.

Body Params

Subscription configuration.

string | null

HTTPS URL where updates will be POSTed (push delivery). Required unless websocketEnabled is true.
Example: "https://yourserver.com/webhook/canton"

boolean

Enable WebSocket delivery (pull). When true, the response includes a websocketUrl
you can connect to for real-time updates. Default: false.

string | null

Only deliver updates involving this Canton party address. Omit to receive updates for all parties.
Example: "noves-validator-1::1220dd5cc6e969cd7d7c11e339fbd07fab5f6fa1f999dc09339228d17299d9d68941"

filters
object

Structured subscription filters. Categories are OR'd.

boolean

Include the raw transaction data alongside the classified data in each delivery.
When true, each message includes a "rawData" field with the unprocessed transaction payload.
Default: false.

Headers
string
required
Defaults to demokey

API Key to call the API. To generate one, visit https://noves.fi/pricing

Responses

Language
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json