Skip to content

PR #479 — Milestone 3: On-Ledger Reward Workflow, Dry-Run, and MainNet Deployment

OPENIssue
by github-actions[bot]22-07-2026
milestone-tracking
References:CIP-0104

Parent: #581 PR: https://github.com/canton-foundation/canton-dev-fund/pull/479

| | | | :---- | :---- | | 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 four-week delay between the time that activity records are made public via the Scan app on MainNet, and the time that traffic-based app rewards start being enforced. 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, during this review period, before traffic-based app rewards go fully live.
  • 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.
  • Featured app weights and mechanisms for adjusting those weights as proposed in the corresponding CIP-0104 amendment.

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.