Auction lifecycle
A detailed example of how an order flow auction works
Let's look at how an auction moves through its primary phases.
Phase 0: Auction is created
Wallet A creates and deploys the following auction on the DFlow Chain. This auction is immediately accepting bids from market makers.

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

When My-Auction-1 is created, both epoch 0 and 1 are active.
Epoch 1 is accepting bids from market makers. The maximum length of an epoch's auctioning period is exactly the same as the previous epoch's delivery period. In other words, the length of an auctioning period is variable and depends on the speed of order delivery.
Phase 1: Auction winner is determined
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-reveal scheme
DFlow 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.
Time factor is set to 70% and notional factor is set to 70%.
Here, Market Maker C is the winner and receives the right to fill $500,000 of SOL-USDC orders from Wallet A.
Phase 2A: Orders are delivered
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.

The bid amount will be paid pro rata to the wallet as orders are delivered. For example, if Wallet A delivers a $5,000 order, Wallet A will receive 10 USDC (1% of 1,000 USDC).
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 1,000 USDC for the flow, the market maker will receive 800 USDC back at the end of the delivery period.
Phase 2B: New auction winner is determined
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 predefined length (3 days, in this case) if Wallet A finishes delivery of the full $500,000 of SOL-USDC ahead of time.
Phase 3: Auction cycle repeats
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.

Updated 4 months ago
Auction proceeds are a meaningful source of revenue for wallets. Find out how payments work.