Prove your BCH address and your npub belong to the same person

A two-key signed binding so BCH tips on Nostr go to the right address, plus proof of payment for merchants. No accounts.

Tipping someone on Nostr in BCH has one weak spot: how do you know the address in their profile is really theirs? Anyone can paste an address into a bio, and impersonators copy names and pictures.

A binding fixes that. It is one public Nostr event (kind 30078) carrying an i tag of the form bch:<address>, signed twice: by the BCH key (a standard Bitcoin Cash signed message) and by the Nostr key (the event signature). Nobody can fake it without both keys.

Make one (about 2 minutes, no account):

  1. In Electron Cash: Tools > Sign/verify message, choose your address, and sign the text the page gives you.
  2. Paste the signature at https://bch-nostr-id.surge.sh and publish the event.

Verify anyone’s: paste their npub. The page fetches the binding, checks both signatures, and gives you a bitcoincash: payment link for the verified address.

For merchants, proof of payment without accounts: the payer signs a fresh challenge with the key of an address that funded the transaction. The challenge includes the txid, the site, a random nonce and a timestamp, so a signature can’t be reused for another order. Caveat: this proves the payer of record. For exchange withdrawals or CoinJoin transactions that isn’t the customer.

Also included: key rotation and recovery, third-party attestations, and selective disclosure (reveal one field, such as over18, and nothing else). The source code is a tarball on the same site.

If this is useful, my verified BCH address is in my profile.


Write a comment