Registering canoLiq as a Canopy Committee
canoLiq runs as its own Canopy committee with a separate chainId. No fork is required — validators opt in through Canopy's existing restaking flow.
Steps
1. Pick a chainId
Ensure it does not collide with an existing committee. The default is 2; override via CANOLIQ_CONFIG.
2. Validators Opt In
Each participating validator submits a MessageEditStake adding the canoLiq chainId to its Validator.Committees[] list:
canopy tx edit-stake --committees 1,2 --amount <stake_amount>
3. Request a Subsidy
Submit a MessageSubsidy proposal so the Canopy DAO funds the canoLiq committee reward pool. The plugin's EndBlock hook reads from this pool and applies the 12% fee.
4. Run the Plugin
# Via config
# In ~/.canopy/config.json:
# "plugin": "canoliq"
# Or via environment
CANOPY_PLUGIN_MODE=canoliq canopy start
On first boot, the plugin runs Genesis once, minting the 100M CPLQ supply to recipients in genesis.json according to bucket weights and vesting schedules.
Genesis Configuration
genesis.json lists CPLQ allocation buckets and per-recipient weights:
- The sum of bucket
bpsmust be10000 - Recipients within a bucket must also sum to
10000 - Buckets with
cliffMonths == 0 && vestMonths == 0mint to a liquid CPLQ balance immediately - Otherwise, a
VestingScheduleis written
Update placeholder hex addresses before running on mainnet.