payjoin / rust-payjoin

Supercharged payment batching to save you fees and preserve your privacy
https://payjoindevkit.org
82 stars 34 forks source link
bitcoin fees privacy rust

Rust-Payjoin

Supercharged payment batching to save you fees and preserve your privacy.

About

payjoin

The Payjoin Dev Kit payjoin library implements both BIP 78 Payjoin V1 and BIP 77 Payjoin V2.

The payjoin crate is compatible with many wallets lilke LND in nolooking and Bitcoin Dev Kit in Mutiny Wallet and in BitMask

payjoin-cli

The payjoin-cli crate performs no-frills Payjoin as a reference implementation using Bitcoin Core wallet.

payjoin-directory

The payjoin-directory crate implements the Payjoin Directory store-and-forward server required for Payjoin V2's asynchronous operation.

Disclaimer ⚠️ WIP

Use at your own risk. This crate has not yet been reviewed by independent Rust and Bitcoin security professionals.

While I don't think there is a huge risk running it, be careful relying on its security for now!

Seeking review of the code that verifies there is no overpayment. Contributions are welcome!

Development status

Sender (V1 beta, V2 alpha)

Receiver (V1 beta, V2 alpha)

Code quality

Minimum Supported Rust Version (MSRV)

The payjoin library and payjoin-cli should always compile with any combination of features on Rust 1.63.0.

To build and test with the MSRV you will need to pin the below dependency versions:

payjoin

cargo update -p cc --precise 1.0.105
cargo update -p regex --precise 1.9.6
cargo update -p url --precise 2.5.0
cargo update -p which --precise 4.4.0
cargo update -p reqwest --precise 0.12.4

payjoin-cli

cargo update -p cc --precise 1.0.105
cargo update -p clap_lex --precise 0.3.0
cargo update -p regex --precise 1.9.6
cargo update -p url --precise 2.5.0
cargo update -p which --precise 4.4.0
cargo update -p time@0.3.36 --precise 0.3.20
cargo update -p reqwest --precise 0.12.4

Code Formatting

We use the nightly Rust formatter for this project. Please run rustfmt using the nightly toolchain before submitting any changes.

License

MIT