Parachain slots are a scarce resource on Polkadot. Chains that wish to lease a slot and connect to the Relay Chain need to lock DOT for the entire duration of the lease. Each parachain slot lease consists of eight lease periods. To determine which chain will get the lease and for what period of time, an on-chain auction is held, during which all candidate chains bid for the lease periods they want.

 

In this article, we explain how these auctions work. For a more in-depth explanation of the mechanism, please read this wiki article.


The problem with open auctions

 

Digital open auctions over the internet are susceptible to what's called auction sniping, where bidders wait till the last minute to place their bids, often resulting in the item being auctioned at a lower price than it was valued by the bidders.

 

On blockchains, where all information is openly available to everyone, this problem may be even worse, since it potentially gives the producer of the block an opportunity to snipe any auction at the last concluding block by adding it themselves and/or ignoring other bids. There is also the possibility of a malicious bidder or a block producer trying to grief honest bidders by sniping auctions.

 

In short, on an open ledger like the blockchain, it is difficult to ensure that:

  • Bidders actually bid what they intend to pay

  • No one gives themselves an unfair advantage over the process


The solution: Candle auctions

 

Candle auctions were originally employed in the 16th century for the sale of ships and got their name from the "inch of a candle" that determined the open period of the auction. When the flame extinguished and the candle went out, the auction would suddenly terminate and the standing bid at that point would win.

 

The way Polkadot implements candle auctions is a little different though, to account for the transparent nature of the blockchain. The auction lasts for a predefined period of 7 days, but it may have actually ended any time in the last five days. Let's see how that works.


The auction is split into two parts: the opening period and the ending period. 

 

The opening period lasts for 1 day and 18 hours and starts as soon as the auction starts. During that period parachain candidates place their initial bids, but these bids don't affect the winner of the auction (yet).

 

Then the ending period starts and lasts for five days. Bids are still placed during the ending period, but the "candle" might go out at any point during it, determining the end of the auction and the winner of the slot. However, the end of the auction is determined retroactively after the ending period ends. This is done by what's called a Verifiable Random Function (VRF) in the session right after the ending period, which lasts 6 hours on Polkadot.  The opening period, the ending period, and the winner determining phase add up to a total duration of 7 days.

 

So, when the ending period expires, the VRF determines at which block the auction actually ended, and whichever candidate had the highest bid at that block wins the auction.

 

This method incentivizes parachain candidates to bid with their real intentions early on, especially during the opening period, because the longer they wait to bid the higher the chances that their bid will be made after the auction has actually ended.


Crowdloans

 

Parachain candidates can bid for the slot with their own funds or they can "crowdsource" them using the crowdloans mechanism. In this way, their community helps the parachain secure a slot with their DOT in a trustless way, with the promise of some form of reward for their contributions.

 

Because users can contribute to crowdloans at any point during the crowdloan campaign (which lasts for several auction periods) it is possible that two or more parachain candidates can go "neck-to-neck" until the very end of the ending period, making the auction a "nail-bitter" until the VRF declares a winner. This has happened a few times already, especially on Kusama.

 

To learn more about crowdloans and how to contribute, you can check this article.


Lease periods

 

When a parachain candidate makes a bid in the auction they also specify for how many consecutive lease periods they are bidding. On Polkadot, a lease period is 3 months and the maximum lease a parachain can get in an auction is 2 years, i.e. 8 consecutive lease periods.

 

The auction algorithm aims to bond as much DOT as possible for a specified lease duration because this increases the security of the network. This may result in a situation where the parachain candidate with the highest bid but for a smaller duration doesn't win the auction because a combination of bids from other candidates locks more DOT over the full lease duration. If this brief explanation makes this mechanism sound more complicated than it really is, the wiki has a good example and a more detailed explanation.

 

Typically, the parachain candidates bid for the entire lease duration (8 lease periods), so such a scenario hasn't materialized yet.


If you are more of a visual learner you can watch this short video that summarizes everything discussed in this article.