Bull Bitcoin becomes the first mobile Bitcoin wallet that allows users to send and receive asynchronous Payjoin transactions without needing to run their own server, using BIP77!

I am very excited about this new and bleeding-edge feature, because it has been a long-standing ambition of Bull Bitcoin to become the first Bitcoin exchange to process Bitcoin withdrawals via Payjoin (Pay-to-Endpoint) transactions.

However, it was hard to justify Bull Bitcoin investing time into building this feature since there were no commercially available end-user Bitcoin wallets that were able to receive Payjoin payments.

Indeed, in order to receive Payjoin payments (BIP78), a Bitcoin wallet needed to be connected to a full node server and be online at the moment the payment is made. This means in practice that only merchants, professional service providers and advanced full node users had the capacity to receive Payjoin payments. This is, we believe, one of the major reasons why Payjoin had failed to gain significant traction among Bitcoin users.

For this reason, the Payjoin V2 protocol (BIP77) was conceived and developed by Dan Gould, as part of the Payjoin Dev Kit project, to outsource the receiver's requirement to run his own server to an untrusted third-party server called the Payjoin Directory. In order to prevent the server from spying on users, the information is encrypted and relayed to the Payjoin Directory via an Oblivious HTTP server.

Bull Bitcoin’s Payjoin ambitions had been put on hold since 2020, until there was more adoption of Payjoin receiving capabilities among end-user Bitcoin wallets…

But it turns out that in the meanwhile, Bull Bitcoin developed its own mobile Bitcoin wallet. And it also turns out that the open-source Bitcoin development firm Let There Be Lightning, which we had collaborated with in the past, had itself collaborated with Dan to build a software library for Payjoin that was compatible with and relatively straightforward to integrate into our own wallet software. All that was missing was to put the pieces together into a finished product.

Thanks to the collaborative open source effort of the Payjoin Dev Kit team, Let There Be Lightning team and the Bull Bitcoin team, the Bull Bitcoin wallet has now become the first commercially available end-user mobile wallet on the Google Play store to implement the BIP 77 Payjoin V2 protocol.

Moreover, the Bull Bitcoin wallet has also implemented asynchronous Payjoin payments, which means that a Payjoin transaction can be “paused” until the receiver or the sender come back online. This way, the receiver's mobile phone can be “turned off” when the sender makes the payment. As soon as the recipient’s phone is turned back on, the Payjoin session will resume and the recipient will receive the payment. This is a major breakthrough in the mobile Payjoin user experience.

We would like to thank the Human Rights Foundation for allocating a generous bounty for the development of a Serverless Payjoin protocol and its implementation in a mobile Bitcoin wallet, as well as OpenSats and Spiral for supporting the work of Payjoin Dev Kit, which made this all possible.

Why does this matter?

Payjoin, also known as Pay-to-endpoint, is a protocol which allows the Bitcoin wallet of a payments receiver and the Bitcoin wallet a payments sender to communicate with each other for the purpose of collaborating on creating a Bitcoin transaction.

I first heard about Payjoin (then called Pay-to-endpoint) in 2018 and it completely blew my mind. What I liked most about it was that it was not a protocol change to Bitcoin, but rather it was an application-layer protocol that allows wallets to communicate in order to create smarter and more efficient Bitcoin transactions.

Whereas in a normal Bitcoin payment the transaction is created by the sender, and all the inputs of that transaction belong to the sender, in a Payjoin payment both the sender and the receiver contribute coins as inputs.

In the Bitcoin whitepaper, Satoshi wrote:

"some linking is still unavoidable with multi-input transactions, which necessarily reveal that their inputs were owned by the same owner"

With Payjoin, this assumption is no longer true. With Payjoin, we have fixed one of Bitcoin’s most fundamental privacy problems... without changing the Bitcoin protocol!

In a Payjoin transaction, the output amounts visible on the blockchain does not necessarily reflect the value of the payment that was actually exchanged. In other words, you can’t easily tell how much money one wallet sent to the other. This is great for users that are concerned a malicious third party may be attempting to obtain sensitive information about their finances without their consent. This does not however pose an accounting problem for the Bitcoin wallets involved in that transaction: since both wallets are aware of which coins they used as inputs and outputs, they are independently able to calculate the "actual" value of the payment that was sent even if the payment on the blockchain appears to be a of a different amount.

Payjoin breaks the common input ownership heuristic, an assumption used by hackers and fraudsters to track ownership of addresses on the blockchain. The neat thing about this property of Payjoin is that it benefits everyone on the network, not just the Payjoin users themselves.

It allows the receiver of a payment to opportunistically consolidate his utxos when he is receiving funds, in a way which does not necessarily appear to be a consolidation transaction on the blockchain. Depending on the configuration of a payment transaction, it can also make a regular payment look like a consolidation.

In addition to these benefits, the introduction of collaborative peer-to-peer transaction protocols opens up exciting opportunities for the creation of Lightning Network channels, as well as efficiencies for transaction batching.

How to use Payjoin in the Bull Bitcoin wallet:

It’s so seamless, you may not even realize you are using it!

To receive via Payjoin, simply navigate to the “Receive tab” using the network “Bitcoin” and you will see a Payjoin invoice. When you want to get paid, send this invoice to the payer, or show them the QR code. If the sender’s wallet is compatible with Payjoin, it will be up to the sender to decide whether or not they want to use Payjoin.

To send via Payjoin, simply paste the receiver's Payjoin invoice, or scan the associated QR code, in the Bull Bitcoin wallet. If you decide that you don’t want to pay with Payjoin, simply turn off the Payjoin toggle.

Original post: https://www.bullbitcoin.com/blog/bull-bitcoin-wallet-payjoin

Download the wallet: https://play.google.com/store/apps/details?id=com.bullbitcoin.mobile&hl=en-IN

Reply to this note

Please Login to reply.

Discussion

So will purchases from bullbitcoin be payjoin compatible if sent to bullbitcoin wallet?

Vous planifiez une version iOS ?

Wow... Thank you so much ❤️

Available on nostr:nprofile1qqs83nn04fezvsu89p8xg7axjwye2u67errat3dx2um725fs7qnrqlgzqtdq0 , for those who want to use freedom tech

Wowza, this is breaking my brain a bit but appreciate you guys pushing things forward 💪💪💪

Amazing work & thank you! Congrats to the nostr:npub18ull0tdnj9vugtq259k48szg80al44ta7g4fa85nvj3svaq7kt8s9udcl9 team! 🔥

Is bullbitcoin available to US citizens yet?

the open-source non-custodial wallet: yes

the exchange service: no

Come on Francis, we muricans need you, make it happen

SO BULLISH BROTHER!!

MASSIVE.

THANK YOU.

This is incredible! Thank you.

This is big.

i need to start using your services again. but dayum shakepay is appealing

Holy fucking shit!

⬇️⬇️

“Payjoin breaks the common input ownership heuristic, an assumption used by hackers and fraudsters to track ownership of addresses on the blockchain. The neat thing about this property of Payjoin is that it benefits everyone on the network, not just the Payjoin users themselves.”

This moves me greatly. You guys are some of the heroes of this world.

This is amazing. Can you explain all of the implications of this and the possibilities for protecting ourselves from snooping third parties? I’m trying to get my head around the possibilities. Thanks.

Congrats 🧡⚡️🫡

Congratulations friends at #BullBitcoin 🫂

Value of your privacy is as important as the value of your money 🤝

nostr:note1v0dg87ghyjlahjdxp0ukswqh5g7kff2mngxkgp7tuclsajs7yvfqz0hncu

bullish!

Fantastic work 👏

Unreal. Thank you.

Testing Bull #Bitcoin nostr:npub18ull0tdnj9vugtq259k48szg80al44ta7g4fa85nvj3svaq7kt8s9udcl9

Where do we get the apk? Does it work with hardware wallets?

Don't forget to update this site, maybe you'd like to be recommending your own wallet: https://bullbitcoin.com/instructions

Well this is fuggin cool!

nostr:note1v0dg87ghyjlahjdxp0ukswqh5g7kff2mngxkgp7tuclsajs7yvfqz0hncu

Legends 🤙

Badass!!! Thanks!

Love it! 🔥

Glory to you and your House 👀

Will the wallet become available on iOS?

nostr:npub1t289s8ck5qfwynf2vsq49t2kypvvkpj7rhegayrur0ag9s2sezaqgunkzs 👆

Amazing work!

Congrats Francis! Thanks for all the teams and your hard work!

I'm running BULL (Love it!) on a Pixel 8 with GrapheneOS. I've downliaded BULL from the #zapstore . BULLwon't run without Google Play Services. How can I solve this?

Well done teams

Is the PWA on the roadmap?

Congratulations Francis!

This is simply amazing and so needed. I really appreciate Bull Bitcoin always leading on the cutting edge in the Bitcoin space.

Legendary update out of nowhere. Incredible work, and showing the application level can solve important Bitcoin challenges! Outstanding. 🙏🏻

Awesome.

LFG

Good work! Hope to see Payjoin adopted more widely in general.

Very good work here!

FOSS for the win

This is amazing and hopefully will quickly be adopted by several other mobile wallets

You are one of my favorites in the space, and THE best when it comes to clearly communicating about the issues and your ideas. Thanks!

I like the Payjoin transactions in Bull Bitcoin, one functionality I would like to see is the optionality to use STANDING ORDERS in mobile wallet.

I just see "wallet does not meet the criteria" when I try to get a Payjoin address. Any idea how I can fix?

Awesome to see it written in flutter and using BDK, but please build with --split-per-abi for smaller apk sizes.

wow! congratulations!! 👏🏿👏🏿

Based.

Bullish... Thanks Francis

Legends!

LFG!

We can't bookmark notes, can we?

🥺

This is worth saving!

Good work Francis. The wallet is amazing

Is an APK download available somewhere?

Yes. It’s available on their GitHub. You can install and update through Obtanium 👍

Thanks. 🤙

Nice! Thanks! 🙂

Francis- I am Duke of Atretes. Harvester of Spice and Bitcoin. You know it

How are participants selected for the anonymity set? Will this v2 protocol take liquidity from JoinMarket (JAM) offers?

Great work! I’m excited to try it out.

Congrats on release, this is amazing! I think it'd be helpful to have this be a button that, when clicked on, tells you what payjoin is and/or how to "meet the criteria". Right now it's kinda vague!

we're going to change the message. to receive via Payjoin you need to already have funds in the wallet

That works! Appreciate you hearing the feedback

Fantastic!

Can this wallet be used as a Lightning wallet in a Nostr account? And receive zaps? O

👑

Bravo 👏 Any thoughts on iOS version in the future?

TLDR, just use Monero.

Can we pay to our own bull bitcoin wallet and improve privacy of our coins?

Awesome! Thank you!!

Is it magic!?

Well done!!

Incredible news!

Payjoin becoming more widely adopted will be a massive boon for bitcoin on-chain privacy. Huge news from the Bull Bitcoin team. Love to see it.

nostr:nevent1qvzqqqqqqypzqk5wtq03dgqjufxj5eqp22k4vgzcevr9u80j36g8cxl6stq4pj96qqsx8k5rlytjf07mexnqh7tg8qt6y0ty54de5rtyql97v0cweg0zxysnnwt3j

Just effortlessly installed the BullBitcoin Mobile wallet on my Pixel running GrapheneOS from their GitHub repo using Obtanium. Looks beautiful! Can even specify an Electrum server! So grateful🙏

does the paykoin work? I downloaded from the play store on my grapheneos and it shows this.

Awesome! Who is running the servers/relays for V2? What is the incentive to do that?

Very Cool

Hey Francis , are you guys looking to build this app for IPHONE?

Hey Francis, just setting up the app, I've noticed sometimes the bottom of the app is cut off on my device (Pixel 7 on GrapheneOS). Same was when I input 24 word seed phrase and it was invalid.

I just want to point out that the IRS will make believe that every satoshi going out of your wallet, is a capital gain, and every satoshi that is received, is income, effectively causing the value transmitted to be worth only ~50% of what was sent after they come after you.

KYC is a bitch. Be careful out there.

Never heard of that. They don’t treat utxo as dollar bills? I pay you $14 with a $20. You have $14 of income and I get $6 of change. Not $6 of income and you $20.

IF, and only if, their chain analysis software can trace your ownership in that way. That will not be the case in a payjoin transaction as far as I can tell.

Thank you!

Thank you for Sharing your knowledge . How is it different than Satoshi wallet ?

How does Payjoin directory operative and what measure are in place to prevent privacy leakage to the directory ?

Would be nice to have some cryptography primitive explanation used in Payjoin V2 and how they contributed to privacy .

I used testnet mode and beta version on android and it showed

“ Wallet does not meet criteria “

What is the criteria ?

Any #payjoin supporting wallets for iOS ?

#asknostr

For generic crypto wallet with Monero support, I’d strongly recommend Cake. Use Monero over bitcoin if you value privacy and anonymity.

LFG brother!

this is great

🔥