trafficPurchased pushes every synchronizer traffic purchase, with the CC burned and its USD value.
trafficPurchased emits a batch of synchronizer traffic purchases recorded on the ledger at the same moment. On Canton, a validator buys traffic for a participant by burning Canton Coin. Each event carries an array of purchases, and each purchase in it records who bought it, for which participant, in which round, and what it cost in CC and in USD at that round's price.
Use it to watch a validator's traffic spend as it happens, alert on unusual purchases, or feed a cost dashboard without polling.
Subscribe
subscription Traffic {
trafficPurchased(filter: { network: "mainnet" }) {
recordTime
round
validator
participant
provider
amuletPaid
usdPaid
}
}Filter
All fields are optional and combine with AND. See Filters for the shared rules.
| Field | Type | Matches |
|---|---|---|
network | String | mainnet, testnet or devnet |
validator | String | Validator party ID or its ANS name |
participant | String | Participant ID, or its name, that received the traffic |
provider | String | Provider party ID or app name that submitted the purchase |
Event fields
| Field | Type | Meaning |
|---|---|---|
network | String! | Network the purchase belongs to |
recordTime | String! | Ledger record time, ISO 8601 UTC |
round | Int! | Mining round in which the purchase was made. The CC price of that round sets the conversion |
validator | String! | Validator party ID that bought the traffic |
participant | String! | Participant ID that received the traffic |
provider | String! | Provider party ID that submitted the purchase |
amuletPaid | String! | CC burned for the purchase, decimal string |
usdPaid | String! | USD value of the purchase at the round's CC price, decimal string |
Example message
Values are illustrative.
{
"data": {
"trafficPurchased": [
{
"recordTime": "2026-09-30T14:05:02.118260411Z",
"round": 61234,
"validator": "my-validator::12207f01ab…",
"participant": "PAR::my-validator::12207f01ab…",
"provider": "my-validator::12207f01ab…",
"amuletPaid": "4.2500000000",
"usdPaid": "0.5100000000"
}
]
}
}Example: your own validator's spend
Filter on your validator party. Sum usdPaid per round to get the cost per round, or per day to get the daily burn.
subscription MyValidatorTraffic {
trafficPurchased(filter: { network: "mainnet", validator: "my-validator::12207f01…" }) {
recordTime
round
participant
amuletPaid
usdPaid
}
}Related REST endpoints
List traffic purchases for history and backfill. Get validator traffic statistics for aggregates over a date range. Get party's allocated traffic for the allocation side.