The fact-check layer for LLM-generated names

The brand name your AI suggested? There's a 1 in 4 chance it's already taken.

Etymolt checks the actual registers. Signed verdict in three seconds.

Read the benchmark — 129,600 generations across GPT-5, Claude, and Gemini.

FIG 0.1 — Check a name

Check a name

Onyma Stratagem Verinym
verifying · 5 axes
Stratagem
class 9 + 42 · software · 3.24s
PROCEED · 73
Trademark72
Domain45
Cultural92
Phonetic80
Prior Art76
ed25519 · sig NAobTAx...7Kf9 · 2026-06-15T09:12:04Z verdict_id v_2fae9c65
FIG 0.3 — The five axes

Every axis traces to a record.

FIG 0.3.1
01 / Trademark

Live registry sweep

USPTO TESS full-text · EUIPO · UKIPO · WIPO Madrid. POCA phonemic confusability and §2(d) per Nice class.

TESS · 4 jurisdictions
FIG 0.3.2
02 / Domain

RDAP + handles

6 TLDs via RDAP authoritative — .com .ai .dev .io .so .co. Handle availability across GitHub, X, npm, PyPI.

RDAP · 6 platforms
FIG 0.3.3
03 / Cultural

Cross-language NLP

30-language Hurtlex + Unicode-confusable fold. Tier 2: 3-LLM advisory panel — Claude, GPT-4o, Gemini.

NLP · 30 langs
FIG 0.3.4
04 / Phonetic

IPA distance

Phoneme-class rules + phonetic-neighbor distance. Sound symbolism scoring. English ASCII on v1, Whisper-deep on v3.

IPA · heuristic
FIG 0.3.5
05 / Prior Art

SERP footprint

Search-engine prior art — existing product pages, GitHub repos, Wikipedia entries. Collision density scoring.

SERP · live index
FIG 0.4 — Integration

One endpoint. One verdict.

POST /v1/verify
$ curl https://api.etymolt.com/v1/verify \
    -H "Authorization: Bearer sk_..." \
    -H "Content-Type: application/json" \
    -d '{"name":"Stratagem"}'

# 3.24s later
{
  "verdict": "PROCEED",
  "score": 73,
  "axes": {
    "trademark": 72,
    "domain":    45,
    "cultural":  92,
    "phonetic":  80,
    "prior_art": 76
  },
  "signature_key_id": "etymolt-1779085662"
}
from etymolt import Etymolt

client = Etymolt(api_key="sk_...")
verdict = client.verify(name="Stratagem")

print(verdict.verdict)    # "PROCEED"
print(verdict.score)      # 73
print(verdict.axes)       # {trademark:72, domain:45, ...}
print(verdict.signature)  # ed25519 receipt
import { verifyName } from '@etymolt/sdk';

const verdict = await verifyName('Stratagem');

console.log(verdict.verdict);       // 'PROCEED'
console.log(verdict.score);         // 73
console.log(verdict.axes);          // {trademark:72, ...}
console.log(verdict.signature);     // ed25519 receipt
Full SDK + examples View on GitHub
FIG 0.5 — Pricing
$0.25 per verdict

5 free checks on signup · API key in 30 seconds · Ed25519-signed receipts

Every verdict is Ed25519-signed. Not legal advice.