Back to all posts

AI MEETS DOMAINS:
INTRODUCING
DOMAIN INTELLIGENCE

We just shipped something I've been thinking about for a long time. Domain Intelligence is a new feature at Unstoppable Domains that brings AI-powered context, discovery, and resolution to blockchain-based domains — and it changes what a domain name can actually mean.

For most of the internet's history, a domain name has been a pointer. You type example.com, DNS resolves it to an IP, your browser loads a page. The domain itself carries almost no semantic meaning — it's an address, not an identity.

Blockchain domains changed part of that equation. When you own aaron.crypto, that name is cryptographically yours. It can resolve to a wallet address, a decentralized website, a social profile. The domain becomes an identity primitive. But there was still a missing layer: intelligence. The ability to reason about what a domain means, who it belongs to, what it's connected to, and what you might want to do with it.

That's what Domain Intelligence is.

The Problem

DOMAINS ARE RICH WITH SIGNAL. WE WEREN'T USING IT.

Every domain in the Unstoppable ecosystem carries metadata: resolution records, on-chain ownership history, linked wallet addresses, associated social handles, reverse resolution mappings. Across millions of domains, that's an enormous graph of identity data.

But until now, accessing that data meant knowing exactly what to query. You had to know the domain name, know the record type, know the API. Discovery was essentially nonexistent. If you wanted to find domains associated with a particular wallet, or understand the relationship between two on-chain identities, you were writing custom queries or doing it by hand.

The core insight: a domain isn't just an address. It's a node in a graph of identity, ownership, and intent. AI is the right tool to traverse that graph on your behalf.

WHAT DOMAIN INTELLIGENCE ACTUALLY DOES

At its core, Domain Intelligence is a natural language interface over the Unstoppable Domains resolution graph. It lets you ask questions about domains — and get answers that are grounded in real on-chain data, not hallucinated.

01 — Natural Language Resolution

Instead of querying a specific record type, you can ask: "What wallet addresses does aaron.crypto resolve to?" or "Is this domain connected to any known ENS names?" The system routes your query to the right resolution endpoints, fetches live data, and synthesizes a coherent answer.

02 — Domain Discovery

You can describe what you're looking for and get domain suggestions back. "I want a short domain for a DeFi project focused on lending." The model understands the semantic intent, checks availability across TLDs, and ranks suggestions by relevance — not just alphabetical order or keyword match.

03 — Identity Graph Traversal

Given a wallet address or a domain name, Domain Intelligence can surface the full web of connected identities: other domains owned by the same wallet, reverse resolution mappings, linked social profiles, transaction history signals. It's the kind of lookup that used to take a developer an afternoon to wire up.

Under the Hood

THE ARCHITECTURE

This is a RAG system at its core — retrieval-augmented generation — but with some domain-specific wrinkles that made it more interesting to build than a standard document retrieval pipeline.

The retrieval layer isn't a vector database of static documents. It's a live query layer over our resolution infrastructure. When a question comes in, we classify the intent, route to the appropriate resolution endpoints (on-chain lookups, our indexing layer, reverse resolution APIs), and pull fresh data before the model ever sees it. The model's job is synthesis and reasoning, not recall.

# Simplified intent routing def route_query(query: str) -> ResolverChain: intent = classify_intent(query) # LLM classification step if intent == "resolve": return ResolutionChain(live=True) elif intent == "discover": return DiscoveryChain(tlds=ALL_TLDS, rank_by="semantic") elif intent == "graph": return IdentityGraphChain(depth=2) else: return FallbackChain()

One of the harder problems was grounding. LLMs are confident even when they're wrong, and in a domain resolution context, a hallucinated wallet address is a serious failure mode — not just an embarrassing chatbot moment. We built a strict citation layer: every factual claim in a response is tagged to a specific on-chain source, and the model is instructed to refuse rather than guess when data isn't available.

Latency

On-chain lookups add latency that a typical RAG pipeline doesn't have to deal with. We solved this with aggressive pre-fetching based on intent classification — by the time the model is ready to synthesize, most of the data it needs has already been fetched in parallel. P95 response times are under 1.8 seconds for resolution queries.

Caching

Domain resolution data has natural TTLs — the same TTL semantics that traditional DNS uses. We respect those TTLs in our caching layer, which means we're not serving stale resolution data but we're also not hammering on-chain nodes for every query. It's the same tradeoff DNS engineers have been making for 40 years, just with a new retrieval layer on top.

What's Next

WHERE THIS GOES

Domain Intelligence is shipping first as a developer API and a feature inside the Unstoppable Domains dashboard. But the longer arc here is bigger: we're building toward a world where your domain name is a fully queryable, AI-navigable identity — not just a string you type into a browser.

A few things on the roadmap I'm excited about:

The internet has had 40 years to make domain names useful. I think we're about to compress a lot of that progress into the next two.

Domain Intelligence is available now in the Unstoppable Domains developer portal. The resolution API is free for the first 100k queries. Go build something.

Aaron Quirk

Written by

Aaron Quirk Principal Engineer at Unstoppable Domains. Writing on backend systems, DNS, and AI. Formerly IBM.