Skip to content

Traffic-Based App Rewards 107 Milestone 3: On-Ledger Reward Workflow, Dry-Run, and MainNet Deployment

OPENIssue
by pedrodneves23-04-2026

Milestone 3: On-Ledger Reward Workflow, Dry-Run, and MainNet Deployment

| | Months after grant approval | | :---- | :---- | | Estimated Delivery | Month 6 | | Focus | Daml model changes, SV app triggers, wallet integration, dry-run validation, and the live switch on MainNet |

Deliverables:

  • Daml: CalculateRewardsV2, ProcessRewardsV2, RewardCouponV2 templates with RewardMintingFactory interface and MintingDelegation support.
  • Canton: crash-fault tolerant mediator inspection service.
  • SV app: CalculateRewardsTrigger, ProcessRewardsTrigger, UnhideRewardCouponV2Trigger, ExpireRewardCouponV2Trigger.
  • SV app: ExecuteConfirmedActionTrigger extended for CRARC_StartProcessingRewardsV2.
  • SV app: SV onboarding support via BFT reads from Scan instances with complete data.
  • SV app: admin API endpoint for archiving stuck dry-run rounds.
  • SV app UI: support for new configuration parameters.
  • Wallet app: RewardCouponV2 and MintCoupon lookup for reward minting.
  • Dry-run mode deployed and validated on MainNet, confirming deterministic reward computation across SV nodes.
  • Minimum two-week delay between deploying Dry-run mode on MainNet and enabling actual traffic-based rewards on DevNet. This means that explorers and app builders will be able to see what results would be generated via traffic-based application rewards, and compare them to existing marker-based rewards. Doing this two weeks before enforcing traffic-based app rewards on DevNet means that this computation will be available four weeks before the new rewards logic gets enforced on MainNet.
  • Governance vote to switch from featured app markers to traffic-based app rewards.
  • Monitoring: metrics and alerting for trigger health and hidden reward coupon counts.
  • Resolution of any issues arising during MainNet deployment.
  • All code merged into the open-source Canton and Splice repositories with appropriate unit and integration test coverage.
  • Updated Splice documentation covering the traffic-based reward configuration, new Scan API endpoints, RewardCouponV2 lifecycle, dry-run mode operation, and SV onboarding interaction with reward accounting.

Acceptance Criteria: Traffic-based app rewards are live on the Global Synchronizer MainNet, with RewardCouponV2 contracts being created for featured app provider parties each round. Dry-run validation has confirmed deterministic reward computation across SV nodes prior to the live switch. Scale testing confirms the system operates within acceptable bounds at 2026 MainNet scale.

_Originally posted by @pedrodneves in https://github.com/canton-foundation/canton-dev-fund/issues/107#issuecomment-4306097487_