A protocol for discoverable crypto payments. A MoneyID address -- alice@shop.co -- resolves to the receiver's supported currencies, chains, amounts, and a fresh deposit address.
Stablecoin payments have no discovery layer. A wallet address carries no information about accepted tokens, supported chains, or expected amounts. Senders select a network from a dropdown, pick the token, enter the amount manually, and paste a hex address. QR codes encode the address alone.
1. Wallet sees alice@shop.co
2. Wallet GETs https://shop.co/.well-known/moneyid/alice
3. Server returns supported currencies, chains, amount, metadata
4. User picks 10 USDC on Base
5. Wallet POSTs {amount, currency, network, chainId}
6. Server returns {address, amount, expiry}
7. Wallet sends on-chain transfer
Transport is HTTPS. Payloads are JSON.
Terminal QR: moneyid:shop+order-42@merchant.co
Customer scans → wallet resolves → USDT on Tron, USDC on Base, USDC on Solana
Wallet shows: "Pay $25.00 to CoffeeShop for Order #42"
Amount is fixed. Customer picks USDC on Base, confirms.
Fresh address. Terminal confirms. Receipt prints.
Also supports invoices (fixed amount + tag) and open-amount flows (tips, donations).
| Raw Addresses | ENS / .sol | MoneyID | |
|---|---|---|---|
| Multi-chain | One chain per address | One chain per name | Any chain |
| Currency discovery | No | No | Yes |
| Amount in QR | No | No | Yes |
| Human-readable | No | Yes | Yes |
| Fresh address per payment | No | No | Yes |
| Metadata | No | No | Yes |
| Spec | Covers |
|---|---|
| MIP-01 | Address format, URI scheme, URL resolution, transport rules |
| MIP-02 | Payment flow: discovery, currencies, chains, payment instructions, metadata, success actions |
Two documents. Each is self-contained.
Open protocol. MIT licensed.
Specs · Issues · Discussion