← Back to list

Two Ways to Price a Name: Auctions Come to DEXignation

A fixed price answers one question — *will you pay this?* It does not answer the more interesting one: *what is this name actually worth?*…

Roy in DEXignation · 2026-06-19 11:05 · 0 claps · 4.6 min read
#web3 #auction #solidity #blockchain #smart-contracts
Open on Medium ↗
Wiki topics: CRY · Crypto & Web3

Two Ways to Price a Name: Auctions Come to DEXignation

A fixed price answers one question — will you pay this? It does not answer the more interesting one: what is this name actually worth? For a generic name that is fine; the seller picks a number and waits. But for a name people genuinely compete for, a fixed price either leaves money on the table or scares everyone off. So we added auctions to DEXignation — two kinds, because there are two very different situations a seller can be in.

This post is about why both exist and how each one works.

The problem a fixed price can’t solve

Imagine two names. One is ordinary; a handful of people might want it, and any of them would happily pay a set price. The other is the kind several people will fight over. If you put the contested name up at a fixed price, you are guessing — set it too low and the first buyer captures all the upside, set it too high and it sits unsold while you wonder if you misjudged. The market knows what the name is worth far better than the seller does. An auction is simply the mechanism that lets the market say so.

That is the English auction: bidders push the price up until only one remains, and the name goes to whoever valued it most. It is the right tool when there is competition to harness.

But competition is exactly what a young marketplace lacks. Early on there may be only a few interested buyers for any given name, and an ascending auction with one bidder is just a slow fixed price. For that situation — and especially for releasing a batch of premium names before a crowd has formed — the descending Dutch auction is the better fit. So we built both.

The English auction: let bidders compete, safely

The mechanics most people picture when they hear “auction” are the ascending kind, and the version that has become standard across NFT marketplaces carries four safeguards we adopted directly.

The first is escrow. When you bid, your stablecoin moves into the contract and is held there. This sounds like a small detail but it removes an entire failure mode: the winner can never turn out to be unable to pay, because they already have. The second is pull refunds. When someone outbids you, your funds are not pushed back to you automatically — they are credited to a ledger, and you withdraw them yourself. Auto-sending refunds seems friendlier, but it hands a hostile bidder a weapon: a contract that refuses to receive funds could make every refund fail and freeze the whole auction. Letting each bidder pull their own refund closes that door.

The third safeguard is anti-snipe. Without it, the winning move is to bid in the final second, denying everyone else a chance to respond — which punishes honest bidders and suppresses the price. So a bid inside the closing window pushes the deadline outward. The auction ends only when bidding actually stops, not when the clock happens to run out mid-contest. The fourth is a minimum increment: each new bid must beat the current top by a set margin, so the auction moves in meaningful steps rather than a war of one-unit raises.

Settlement deserves a note, because it is where a subtle bug lived until our tests caught it. After the auction closes, anyone can call settle — not just the winner — so the auction can never get stuck waiting on a particular person. Settlement pays the seller and transfers the name in one atomic step. But what if, by the time settlement runs, the seller has moved the name elsewhere? The tempting answer is to reject the settlement. That turns out to be wrong: rejecting it would also undo the bookkeeping that credits the winner’s refund, trapping their escrowed money. The correct behavior is to end the auction gracefully, credit the winner so they can withdraw, and simply skip the transfer. Writing the test first is what surfaced this; it is exactly the kind of thing that quietly loses user funds in production.

The Dutch auction: a price that comes down to meet you

The Dutch auction runs the other direction. The price starts high and descends in steps — holding for a set interval, then dropping by a fixed amount, again and again, down to a floor. The first person willing to buy at the current step gets the name immediately. There is no bidding and no escrow; it is, in effect, a fixed price that keeps lowering itself until someone says yes. That is why it works with almost no users: it never needs two buyers to function, only one.

We made one firm decision here: every step price must be a clean whole number. A name that ticks from 1,000,000 down to 950,000 to 900,000 is legible; one that lands on 947,361.5 is not. So the per-step drop can be given two ways — as a percentage of the start price, or as a flat amount — but in the percentage case the contract refuses to create the auction unless the math divides evenly into a whole number. There are no fractional prices anywhere, by construction. When the price reaches the floor it stays there, and the name remains buyable at that floor indefinitely.

This makes the Dutch auction the natural tool for an initial release. A batch of reserved premium names can each start high and descend on its own schedule; buyers who value a name highly buy early, and the rest find their level as the price comes down. No crowd required.

One name, one state

A name can be listed at a fixed price, or on an English auction, or on a Dutch auction — but never more than one at a time. This is not an arbitrary rule; it follows from the fact that a name is a single token. If it were listed and auctioned simultaneously, a fixed-price buyer could snatch it mid-auction, leaving bidders with escrowed funds and no name. The contracts enforce the rule by checking one another, and the name’s on-chain card reflects whichever state it is in: a quiet mint “LISTED” label, or an amber “AUCTION” one, never both. A seller can always cancel one path and move to another — the exclusion is about any single moment, not about locking the seller into a choice.

Where this leaves us

A name’s value is not a number the seller decrees; it is something the market discovers. Fixed price, English auction, and Dutch auction are three different conversations a seller can have with that market — pay this, or don’t; show me what you’ll pay; I’ll keep lowering until you do. Each fits a different name and a different moment. Together they turn a .dex name from a static listing into something with a real price-discovery mechanism behind it — which, for anyone deciding whether a name is worth owning, is most of the point.

— -

DEXignation issues .dex names as on-chain NFTs with fully on-chain artwork. This post describes the English and Dutch auction contracts that sit alongside the fixed-price marketplace for secondary sales.


메타데이터
post_id
56221c2eccd9
slug
two-ways-to-price-a-name-auctions-come-to-dexignation-56221c2eccd9
url
https://medium.com/dexignation/two-ways-to-price-a-name-auctions-come-to-dexignation-56221c2eccd9
canonical_url
https://medium.com/dexignation/two-ways-to-price-a-name-auctions-come-to-dexignation-56221c2eccd9
author_url
https://medium.com/@punditcode
status
ok
fetched_at
2026-06-22 17:31:34