DomainAttest is an open protocol that lets any registrar issue a signed, short-lived attestation that an account controls a domain, and lets any marketplace, or any other service, verify it in seconds. No TXT records, no propagation delays, no stale verifications.
Read the specification Read the whitepaper → PDFSeller Marketplace Registrar │ │ │ │ list domain │ │ ├──────────────────────>│ │ │ │ redirect (OAuth) │ │<──────────────────────┤ │ │ │ │ log in with existing account + 2FA, approve │ ├───────────────────────────────────────────────>│ │ │ │ │ │ signed ownership │ │ │ attestation │ │ │<───────────────────────┤ │ │ │ │ verify signature, │ │ listing goes live │
DomainAttest is a profile of the OAuth 2.0 authorization code flow with PKCE. It introduces no new cryptography, no new identity system, and no bearer secrets that can be phished.
Verification friction costs every side of the market. Removing it pays every side, too.
The protocol repositions the registrar as the authority every marketplace depends on to answer the ownership question.
Supply is the scarce resource, and verification friction leaks it at the moment of highest seller intent.
Verification finally costs what it should: one click inside the account you already control.
Buyers get listings backed by registrar-level proof of who controls the domain now, not who controlled it when the listing was created.
A growing share of domain discovery and acquisition runs through AI agents, and an agent cannot open a DNS panel, paste a TXT record, and wait for propagation. DomainAttest is machine-native end to end: registrar discovery via a /.well-known endpoint, a standard OAuth flow, and a signed token any client can validate in milliseconds.
Programmatic, instantly verifiable proof of ownership is a prerequisite for agent-mediated domain commerce. DomainAttest defines that layer deliberately, before fragmented workarounds define it by default, while consent stays with the human owner, on the registrar’s own login. Agent-initiated flows with delegated holder consent are on the v2 candidate list.
| DNS verification | DomainAttest | |
|---|---|---|
| Time | Minutes to days | Seconds |
| Seller effort | Manual record edits | One click |
| Proves | DNS control, once | Registrar-of-record ownership, now |
| Freshness | Stale forever | Renewable on demand |
| Failure mode | Mistyped records, propagation | Standard OAuth errors |
| Fraud surface | Passes with hijacked DNS | Requires registrar signature |
| Lander name servers | Re-delegate twice; lander goes dark | Never touches DNS; landers stay up |
| Infrastructure | Custom polling per marketplace | Signature validation |
| Standard | Every marketplace rebuilds it | One open protocol |
There is no bearer secret anywhere in the protocol. The domain industry already fights an epidemic of transfer auth-code phishing, and DomainAttest deliberately adds nothing a holder could be socially engineered out of: consent happens on the registrar’s own login, under the account’s existing protections, and the resulting attestation works only for the one relying party it names.
Attestations expire within 15 minutes, relying parties reject replayed token identifiers, and a compromised signing key affects only that registrar’s domains, bounded by key rotation and token lifetime. The full analysis is in Section 7 of the specification.
Expose one authorization endpoint and one token endpoint over your existing login, and publish a JWKS. Typical effort with a modern auth stack: two to four engineering weeks.
Implementation checklist →Validate registrar-signed attestations per the specification, or integrate the DomainAttest Hub once and gain coverage of every connected registrar, current and future.
Protocol flow →Atom operates the reference implementation (registrar and marketplace) and the DomainAttest Hub. Add yours by pull request.
IMPLEMENTATIONS.md →DNS verification proves control of a zone file at one moment in the past. It is slow, error-prone, passes under hijacked DNS, and goes stale silently. And for actively listed domains it often cannot run at all without collateral damage: most serious listings point their name servers at a marketplace’s landers, so a TXT record added at the registrar is invisible; verifying with a second marketplace means re-delegating, waiting, verifying, re-delegating back, and waiting again, with the lander dark the whole time. The registrar’s own records are the source of truth; DNS was only ever a proxy for them.
No. It is a profile of OAuth 2.0 with signed tokens, the same pattern behind “sign in with Google,” applied to a question registrars can already answer.
DNS verification still works as a fallback. DomainAttest adds a fast path; it does not remove the old one. Coverage grows registrar by registrar.
No. Nothing in the attestation format or flow is specific to marketplaces; the specification deliberately calls the consumer a relying party. Any service that verifies domain control today through a TXT-record challenge, from SaaS onboarding to email and ad-platform setup, can consume attestations the same way. Marketplaces are where the pain is sharpest, so that is where the protocol starts.
The registrar already knows who owns the domain. Now there is a protocol that lets them say so.
DomainAttest standardizes exactly one commodity layer, proving who owns a domain, so marketplaces can stop rebuilding the same verification system and keep competing on everything else.