Skip to main content

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 bps must be 10000
  • Recipients within a bucket must also sum to 10000
  • Buckets with cliffMonths == 0 && vestMonths == 0 mint to a liquid CPLQ balance immediately
  • Otherwise, a VestingSchedule is written

Update placeholder hex addresses before running on mainnet.