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.
Milestone 3: canton-foundation/canton-dev-fund#241
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 MainNetDeliverables:
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
RewardCouponV2contracts 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.Milestone 3: canton-foundation/canton-dev-fund#241