@btc-native/bnrp
v1.0.1
Published
Bitcoin Name Resolution Protocol — resolve .btc Ordinal names to Bitcoin addresses
Maintainers
Readme
bnrp
Resolve .btc Ordinal names to Bitcoin taproot addresses.
npm install bnrpUsage
import { resolve, record, identity, quote } from 'bnrp';
// Resolve a name to a taproot address
const addr = await resolve('trump.btc');
// → 'bc1pkdqs4...' or null
// Full record
const r = await record('trump.btc');
// → { btc_taproot, spark_address, inscription_id, sendable, sendable_type }
// Spark address
const sparkAddr = await spark('trump.btc');
// Three-layer identity
const id = await identity('trump.btc');
// → { layers: { anchoring, programmable, resolution } }
// Marketplace quote (for AI agents / programmatic buyers)
const q = await quote('trump.btc', {
buyer_address: 'bc1p...',
max_price_sats: 1_000_000,
});
if (q?.ok) {
console.log('PSBT:', q.psbt_hex);
console.log('Total required:', q.total_required_sats, 'sats');
}How it works
BNRP reads routing records inscribed directly on Bitcoin via the Ordinals protocol. No smart contracts. No hosted registry. The Bitcoin base layer is the source of truth.
- Resolve flow:
resolve('trump.btc')→ queriesapi.bnrp.name/v1/resolve/trump.btc→ returns taproot address - Records are inscriptions: every routing record is an Ordinal inscription on Bitcoin mainnet
- First inscription is canonical: re-inscriptions are not recognized
- No API key required
Verify any name
Spec
bnrp.name · MIT License
