Payjoin Trading: A Novel Approach to UTXO Consolidation and Privacy With Automated Collaborative Transactions by Default

Bull Bitcoin is now the first Bitcoin exchange in the world to introduce Payjoin as a deposit and withdrawal option, unlocking two new concepts: Payjoin-by-default and Payjoin trading.

Every time a BULL Wallet user buys or sells Bitcoin on-chain via our embedded exchange integration, that transaction will be a Payjoin by default. This will allow Bitcoin buyers to passively aggregate their wallet's UTXOs, which can reduce their Bitcoin mining fees in the future. Many Bitcoin users do not even know that they must periodically “merge” their coins by spending them to a new address in their Bitcoin wallet if they want to reduce the economic costs of future Bitcoin transactions. Payjoin-by-default automates this process. Not only does this help reduce the size of Bitcoin's UTXO set, making it easier for everyone to run a Bitcoin node, but it also reduces fee pressure for every Bitcoin user.

Payjoin trading is a novel concept which protects users from malicious actors trying to gain insights into their financial habits by conducting chain analysis. Because transaction amounts in Bitcoin are public, it's possible to reverse engineer information such as someone's salary or trading strategies such as dollar-cost averaging. Bull Bitcoin is a non-custodial exchange, so every trade leaves an on-chain trail.

The widespread adoption of Payjoin in the Bitcoin network makes common input ownership and change output detection heuristics less reliable. Our Payjoin implementation reduces round numbers and address reuse, and reduces the possibility of third-party onlookers guessing the fiat value of Bitcoin transactions. Introducing Payjoin-by-default and Payjoin trading means that the more people use Bull Bitcoin, the more privacy the Bitcoin network gains as a whole. This is part of our philosophy to align the incentives of our company with the interests of all Bitcoin users.

How a Payjoin purchase works: your UTXO and a Bull Bitcoin UTXO go in, your merged UTXO and Bull Bitcoin's change come out

Simplified: the receiver adds one UTXO, while the sender can use several. Mining fees are not shown.

In December 2024, BULL Wallet became the world's first Bitcoin wallet to integrate the Payjoin V2 protocol. This was a highly experimental project coordinated with Dan Gould and the Payjoin Dev Kit team, who have since founded the Payjoin Foundation.

Researchers have used the insights from this experimentation to improve the Payjoin experience to make it more seamless and resistant to attacks. The software powering Payjoin, both for the wallet and for the exchange, is fully free and open-source.

To benefit from these features, all a user has to do is download BULL Wallet, create a Bull Bitcoin exchange account, and log into their account via the BULL mobile app. The rest happens automatically, like magic!

How to use Payjoin trading in BULL Wallet

If you are new to Payjoin, start with our article What Is Payjoin? The Most Underrated Privacy Tool in Bitcoin and our video explainer. Here is how Payjoin trading works in practice.

1. Get set up

Download BULL Wallet, create a Bull Bitcoin exchange account, and log into your account from the app. If you need any help along the way, our support team is available in the chat, directly from the wallet.

Payjoin is already on by default for buys and sells with the exchange, so there is nothing to set up. You can check it in Settings, under Payjoin, in the section "With the Bull Bitcoin exchange".

2. Buy Bitcoin on-chain

Place an on-chain buy order as usual. While the screen shows "Payjoin in progress", your wallet and the exchange are building the transaction together. Stay in the app until it shows "Payjoin completed": it only takes a few minutes at most.

In your transaction history, the trade is labelled Payjoin, with the status "Payjoin completed".

3. See your UTXOs consolidate

Open Manage coins before and after your purchase. Without Payjoin, every purchase would add a new UTXO to your wallet. With Payjoin-by-default, one of your existing UTXOs goes into the transaction and comes back merged with your purchase, so you keep a single, larger UTXO.

4. Sell Bitcoin on-chain

Selling works the same way. This time, it is Bull Bitcoin that adds one of its UTXOs to the transaction, and the trade shows "Payjoin completed" in your history.

How a Payjoin sale works: your UTXO and a Bull Bitcoin UTXO go in, Bull Bitcoin's output and your change come out

Simplified: the receiver adds one UTXO, while the sender can use several. Mining fees are not shown.

How to check your Payjoin on the mempool

From the transaction details in BULL Wallet, open the transaction in the Bull Bitcoin mempool explorer. When you open it from your wallet, the page shows you which inputs and outputs are yours and which are Bull Bitcoin's. That view is only for you: the information stays on your phone and is never sent to the server. Keep this link to yourself: anyone who opens it would see which coins are yours, so sharing it would undo the privacy of this transaction.

A Payjoin opened from BULL Wallet in the Bull Bitcoin mempool explorer, each input and output marked Sender or Recipient

Click "See calculations" to see what really happened in the transaction: the page adds up what each side contributed and what it got back. In this example, the recipient brought one UTXO and the sender brought three, and the recipient's net gain, the amount actually received, is what came back to them minus their own UTXO.

See calculations panel: what the sender and the recipient contributed and their net result, amounts blurred

Amounts are blurred to protect the privacy of this real transaction. Unblurred, the panel shows what each side contributed and got back, and the net gain of the recipient, which is the amount actually received.

Now open the same transaction from a plain link, the way any third-party onlooker would. They see inputs and outputs, but nothing that reliably tells them which coins are yours and which are Bull Bitcoin's, so it is hard to say who is sending what to whom, or how much. That is Payjoin trading at work.

The same Payjoin as seen by a third-party onlooker, with no indication of who owns which input or output

FAQ

Is every trade on BULL Wallet a Payjoin?

Every on-chain buy and sell with the Bull Bitcoin exchange from BULL Wallet is a Payjoin by default. Lightning and Liquid orders are not Payjoins.

Why was my first purchase not a Payjoin?

To take part in a Payjoin, your wallet needs at least one UTXO. On your very first purchase into an empty wallet, it does not have one yet, so that trade is a regular Bitcoin transaction. Your next purchases will be Payjoins.

Is there a minimum amount?

On-chain orders on the Bull Bitcoin exchange start at 25,000 sats, which is above the default Payjoin minimum of BULL Wallet, so every on-chain order can be a Payjoin.

What happens if a Payjoin fails?

If a Payjoin cannot happen for any reason, the trade falls back to a regular on-chain Bitcoin transaction and goes through as usual.

Do I need to keep the app open?

Yes, until the trade shows "Payjoin completed". Your wallet takes part in building the transaction, which it can only do while the app is open. If you leave before, the trade still goes through as a regular transaction.

Start Payjoin trading today

BULL Wallet: Bull Bitcoin's self-custodial, open-source wallet, where every on-chain buy and sell is a Payjoin by default. Download BULL Wallet

Bull Bitcoin account: buy and sell Bitcoin straight from BULL Wallet, with every purchase delivered to a wallet you control. Create my Bull Bitcoin account

Any question? Our team of Bitcoin experts is available in the support chat, directly from the app, to answer anything and help you with anything, from creating your account to your first Payjoin. You will talk to real humans, as always.