Open research platform

Every domain has a second life.

DomainDefender captures the full lifecycle, registered, resolved, expired, reused, weaponized, across every TLD we can access, and turns it into a reproducible research pipeline and a live defensive signal.

Live globe
Spotlight --
records
dnssec
top tld
43,867 records on globe · 232 countries lit · all
full map →
LEGITIMATE SITES REUSED DOMAIN ATTACK TARGETS old-blog.com partner-site.org directory.net phish-target.xyz steal-creds.site ads.scamnet.top REUSED reused-bank.shop STALE-LINK ATTACK · IN PROGRESS
0
Domains catalogued
zone_file collection
0
TLDs monitored
1,088 gTLDs + 79 ccTLDs
0
Records enriched
domain_metadata
0
RDAP lookups · ok
registrar, dates, ns, dnssec
0
Unique registrars
observed to date
0
DNSSEC-signed records
delegation signed
The lifecycle

From birth to rebirth.

Every domain passes through a sequence of states. The interesting ones, the risky ones, come back to life under new ownership, inheriting the legitimate trust of their previous life as attack surface.

click any stage to see what the pipeline captures
Inherited trust signal

Legitimate inbound links accumulate over years, survive expiration, and still point to the same domain after re-registration, now under a different owner. That gap between stage 3 and stage 6 is the attack surface.

chart below is conceptual, showing the shape of the trust vs.
risk story. Not a measurement of any specific domain.

The pipeline

Five layers. Data flowing through.

Each layer deepens the record. Watch data flow from ground-truth registration facts up to detection-ready signals.

  1. 01

    Zone File Collection

    ICANN CZDS · RFC 1035 parser

    Every registered domain under every accessible TLD, with all DNS record types.

    domain tld dns_records{} parsed_at
  2. 02

    RDAP enrichment

    RDAP (IANA bootstrap)

    Registrar, IANA ID, registration dates, nameservers, DNSSEC, EPP status, registrant country.

    registrar registrar_iana_id creation_date expiry_date updated_date nameservers[] dnssec status[] registrant_country
  3. 03

    DoH liveness + IP intel

    Cloudflare 1.1.1.1 · Google 8.8.8.8 · ip-api

    Re-resolve every match over DoH. For each live IP, ASN / country / ISP via ip-api enrichment.

    resolves resolves_a[] live_check_at ip_intel.{asn,country,isp}
  4. 04

    Brand-impersonation surface

    match.py · cctld_probe.py · DoH-as-oracle

    242 brands × 5 detection layers (TLD-squat, homoglyph, idn-punycode, combosquat, dl1) joined against 1,160 TLDs.

    brand layer candidate_sld tld tranco_rank
  5. 05

    Cross-reference + linking

    PhishTank · URLhaus · CryptoScamDB · OpenPhish · ThreatFox · Phishing.Database

    Six abuse feeds + a non-CDN IP/ASN graph layer. Trichotomy: known-bad / linked-bad / blind-spot.

    known_bad_sources[] linked_bad defensive_likely blocklist_hit[]
Hot signals

What just happened in the dataset.

Time-sensitive slices, what's fresh, what's about to expire, what's aging, drawn from live data at build time.

Registered · 30d
18
creation_date within last 30 days
Registered · 90d
19,842
within last quarter
Expiring · 30d
29,529
expiry_date within next 30 days
Pending delete
1,832
status contains pendingDelete
Freshly registered

Last 30 days.

18 total
Expiring soon

Next 30 days.

29,529 total
Age distribution

How old are records?

Bucket by age at the time of the snapshot. Fresh domains are disproportionately risky signals for abuse research.

< 30 days
18
30–90 days
19,824
90d – 1y
149,685
1y+
340,036
Findings

What 2,937,143 records tell us.

Direct aggregations off domain_metadata. Every number is real, computed at build time. Coverage per TLD is capped at a 5,000-domain stratified sample, so within-TLD percentages are estimates (±1.4% margin), not exhaustive counts.

Registration recency

When were these domains born?

By creation year.

27,782 2015 20,962 2016 18,459 2017 16,302 2018 15,160 2019 17,985 2020 20,765 2021 22,032 2022 35,389 2023 40,637 2024 171,473 2025 64,011 2026
DNSSEC adoption

Signed vs unsigned.

Share of records with DNSSEC delegation, by TLD.

.africa
1.2%
.com
3.9%
.realtor
0.0%
.dvag
0.0%
.pics
2.6%
.feedback
0.3%
.xn--55qx5d
0.1%
.xn--3ds443g
0.0%
.locker
0.8%
.site
2.0%
Registrant geography

Where registrants declare they are.

Top ISO-3166 alpha-2 registrant countries from the clean subset of the RDAP data.

HE
6,849
OH
5,378
CA
4,714
ON
3,270
DE
2,843
NC
2,605
AZ
1,678
BW
1,625

source · domaindefender @ localhost:27019 · build-time snapshot

Multi-TLD brands

Same name, many extensions.

Second-level labels that appear under 3+ different TLDs in our sample. A rough proxy for defensive / brand-protection registrations, sometimes for campaign-style bulk buying. The colored chip on each row tells you which is which:

defensive

≥80% of registrations via one registrar. Single corporate footprint — Com Laude, MarkMonitor, CSC. Genuine brand-protection.

mixed

50–80% via one registrar. Some defensive registrations, the rest spread elsewhere — partial brand control.

dispersed

<50% via one registrar. No single owner — opportunistic, contested, or many independent registrants sharing the name.

Hover any chip to see the dominant registrar, exact share, distinct registrar count, and HHI (Herfindahl-Hirschman Index — industry-standard concentration measure; 10 000 = monopoly, <2 500 = competitive).

no multi-TLD brands at build time
Registration velocity

The pulse of new registrations.

Count of domains created per day over the last 180 days, a daily reading of the registration firehose, drawn straight from the RDAP creation_date.

no velocity data at build time
Registration length

How long is a domain bought for?

expiry_date − creation_date. Most registrations are minimum-term (one year), long-lead 5+ year terms are the rare infrastructure investments.

no signal at build time
DNSSEC leaderboard

Which registrars sign by default?

DNSSEC adoption is still uneven across the industry. These are the registrars with the highest share of signed delegations, filtered to those with at least 100 record domains in our sample.

no signal at build time
EPP status

How domains are locked.

Every RDAP record carries a set of EPP status flags. They encode who has locked what: registrar locks (client*) and registry locks (server*). Frequencies below reveal the defaults of the industry, transfer locks are near-universal, delete/update locks much rarer.

status code count % of records
client transfer prohibited
372,307 73.0%
client delete prohibited
114,549 22.5%
active
101,081 19.8%
client update prohibited
81,051 15.9%
client renew prohibited
44,378 8.7%
server transfer prohibited
42,828 8.4%
auto renew period
33,233 6.5%
pending renew
3,404 0.7%
redemption period
3,094 0.6%
pending delete
1,879 0.4%
renew period
1,663 0.3%
add period
1,353 0.3%
server hold
1,185 0.2%
server update prohibited
1,116 0.2%
server delete prohibited
803 0.2%
server renew prohibited
389 0.1%
client hold
336 0.1%
inactive
335 0.1%
transfer period
87 0.0%
pending transfer
61 0.0%
DNS providers

Who actually runs the internet's DNS?

Every record lists its authoritative nameservers. Rolled up to the provider family (second-level suffix), a handful of operators are visible behind a very long tail of small self-hosted setups.

Top 15 nameserver families
510,189 domains with NS data
01
cloudflare.com
69,862 13.69%
02
domaincontrol.com
41,454 8.13%
03
registrar-servers.com
24,711 4.84%
04
alidns.com
15,680 3.07%
05
googledomains.com
14,146 2.77%
06
co.uk
11,082 2.17%
07
porkbun.com
10,654 2.09%
08
abovedomains.com
9,529 1.87%
09
ovh.net
9,375 1.84%
10
ui-dns.com
8,164 1.60%
11
ui-dns.org
8,163 1.60%
12
ui-dns.de
8,160 1.60%
13
ui-dns.biz
8,160 1.60%
14
spaceship.net
7,763 1.52%
15
dyna-ns.net
7,684 1.51%

counts are distinct domains, a domain delegating to ns1+ns2 of the same provider counts once

Naming & abuse patterns

Five lenses on what attackers actually name.

From basic structural patterns (length, hyphens, IDN) to specific abuse signatures (lookalikes, bulk-bursts). Each tab is its own slice; the underlying data is the same.

Naming patterns

What domain names look like.

Length, character class, and encoding patterns of the second-level label. Abuse research cares about these: long random-looking strings, double hyphens, and numeric-heavy names correlate with disposable registrations.

SLD length

How long is the name itself?

Characters in the second-level label (before the dot).

1–3
25,387
4–5
85,787
6–8
142,389
9–12
135,234
13–17
78,655
18–24
33,862
25+
8,875
Pattern signals

How often do these show up?

Share of records (n = 510,189).

Contains a hyphen
sld matches /-/
12.9%
65,613
Contains a digit
sld matches /[0-9]/
17.2%
87,615
All-numeric SLD
sld matches /^[0-9]+$/
2.2%
11,469
Internationalized (xn--)
punycode-encoded IDN
4.8%
24,398
Two-char SLD
ultra-short names
0.7%
3,508
Double hyphen (--)
often machine-minted
4.8%
24,416
Domain spotlight

Look at individual records.

Aggregations are useful but sometimes you need to see one domain at a time — the oldest in the dataset, the shape of a record, or what's flowing through right now.

Hall of fame

The extremes of the dataset.

The oldest domains we have indexed, some registered in the early 90s, still live and paid for, alongside the freshest ones minted in the last few hours.

Oldest record

Still alive after 3+ decades.

sort · creation_date asc

(no data)

Newest record

Minted in the last few hours.

sort · creation_date desc

(no data)

TLD coverage

Real TLDs. Real counts.

0 well-known TLDs from our zone corpus, 0 domains shown here, drawn at build time. Bubble size is proportional to the log of domain count.

click any bubble to open its TLD detail page
Verisign CentralNic PIR Identity Digital Other registries
Geography

Where in the world.

Registrant country is the geographic signal at registration time. Hosting region is the geographic signal at resolution time. They tell different stories.

Registrant map

Where registrants declare they are.

Plotted from the registrant_country field of the RDAP response. Country outlines come from Natural Earth (110m). Drag the globe to rotate; click any country to open its detail card. Lens switcher changes what the colors track.

43,867 · 45 placed / 232 countries
CA DE

32,802 records have a clean ISO country we don't have a centroid for, bubbles skipped (country polygon still drawn).

Pipeline health

How clean is the data?

Not every RDAP call succeeds. Some registries rate-limit, some don't publish RDAP at all, some time out. The rdap_status field records the outcome for every attempt. These are the real success/failure shapes.

Outcome mix
0 attempts
Success rate · by TLD

Top 10 TLDs with ≥ 200 RDAP attempts.

(no TLD-level data)

Intelligence API

Query the corpus, programmatically.

The same live MongoDB aggregations powering this site, exposed as a versioned REST API. Lifecycle endpoints (fresh / expiring / pending-delete / stale) are the core differentiator, plus per-domain biography that commercial infrastructure-graph vendors don't publish.

3 endpoints · 30 seconds
# corpus size + latest record, public
curl https://api.domaindefender/v1/meta

# full record for a single domain
curl -H "X-API-Key: $KEY" \
  https://api.domaindefender/v1/domain/example.com

# lifecycle — what registered in the last 7 days?
curl -H "X-API-Key: $KEY" \
  https://api.domaindefender/v1/lifecycle/fresh?window_days=7
14+ endpoints
domain / tld / registrar / country / search / lifecycle / system
Live data, no mocks
every response is a fresh MongoDB query; no pre-baked snapshots
Auth + rate limits
X-API-Key header, SHA-256 hashed keys, per-tier budgets
OpenAPI + try-it
auto-generated Swagger UI at /v1/docs
Principles

Why open.

Reproducibility

Collection code and record schemas are published so findings can be independently verified.

Dataset access

Domain records are made available to researchers on request, under terms consistent with ICANN CZDS.

Methodology transparency

Every layer of the pipeline is documented: what is collected, how, from where, and with what known limitations.

Go deeper

Read next.

Pipeline
loading…