--- id: TASK-12 title: 'Port Commitment Channels to Solidity (Labor, Subscription, Staking)' status: To Do assignee: [] created_date: '2026-04-03 21:42' labels: - solidity - commitments - issuance dependencies: - TASK-5 - TASK-7 references: - /home/jeffe/Github/myco-bonding-curve/src/commitments/ - /home/jeffe/Github/payment-infra/contracts/commitment/ priority: medium --- ## Description Translate the three commitment issuance channels from Python to Solidity. These enable non-financial token minting paths for community economies. 1. Labor Issuance (src/commitments/labor.py): - Attestation oracle verifies work → mint tokens at governed rate - Rate-limited per attestor per time window - Integrates with WeaveRegistry from payment-infra (commitment types: Dev Hours, Design, Facilitation) - CommitmentToken.sol (ERC-1155) already exists in payment-infra 2. Subscription DCA (src/commitments/subscription.py): - Recurring pledges with loyalty multipliers - Time-weighted minting (longer subscription → better rate) - Chainlink Automation for recurring execution 3. Staking Lockups (src/commitments/staking.py): - Duration-weighted bonus minting: sqrt concave curve - Lock collateral for N days → receive bonus tokens - Integrates with LST staking yields from cross-chain module All channels feed into the bonding curve reserve, increasing collateral backing for tranches. ## Acceptance Criteria - [ ] #1 Labor attestation mints tokens at governed rate - [ ] #2 Subscription DCA executes recurring buys via Chainlink Automation - [ ] #3 Staking lockup calculates duration bonus correctly - [ ] #4 All channels increase bonding curve reserve - [ ] #5 Rate limiting prevents spam minting