Add bsv namespace (BSV Blockchain) - #190
Conversation
Registers bsv:mainnet and bsv:testnet, identifying BSV networks by human-readable network name (mirroring BRC-100 getNetwork and SV Node getblockchaininfo.chain), following the casper precedent of a Chain ID distinct from the genesis hash. Rationale acknowledges that bip122 can represent BSV via its fork-block hash.
Register Teranode Test Net (ttn) and Teranode Scaling Test Net (tstn) alongside mainnet and testnet so payment tooling can target Teranode environments without overloading bsv:testnet. Document that bip122 genesis-only identifiers are ambiguous for BSV and must not be used.
|
I maintain a live implementation of the x402 exact scheme for BSV payments (bsv.cx), and this namespace gap is a concrete blocker for it. Today the only CAIP-2 identifier available for BSV is bip122: — but that's ambiguous: BSV shares Satoshi's genesis block with BTC (and BCH), so a bip122: reference alone can't distinguish the three. My implementation currently works around this by pairing the bip122: network id with a non-standard extra.chain: "bsv" field plus asset: "BSV", and refusing to settle a payment whenever a Bitcoin-family network id arrives without that disambiguator. It works, but it's a workaround for a missing standard identifier. Registering the bsv namespace here (bsv:mainnet / bsv:testnet) would let conforming implementations reference the chain unambiguously and drop the custom disambiguation. Is there anything currently blocking review, or something I could contribute to help it along — extra CAIP-2 profile detail, an implementer reference, test vectors? Happy to help however's useful. |
Summary
Adds a new namespace,
bsv, for the BSV Blockchain, with a completeREADME.mdand CAIP-2 profile. Registers four Chain IDs:bsv:mainnet— BSV main networkbsv:testnet— BSV public test networkbsv:ttn— Teranode Test Net (public Teranode scaling test network / Teratestnet)bsv:tstn— Teranode Scaling Test Net (private, per-deployment scaling test network)Approach and rationale
BSV descends from the original Bitcoin protocol and shares Satoshi's genesis block with BTC and BCH. I want to be upfront that
bip122can represent BSV: it disambiguates forks by the first post-fork block hash (as it does for Bitcoin Cash,bip122:000000000000000000651ef99cb9fcbe), and a BSV entry could be built the same way from its fork block.This namespace uses the human-readable network name as the CAIP-2 reference instead, following the casper precedent (a Chain ID that "should not be confused with the genesis_hash"). The reason is that the BSV application layer — BRC-100 wallets, overlay services, ARC broadcasters, SPV clients — universally identifies a network by name, never by fork-block hash. A BRC-100 wallet self-reports via
getNetwork→mainnet/testnet(andttn/tstnon Teranode deployments); SV Node'sgetblockchaininfo.chainreturnsmain/test. Cross-chain tooling (e.g. the x402 payment protocol, CAIP-10/CAIP-19 references) can then map directly onto identifiers applications already exchange without a full-node round-trip. The two schemes can coexist — a hash-basedbip122BSV entry and this name-based one occupy different namespaces.ttnandtstnare registered up front so high-throughput payment protocols can target Teranode test environments without overloadingbsv:testnetor inventing ad-hoc names that later need client migration. Clients MUST NOT treat a genesis-onlybip122identifier as a BSV network — that reference is ambiguous across the BTC/BCH/BSV split.Resolution mechanics, syntax (
bsv:(mainnet|testnet|ttn|tstn)), and test cases are inbsv/caip2.md.Context
This registration supports adding BSV as a payment mechanism to the x402 protocol, where the design discussion for these identifiers is ongoing. Happy to adjust the reference scheme (including moving to
bip122) based on editor guidance.Author: @sirdeggen (BSV Association).