Sealed-Bid Auction
HyperDex uses a first-price sealed-bid auction. Every maker submits their best price in secret during a 30-second window. No maker can see what others have bid. The taker sees only the single best result after the window closes.
Why sealed bids?
Open auctions (where makers can see each other's bids) degenerate into minimal-increment games — makers undercut each other by fractions of a basis point rather than competing on true value. Sealed bids force each maker to bid their genuine best price, producing better outcomes for takers.
Why 30 seconds?
30 seconds is long enough for makers to consult external market data and calculate a confident price, but short enough that the quote does not become stale relative to market movements. Makers include an expiry timestamp in their quote and will not bid if they cannot hedge within the window.
Auction states
| State | Duration | What happens |
|---|---|---|
| collecting | 30 seconds | Backend broadcasts RFQ to all makers via WS; makers submit sealed bids |
| completed | 10 seconds | Best bid revealed to taker; taker decides to accept or reject |
| executing | Instant | Taker signs in Freighter; transaction submitted to Stellar |
| confirming | ~5 seconds | Waiting for Stellar ledger confirmation |
| success | Terminal | Trade settled; tokens in taker wallet |
| no_quotes | Terminal | Zero bids received; taker can retry |
| rejected | Terminal | Taker declined the quote; no funds moved |