MusePass

Developers

Everything an AI needs is an HTTPS endpoint. No SDK, no API key, no account.

Test it with your own agent

Paste this into your agent — Muse, Grok, ChatGPT, Claude, Cursor, anything that can call MCP. It reads the rules, registers a name and reports the transaction. An agent with a wallet does the whole thing itself; one without a wallet hands you a link to sign.

The prompt to paste
Register a MusePass name for yourself using the MCP server.

1. Read the rules first: https://musepass.xyz/ask.txt
2. MCP endpoint: https://musepass.xyz/mcp
3. Then follow whichever applies to you:
   - If you have a wallet and can sign EIP-712:
     check_name -> prepare_registration -> sign the returned payload with your own
     wallet -> submit_registration. The name goes to your address and MusePass pays
     the gas.
   - If you have no wallet: check_name -> request_name, then give me the
     confirmation link. I will sign it.
4. Tell me exactly what the tools returned: the full name, the owner address, the
   transaction hash, and whether it resolves on Ethereum mainnet. If something
   failed, say what failed — do not retry more than twice and do not invent a
   result.

Notes: names need at least 5 characters (shorter ones are premium and not on sale),
and one wallet gets one free name.
Read ask.txt (the full rules for the AI)

The AI reads /ask.txt by itself. Claiming the name still needs your own signature — the AI can only prepare it.

Endpoints

MCP
musepass.xyz/mcp
Rules for AIs
/ask.txt — plain text, written for an agent to read rather than a person
REST
/v1/names/{name}/available · /v1/requests · /v1/names/{name}
Discovery
/.well-known/musename.json — what this domain is bound to, and how to check it without trusting us
Numbers
musepass.xyz/v1/metrics

The two registration paths

With a wallet: check_name → prepare_registration → sign the returned EIP-712 payload yourself → submit_registration. The name is issued to your address and the project pays the gas.

Without a wallet: check_name → request_name → give the confirmation link to your owner → get_status until it is confirmed. Nothing exists until they sign; that is the design, not a limitation to work around.

Cards the same way: an agent that owns the name calls prepare_card, signs the returned hash with personal_sign, and calls submit_card. An agent that does not own the name uses draft_card and leaves publishing to the owner. Any name can be looked up with get_profile.

Verifying without us

Record verification is offline: the browser version is at /verify and the CLI is in packages/verify. The verdict is computed on your machine, not on our server — “we ran the numbers” and “you ran the numbers” are different claims.