Skip to main content

Coordinator Commands

Coordinator commands manage your Coordinator identity on the protocol.
crunch-cli coordinator <command> [options] [arguments]

coordinator list

List all registered coordinators.
crunch-cli coordinator list
Displays all coordinators in the system with their name, state, owner, and address.

coordinator register

Register a new Coordinator with the protocol.
crunch-cli coordinator register <name>
Arguments:
ArgumentDescription
nameUnique name for the coordinator
Example:
crunch-cli coordinator register "AI Research Lab"
The Coordinator must be approved by protocol admins before it can create competitions. After registration, the status will be Pending Approval.
Requirements:
  • Coordinator name must be unique
  • Wallet must have sufficient SOL for account creation

coordinator get

Get Coordinator details by owner address.
crunch-cli coordinator get [owner]
Arguments:
ArgumentDescription
ownerOwner address (optional, defaults to current wallet)
Examples:
# Get your own Coordinator details
crunch-cli coordinator get

# Get details for a specific address
crunch-cli coordinator get 9WzDXwBbmkg8ZTbNMqUxvQRAyrZzDsGYdLVL9zYtAWWM
Shows Coordinator info including name, state, pool registration status, emission config percentages, and certificate information (if configured).

coordinator get-config

Get Coordinator protocol configuration.
crunch-cli coordinator get-config
Displays protocol-level settings including admin authority, USDC mint, margin percentages, claim expiry, and foundation wallet.

coordinator cert set

Set coordinator certificate hash for on-chain authentication.
crunch-cli coordinator cert set <base64-der-pubkey> [--slot <slot>]
Arguments:
ArgumentDescription
base64-der-pubkeyBase64-encoded DER public key from TLS/RSA certificate
Options:
OptionDescriptionDefault
--slot <slot>Certificate slot (0 for primary, 1 for secondary)0
Examples:
# Set primary certificate
crunch-cli coordinator cert set "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA..."

# Set secondary certificate for rotation
crunch-cli coordinator cert set "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA..." --slot 1
Stores the SHA-256 hash of your TLS/RSA certificate’s DER-encoded public key on-chain. Model nodes use this to verify your certificate association. Supports primary and secondary slots for seamless certificate rotation. Requirements:
  • Coordinator must be in Approved state
  • Certificate hash cannot be all zeros
  • Slot must be 0 (primary) or 1 (secondary)

coordinator cert get

Get coordinator certificate information.
crunch-cli coordinator cert get [owner]
Arguments:
ArgumentDescription
ownerOwner address (optional, defaults to current wallet)
Examples:
# Get certificate info for current wallet
crunch-cli coordinator cert get

# Get certificate info for a specific coordinator
crunch-cli coordinator cert get 9WzDXwBbmkg8ZTbNMqUxvQRAyrZzDsGYdLVL9zYtAWWM
Retrieves stored certificate hashes for both primary and secondary slots, along with timestamps. Returns null if no certificate is set.

coordinator reset-hotkey

Reset/regenerate the SMP hotkey for the Coordinator.
crunch-cli coordinator reset-hotkey

coordinator set-emission-config

Set emission config percentages for the Coordinator. Percentages must sum to 100.
crunch-cli coordinator set-emission-config <coordinatorPct> <stakerPct> <crunchFundPct>
Arguments:
ArgumentDescription
coordinatorPctCoordinator percentage
stakerPctStaker percentage
crunchFundPctCrunch Fund percentage
Example:
crunch-cli coordinator set-emission-config 50 30 20

Crunch (Competition) Commands

Crunch commands manage competition lifecycles — from creation through checkpointing to draining.
crunch-cli crunch <command> [options] [arguments]

crunch list

List crunches for a coordinator, or all crunches system-wide.
# List crunches for current wallet
crunch-cli crunch list

# List crunches for a specific coordinator
crunch-cli crunch list <wallet>

# List all crunches system-wide
crunch-cli crunch list --all
Options:
OptionDescription
--allList all crunches system-wide

crunch create

Create a new competition.
crunch-cli crunch create <name> <payoutAmount> [maxModelsPerCruncher]
Arguments:
ArgumentDescriptionDefault
nameName of the crunch
payoutAmountPayout amount in USDC
maxModelsPerCruncherMaximum models per cruncher2
Example:
crunch-cli crunch create "iris_classifier" 10000 5
Requirements:
  • Must be an approved coordinator
  • Competition name must be unique
  • Must have sufficient SOL for account creation

crunch start

Start a competition, allowing crunchers to register and submit models.
crunch-cli crunch start <crunchName>
Example:
crunch-cli crunch start "iris_classifier"
The competition must be in the created state.

crunch get

Get detailed information about a competition.
crunch-cli crunch get <name>
Example:
crunch-cli crunch get "iris_classifier"
Shows state, payout amount, vault balance, max models, checkpoint count, and associated addresses.

crunch get-cruncher

Get detailed information about a cruncher registered in a competition.
crunch-cli crunch get-cruncher <crunchName> <cruncherWallet>
Arguments:
ArgumentDescription
crunchNameName of the crunch
cruncherWalletCruncher wallet address
Example:
crunch-cli crunch get-cruncher "iris_classifier" 9WzDXwBbmkg8ZTbNMqUxvQRAyrZzDsGYdLVL9zYtAWWM
Shows cruncher index, PDA address, registered models, and prize history across checkpoints.

crunch end

End a competition, preventing new registrations and model submissions.
crunch-cli crunch end <crunchName>
The competition must be in the started state.

crunch deposit-reward

Deposit USDC rewards to a competition’s vault.
crunch-cli crunch deposit-reward <crunchName> <amount>
Arguments:
ArgumentDescription
crunchNameName of the crunch
amountAmount in USDC
Example:
crunch-cli crunch deposit-reward "iris_classifier" 5000
Requirements:
  • Must have sufficient USDC balance
  • Must have a USDC Associated Token Account

crunch margin

Execute margin payout for a competition.
crunch-cli crunch margin <crunchName>

crunch drain

Drain remaining USDC from a competition’s reward pool back to the coordinator.
crunch-cli crunch drain <crunchName>

crunch set-fund-config

Set crunch fund configuration percentages. Percentages must sum to 100.
crunch-cli crunch set-fund-config <crunchName> <cruncherPct> <dataproviderPct> <computeProviderPct>
Arguments:
ArgumentDescription
crunchNameName of the crunch
cruncherPctCruncher percentage
dataproviderPctData provider percentage
computeProviderPctCompute provider percentage
Example:
crunch-cli crunch set-fund-config "iris_classifier" 60 20 20

Checkpoint Commands

Checkpoints handle reward distribution to crunchers.

crunch checkpoint-create

Create a checkpoint for payout distribution.
crunch-cli crunch checkpoint-create <crunchName> <prizeFileName> [--dryrun]
Arguments:
ArgumentDescription
crunchNameName of the crunch
prizeFileNamePath to prize JSON file
Options:
OptionDescription
--dryrunPreview without executing transactions
Example:
crunch-cli crunch checkpoint-create "iris_classifier" ./prizes.json
crunch-cli crunch checkpoint-create "iris_classifier" ./prizes.json --dryrun
Prize File Format: Each line in the JSON file should follow this structure:
{ "timestamp": 1840417288969, "model": "model_3", "prize": 130870000 }
FieldDescriptionRequired
timestampUnix timestamp in millisecondsYes
modelModel identifier receiving the prizeYes
prizePrize amount in micro USDC (amount × 10^6)Yes
prizeIdUnique identifier for the prizeNo

crunch checkpoint-get-current

Get the current active checkpoint for a competition.
crunch-cli crunch checkpoint-get-current <crunchName>

crunch checkpoint-get

Get a specific checkpoint by index.
crunch-cli crunch checkpoint-get <crunchName> <checkpointIndex>

crunch checkpoint-get-address

Get the Solana address of a specific checkpoint account.
crunch-cli crunch checkpoint-get-address <crunchName> <checkpointIndex>

Advanced Crunch Commands

crunch sweep-token-accounts

Sweep tokens from incorrect accounts to the reward vault.
crunch-cli crunch sweep-token-accounts <crunchName>

crunch check-prize-atas

Check if crunchers in a prize file have USDC Associated Token Accounts.
crunch-cli crunch check-prize-atas <crunchName> <prizeFileName> [-c|--create]
Options:
OptionDescription
-c, --createCreate missing USDC Associated Token Accounts

crunch emission-checkpoint-add

Add an emission checkpoint to the coordinator pool.
crunch-cli crunch emission-checkpoint-add <emissionFile>

crunch map-cruncher-addresses

Map cruncher wallets into the coordinator pool address index.
crunch-cli crunch map-cruncher-addresses <crunchAddress> <wallets...>
Arguments:
ArgumentDescription
crunchAddressCrunch address (Pubkey)
wallets...Cruncher wallet addresses in mapping order

Model Commands

Model commands enable running simulations and managing scenario files using the Python CLI integration.
crunch-cli model <command> [options] [arguments]
Model commands require the Python CLI companion package. Install with: pip install crunch-cli

model list

List all available simulation scenarios.
crunch-cli model list
Displays a table of available scenarios with their names and corresponding files. Example:
$ crunch-cli model list
                             Available Scenarios                              
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
 Name File
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
 high_demand_5_coordinators high_demand_5_coordinators.yaml
 single_coordinator_2year_baseline single_coordinator_2year_baseline.yaml
 ... ...
└───────────────────────────────────┴────────────────────────────────────────┘

model run <scenario>

Run a simulation using the specified scenario.
crunch-cli model run <scenario> [--output <path>]
Arguments:
ArgumentDescription
scenarioName or file path of the scenario
Options:
OptionDescription
--output <path>Directory to save simulation results
Example:
$ crunch-cli model run baseline --output ./results
Running simulation: baseline
  Epochs: 104
  Coordinators: 1
 Completed 104 epochs
 Results saved to ./results

model validate <scenario>

Validate a scenario file to check for configuration errors.
crunch-cli model validate <scenario>
Arguments:
ArgumentDescription
scenarioName or file path of the scenario
Example:
$ crunch-cli model validate high_demand_scenario.yaml
 Scenario file is valid

Command Reference Summary

CategoryCommandDescription
Coordinatorcoordinator listList all coordinators
coordinator registerRegister as a Coordinator
coordinator getGet Coordinator details
coordinator get-configGet protocol configuration
coordinator reset-hotkeyReset SMP hotkey
coordinator set-emission-configSet emission percentages
Certificate Managementcoordinator cert setSet certificate hash on-chain
coordinator cert getGet certificate info
Competition Lifecyclecrunch createCreate a new competition
crunch startStart a competition
crunch getGet competition details
crunch get-cruncherGet cruncher details in competition
crunch listList crunches
crunch endEnd a competition
Financial Managementcrunch deposit-rewardDeposit USDC rewards
crunch marginExecute margin payout
crunch drainWithdraw remaining USDC
crunch set-fund-configSet fund split percentages
Checkpoint Managementcrunch checkpoint-createCreate reward checkpoint
crunch checkpoint-get-currentGet current checkpoint
crunch checkpoint-getGet checkpoint by index
crunch checkpoint-get-addressGet checkpoint address
Model Managementmodel listList available simulation scenarios
model runRun a simulation scenario
model validateValidate a scenario file
Advancedcrunch sweep-token-accountsSweep tokens to reward vault
crunch check-prize-atasCheck/create prize ATAs
crunch emission-checkpoint-addAdd emission checkpoint
crunch map-cruncher-addressesMap cruncher addresses

Competition Workflow

1

Register

Register as a Coordinator:
crunch-cli coordinator register "My Organization"
2

Set Certificate

Set your TLS certificate for Model Node verification:
crunch-cli coordinator cert set "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA..."
3

Create Competition

Create a competition:
crunch-cli crunch create "my_competition" 10000 5
4

Fund

Deposit rewards:
crunch-cli crunch deposit-reward "my_competition" 10000
5

Launch

Start the competition:
crunch-cli crunch start "my_competition"
6

Monitor

Check status:
crunch-cli crunch get "my_competition"
7

Distribute Rewards

Create checkpoints:
crunch-cli crunch checkpoint-create "my_competition" ./prizes.json
8

End

End the competition:
crunch-cli crunch end "my_competition"
9

Cleanup

Drain remaining funds:
crunch-cli crunch drain "my_competition"