A BTCPay Server plugin that adds Async Payjoin (BIP 77) support to the checkout flow. The plugin uses C# bindings to the Rust Payjoin Dev Kit generated via UniFFI.
Warning
This plugin is in alpha and is intended for testing only. Please use a separate test environment. Do not use it in production.
The alpha is available from BTCPay Plugin Builder.
For installation, see the installation guide.
Feedback on setup and payments is welcome in GitHub Issues. Please include your BTCPay Server and plugin versions when reporting a problem.
For security vulnerabilities, please follow SECURITY.md instead of opening a public issue.
git clone --recurse-submodules https://github.com/ValeraFinebits/btcpayserver-payjoin-plugin
cd btcpayserver-payjoin-pluginGenerate the C# bindings from the Rust FFI crate, then build the .NET solution:
cd rust-payjoin/payjoin-ffi/csharp
bash ./scripts/generate_bindings.sh
cd ../../..
dotnet restore BTCPayServer.Plugins.Payjoin.sln
dotnet build BTCPayServer.Plugins.Payjoin.sln -c Releasedotnet test BTCPayServer.Plugins.Payjoin.sln -c ReleaseEntity Framework migrations for the plugin use the dedicated design-time startup project at BTCPayServer.Plugins.Payjoin.Migrations.
List migrations:
dotnet ef migrations list --project BTCPayServer.Plugins.Payjoin/BTCPayServer.Plugins.AsyncPayjoin.csproj --startup-project BTCPayServer.Plugins.Payjoin.Migrations/BTCPayServer.Plugins.Payjoin.Migrations.csprojAdd a migration:
dotnet ef migrations add <MigrationName> --project BTCPayServer.Plugins.Payjoin/BTCPayServer.Plugins.AsyncPayjoin.csproj --startup-project BTCPayServer.Plugins.Payjoin.Migrations/BTCPayServer.Plugins.Payjoin.Migrations.csproj --output-dir MigrationsRemove the latest migration:
dotnet ef migrations remove --project BTCPayServer.Plugins.Payjoin/BTCPayServer.Plugins.AsyncPayjoin.csproj --startup-project BTCPayServer.Plugins.Payjoin.Migrations/BTCPayServer.Plugins.Payjoin.Migrations.csproj --force- Async Payjoin Rust implementation: https://github.com/payjoin/rust-payjoin
- BTCPay Server plugin development docs: https://docs.btcpayserver.org/Development/Plugins/