Crates.io | privpay |
lib.rs | privpay |
version | 0.2.0 |
source | src |
created_at | 2022-12-06 07:37:27.555029 |
updated_at | 2022-12-08 06:56:36.112248 |
description | Private Payments (BIP 351) Command Line Tool |
homepage | https://privatepayments.org/ |
repository | https://github.com/private-payments/privpay-cli |
max_upload_size | |
id | 730980 |
size | 34,282 |
A command line tool to work with the Private Payments stealth address system for Bitcoin.
From Crates.io:
cargo install privpay
privpay -h
For local development
git clone https://github.com/private-payments/privpay-cli.git
cd privpay-cli
cargo build
Recreating the example from BIP351:
# Generate Bob's Payment Code
$ privpay receiver code -t p2pkh -t p2wpkh
# <enter ff for seed hex>
pay1qqpsxq4730l4yre4lt3588eyt3f2lwggtfalvtgfns04a8smzkn7yys6xv2gs8
# Alice notifying Bob and deriving the first stealth address
$ privpay sender notify -r 0 -t p2wpkh pay1qqpsxq4730l4yre4lt3588eyt3f2lwggtfalvtgfns04a8smzkn7yys6xv2gs8
# <enter fe for seed hex>
OP_RETURN OP_PUSHBYTES_40 505049cb55bb02e3217349724307eed5514b53b1f53f0802672a9913d9bbb76afecc86be23f46401
0: bc1qw7ld5h9tj2ruwxqvetznjfq9g5jyp0gjhrs30w
# Bob deriving same stealth address
privpay receiver decode -P 6a28505049cb55bb02e3217349724307eed5514b53b1f53f0802672a9913d9bbb76afecc86be23f46401
# <enter ff for seed hex>
0: bc1qw7ld5h9tj2ruwxqvetznjfq9g5jyp0gjhrs30w 03e669bd1705691a080840b07d76713d040934a37f2e8dde2fe02f5d3286a49219 L1fJmsaHyM96XrpHs765ueXfmv1V7TiNgWJHS8ZsTgfVFvLd1TcU
Running the previous example with the --json
output flag produces more detailed output.
$ privpay receiver code --json -t p2pkh -t p2wpkh
# <enter ff for seed hex>
{
"payment_code": "pay1qqpsxq4730l4yre4lt3588eyt3f2lwggtfalvtgfns04a8smzkn7yys6xv2gs8",
"account": 0,
"bip32_path": "m/351'/0'/0'",
"address_types": [
"p2wpkh",
"p2pkh"
]
}
$ privpay sender notify --json -r 0 -t p2wpkh pay1qqpsxq4730l4yre4lt3588eyt3f2lwggtfalvtgfns04a8smzkn7yys6xv2gs8
# <enter fe for seed hex>
{
"receiver": {
"payment_code": "pay1qqpsxq4730l4yre4lt3588eyt3f2lwggtfalvtgfns04a8smzkn7yys6xv2gs8",
"index": 0
},
"sender": {
"account": 0,
"bip32_path": "m/351'/0'/0'"
},
"notification": {
"scriptpubkey": "6a28505049cb55bb02e3217349724307eed5514b53b1f53f0802672a9913d9bbb76afecc86be23f46401",
"payload": "505049cb55bb02e3217349724307eed5514b53b1f53f0802672a9913d9bbb76afecc86be23f46401",
"asm": "OP_RETURN OP_PUSHBYTES_40 505049cb55bb02e3217349724307eed5514b53b1f53f0802672a9913d9bbb76afecc86be23f46401"
},
"addresses": [
{
"address": "bc1qw7ld5h9tj2ruwxqvetznjfq9g5jyp0gjhrs30w",
"index": 0
}
]
}
privpay receiver decode --json -P 6a28505049cb55bb02e3217349724307eed5514b53b1f53f0802672a9913d9bbb76afecc86be23f46401
# <enter ff for seed hex>
{
"receiver": {
"payment_code": "pay1qqpqxq4730l4yre4lt3588eyt3f2lwggtfalvtgfns04a8smzkn7yys66cs29t",
"account": 0,
"bip32_path": "m/351'/0'/0'"
},
"notification": {
"scriptpubkey": "6a28505049cb55bb02e3217349724307eed5514b53b1f53f0802672a9913d9bbb76afecc86be23f46401",
"payload": "505049cb55bb02e3217349724307eed5514b53b1f53f0802672a9913d9bbb76afecc86be23f46401",
"asm": "OP_RETURN OP_PUSHBYTES_40 505049cb55bb02e3217349724307eed5514b53b1f53f0802672a9913d9bbb76afecc86be23f46401"
},
"addresses": [
{
"address": "bc1qw7ld5h9tj2ruwxqvetznjfq9g5jyp0gjhrs30w",
"index": 0,
"public_key": "03e669bd1705691a080840b07d76713d040934a37f2e8dde2fe02f5d3286a49219",
"private_key": "L1fJmsaHyM96XrpHs765ueXfmv1V7TiNgWJHS8ZsTgfVFvLd1TcU"
}
]
}