Skip to main content

Parachain Crowdloans

Kusama allows parachains to source tokens for their parachain bids in a decentralised crowdloan.

Contributing to a crowdloan

If you are here for guidance on how to contribute for a crowdloan, watch the video below or read this support article on crowdloans.

Crowdloans on Polkadot JS

Testing on Rococo

For information on how to participate in the crowdloan and parachain auction testing on Rococo, please see the Rococo content

Crowdloan Campaigns vs Parachain Auctions

It is important to recognize that starting a crowdloan campaign is optional for participating in a parachain slot auction. The parachain slot auction can also be won directly through self-funding without community involvement. To reiterate, crowdloan campaigns are just one of the means to win auctions, which allow the community to participate in a trustless and permissionless way.

Let's look at a scenario where Project A is hoping to gain a parachain slot on Kusama, but they don't have enough tokens to bid directly to win the parachain auction. Project A could benefit from starting a new crowdloan campaign to help secure a parachian slot. Crowdloans are trustless and are supported natively on Kusama, allowing the community to bond their tokens on Project A's behalf for the entire parachain lease duration. This will allow Project A to compete with projects that may have access to greater capital, given the project has sufficient community support. In return, the community contributors are rewarded by the projects that win the parachain slot, which would typically compensate for the opportunity cost of bonding their tokens for the lease duration.

On the other hand, let's say Project B, which is more established and has access to capital, is hoping to secure a parachain slot through self-funding. Project B is not relying on any community funding (at least via the crowdloan mechanism), so they will have to determine how much funding they can allocate towards winning a slot.

Project B is in full control of how much they are ultimately willing to contribute towards their goal of gaining a parachain slot. Project B need not work on coming up with a rewards model for community contributors like Project A. In contrast, crowdloan campaigns are beneficial for projects that have access to limited capital but have strong community support. They are also beneficial for projects that are able to successfully bid to win the auction with self-funding, but are looking for a mechanism to bootstrap their community and get noticed by the key actors in the ecosystem.

It is publicly visible on-chain whether or not a project is bidding directly or through a crowdloan campaign. More details regarding the process of creating and executing a crowdloan campaign are provided below.

Starting a Crowdloan Campaign

Anyone who has registered a parachain can create a new crowdloan campaign for a slot by depositing a specified number of tokens. A campaign is configured as a range of slots (i.e. the duration of the parachain will bid for), a cap, and a duration. The duration can last over several auctions as long as the range of slots matches those of the auction (i.e. the first lease period of the crowdloan is the same or bigger than that of the auction). This means that a team will not need to restart the campaign just because they do not secure a slot on their first attempt.

Crowdloan Submission Deposit Required

In order to create a new crowdloan campaign, your account must have 100 KSM transferrable which will be reserved for the duration of the crowdloan

When setting the parameters of a crowdloan campaign, consider the following:

  • A crowdloan campaign can start well before the auction slot is opened.

  • The campaign creation form requires setting a crowdloan cap the maximum amount a campaign can collect. A team can still win an auction if the cap is not reached.

  • Set the desired end of the crowdloan in the "Ending block" field. This helps to ensure that the crowdloan is live during the entire duration of the auction. For example, if an auction starts in three days and will last for five days, you may want to set your crowdloan to end in 10 days, or a similar timescale.

  • One way of calculating the ending block number is adding: (10 * 60 * 24 * 7) * (x * 6) + y

    • x is the number of auction periods you want the crowdloan to continue for

    • y is the current block number

    • (Blocks/Min * Min/Hour * Hour/Day * Day/Week) * (x[Period] * Week/Period) + y[BlockNumber]

    • "First period" field refers to the first period you want to bid for. If the current auction encompasses periods (3, 4, 5, 6), your first period can be at least 3. The last slot must also be within that range.

    • You can only cancel an ongoing crowdloan if no contributions have been made. Your deposit will be returned to you.

Prior to the start of the crowdloan campaign, the owner will upload the parachain data. Once the crowdloan is live, the parachain configuration will be locked and will be deployed as the parachain's runtime. Of course, once the parachain is running it can always change via runtime upgrades (as determined through its own local governance).

Supporting a Crowdloan Campaign

Contributing to Crowdloans

Minimum Crowdloan Contribution

The minimum balance for contributions for a crowdloan campaign is currently set to . This is in an attempt to make crowdloans as accessible as possible while maintaining a balance to justify the use of the network's resources.

Each created campaign will have an index. Once a crowdloan campaign is open, anyone can participate by sending a special transaction that references the campaign's index. Tokens used to participate must be transferable that is, not locked for any reason, including staking, vesting, and governance because they will be moved into a module-controlled account that was generated uniquely for this campaign. See system accounts for more information.

Do not send Crowdloan contributions directly to the Parachain address

All crowdloan contributions are handled by the Crowdloan module’s logic where a campaign is identified by an index, not by address. Never transfer tokens to an address in support of a campaign.

It is up to individual parachain teams to decide if and how they want to reward participants who forgo staking and choose to lock their tokens in support of the parachain’s campaign. As one can imagine, rewards will take many forms and may vary widely among projects.

If a crowdloan campaign is successful, that parachain will be on-boarded to the Relay Chain. The collective tokens will be locked in that parachain's account for the entire duration that it is active.

Withdraw Crowdloaned Tokens

Participants will be able to reclaim their tokens in one of two ways:

  • If the campaign was successful, then the parachain will enter a retirement phase at the end of its lease. During this phase, participants can withdraw the tokens with which they participated.
  • If the campaign was unsuccessful, then this retirement phase will begin at the campaign's configured end, and participants can likewise withdraw their tokens.
crowdloan.contribute extrinsic is trustless

Contributing to a crowdloan through Polkadot JS Apps (which uses crowdloan.contribute extrinsic) guarantees that you receive your tokens after the campaign ends. If you intend to make contributions through other websites and custodial service providers like central exchanges, review their terms and conditions thoroughly and assess the risks associated.

Note: When the lease periods won by the crowdloan have finished, or the crowdloan has ended without winning a slot, anyone can trigger the refund of crowdloan contributions back to their original owners. This can be done through the permissionless crowdloan.refund extrinsic available on Polkadot JS Apps > Developer > Extrinsics page, by specifying the parachain ID. This extrinsic may need to be issued multiple times, if the list of contributors is too long. All contributions must be returned before the crowdloan is entirely deleted from the system.

Crowdloan refund

Many projects will have dashboards available that allow users to participate in their crowdloans. PolkadotJS apps also offers a breakdown of ongoing crowdloans on the Apps page.

Here is an example of the crowdloans in play during the very first Kusama auction.

crowdloan dashboard

Furthermore, check out this video on How to Participate in Crowdloans for steps on how to access available crowdloans on PolkadotJS apps.