Skip to main content

Auction Lifecycle

1. Creating Auction

Wallet A creates and deploys the following auction on the DFlow Chain. This auction is immediately accepting bids from market makers.

Auction Rollover Example 1

Let's breakdown this auction using the auction specs and protocol parameters, a set of factors used to determine auction lengths.

Deployed Auction

Solana Auction Example

When My-Auction-1 is created, both epoch 0 and 1 are active. Epoch 0 is delivering orders but note in this case, the auction didn't set a backup LP so no orders are delivered. Wallet A can always modify the auction to include a backup LP.

Epoch 1 is accepting bids from market makers. Note in DFlow order flow auctions, the maximum length of an epoch's Auctioning Period is set by the previous epoch's Delivery Period.

2. Determining Auction Winner

The auction winner is determined during the Auctioning Period where the highest bidding market maker receives the right to execute the order flow.

Let's say three market makers participated in epoch 1 and here are their bids. None of them or DFlow can see the bid values.

Bid Value

Bid-Reveal Scheme

DFlow order flow auctions use a bid-reveal scheme to determine the winner. Initially, market makers submit blind bids into their desired auctions. After a specific time, market makers can no longer submit new bids and to win the order flow, they must reveal their bids by the end of the epoch's Auctioning Period.

The length of this bidding period is determined by a set of protocol specified parameters. In this case, the length is determined by multiplying the Time Factor and the Delivery Period, meaning market makers have 1.4 days of bidding time.

Protocol Parameters

Here, Market Maker C is the winner and receives the right to fill $500,000 of SOL-USDC orders from Wallet A!

3A. Delivering Orders

Wallet A now has a maximum of 3 days to deliver $500,000 of SOL-USDC orders within the range of ($0, 500] to Market Maker C (winner of epoch 1). Note here the active epochs are epoch 1 and 2.

Auction Rollover Example 3

Failure to deliver the full amount will result in a pro rata refund to the market maker. For example, if Wallet A delivered 20% of Notional Size and since Market Maker C paid 1000 USDC for the flow, the market maker will receive 800 USDC back at the end of the Delivery Period.

Similarly, the bid amount will be paid pro rata to the wallet as orders are delivered!

3B. Determining New Auction Winner

While epoch 1 is delivering orders, epoch 2 is now accepting bids from market makers. This step is similar to Step 2 with one big difference. Epoch 1's Delivery Period may end sooner than the user-defined length (3 days, in this case) if Wallet A finishes delivery of the full $500,000 of SOL-USDC ahead of time.

4. Repeating Auction

When epoch 1 is done delivering, epoch 2 begins delivering, and epoch 3 starts accepting bids from market makers. Wallets need only set up once and auction will roll over sequentially like described!

Auction Rollover Example 3