Why this convention?
No middleman required
A domain being registered doesn't mean it can't be bought. This convention lets a holder signal availability directly, without going through a marketplace.
Instant discovery
A DNS query resolves in milliseconds. Anyone can check a single domain without relying on a third-party listing service.
Works alongside an active domain
The indicator can be added even while the domain is still in use for a website or mail, and toggled on or off at will — or on domains with no web server at all.
No protocol change
It's an operational convention on top of an ordinary TXT record — nothing to implement beyond editing your zone.
How it works
Holder marks the domain for sale
In your DNS zone, add a TXT record at _for-sale for the domain. At minimum it must contain the version tag v=FORSALE1; — a content tag is optional but recommended.
Interested party queries DNS
Anyone can check with dig _for-sale.example.com TXT. Instant, free, universal. A valid version tag is what marks the record as a genuine "_for-sale" indicator.
Direct engagement
Interested party reaches out directly. No platform in the middle. No commission.
The presence of a valid version tag is itself the signal. Removing the record (rather than setting some "not for sale" value) is how a holder withdraws the listing.
Record format
Every record starts with the literal version tag v=FORSALE1;, optionally followed by exactly one content tag/value pair. A single TXT record may not contain more than one tag/value pair — but multiple TXT records are allowed in the same RRset, each with a different tag.
| Tag | Meaning | |
|---|---|---|
| v=FORSALE1; | Version tag. Fixed literal value, case-sensitive, must be present. | Required |
| fcod= | Opaque code with meaning agreed between cooperating parties (e.g. a registry back-end lookup). | Optional |
| ftxt= | Free-form, human-readable text. | Optional |
| furi= | Exactly one URI for interested parties — typically http, https, mailto, or tel. | Recommended |
| fval= | Indicative asking price: an uppercase currency code directly followed by an amount, e.g. EUR999. | Optional |
Providing at least one content tag is recommended so interested parties have a way to engage — but a record with only the version tag is valid and, per the RFC, should be treated as "for sale" with no further detail.
Examples per tag
Version tag only
ftxt= — free text
furi= — contact URI
fval= — indicative asking price
Multiple records in one RRset
Optional: pointing to a details file
The RFC doesn't define a file format for extended listing details — it only defines the DNS record. If you want to share more than a single content tag can hold, one approach is to publish a file yourself and point to it with a furi= tag:
The example below is one possible way to structure such a file — it is not part of rfc10023 and there is no registered schema for it. Treat it as a suggestion, not a standard.
forsale.txt (illustrative, non-normative)
Checking a domain
FAQ
Is this an official standard?
It's an IETF RFC on the Informational track that has cleared IETF review and represents the consensus of the IETF community. It has already been used operationally at the .nl registry since 2022.
Is this free to use?
Yes. It's just a DNS TXT record — no fees, accounts, or platform involved beyond whatever your DNS provider already charges for hosting your zone.
Do I need a details file as well as the DNS record?
No. The DNS record alone, even with just the version tag, is a valid indicator. A linked file is only useful if you want to share more than a single content tag allows.
How does ownership verification work?
The DNS record itself is the proof: only whoever controls the zone (the domain holder, or someone with delegated DNS access) can create it.
How do I remove my listing?
Delete the "_for-sale" TXT record(s) from your zone. There's no "not for sale" value to set — per the RFC, that kind of content is explicitly invalid. The record's presence is the signal, so remove it.
Can I mark a domain as sold?
There's no "sold" tag defined. Once a sale completes (or the domain is no longer for sale for any reason), remove the "_for-sale" record.
Which DNS providers support this?
Any of them — it's a plain TXT record. Cloudflare, Route 53, Google Cloud DNS, and effectively every other DNS provider support TXT records at arbitrary labels.
Get started
Log into your DNS provider, add one TXT record at the "_for-sale" label, done.