DeedSource

Domain ownership, made legible

Prove you own a domain.And see exactly why when you can’t.

Deed issues one TXT record, then reads it back from three independent resolvers. When the answer is wrong, it names the provider quirk that broke it — and tells you whether waiting will help.

How it works

Read-only: Deed never writes to your DNS. No domain to hand? Any .test name runs against a zone you edit yourself.

Deed of claim

acme.com

TXT_deed-challengedeed-challenge=uyxawsmda4…dzscadiqa3q
  • Cloudflare · 1.1.1.1has your token5 min
  • Google · 8.8.8.8has your token4 h
  • AdGuard · unfilterednot yet—
An example claim, proven at two of three resolvers.

How it works

Three steps, and nothing goes quiet.

  1. 01

    Claim

    Type a domain. Before a token exists, Deed reads the zone: whose panel you are about to open, whether a wildcard answers, whether the host is already a CNAME.

  2. 02

    Publish

    One TXT record, copied cell by cell, under the field names your provider’s own panel uses — so what you paste is what it asks for.

  3. 03

    Watch

    Three resolvers answer. You see who has it, who is still caching the old answer and for how long — and Deed keeps checking after it verifies.

When it breaks

Not pending. A cause.

Every diagnosis answers two questions: does waiting help, and what exactly do you do. Here are three of the thirteen.

waiting will not fix this

Your provider wrapped the value in quotes

Paste the value without quotes. The panel adds its own.

waiting helps

Seen by 1 of 3 resolvers

Cloudflare · 1.1.1.1 already has it. The rest are still serving a cached answer, for up to 4 hours.

waiting will not fix this

The record is missing; a wildcard is answering in its place

Create the TXT record. An explicit record overrides the wildcard.

Built as a study

A small product, built carefully.

A pure, exhaustively tested state machine. Resolvers behind one port, with a simulated zone that drives the same engine. Invariants held by Postgres rather than by convention. And a decision log that keeps what was tried and cut.

Read the source