Traffic-Based App Rewards 107 Milestone 3: On-Ledger Reward Workflow, Dry-Run, and MainNet Deployment
OPENIssue
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,RewardCouponV2templates withRewardMintingFactoryinterface andMintingDelegationsupport. - Canton: crash-fault tolerant mediator inspection service.
- SV app:
CalculateRewardsTrigger,ProcessRewardsTrigger,UnhideRewardCouponV2Trigger,ExpireRewardCouponV2Trigger. - SV app:
ExecuteConfirmedActionTriggerextended forCRARC_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:
RewardCouponV2andMintCouponlookup 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,
RewardCouponV2lifecycle, 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_