{"id":18454,"date":"2026-08-13T08:36:33","date_gmt":"2026-08-13T15:36:33","guid":{"rendered":"https:\/\/jasonsblog.ddns.net\/?p=18454"},"modified":"2026-08-13T08:36:33","modified_gmt":"2026-08-13T15:36:33","slug":"payjoin-dev-kit-1-0","status":"publish","type":"post","link":"https:\/\/jasonsblog.ddns.net\/index.php\/2026\/08\/13\/payjoin-dev-kit-1-0\/","title":{"rendered":"Payjoin Dev Kit 1.0"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Development on Payjoin which allows transactions that obfuscate amount and payee giving some privacy to transactions that support it. Basically, both parties contribute funds to a transaction so it&#8217;s not clear who was paid, concealing the refund, kind of like a mini coinjoin and can be a feature of normal transactions giving some privacy and limiting chain analysis. Personally, chain analysis is overblown and misrepresented in court, but yet to be properly challenged with too much credit given to the firm&#8217;s &#8220;expert&#8221; witness. Currently manipulated in federal court with corrupt judges and prosecutors who conspire to limit what the defense can challenge&#8230;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/payjoin.org\/blog\/2026\/08\/12\/announcing-payjoin-1-0\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/payjoin.org\/blog\/2026\/08\/12\/announcing-payjoin-1-0\/<\/a><\/p>\n\n\n<div class=\"wp-block-ub-divider ub_divider ub-divider-orientation-horizontal\" id=\"ub_divider_e1f59adc-f18d-4de8-b362-3d79d0899549\"><div class=\"ub_divider_wrapper\" style=\"position: relative; margin-bottom: 2px; width: 100%; height: 2px; \" data-divider-alignment=\"center\"><div class=\"ub_divider_line\" style=\"border-top: 2px solid #ccc; margin-top: 2px; \"><\/div><\/div><\/div>\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"752\" height=\"256\" src=\"https:\/\/jasonsblog.ddns.net\/wp-content\/uploads\/2026\/08\/image-27.png\" alt=\"\" class=\"wp-image-18455\" srcset=\"https:\/\/jasonsblog.ddns.net\/wp-content\/uploads\/2026\/08\/image-27.png 752w, https:\/\/jasonsblog.ddns.net\/wp-content\/uploads\/2026\/08\/image-27-300x102.png 300w\" sizes=\"auto, (max-width: 752px) 100vw, 752px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">August 12, 2026 \u00b7 3 min read<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/github.com\/DanGould\" target=\"_blank\" rel=\"noreferrer noopener\">Dan Gould<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Three years after <a class=\"\" href=\"https:\/\/payjoin.org\/blog\/2023\/06\/27\/pdk-an-sdk-for-payjoin-transactions\">inception<\/a>, Payjoin Dev Kit&#8217;s first stable release is here. The Rust library for <a href=\"https:\/\/github.com\/bitcoin\/bips\/blob\/master\/bip-0077.md\" target=\"_blank\" rel=\"noreferrer noopener\" class=\"\">BIP 77<\/a> and <a href=\"https:\/\/github.com\/bitcoin\/bips\/blob\/master\/bip-0078.mediawiki\" target=\"_blank\" rel=\"noreferrer noopener\" class=\"\">BIP 78<\/a> Payjoin is published as <a href=\"https:\/\/crates.io\/crates\/payjoin\/1.0.0\" target=\"_blank\" rel=\"noreferrer noopener\" class=\"\">1.0.0<\/a>. Wallets and services that want to let Bitcoin senders and receivers interact to transact can now depend on it or its <a href=\"https:\/\/github.com\/payjoin\/rust-payjoin\/tree\/master\/payjoin-ffi\" target=\"_blank\" rel=\"noreferrer noopener\" class=\"\">foreign language bindings<\/a>. Concretely that means clients can send and receive Payjoin without running a server, survive restarts and going offline, view standardized status information, and gracefully fall back or cancel interactions.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Payjoin is the base case for interactive transaction construction where both sender and receiver contribute. It creates an opportunity to save blockspace fees with multi-contributor batching, secure transaction cut-through settlement, and preserve privacy by breaking the assumption Satoshi left in <a href=\"https:\/\/bitcoin.org\/bitcoin.pdf\" target=\"_blank\" rel=\"noreferrer noopener\" class=\"\">the whitepaper<\/a> that transaction inputs all come from the same owner.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">There is much more to do. This release commits to the core <a href=\"https:\/\/docs.rs\/payjoin\/1.0.0\" target=\"_blank\" rel=\"noreferrer noopener\" class=\"\"><code>payjoin<\/code><\/a> state machine API including the persisted session format so that sessions written today replay in future versions. Other Payjoin Dev Kit software is not yet stable, including our <a href=\"https:\/\/github.com\/payjoin\/rust-payjoin\/tree\/master\/payjoin-ffi\" target=\"_blank\" rel=\"noreferrer noopener\" class=\"\"><code>payjoin-ffi<\/code><\/a> bindings library, the <a href=\"https:\/\/github.com\/payjoin\/rust-payjoin\/tree\/master\/payjoin-cli\" target=\"_blank\" rel=\"noreferrer noopener\" class=\"\"><code>payjoin-cli<\/code><\/a> end-to-end reference implementation, and the <a href=\"https:\/\/github.com\/payjoin\/rust-payjoin\/tree\/master\/payjoin-mailroom\" target=\"_blank\" rel=\"noreferrer noopener\" class=\"\"><code>payjoin-mailroom<\/code><\/a> server that anyone can host so that clients don&#8217;t have to; nor is the <a href=\"https:\/\/github.com\/bitcoin\/bips\/blob\/master\/bip-0077.md\" target=\"_blank\" rel=\"noreferrer noopener\" class=\"\">BIP 77 spec<\/a>, though its Draft status is nearing graduation to Complete.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This API was hard earned through pilot integrations with <a href=\"https:\/\/www.bullbitcoin.com\" target=\"_blank\" rel=\"noreferrer noopener\" class=\"\">Bull Bitcoin Mobile<\/a> and <a href=\"https:\/\/cakewallet.com\" target=\"_blank\" rel=\"noreferrer noopener\" class=\"\">Cake Wallet<\/a>, which are compatible with the payjoin-cli reference. A number of other integrations are in flight and in review. 1.0 stability allows us to focus efforts on multiplying integrations from here.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">To get started, go to <a href=\"https:\/\/crates.io\/crates\/payjoin\/1.0.0\" target=\"_blank\" rel=\"noreferrer noopener\" class=\"\">crates.io<\/a>, <a href=\"https:\/\/docs.rs\/payjoin\/1.0.0\" target=\"_blank\" rel=\"noreferrer noopener\" class=\"\">docs.rs<\/a>, and check out the <a href=\"https:\/\/github.com\/payjoin\/rust-payjoin\/tree\/master\/payjoin-cli#quick-start\" target=\"_blank\" rel=\"noreferrer noopener\" class=\"\"><code>payjoin-cli<\/code> Quick Start<\/a>. This work was made possible by dozens of volunteer contributors and sponsors including <a href=\"https:\/\/spiral.xyz\" target=\"_blank\" rel=\"noreferrer noopener\" class=\"\">Spiral<\/a>, <a href=\"https:\/\/opensats.org\" target=\"_blank\" rel=\"noreferrer noopener\" class=\"\">OpenSats<\/a>, <a href=\"https:\/\/hrf.org\" target=\"_blank\" rel=\"noreferrer noopener\" class=\"\">HRF<\/a>, <a href=\"https:\/\/maelstrom.fund\" target=\"_blank\" rel=\"noreferrer noopener\" class=\"\">Maelstrom<\/a>, <a href=\"https:\/\/www.btrust.tech\" target=\"_blank\" rel=\"noreferrer noopener\" class=\"\">Btrust<\/a>, <a href=\"https:\/\/cakewallet.com\" target=\"_blank\" rel=\"noreferrer noopener\" class=\"\">Cake Wallet<\/a>, and others, including individuals like you. Thank you.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Development on Payjoin which allows transactions that obfuscate amount and payee giving some privacy to transactions that support it. Basically, both parties contribute funds to a transaction so it&#8217;s not clear who was paid, concealing the refund, kind of like a mini coinjoin and can be a feature of normal transactions giving some privacy and [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[],"class_list":["post-18454","post","type-post","status-publish","format-standard","hentry","category-tech"],"blocksy_meta":{"styles_descriptor":{"styles":{"desktop":"","tablet":"","mobile":""},"google_fonts":[],"version":7}},"featured_image_src":null,"author_info":{"display_name":"Jason","author_link":"https:\/\/jasonsblog.ddns.net\/index.php\/author\/jturning\/"},"_links":{"self":[{"href":"https:\/\/jasonsblog.ddns.net\/index.php\/wp-json\/wp\/v2\/posts\/18454","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jasonsblog.ddns.net\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jasonsblog.ddns.net\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jasonsblog.ddns.net\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jasonsblog.ddns.net\/index.php\/wp-json\/wp\/v2\/comments?post=18454"}],"version-history":[{"count":1,"href":"https:\/\/jasonsblog.ddns.net\/index.php\/wp-json\/wp\/v2\/posts\/18454\/revisions"}],"predecessor-version":[{"id":18456,"href":"https:\/\/jasonsblog.ddns.net\/index.php\/wp-json\/wp\/v2\/posts\/18454\/revisions\/18456"}],"wp:attachment":[{"href":"https:\/\/jasonsblog.ddns.net\/index.php\/wp-json\/wp\/v2\/media?parent=18454"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jasonsblog.ddns.net\/index.php\/wp-json\/wp\/v2\/categories?post=18454"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jasonsblog.ddns.net\/index.php\/wp-json\/wp\/v2\/tags?post=18454"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}