The simple, open convention for listing domains for sale
Defined within the IETF, on its way to becoming an RFC — already in operational use at the .nl registry since 2022
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.
A DNS query resolves in milliseconds. Anyone can check a single domain without relying on a third-party listing service.
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.
It's an operational convention on top of an ordinary TXT record — nothing to implement beyond editing your zone.
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.
Anyone can check with dig _for-sale.example.com TXT. A valid version tag is what marks the record as a genuine "_for-sale" indicator.
Depending on which content tag is present, the interested party gets a URI, phone number, free-text note, or an opaque code meant for a specific processor.
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.
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 draft, should be treated as "for sale" with no further detail.
The draft 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 draft-davids-forsalereg and there is no registered schema for it. Treat it as a suggestion, not a standard.
It's an IETF Internet-Draft on the informational track that has cleared IETF review and is now in the RFC Editor's queue, on its way to becoming an RFC. It has already been used operationally at the .nl registry since 2022.
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.
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.
The DNS record itself is the proof: only whoever controls the zone (the domain holder, or someone with delegated DNS access) can create it.
Delete the "_for-sale" TXT record(s) from your zone. There's no "not for sale" value to set — per the draft, that kind of content is explicitly invalid. The record's presence is the signal, so remove it.
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.
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.
Log into your DNS provider, add one TXT record at the "_for-sale" label, done.