Cashonize issue #405 asks for a way to pay a Nostr identity (npub) from a BCH wallet, and says it would follow “a CHIP or NIP that defines how a BCH payment target is found from an npub, implemented by at least one other wallet”. I wrote a short draft spec for that, plus a working demo. Feedback wanted before anyone builds on it.
Draft spec: Draft: BCH payment address from a Nostr npub
The short version:
- The npub owner publishes a replaceable Nostr event (kind 30078) that holds their BCH address (a token-aware z-address).
- The binding is signed twice, by the Nostr key and by the BCH key, so a relay or a third party can’t swap the address.
- A wallet resolves npub → address through a relay the user picks, checks both signatures, and shows the address before the user pays.
- Privacy: this publishes one public address. The spec lists an optional RPA paycode field for anyone who doesn’t want address reuse.
Live demo (publish and resolve): https://bch-nostr-id.surge.sh
Open questions: is kind 30078 (d=bch-nostr-bind) acceptable, or would a dedicated NIP kind be better? Should the kind-0 profile fallback exist at all? Which relays should wallets query by default?
All of it is CC0.
@MathieuG, this follows the directions you listed in Cashonize #405, so your view on which one fits best would help a lot.