Skip to main content
This guide will walk you through creating a Crunch and managing its entire lifecycle. For a complete list of crunch-coordinator commands, see this page.

Start Your First Competition

Once approved, you can start creating competitions.
# Verify you're approved
crunch-coordinator get $(solana-keygen pubkey ~/.config/solana/coordinator-keypair.json)

# Create your first competition with
# Name: "My First Competition"
# USDC Prize pool: 1000
# Max Models Per Participant: 1
crunch-coordinator crunch create "My First Competition" 1000 1

Create and Deploy your Coordinator Node

As a reminder, the Coordinator Node has the responsibility of:
  • Data Ingestion: Collect external data to feed to the models.
  • Data Transformation: Obfuscate, transform, augment, anonymize or otherwise modify the raw data to help participants, apply PETs, maintain privacy, then provide it to Model Nodes.
  • Evaluate contributions and determine performance rewards by means of rank-based systems using accuracy metrics, or other mechanisms that are inspired by markets or statistics.
  • Performance metrics that will typically take the form of leaderboards and performance metrics of various kinds. Synchronizing with the Crunch Contract and storing of results on IPFS.
  • State Mirroring: Each Node is tied to a Crunch Contract Account on Solana and needs to mirror the state of that account. Furthermore, the model performance needs to be regularly backed up to a reliable system and is the responsibility of the Coordinator Node.
For a practical example of a Coordinator node, see the Iris Classification Example as a reference. This is the simplest example of a Coordinator node to get you started.

Competition Structure

We will now go over a complete lifecycle of a Crunch from creation to closure. Understanding this lifecycle is crucial for Coordinators to manage Crunches and Participants correctly.
The Coordinator CLI tool is used to manage the Crunch lifecycle. You can find the CLI tool here.
1

Funding Phase

After creation, Coordinator deposits money into the competition wallet. Money gets locked during competition lifetime and will be used for competitor payouts and Crunch Protocol fees.
2

Activation & Registration Phase

Competition becomes active and begins accepting participants. Users can register for the competition, sign up, accept the terms and conditions, and receive access to the datasets. Once registered, participants can submit models to run in the competition.
3

Competition Phase

In this phase models compete, get scored and rewarded. How this is done is up to how the Crunch is designed. The most common ways are:
  • Live Data: The models are continuously evaluated against the live data stream and payouts happen at specific intervals, eg: once a week.
  • Batch/Holdout Data: The models are evaluated against a holdout data set at the end of the competition and payouts happen once the competition is over. Input data for models, scoring, and leaderboard generation are all at the coordinator’s discretion.
The below steps are mostly done, in many iterations, by the Crunchers participating in the Crunch. We will mark these steps with the icon.Scoring and Payout are done by the Coordinator.

Development

Crunchers build and refine their models.

Submission

Models are submitted for evaluation.

Evaluation

Models are tested against live or holdout data. For live data the models are continuously evaluated against the live data stream.
4

Scoring

Performance metrics are calculated, rankings and rewards are determined.
5

Payout Phase(s)

Depending on the Crunch design, payouts can happen at specific intervals, eg: once a week or at the end of the competition.Prizes are distributed by the Coordinator running Checkpoints. Checkpoints trigger the Crunch Smart Contracts and once processed, prizes become available for participants to claim on the website.
4

Completion Phase

The Crunch is closed. This ends the competition but keeps the claim functionality open for a period of time.
5

Settlement Phase

Competition costs are paid out to the Foundation and fees are processed.
6

Closure Phase

Competition is completely closed after waiting for a finite period. Once closed, all unclaimed prizes can no longer be claimed.
7

Withdrawal Phase

Coordinator can withdraw any remaining money from the competition wallet.
This gives a theoretical overview of how a Crunch is administered. In the next section we will have a more practical example.

Crunch Implementation Example

The next section will give a practical example of how to implement a Crunch. It comes with a complete implementation of a Coordinator node.