Traffic Purchases Stream

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
  }
}

Open in GraphiQL ↗

Filter

All fields are optional and combine with AND. See Filters for the shared rules.

FieldTypeMatches
networkStringmainnet, testnet or devnet
validatorStringValidator party ID or its ANS name
participantStringParticipant ID, or its name, that received the traffic
providerStringProvider party ID or app name that submitted the purchase

Event fields

FieldTypeMeaning
networkString!Network the purchase belongs to
recordTimeString!Ledger record time, ISO 8601 UTC
roundInt!Mining round in which the purchase was made. The CC price of that round sets the conversion
validatorString!Validator party ID that bought the traffic
participantString!Participant ID that received the traffic
providerString!Provider party ID that submitted the purchase
amuletPaidString!CC burned for the purchase, decimal string
usdPaidString!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
  }
}

Open in GraphiQL ↗

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.