The Payjoin Dev Kit payjoin
library implements both BIP 78 Payjoin V1 and BIP 77 Payjoin V2.
The payjoin-cli
crate performs no-frills Payjoin as a reference implementation using Bitcoin Core wallet.
The payjoin-directory
crate implements the Payjoin Directory store-and-forward server required for Payjoin V2's asynchronous operation.
The payjoin-test-utils
crate provides commonly used testing fixtures such as a local OHTTP relay and payjoin directory, bitcoind node and wallets, and official test vectors.
The payjoin-ffi
crate provides language bindings that expose the Rust-based Payjoin implementation to various programming languages.
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!
- Basic logic
- Most checks implemented
- Documentation
- Unit test with official test vectors passes
- Many unit tests
- Fee contribution support
- Example client using bitcoind
- Tested and works with BTCPayServer
- Tested and works with JoinMarket
- Minimum fee rate enforcement
- Independent review
- Independent testing
- Basic logic
- Most checks implemented
- Documentation
- Unit test with official test vectors passes
- Many unit tests
- Fee contribution support
- Example server using bitcoind
- Tested and works with BTCPayServer
- Tested and works with WasabiWallet
- Tested and works with Blue Wallet
- Tested and works with Sparrow
- Tested and works with JoinMarket
- Minimum fee rate enforcement
- Discount support
- Independent review
- Independent testing
- Idiomatic Rust code
- Newtypes
- Panic-free error handling
- No
unsafe
code or well-tested/analyzed/proven/...unsafe
code - Warning-free
- CI
- Integration tests
- Fuzzing
- Coverage measurement
- Mutation testing
The payjoin
library and payjoin-cli
should always compile with any combination of features on Rust 1.85.0.
See CONTRIBUTING.md
MIT