You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: blog/2023-06-27-pdk-an-sdk-for-payjoin-transactions.md
+4-2Lines changed: 4 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,13 +2,15 @@
2
2
title: "PDK: A Payjoin SDK"
3
3
description: Learn how PDK makes using Payjoin easy and the direction it will develop in our new blog.
4
4
date: 2023-06-27
5
-
authors:
6
-
- name: Dan Gould
5
+
authors: dangould
7
6
tags: [Bitcoin, PDK]
8
7
---
9
8
9
+
10
10
PDK is here to make Payjoin a drop in upgrade for all software touching Bitcoin. I cover the project's history, why you should consider it to add Payjoin to your stack, and some of the project's priorities moving forward. The PDK team will be updating this new blog with development updates, feature forecasts and the details of releases.
11
11
12
+
<!-- truncate -->
13
+
12
14
## What is PDK?
13
15
14
16
PDK began as a Rust Payjoin side project library developed by Martin Habovštiak, [@Kixunil](https://github.com/kixunil) in [2021](https://github.com/payjoin/rust-payjoin/commit/d70c447af622e2b9db34b833fe22a80ff3b2d223). Up until then, Payjoin had been cast as a merchant / client privacy tool, but Martin saw payjoin as something more. He showcased Payjoin as a generic interactive transaction coordinator early on. One of Martin's Rust Payjoin applications, [loptos](https://github.com/Kixunil/loptos), receives Payjoin to open batches of lightning channels from an external Payjoin sender, reducing fees and eliminating one whole transaction from typical channel funding flow. I now view Payjoin as the simplest way to deploy Greg Maxwell's 2013 [transaction cut-through](https://bitcointalk.org/index.php?topic=281848.0) idea to scale bitcoin and preserve privacy through fee saving incentives.
Copy file name to clipboardExpand all lines: blog/2024-05-22-payjoin-v1-infrastructure.md
+4-2Lines changed: 4 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,13 +2,15 @@
2
2
title: Notes on Payjoin V1 Infrastructure
3
3
description: A guide on setting up a payjoin receiver on signet
4
4
date: 2024-05-22
5
-
authors:
6
-
- name: spacebear
5
+
authors: spacebear
7
6
tags: [PDK, Infrastructure]
8
7
---
9
8
9
+
10
10
[Payjoin V1](https://github.com/bitcoin/bips/blob/master/bip-0078.mediawiki) coordinates transactions between two parties who communicate over a public server endpoint secured by either TLS or Tor hidden service hosted by the receiver. This requires setting up either an HTTPS proxy or a Tor proxy when testing payjoins across different implementations.
11
11
12
+
<!-- truncate -->
13
+
12
14
## Setting up a HTTPS payjoin server with nginx
13
15
14
16
This guide requires a dedicated server that you can `ssh` into, with the ability to `sudo`, and a domain name pointing to that server.
Copy file name to clipboardExpand all lines: blog/2025-03-18-the-evolution-of-payjoin.md
+5-3Lines changed: 5 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,13 +2,15 @@
2
2
title: "The Evolution of Payjoin: From Two-Party Protocol to Multiparty Framework"
3
3
description: "Learn how Payjoin is evolving from a simple two-party protocol into a sophisticated multiparty transaction batching framework"
4
4
date: "2025-03-18"
5
-
authors:
6
-
- name: Conor Okus
5
+
authors: conorokus
7
6
tags: [V3]
8
7
---
9
8
9
+
10
10
Payjoin is a transformative protocol that enables wallets to communicate and create collaborative, smarter, and more efficient Bitcoin transactions. It offers payment batching technology that exchanges and payment processors can use to [save on fees](https://payjoin.org/docs/how-payjoin-saves) and protect their own and their users' financial [privacy](https://payjoin.org/docs/why-payjoin/privacy) while [scaling](https://payjoin.org/docs/why-payjoin/scaling) Bitcoin.
11
11
12
+
<!-- truncate -->
13
+
12
14
BTCPayServer already supports PayJoin and in 2024, the project made significant progress with the implementation of [Async Payjoin in the Bull Bitcoin Mobile Wallet](https://www.bullbitcoin.com/blog/bull-bitcoin-wallet-payjoin) and ongoing development work in [Cake Wallet](https://github.com/cake-tech/cake_wallet/pull/1889).
13
15
14
16
# The Evolution of Payjoin
@@ -21,7 +23,7 @@ Building on this idea, [Bustapay (BIP 79)](https://github.com/bitcoin/bips/blob/
21
23
22
24
## Payjoin V1 (BIP 78): The Foundation
23
25
24
-
Building on Bustapay, [Payjoin V1 (BIP 78)](https://payjoin.org/docs/how-it-works/payjoin-v1-bip-78) refined sender-receiver transaction collaboration into an even more practical and extensible protocol. By standardizing wallet communication over an HTTP protocol, the standard Bitcoin URI request format, and leveraging [Partially Signed Bitcoin Transactions (PSBT)]((https://en.bitcoin.it/wiki/BIP_0174)), BIP 78 made adopting [the Payjoin experience](https://bitcoin.design/guide/case-studies/payjoin/) interoperable across different wallets and hardware devices.
26
+
Building on Bustapay, [Payjoin V1 (BIP 78)](https://payjoin.org/docs/how-it-works/payjoin-v1-bip-78) refined sender-receiver transaction collaboration into an even more practical and extensible protocol. By standardizing wallet communication over an HTTP protocol, the standard Bitcoin URI request format, and leveraging [Partially Signed Bitcoin Transactions (PSBT)](https://en.bitcoin.it/wiki/BIP_0174), BIP 78 made adopting [the Payjoin experience](https://bitcoin.design/guide/case-studies/payjoin/) interoperable across different wallets and hardware devices.
25
27
26
28
However, Payjoin V1 has limitations. It requires both sender and receiver to be online simultaneously (synchronous communication), and for the receiver to host a server to facilitate coordination. Despite these challenges, real-world implementations of Payjoin in payment processing software demonstrate its viability, laying the groundwork for improved interactive transaction batching.
Copy file name to clipboardExpand all lines: blog/2025-04-08-payjo-in-redis-misconfiguration.md
+4-2Lines changed: 4 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,11 +2,11 @@
2
2
title: "Payjo.in Directory Security Incident: Misconfiguration May Have Exposed Some Payjoin v1 Messages"
3
3
description: Due to a docker misconfiguration the `payjo.in` directory server had an open redis database, allowing unauthorized parties to observe exchanges between pairs of senders which only support BIP 78 and receivers which support BIP 77.
4
4
date: 2025-04-08
5
-
authors:
6
-
- name: Yuval Kogman
5
+
authors: nothingmuch
7
6
tags: [security]
8
7
---
9
8
9
+
10
10
Due to a docker misconfiguration, the `payjo.in` directory server had an open
11
11
redis database, allowing unauthorized parties to observe exchanges between pairs
12
12
of senders which only support BIP 78 and receivers which support BIP 77.
@@ -16,6 +16,8 @@ BIP 78 senders during this period may thus not have the common input ownership
16
16
heuristic protection they otherwise would, but the unauthorized access does
17
17
not change the nature of the risk regarding the user custody of funds.
18
18
19
+
<!-- truncate -->
20
+
19
21
## Background
20
22
21
23
The payjoin directory is a store and forward server that allows BIP 77
Copy file name to clipboardExpand all lines: blog/2025-04-16-liana-payjoin.md
+4-2Lines changed: 4 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,13 +2,15 @@
2
2
title: Automatically Refresh Liana Inheritance Timelocks with Payjoin
3
3
description: Liana combines Payjoin and time locked inheritance to help you keep your Bitcoin private now and safe for those who'll need it later.
4
4
date: 2025-04-16
5
-
authors:
6
-
- name: Armin Sabouri
5
+
authors: arminsabouri
7
6
tags: [privacy, integrations, cut-through]
8
7
---
9
8
9
+
10
10
[Liana](https://wizardsardine.com/liana/) secures bitcoin such that after time passes, if and only if you haven't yet spent your coins, your heirs can spend them. This condition is called a "timelock" contract. To prevent unintentional activation of this inheritance policy, these timelocked coins require periodic refreshing by being spent into a new timelock. Liana's Payjoin integration automates timelock refresh as payments are received, boosting privacy and cutting costs.
11
11
12
+
<!-- truncate -->
13
+
12
14
Timelock contracts define some time in the future when funds can be spent by heirs. Before that, only the primary owner can spend the funds. However, there's a catch: most users do not frequently spend their Bitcoin. A [2024 study](https://www.sciencedirect.com/science/article/pii/S0378437124008045) found that the age of unspent coins follows a power-law distribution (see Figure 3 that study). In practice, this means coins are typically either spent soon after receipt or held for long periods. [Data also suggests](https://charts.bitbo.io/hodl-waves/) that most coins remain unspent for months or years. To avoid unintentionally triggering a recovery path, users often resort to reconciliation of their coins to reset timelocks.
13
15
14
16
<imgalt="Liana time locked coins"src="/img/liana-expiring.png" />
Copy file name to clipboardExpand all lines: blog/2025-08-08-announcing-payjoin-foundation.md
+4-2Lines changed: 4 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,15 +2,17 @@
2
2
title: Announcing Payjoin Foundation
3
3
description: Launching our non-profit organization to recruit and accept donations
4
4
date: 2025-08-08
5
-
authors:
6
-
- name: Dan Gould
5
+
authors: dangould
7
6
tags: [Announcement, Foundation]
8
7
---
9
8
9
+
10
10
Commercial attempts to solve Bitcoin’s privacy problems have faced tremendous barriers. Short-term profit motives have delivered partial and temporary solutions, but transacting privately on Bitcoin remains a challenge.
11
11
12
12
We formed Payjoin Foundation to pursue the long-term mission of addressing Bitcoin’s privacy problems. Our non-profit exists to develop open-source protocols that align economic incentives with network-wide privacy protection. We believe that users have a right to choose whether or not to reveal their on-chain activity, and that such protocols can even offer a more convenient and delightful experience than those that don't respect this choice.
13
13
14
+
<!-- truncate -->
15
+
14
16
We are fortunate to have been graced by dozens of volunteer contributors with thousands of commits to our open-source Payjoin Dev Kit software stack. The Payjoin Foundation enables us to recruit and fund talent aligned with our mission. [Armin Sabouri](https://github.com/arminsabouri) and [Spacebear](https://github.com/spacebear21) will continue to lead contributors in research and development. [Satsie](https://satsie.dev) of The Bitcoin Dev Project, Justin of Localhost Research, and myself are serving as the inaugural board.
15
17
16
18
Initial funding for Payjoin Foundation is graciously provided to us by [OpenSats](https://opensats.org/blog/elevent-wave-of-bitcoin-grants). Support for the Payjoin project from [Spiral](https://spiral.xyz), [Human Rights Foundation](https://hrf.org), and [Maelstrom](https://maelstrom.fund/bitcoin-grant-program) has been invaluable to our mission. Special thanks to [Chaincode Labs](https://learning.chaincode.com/) for incubating so many scrappy, consistent Payjoin contributors through the ₿OSS program. Our gratitude goes out to those supporters and contributors without which this organization would not be possible. Thank you.
0 commit comments