You can now tell the entire internet that a domain is for sale by publishing one DNS record. RFC 10023, out in July 2026 and registered with IANA, reserves _for-sale as a globally scoped underscored node name and defines exactly what the TXT record under it should say. Roughly 250,000 records are already live.
Here is the whole thing:
RelatedWeb Bot Auth: The IETF Standard to Verify AI Agents
Why did this need a standard at all?
Because the old path stopped working. If you wanted to buy a domain that was clearly parked or abandoned, you looked up WHOIS and sent a cold email. Then privacy redaction became the default across most of the industry and that contact address disappeared behind a proxy. The result is a market where a lot of holders are willing to sell and no interested buyer can find that out.
Parking pages solved it for some people, at the cost of taking the domain out of service. That trade is fine for a speculator sitting on inventory and useless for anyone running a live site who would still take the right offer. A DNS record sidesteps the whole problem: the site keeps serving, and the signal lives somewhere machines already look.
What can you actually put in it?
Four content tags, and you pick at most one per record.
| Tag | Carries | Format | Example |
|---|---|---|---|
| ftxt= | human-readable note | up to 239 octets | Serious offers only |
| furi= | where to make contact | http, https, mailto or tel | mailto:[email protected] |
| fval= | asking price | letters then digits | USD999 |
| fcod= | a proprietary code | up to 239 octets | broker-specific token |
The fval format is deliberately dumb: a currency-ish letter run followed by digits and an optional decimal, so USD12500 or EUR7500.00. No exchange rates, no negotiation state, no expiry. The spec is not trying to be a marketplace protocol. It is trying to be a flag.
The one-pair-per-record limit throws people. If you want both a price and a contact URI, you publish two TXT records under the same _for-sale name and let them sit in the same RRset. That keeps each record parseable on its own, which matters when the consumer is a crawler that may only sample part of a zone.
Who is this for?
The intended readers are registrars, domain marketplaces, brokers, availability checkers, and WHOIS or RDAP front ends. Any of them can look up one record and know whether it is worth showing a "make an offer" button, without scraping a parking page or guessing from a nameserver pattern.
Marco Davids, who wrote it, is at SIDN Labs, the research arm of the operator that runs the .nl registry. That origin shows in the design. It reads like something written by people who run a zone and think about what happens when several hundred thousand of these appear at once, rather than like a marketplace trying to lock in a format.
RelatedMicrosoft 365 Down: SharePoint Is 78% of the Complaints
What is the catch?
You are publishing intent in a place anyone can read at scale. That is the whole point and also the risk. A crawler can enumerate every domain in a zone carrying this record, which is exactly the list a domain-spam operation would want. The counter-argument is that these operations already scrape parking pages and expired-domain feeds, and at least this way the holder controls what is disclosed and can pull it in one edit.
Publishing fval is the decision that deserves real thought. An asking price in a public record is an anchor you cannot walk back mid-negotiation, and it tells competitors what you think your own name is worth. Plenty of holders will sensibly publish a bare version tag, or just a furi, and keep the number for the conversation.
- Registrar UI support. The record is trivial to publish by hand. It becomes normal only when a control panel offers a checkbox for it.
- RDAP surfacing. If lookup services start showing the for-sale flag next to registration data, this stops being a niche convention.
- Abuse feedback. Watch whether early publishers report a spike in unsolicited offers. That result decides adoption more than any spec detail.
- A second version tag. FORSALE1 implies a FORSALE2. Anything more expressive, like expiry or negotiation state, needs one.
Our take
The genuinely notable thing here is not the syntax, it is the precedent. Every globally scoped underscored record before this one signalled technical policy: _dmarc and _domainkey describe how your mail is authenticated, _acme-challenge says who may issue you a certificate. _for-sale is the first IETF-registered one whose entire purpose is to say that a party wants to transact. DNS just picked up a commercial layer, in about as small a way as that could possibly be done.
Whether it sticks depends on consumers, not publishers. 250,000 records is a real start and still a rounding error against the size of the DNS. If two or three large marketplaces start reading it, everyone else follows in a week. If none do, this ends up as a well-written RFC that a few thousand people found interesting, which is a fate plenty of good specs have met.
- StandardRFC 10023: The "_for-sale" Underscored and Globally Scoped DNS Node Name Informational, July 2026, Marco Davids, SIDN Labs
- Draftdraft-davids-forsalereg-05 the working draft, useful for the design rationale
- RegistryIANA Underscored and Globally Scoped DNS Node Names where _for-sale now sits alongside _dmarc and _acme-challenge
- CoverageDomain Incite on the deployed record count the 250,000 figure and early industry reaction
Original analysis by GenZTech, written from RFC 10023, the draft-davids-forsalereg working drafts, and the IANA underscored node name registry.
