#bitcoin #bip47


BIP47 (Reusable Payment Codes) implementation

3 releases (breaking)

Uses old Rust 2015

0.3.0 Apr 25, 2022
0.2.0 Jan 24, 2022
0.1.0 Dec 22, 2021

#2645 in Magic Beans

CC0 license

761 lines

Rust BIP47 Library

This library implements the BIP47 standard and provides functionality for generating static payment codes that two parties can use to create a private payment address space between them.

Original specification: BIP-0047.


// Alice constructs her own payment code using a BIP32 seed
let alice_private = PrivateCode::from_seed(&alice_seed, 0, Network::Bitcoin).unwrap();

// Alice parses Bob's payment code
let bob_public = PublicCode::from_wif("PM8TJS2JxQ5ztXUpBBRnpTbcUXbUHy2T1abfrb3KkAAtMEGNbey4oumH7Hc578WgQJhPjBxteQ5GHHToTYHE3A1w6p7tU6KSoFmWBVbFGjKPisZDbP97").unwrap();

// Alice calculates Bob's receive address at index 0, known only to them
let bob_address_0 = bob_public.address(&alice_private, 0, false).unwrap();

// Alice can now pay Bob privately
assert_eq!("12edoJAofkjCsWrtmVjuQgMUKJ6Z7Ntpzx", bob_address_0.to_string());


The minimum supported Rust version is 1.29.


~69K SLoC