Resolve any .btc, .sats, .unisat, .x, .xbt, or .sat name to Bitcoin addresses, cross-chain records, Ordinal avatars, and more. BNRP is the open protocol spec that makes it work — built on Bitcoin, no vendor lock-in.
Paste any Ordinals inscription ID to preview it as a BNRP avatar. This is what wallets and apps will display when a name sets an ord: avatar record.
A .btc, .sats, .unisat, .x, .xbt, or .sat name is an Ordinals inscription. Ownership is determined by who holds the UTXO — verifiable on any Bitcoin node. No registry contract, no trusted database.
The name owner inscribes a routing record linking their name to Bitcoin addresses, cross-chain addresses (ETH, SOL, Base, Arbitrum), an Ordinal avatar, and web content.
A self-transfer makes a name the wallet's primary identity. Any app can reverse-resolve a raw Bitcoin address to a human-readable name — with mandatory anti-spoofing verification.
Any party can run a BNRP-compliant resolver. No vendor lock-in. Wallets, explorers, and dApps query the standard REST API — same interface regardless of who runs the indexer.
Full architecture, all JSON schemas, security model, roadmap, and migration path from BtcName.
BNRP-IP-01Unicode NFC, case folding, label validation, reserved names, IDN/homoglyph rules.
BNRP-IP-02On-chain record format: Bitcoin addresses, SLIP-44 cross-chain schema, avatar, content, bitmap fields.
BNRP-IP-03Solution B (self-transfer) as canonical default. Solution A (explicit inscription) as extended option.
BNRP-IP-04Bidirectional anti-spoofing: reverse lookup only succeeds when forward resolution confirms the address.
BNRP-IP-05ord:, ipfs:, ipns:, https: — with Ordinals ownership verification and fallback chain.
8-endpoint open API any resolver must implement. Full TypeScript SDK interface included.
CommunityBNRP is an open standard. Propose changes, run a resolver, or co-author the next BNRP-IP.
Live improvement proposals extending the core resolve schema. Each is a deployed spec with an open API endpoint and a demo page.
Set a Lightning Address on your .btc name. Resolves as a standard LNURL-pay (LUD-16) endpoint. On-chain taproot fallback when no Lightning node is set.
BNRP-IP-10PSBT-challenge authentication for .btc names. Wallet signs a nonce. Server verifies ownership on-chain. No passwords, no OAuth, no ETH dependency.
BNRP-IP-11agent.company.btc convention. Agent subnames carry a pubkey, capability declarations, payment address, and instructions. Machine-to-machine identity on Bitcoin.
Extended cross-protocol identity schema. One inscription sets BTC address, Lightning, Nostr pubkey, DID, Farcaster, Telegram, and more.
BNRP-IP-13Delegate namespace control to an operator. Root owner authorizes an address to issue *.name.btc at scale. inherit: false by default — clean slate on name sale.
BNRP is a REST API standard. Any wallet, app, or explorer can add .btc name resolution in under 10 minutes. No key, no login, no SDK required to start.
One GET request returns addresses, profile, avatar, Lightning, and agent fields.
GET https://api.bnrp.name/v1/resolve/{name}
Turn any Bitcoin address into a .btc name with anti-spoofing verification built in.
GET https://api.bnrp.name/v1/reverse/{address}
Any name with a Lightning Address set returns a valid LNURL-pay payRequest.
GET https://api.bnrp.name/.well-known/lnurlp/{name}
{
"name": "satoshi.btc",
"owner": "bc1p...",
"inscription_id": "a8b2c1...i0",
"addresses": {
"btc_taproot": "bc1p...",
"btc_segwit": null,
"eth": null,
"sol": null,
"spark": null,
"agent_address": null,
"lnurlp": "satoshi@getalby.com", // BNRP-IP-09
"nostr_pubkey": "npub1...", // BNRP-IP-12
"did": "did:btc:satoshi.btc" // BNRP-IP-12
},
"profile": {
"display": "Satoshi",
"description": "Bitcoin pioneer",
"avatar": "ord:a8b2c1...i0",
"url": "https://satoshi.org",
"com.twitter": "satoshi",
"com.github": "satoshi",
"com.nostr": "npub1...", // BNRP-IP-12
"com.farcaster": "satoshi", // BNRP-IP-12
"agent_instructions": null,
"payment_policy": null
},
"via": "bnrp-inscription",
"resolved_at": "2026-05-16T21:00:00.000Z"
}
Open pull requests and integration status across Bitcoin wallets and apps. Any wallet can ship BNRP resolution with under 100 lines of code. No SDK required.
BTC send flow. Bitcoin Name option in recipient dropdown. Resolves all 8 TLDs to taproot address.
leather-io/mono #2332BTC send flow. Inline resolution in RecipientSelector. No extra step for the user.
secretkeylabs/xverse-web-extension #865BTC send flow. Outreach in progress.
No PR yetBusiness relationship required. Public pressure track active.
No PR yetBNRP is a single GET request. Any wallet can ship name resolution in an afternoon. Full integration guide with code samples.
Integration guideFill in your details below, copy the generated JSON, and inscribe it to your wallet via UniSat. The latest inscription always wins — update any field anytime by re-inscribing.
Cash App: use your $cashtag — e.g. $jack becomes jack@cash.app
Your Spark wallet address for instant BTC payments. Get yours at spark.money.{}
After inscribing, paste your new inscription ID below to verify and generate your ID card.
Enter any BTC name (trump.btc) or paste a routing inscription ID to generate the identity card.
BNRP is a free, open, CC0 protocol. If it's useful to you, consider sending some sats to help fund continued development.
bc1pjzc23jskte953dgep9m7gma7vd63s7gs5a6zlr7galcrllqgqr6qz7h2jc
Native SegWit / Taproot (bc1p). Verify the address independently before sending. This is the only official donation address for BNRP.