Understand the contracts
The roles and boundaries behind each user action.
Separate responsibilities
| Component | Responsibility |
|---|---|
| ConvictionVault | Holds principal, records positions and terms, handles releases and early exits, and accounts for penalty reserves. |
| ConvictionBribes | Holds campaign funding, tracks conviction weight, calculates vesting, pays rewards and returns refundable funding. |
| ConvictionCommunity | Records prior-block, source-capped principal eligibility, preserves rewards after mature release, forfeits them on early exit and authorizes bounded claims or forfeiture settlement. Its vault binding is immutable. |
| ConvictionLockdrops | Holds Lockdrop funding, checks eligibility or allocations, creates recipient-owned locks on acceptance and refunds unused funding after the deadline. Its vault binding is immutable. |
| CONV token | The token acquired and removed through the penalty mechanism. CONV can also be locked like other compatible ERC-20 tokens. |
| Swap adapter | Converts eligible penalty reserves into CONV through a configured trading route. It does not receive authority to spend recorded principal. |
How app actions map to contracts
| User action | Contract function | Effect |
|---|---|---|
| Lock | lock / lockFor | Create a position for yourself or a beneficiary. |
| Extend | extend | Restart an open commitment with a later unlock date. |
| Claim principal | release | Send matured principal to its owner. |
| Exit early | exitEarly | Close a position and return principal less its penalty. |
| Collect rewards | claim / claimMany / claimReward | Pay available campaign rewards to the position owner. |
| Claim community rewards | ConvictionCommunity.claim | Pay unlocked community allocations from a bounded reward page to the owner. |
| Settle forfeited rewards | ConvictionCommunity.settleForfeited | Permissionlessly recycle a bounded page of an early-exited position's unclaimed Community rewards into CONV buybacks or burning. |
| Fund rewards | bribe | Create a campaign with a funding window and floor. |
| Reclaim funding | reclaim | Return an ended campaign's refundable balance to its funder. |
| Create Lockdrop | createLockerCampaign / createCampaign | Fund fixed rewards for existing lockers or explicit recipient allocations. |
| Claim and lock | claimLockerCampaign / claim | Accept Lockdrop rewards as a new position with no early exit. |
| Refund unused funding | refund | Return unused Lockdrop funding to its creator after claims close. |
What administration can change
The vault owner can change future lock terms, pause new deposits, update reward modules and configure the penalty conversion mechanism. The reward-contract owner can change the campaign fee and eligible reward tokens. Those powers matter to future participation and reward behavior. The Lockdrop module has no owner, and funded campaign terms cannot change; current vault policy can still prevent new reward locks.
The vault has no owner-managed deposit-token allowlist. Pausing new locks leaves releases, early exits and extensions available. Recovery of excess vault tokens excludes recorded principal and penalty reserves. Penalty conversion is limited to its reserve, with output and trade-size constraints. Replacing a previously configured swap adapter requires a two-day delay.