Coupons Stream

couponsCreated pushes every reward coupon as it is created, with the provider, the beneficiary and the round.

couponsCreated emits a batch of reward coupons created on the ledger at the same moment. On Canton, activity in a mining round earns reward coupons: an app earns one for the transfers it facilitates, and a featured app earns more. Each event carries an array of coupons, and each coupon in it names the provider that earned it, the party that will receive the reward, the amount and the round. Once the round closes, the coupon is claimed and the reward is minted.

Use it to track rewards for your app in real time, confirm that activity is being credited to the right beneficiary, or reconcile against your own activity records before the round closes.

Subscribe

subscription Coupons {
  couponsCreated(filter: { network: "mainnet" }) {
    recordTime
    round
    provider
    beneficiary
    amount
    featured
    contractId
  }
}

Open in GraphiQL ↗

Filter

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

FieldTypeMatches
networkStringmainnet, testnet or devnet
providerStringProvider party ID or app name that earned the coupon
beneficiaryStringBeneficiary party ID or its ANS name

Event fields

FieldTypeMeaning
networkString!Network the coupon belongs to
recordTimeString!Ledger record time, ISO 8601 UTC
roundInt!Mining round the coupon was issued in
providerString!Provider party ID of the app that earned the coupon
beneficiaryString!Party ID that receives the reward
amountString!Reward amount as a decimal string
featuredBoolean!true when the coupon was earned by a featured app, which is rewarded at the featured rate
contractIdString!Contract ID of the coupon on the ledger. Stable key for deduplication

Example message

Values are illustrative.

{
  "data": {
    "couponsCreated": [
      {
        "recordTime": "2026-09-30T14:03:11.482913130Z",
        "round": 61234,
        "provider": "wallet-app::12204b77e1…",
        "beneficiary": "wallet-app::12204b77e1…",
        "amount": "0.0312000000",
        "featured": true,
        "contractId": "00a1c3…"
      },
      {
        "recordTime": "2026-09-30T14:03:12.004118902Z",
        "round": 61234,
        "provider": "dex-venue::1220e4a1b0…",
        "beneficiary": "dex-treasury::1220b9e2c4…",
        "amount": "0.0040000000",
        "featured": false,
        "contractId": "00f7d2…"
      }
    ]
  }
}

Example: rewards earned by your app

Filter on your provider party. Group by round to see what each round will pay out, and by beneficiary to check that rewards go where you configured them.

subscription MyAppRewards {
  couponsCreated(filter: { network: "mainnet", provider: "my-app::1220c0de…" }) {
    recordTime
    round
    beneficiary
    amount
    featured
  }
}

Open in GraphiQL ↗

Related REST endpoints

Rewards history for history and backfill. Rewards statistics and Rewards leaderboard for aggregates. Get featured app profile for the app's featured status.