The .agent namespace

A name people can actually say.

A Solana mint address is 44 characters of base58. Every token Fixr launches also gets a .agent name that resolves to it.
.agent
This is not DNS, and it is not a .sol. Fixr runs the registry and the resolver, so a .agent name means what https://fixr.nexus/api/resolve says it means — and nothing more. It will not load in a browser address bar, it is not an ICANN top-level domain, and it is not recorded on chain. If Fixr stops answering, the name stops resolving.

Resolving one

The resolver is a plain GET. No key, no rate limit worth mentioning, CORS open — anything that wants to resolve a name can.

$ curl 'https://fixr.nexus/api/resolve?name=yourproject'

{
  "name": "yourproject.agent",
  "valid": true,
  "resolved": true,
  "registered": true,
  "mint": "7xKq2mPvR4nT8wLbYc3ZfHjD5sQe1UgA9vagent",
  "registeredAt": 1755820000000
}

Reverse lookups work too — every name pointing at a mint:

$ curl 'https://fixr.nexus/api/resolve?mint=7xKq…agent'

{ "mint": "7xKq…agent", "names": ["yourproject.agent"], "count": 1 }

What makes a valid name

Lowercase a-z, digits and hyphens. 3 to 32 characters. No leading, trailing or doubled hyphens.

Deliberately narrower than a domain name: no Unicode at all. Not because it would be hard to support, but because аgent written with a Cyrillic а is a different string that renders identically to agent in every interface that will ever display it. A namespace where two names can look the same is a namespace built for impersonation, so names normalise to plain ASCII or they are refused.

A short list of names is reserved — fixr, api, admin, support and similar — for the same reason.

Status codes

Four outcomes, and they are four different responses on purpose. An unregistered name is a 404. A malformed one is a 400 with the reason. A resolver that cannot reach its store returns 503 — never an empty result, because a caller that treats absence as fact would read an outage as “this name is free”.