Matt Odell | Citadel Dispatch E57: Bitcoin Crowdfunding & Donations with @coinjoiner, @pavlenex, and Tony

Stephen Chow
70 min readSep 19, 2022

--

Link to the YouTube (the timestamps are based on this): https://www.youtube.com/watch?v=nQxSY2vHwBA

Matt Odell [6:43]: I got some great guests for this topic. The first guest is Tony, who’s joining for maybe the fifth time on Dispatch. He’s live in person at the studio with me. How’s it going, Tony?

Tony [6:53]: Oh, it’s good. Good to be here. This is a super important topic. I’m glad that we have the guests that we have.

Matt Odell: Fuck yes. Thank you for joining us. We have Pavlenex from BTCPayServer. How’s it going Pavlenex?

Pavlenex [7:04]: Hey guys. Awesome as always. Super excited to discuss this important topic with you gentlemen. Let’s go.

Matt Odell: Cheers. And we have CoinJoiner — we have Nick, who’s the lead maintainer of SatSale, a lesser known project to accept Bitcoin donations that is extremely promising. How’s it going, Nick?

CoinJoiner: It’s a pleasure to join the freaks live. Thanks for having me. I really can’t wait to get into this.

Matt Odell: Well thank you for joining us. I’m very excited for this conversation. So obviously the elephant in the room is: the Canadian government blocked traditional financial support, crowdfunding platforms such as GoFundMe and GiveSendGo for the Canadian freedom protests that have been happening. And a lot of people have moved over to Bitcoin, and there was specifically one major fundraiser that was using Tallycoin, which is a centralized platform that allows you to do self-custody. So you don’t host the whole thing yourself, but you’re able to actually hold your own keys and accept directly to your lightning node. That is maintained by DJ Booth. Unfortunately — given government pressure and whatnot — he wants to lay low. He was invited to join us, as were other people that were involved in that raise. Where do you guys think is the best place to start? If someone is trying to raise Bitcoin for a cause, whether that’s donations, or whether that’s a crowdfunding type of situation, what are some things that they should be considering before they even begin that process?

CoinJoiner [9:05]: Yeah, well maybe we can start with what people have done traditionally, which you see it quite a lot, is they post a Bitcoin address in their bio or like the footer of their website. And the consideration you should really think about there long and hard is: what privacy you’re giving away when you post that address publicly and you raise it for all your donors? So I’m sure we’ll get into the consequences of that.

Matt Odell [9:34]: Yeah that’s a great point, Nick. So let’s talk about that. So the Tallycoin raise was using a fixed address. It is definitely the most common way of raising Bitcoin: just taking a Bitcoin address and pasting it into whatever medium you want to publicly post that in. It could be Twitter, it could be Facebook, it could be your website. What is the downside of that? And what should people be considering there?

CoinJoiner [10:00]: So when you post an address like that publicly, basically everyone can go and look that address up in mempool.space or any other block explorer, and they can go and look at all the donations that you’ve received. So they can see that, Oh you’ve received two Bitcoin donations, and they can also do some sort of analytics on that and try to figure out maybe who donated, or that could link your donors to that donation fundraising. And the other thing is that when you go to spend that money, now those UTXOs have been publicly linked to your identity. So you’re receiving all this Bitcoin in an address, and everyone knows that that address belongs to you because you posted it on your website or on your Twitter. So people can follow what you do with that money once you’ve raised it.

Pavlenex [11:11]: Yeah. For me, just naming it an address is a little bit of a UX problem, because people know that they have a single e-mail, they have an address where they live. So it’s like an unique identifier that they use to receive donations. So, addresses — I like to think of them as invoices: you generate each invoice when you’re getting paid traditionally. So if we were to call “address” a payment request, in a way, or an invoice, I think it could help people understand that they shouldn’t be reusing addresses, because that’s one of the basic privacy no-nos, as Nick explained. So I think it can also be just a the naming problem because people say, I generated an address and now I can put it. And as you mentioned: traditionally, they’ve been putting it everywhere! And it is so easy to — people think Bitcoin is anonymous, but it’s really not. And it’s very easy to see through blockchain what’s going on — who donated — and you can very easily deanonymize the donors and people who are supporting your cause, which is exactly what happened with the Canadian truckers.

Matt Odell [12:31]: So you want to talk about what happened with their fixed address for the freaks?

Pavlenex [12:38]: Yeah, sure. I haven’t been following the story like very closely, but on a most basic level, from what I understood, they’ve been reusing address in order to receive payments in Bitcoin from their donors. So basically Canadian government — and please correct me if I’m wrong because I’ve been just following this on Twitter — so Canadian government basically blacklisted those addresses and now they cannot use those funds. Am I right?

Matt Odell [13:12]: Yeah. So they reused an address or I guess they used an invoice — if we’re going to go by your nomenclature — and that was very obvious to determine: you just went to the donation website and you could just see that every time you clicked on-chain — it was the same address. You can put it into a block explorer, whether that’s a hosted block explorer like mempool.space or if it’s a local block explorer that you’re running with your own node, which could also be mempool or like a blockchain.info. You put it in there and you could see all the donations. Now what happens in that situation? Two things happen: first of all, your transactions after donations are received — what you do with that money afterwards can be tracked. And it’s important to realize that — even if something’s not being actively tracked — the blockchain is forever. This ledger of transactions that we have of Bitcoin, if we are correct, will outlive all of us. So it can be used in the future against you. But not only can future transactions be tracked, it can also be used to determine donors. One of the traditional financial tools that was used before the ban came into place was this website called GiveSendGo. And they required KYC to donate using fiat. And what happened was they got hacked, they were storing that information insecurely, and now there’s a list of donors out there that are being doxxed, that are being harassed, there’s articles being written about them saying, These people are in your community, they’re supporting these protestors — you should cancel them. So it exposes the donators and it also exposes the people or the flow of funds after the fact. Now, the Canadian government in this specific case chose to basically issue a quiet blacklist order alongside a freeze order — that was a court order that was public. The blacklist order went out to regulated Bitcoin services in Canada. It said: If you interact with this address or a derivative address or an address that comes after it, please report all that information to us. The identity of the people that interacted with it, what they’re doing with it. And by the way, I’d be remiss if I didn’t say that this opening clip that we had on Citadel Dispatch 57 — we’ve been showing mainstream media clips for 56 episodes now — 57 was our own boy, Marty. He was on Fox talking about this. So shout out to him — it’s a massive fucking accomplishment, very proud of him. Watch that live. He was actually on a family vacation staying at an Airbnb, and Fox drove a studio van outside of the Airbnb, and Marty walked out barefoot and did the interview barefoot, which is fucking baller.

CoinJoiner: I saw the Photoshop of him doing it in the pool. That was so good!

Matt Odell [16:12]: Yeah that’s because he did the Rabbit Hole Recap previously with me in the pool and someone photo-shopped it in. And it was one of the best Photoshops I’ve seen. But yeah, so they can’t actually freeze Bitcoin that is being held in self-custody, and Marty made a very good point of saying that on Fox. But what they can do is they can track it and they can make your life as difficult as possible and stop you from interacting with regulated exchanges. And that’s what they did — they issued this freeze order. The funds were still distributed to truckers that are involved in the protests. Those transactions are very obvious on-chain — you can see the flow of funds to those people. They also went another step and they took videos of them giving it to the truckers, so the actual truckers that received it are known. So: we know how much Bitcoin they have, we can watch their transactions, we know who they are specifically, and so they’ve already had their banks accounts seized, in most situations they’ve had their insurance cut, and now they’re known to be holding this Bitcoin, and their transactions going forward can be tracked. So that’s what happens when you’re reusing an address. Fortunately, in Bitcoin, we have the ability to not reuse addresses. And I would add on top of this, the Tallycoin fundraiser accepted Lightning as well as on-chain. The Lightning transactions far outnumbered the on-chain transactions, but the actual amount was significantly less. It was something like 95% of the value that was transmitted to the fundraiser was done so on-chain, but maybe 60% of the actual number of payments was done via Lightning. And they have not been able to necessarily actively track those Lightning payments. It was obvious that it was going to BTC Sessions’s node. So there’s other aspects there that people should keep in mind. We’ll probably keep the Lightning side minimal, but if you go to citadeldispatch.com/cd21, that is where we discuss all the nuances of Lightning privacy. So people should go there if they’re they’re interested. But anyway, fortunately we have the ability to receive Bitcoin without address reuse. And two of the ways of doing that is BTCPayServer — which Pavlenex is a major part of that open source project, and another way is SatSale — which Nick is the lead maintainer of. So should we go into how someone could set up one of those instances to receive Bitcoin in a more private way?

Pavlenex [19:02]: Yeah, sure. Well, BTCPayServer is older, so I guess they have a kickstart. BTCPayServer is an open source payment processor, which allows you to basically accept Bitcoin payments, whether you’re a merchant or just trying to raise funds for your cause. It’s a self-hosted piece of software, which means you’re hosting it on your own terms, on your own servers, and you’re in complete control of the private keys that you have. So you basically own the entire payment platform, and I assume it’s very similar to your project Nick, right?

CoinJoiner [19:51]: Yep. Very similar.

Pavlenex: From what I understood, yours is a little bit more lightweight, but you probably want to pitch it in a better way than I will!

Matt Odell [20:01]: Pavel, why don’t you go through BTCPayServer? It’s the one that most Bitcoiners are more familiar with. And then we’ll have Nick talk about the different trade-off decisions he made that differentiate it from BTCPay. And also, let’s highlight the fact that, Pavel, you have run crowdfunding through BTCPay. A big one was bitcoinsmiles.org in El Salvador. So let’s talk about that a little bit in your experiences and how someone might go and use BTCPay. In practice: Okay, I want to raise funds with BTCPay — how do I do that?

Pavlenex [20:37]: Okay. Let’s look by giving an example. So I’m sure listeners are familiar with software like WordPress, which basically allows you to create a website. You host it and you can write your own blog posts — it’s very similar with BTCPayServer: it’s a self-hosted software which you’re running, which allows you to accept Bitcoin payments. We do allow you to connect with your e-commerce platforms like WooCommerce, Shopify, Magento, and a few others. But also we have a software — actually, we call them apps — which allow you to run an entire website on top of your payment platform. And you can have a point of sale application if you’re a merchant accepting Bitcoin in retail. But for our discussion, I think the one which is very interesting is the crowdfunding application, which we built I believe 3 years ago now, and we had several successful big campaigns. If you remember, Matt, Hodlonaut’s campaign was hosted on BTCPayServer crowdfunding. It was our first use case where we raised funds for our fellow Bitcoiner who had lawsuit problems — let’s not maybe go into that specific case. But then we did a round of crowdfunding of Bitcoin for Tor. And now we have bitcoinsmiles.org, which listeners can go ahead and type in bitcoinsmiles.org and you will see our website where, when you click donate, it leads you to a separate payment server which they are hosting, and you can simply send payments to them. BTCPayServer, you can think of it as an invoice management system which generates invoices for your donors. Unlike the example we gave earlier, BTCPayServer does not reuse addresses whenever a payment is detected and whenever an invoice is generated. Whenever somebody clicks donate on bitcoinsmiles, for example, we generate the brand new invoice and — when it’s paid or when it’s expired — we will simply show another one for whoever else wants to donate. So there is never address reuse with BTCPayServer. That is one of the first things we built into the software, is never reusing addresses in any way — we strongly discourage that!

Tony [23:10]: One of the things I’m curious about specifically is: since you do have so many different options for BTCPaySserver donations, what is one that you would suggest over the other and why? Like, you have crowdfunding and then you have donation pages as an option. Is there one particular reason to use one over the other?

Pavlenex [23:28]: Yeah. So they have different features for crowdfunding. You can set up a goal, for example — I’m raising 1 Bitcoin — and then it will show you a progress bar and it’s very interactive. You can even have special sound effects or animations when people donate and things like that. If you want to go a little bit more lightweight or a simpler way, you can have, for example, a simple page which just has a payment button on our end where people can just input a number $5 or 5 Bitcoin or whatever currency you set up on your end. And then it will do the same thing: it generates an invoice and shows it. So it works in a similar way, it just has different user interfaces, basically. We built it with flexibility in mind. So we try to have as many options [as possible] and give freedom to people to customize their own pages and things like that. So technically it works very similarly, it’s just the UI that’s different for all of these features.

Tony [24:32]: Right. And then with the crowdfunding approach, people can visibly — not on the block explorer but through your UI — they can see the status of the crowdfunding. And that almost builds a network effect: if you’re like 80% of the way there, everyone comes forward and tries to get the last 20%. But it does that while still not using the same address. I’m guessing that it uses the xpub behind the scenes to visibly show outsiders that status?

Pavlenex: Yes — that’s entirely correct. It uses xpub or public key, which you just input and you can have your private key stored offline, and we just generate addresses based on that public key that you input. It’s very simple.

Matt Odell [25:24]: And for actually setting up a BTCPayServer, I think two of the things you guys have done really well — I mean, BTCPay in a lot of ways has become the classic project someone points to in terms of a successful open source project in the Bitcoin space that’s not Bitcoin Core, because you just have such a huge community of open source contributors there. And that’s not just developers — you have all this documentation in terms of how to actually set it up. So you can use any VPS — virtual private server — and you guys have basically step-by-step instructions. For these types of things, would you guys agree that you usually should have a cloud server that is running your donations, rather than actually running it from your closet or something like that?

Pavlenex [26:22]: Yeah I agree. Because for best performance, it is better to have it run on a virtual private server on a cloud because it is available 24/7. [Whereas] at home, you can run BTCPayServer on your Raspberry Pi, but I’m not sure if it’s as reliable as it is on a VPS. But these small devices are getting better and better, and who knows? Maybe one day it will be even better to run it that way — though it also has some privacy implications if you’re running it at home: you may reveal your IP address if you’re not careful or skillful enough to do it. So by running it on a virtual private server, you’re basically giving that responsibility to whoever is hosting that server, while you can have your Bitcoin stored in your wallet at home. And your IP address can be somewhere in Germany or wherever the server is hosted. Of course, that is the attack vector in itself, because then the government can shut down that server. But then again, you can easily redeploy it on a different environment — or a different provider in this case.

Matt Odell [27:29]: And that’s more risky. So actually, that’s one of the things that I just have in the back of my head is the question of: How far does the Canadian government want to go? Because one of the providers that you guys constantly recommend is LunaNode because it’s so cheap yet reliable, and they’re based in Canada! So you could see a situation where governments actually go and try and shut down these server accounts, because it is visible, and a sophisticated actor can tell where you’re hosting it based on IP address. But at least with the on-chain funds, your actual private key — the spend key for your funds — is not on the server. So your funds aren’t necessarily at risk — you just need to go and redeploy. Now in Lightning, that’s a little bit different, right? Because you have a hot wallet on the server?

Pavlenex [28:24]: Yeah, that’s correct. That’s the way Lightning works: it needs to be a hot wallet and it needs to be available online in order to accept payments. So that’s a technical challenge. But if you’re concerned that somebody may be shutting your server down and stealing your Bitcoin, you can either withdraw regularly or keep it on-chain and secured offline as you mentioned, Matt.

Matt Odell [28:57]: And then the other thing that I feel like is important to highlight when the BTCPayServer conversation comes up is: right now, our friends at voltage.cloud — they are a Bitcoin infrastructure company that offers VPSes that you can pay for with Bitcoin without KYC — and right now they offer LND for Lightning and they offer one-click BTCPayServers. So you can go there, you can literally just pay them Bitcoin, go through the steps, follow their instructions, and get a BTCPayServer up and running fairly easily.

Pavlenex [29:36]: Yeah, that’s right. The Voltage guys are really doing an awesome job. It’s probably become even easier with what we had with LunaNode. But all of these hosting providers are just doing their best to provide the best hosting server — a service for the software that we are creating. So for us, it is very important that these people, in a way, compete and try to provide better service, and that we have many alternatives. Ideally, we want BTCPayServer to be available like you have WordPress now: any hosting provider can allow you one-click installation of WordPress. And if BTCPayServer becomes popular, I can see even more companies wanting to generate money just by having an easy way to deploy a BTCPayServer and — in that regard — decentralizing. But BTCPayServer isn’t just limited to these providers. You can run it with four lines of command line on any virtual private server that has 2 gigabytes of RAM and 60GB storage. So it’s really easy — it’s not as easy to do as with these Voltage and LunaNode managed hosting, but — you can really do it on any virtual private server that meets these minimum requirements, which aren’t ideal! It requires some resources because we are doing lots of things in the background for you so that you caneasily have a UI to accept Bitcoin payments.

Tony [31:12]: Do you ever see any Tor options for some of these providers? I love the whole one-click deploy thing, but I don’t know if I’ve ever seen a Tor option.

CoinJoiner [31:22]: When you say Tor, do you mean your payment gateway would be an onion site?

Tony: Yeah, exactly. Just onion-only for those that don’t want to reveal what VPS or IP that they may be using?

Pavlenex [31:39]: Yes, we do that out of the box. BTCPayServer can be — so looking at it from the perspective of people wanting to donate: for example, if you go to the payment page of Bitcoin Smiles, like not the main site but the donation page, and you access it through Tor browser, it will pop up an onion address where you can be directed to access it that way. If that’s what you’re referring to — I’m not sure?

Tony: Yeah, exactly.

Matt Odell [32:06]: But the main trade-off there, Tony, is that someone needs to be running Tor — the easiest way of being Tor browser — to access your donation page, so you’re going to get less people. If you’re going to do that, though — if you’re fine with that trade-off — then all of a sudden you might not even need a VPS in the first place! Because I would say the biggest bottleneck of using one of these 24/7 node boxes at home to run your BTCPayServer is: if you don’t want to expose your IP address — it’s Tor-only [for the people donating]. But if you’re fine with Tor-only, then I don’t think it’s that impractical to necessarily just run it from a closet somewhere at an office or at home and just have it out there on an onion address.

Tony [32:53]: Yeah, exactly. Especially for those that may already be running their Lightning node at home, but they’re not using IP at all — they’re just using Tor. So maybe for something as global and widespread as what’s going on in Canada, your box might get hit a lot. But if it’s just the everyday user just trying to raise some funds just from people out there — not like a super popular thing that’s going to get hit a lot — Tor may still be a good option for you.

Pavlenex [33:29]: This is only the UX, and people wanting to access a website through their browser. But one good thing there is that, if you’re using Tor and accessing — for example, I’m now referring to Bitcoin Smiles, but — if you’re accessing that donation crowdfunding part, it will just pop up a warning and say, Hey, this one is available in .onion. Do you want to be directed there? And people using Tor and go there. And the ones that aren’t will just see a normal page — so that’s a little bit of UX improvement that we also did. But I agree: it can be done! It just depends if you’re willing to sacrifice a little bit of usability and UX in order to be more private and more secure or whatever.

CoinJoiner [34:19]: Yes. So you could run BTCPayServer or SatSale from your home on a Raspberry Pi without Tor. But yeah, I really tend to discourage that because every time someone goes to make a donation, the payment page is going to make a request to your IP address to fetch a new address for every donation. And that could leak your public IP address, which is probably not something you want to have happen, especially if you’re also running your Bitcoin node on that IP — it could open you up to a number of attacks and whatnot.

Matt Odell [35:02]: And it lets your ISP know that you’re using Bitcoin. It lets like the average user know your rough location down to the city level. A sophisticated actor could actually figure out your exact home address or office address that you’re running it in. There’s a lot of privacy leaks if you’re running clearnet from home.

CoinJoiner [35:25]: It’s a bit of a tricky problem. I agree with Pavlenex that VPSes are the way to go. Because at the moment I don’t think enough people are using Tor natively or frequently enough to make it viable to get enough donations through an onion payment gateway.

Matt Odell [35:51]: I tend to agree with you. I would say that Bitcoiners are probably more predisposed to use Tor, but even among us it definitely feels like it’s still the minority.

Tony [36:08]: Yeah. That’s not the first thing I use, but at least if you’re setting this up and you care about that — at least it’s an option. That’s in the back of your head and you can at least think about that when evaluating using one of these services.

Matt Odell [36:20]: That’s a pretty good, quick overview of what BTCPayServer brings to the table. Nick, do you want to talk about the differences with SadSale and what you’re attempting to do with that project, and the different trade-offs you’ve made?

CoinJoiner [36:33]: Yeah, sure. So SatSale is a lightweight Bitcoin payment processor and it connects to your own Bitcoin node or Lightning Network node. And so we have definitely not as many features as the BTCPayServer guys have, but we do have donation pages, and you can embed a donation button on your website. We also have a payment gateway for WooCommerce, so you can use it for merchant payments. And you can also use it for more general applications: it does have this payment API in the background. You could use it for a variety of other Bitcoin payment things. For example, I’ve seen it used as a Lightning CAPTCHA. So every time you want to leave a comment on a website, you might have to pay a 15-sat Lightning invoice and then SatSale will confirm that that invoice has been paid, and then you’re allowed to post that comment on that website. So there’s two ways to use SatSale at the moment: the first is 1) you can download it in your Umbrel app store. So if you’re running an Umbrel Bitcoin node on a Raspberry Pi, you can find SatSale in that app store. But one of the problems with that is that it’s not on a VPS — it’ll be at your home IP — and that’s not really ideal for the reasons we just discussed earlier. So 2) the way I recommend that people set up SatSale at the moment is to, like BTCPay, you might rent a VPS for, say, $2, $3, $4 a month. And what you would do is you would point that VPS to look at your Bitcoin node — so you might have a Raspberry Pi at home and you’re renting this VPS somewhere in another country or wherever, and you install SatSale on the VPS and you give SatSale your home IP address and your Bitcoin RPC authentication — a username and password, or cookie file. And then when you run SatSale, it’s like a web server that you can initiate donations through. And so when you go to making your donation, SatSale will reach out to your Bitcoin node at home — so it’ll fetch a new address — and it will display that on the SatSale web server. And it will continuously monitor that address to check that a payment has been made. So SatSale is a lot smaller — definitely nowhere near as many features as BTCPay. For example, BTCPay has PayJoins, which I think is really really awesome — something that I definitely want to look into at some point. But I like to think it’s quite modular and extensible and customizable for whatever you might need. So for example: the payment page — the donation button itself — is all very very basic HTML and CSS. It doesn’t look great — I’ll admit that — but it means it’s modifiable and you can customize it. So you could very easily replace the logos with your company business logo, and you could change it all around quite easily to customize it for whatever your purpose you have.

Tony [40:33]: That’s awesome. So right now SatSale has a store option. It has like a donation option — like an HTML snippet option. And I believe you’re also on WooCommerce as well. Is that correct?

CoinJoiner [40:48]: Yeah, just WooCommerce at the moment for the e-commerce sites. We don’t have a crowdfunding page just yet, so we don’t have a page that adds up the sum of all the donations and displays a goal or anything like that. But it’s definitely something I’m pretty keen in building.

Matt Odell [41:11]: Another thing I noticed about SatSale is that you have BIP47 support. What are your thoughts on that? And how do you see it playing into the offering at SatSale?

CoinJoiner [41:30]: That’s a really interesting question. It’d be very topical, of late! So BIP47, for those who don’t know, they are reusable payment codes. So essentially: everything we said before about not reusing addresses, you can actually get away with with BIP47! So you can have a single payment code or a QR code, and for every individual user who scans that payment code, it sets up a private address channel. So you and the recipient are both able to produce addresses that no one else is able to derive — only you as the sender and the recipient of those donations are able to derive these addresses from the payment code. And so for SatSale — on the main donation screen at the moment — we’ve got a little script that can inject your PayNym. So in the config file, you can just type in — my PayNym Royalcell593 — SatSale will go and grab your BIP47 payment code from paynym.is, and it will display that QR code, as well as a link to your PayNym on the front donation page. And that’s an alternative way of donating to someone. There’s no way at the moment for SatSale to confirm that you’ve made a donation using a BIP47 payment code, because those payments are very private. It’s only between you and the recipient.

Matt Odell [43:21]: Because that’s the point! So first of all, we have someone in the chat saying that they can’t find SatSale, and they spelled it like the boat sail — it’s spelled like a fire sale. So satsale.org. If you’re listening via the podcast and you want more information, that’s where you go. So I thought this was interesting because, first of all, BIP47 is fucking awesome. And unfortunately, even though it was proposed maybe 5–6 years ago, a couple of Core developers decided that it was a little bit spammy on-chain. They considered it spam because there’s a notification transaction, and they universally discouraged it for implementation. So the only two wallets that currently support it are Samourai and Sparrow. And Samourai is the only one that supports sending to it. Samourai also has a feature called PayNyms, where they take your payment code — so your payment code is just a locally generated text string. It looks like a Bitcoin address — it doesn’t start with BC1. It starts with, I believe, PM, but it looks like a Bitcoin address — it’s just letters and numbers, it’s locally generated, it doesn’t rely on a centralized server. Now they have this website, paynym.is, that links a human readable name to that payment code — that is a trusted directory of payment codes. So if you’re going and fetching a payment code from there, you’re putting trust in the Samourai team that they’re not putting an incorrect payment code — that they’re not putting in their own payment code, or they’re not getting a man and in the middle of it and putting in a different payment code. So the ideal situation is you’re hosting that payment code in many different places, so people can verify it. And one of the cool aspects of BIP47 is: once you have that payment code, you never need to fetch it again. You can generate new addresses that only you and the receiver know — every time you want to pay them — and you never have to go back to it. Similar to like: if you have someone’s PGP key, you can just hold on to that PGP key and just constantly use it for encrypting. Now, I brought up PGP — it can be very useful in a BIP47 environment, because if someone knows your PGP key, you can sign a BIP47 payment code with your PGP key, so they can verify it that way as well. Now, PGP has its own set of adoption issues. Unfortunately, a lot of Bitcoiners don’t use it. You can find my PGP key at citadeldispatch.com/pgp — I would like to see more people use that. But anyway, my question to you, Nick, is: to me, one of the cool parts of BIP47 is that I don’t need to run something on a VPS. I don’t have to run SatSale on a VPS. I don’t have to run BTCPay on a VPS. I don’t have to pay a server provider or have uptime. All I need to do is post this payment string somewhere and someone can pay me from their wallet. Do you not see it as almost like an alternative to something like SatSale? It’s interesting to me that you have it integrated into something like SatSale, because if you already have the SatSale instance, it’s [redundant].

CoinJoiner [46:42]: Yeah, that’s a good point. I like giving people the option, so I’ll probably add some other payment methods like BOLT12 for Lightning reusable payment codes. Yeah, SatSale itself can’t actually monitor payments that have been made to that BIP47 payment code — like you said — so you wouldn’t be able to use BIP47 if you were doing things like a merchant checkout. Or you could, but no platforms exist for that just yet, because SatSale doesn’t know which addresses to look for and check whether a payment’s been made to that address. So it is quite different, and I really like it. It’s a really useful solution to this problem where: you want to receive money but you don’t want to have to host a web server that spits out a new address every time. So BIP47 is a really cool solution for just being able to paste something in your bio or at the bottom of your website and people can just reuse it over and over and you don’t have to worry about any privacy issues.

Matt Odell [48:13]: So I’m going to do the thing where I ask the question and then I answer the question that I asked: to me, the reason you have the ability to display your BIP47 payment code directly inside the SatSale interface is because, at the end of the day, it’s good to give Bitcoiners options. More options are better. Citadel Dispatch relies on donations, and right now I’m using BTCPay. So if you go to citadeldispatch.com/contribute, you can donate through BTCPay, but because I can’t show that payment code directly into the flow, the payment code is right underneath it. So it’s nice if someone’s accepting donations that you can go to this one page and it’s just nice, pretty — everything that you want is displayed there for all the different options that people can pay. And then the big advantage of something like BTCPay or SatSale over just a static BIP47 code is that you can receive Lightning as well. A lot of people like paying with Lightning — Lightning does give the sender some additional privacy benefits. It’s not great for receiver privacy, but it’s pretty good for sender privacy.

Tony [49:27]: Yeah. And then at this point, for all the options you just explained: if I’m going through and I’m about to donate to you and I see the option that’s the most private option to donate to — like, you could be a controversial cause and I really don’t want that linking back to me — I’m going to pick which one is the best for my privacy.

Matt Odell: Give the sender the option.

Tony [49:48]: Yeah. Give the sender the options. Give the Bitcoiners the options for the most private. So I would use something like PayNyms or Lightning as a sender in those scenarios where I’m donating.

Matt Odell: Pavle — you have any opinion on BIP47?

Pavlenex [50:07]: I have a lot of thoughts as you guys were talking! So I think it all comes down to: Why are we in this situation? That for a simple donation, you need to run a server? It’s not on BTCPayServer, it’s not on SatSale — what we are trying to do is just find our way to offer people a way to donate in a way that doesn’t infringe on their privacy. So we’re, in a way, hacking around the protocol in order for people to be able to accept Bitcoin. But that shouldn’t be the case! Payment processors like BTCPay and SatSale should be there to allow merchants and people wanting to manage invoices and people wanting to connect to WooCommerce, Magento — or whatever CMS content management system they have out there. Bitcoin, as a protocol, needs to evolve beyond people reusing addresses. We need to have these unique identifiers that protect people’s privacy. What Samourai has done has been there for quite a while, and it’s at least encouraging to see people adopting it. I personally haven’t looked into the protocol and I don’t see how we can implement it into BTCPayServer, but I envision a future where we could be able to pay to one another without thinking about invoices, addresses, or whatnot. I’m just Pavlenex sending to Matt and the payment will be made. I enter Matt @ unique identifier or whatever, a similar way to how BOLT12 or Lightning addresses or LNURL work — that’s the future I want to see! I want to see a future where you, as the user, can just install a wallet and accept a damn donation, that you don’t have to run this complex infrastructure. We are still not there, but one day I believe we will be. For now, these are your options. Bitcoin will evolve. Lots of work is being done on these unique identifiers —as I like to call them — I’m not sure if it’s even technically correct. So what we’re doing is trying to hack around for now. BTCPayServer has always been a project implementing other people’s ideas, trying to give other projects and protocols a way to evolve and find a user base, so that’s why we do all of these things. But at the end of the day — when we think about it — it shouldn’t really be that hard. People should just be able to put a damn QR code on the website, or something very unique, and people should be able to send them money. For example, if you’re Wikipedia or Tor Project, that you want to have invoices, you need accounting, you need to maybe give prizes to people donating — of course you need a payment server to have all of these complexities for you. But if you’re just a guitar player wanting to get donations for whatever, it really should be just your wallet giving you a unique way to accept Bitcoin without you having to tinker around with servers and whatnot. I’m not sure if you guys agree, but I really wish for that future.

Matt Odell [53:31]: A perfect example of the power of something like BIP47 is — well, first of all, I just wanted to add that if you are using the crowdfunding feature of BTCPay, you guys don’t actually even need to do any development on your side. Someone can just put their payment code in that description field of the crowdfund if they want to. But if you want to talk about the power of something like BIP47: my Twitter banner just has my BIP47 QR code — it’s just fixed there. I don’t use any other social media, but you could imagine you could put that in your Facebook banner or your LinkedIn profile picture or whatever fucking social media you use. Because it’s just a static QR code that can always stay there without address reuse. It’s massively powerful in that regard, right?

CoinJoiner [54:21]: Yeah, it really is. So at the moment, the biggest criticism of BIP47 is that: when you want to make a payment to someone for the first time using their payment code — as you said, Matt — you have to make that notification transaction. So this notification transaction lets the recipient know that they should start looking, that they should start scanning these addresses and check for incoming payments. And the criticism of that is that it requires more transactions to make one payment — you’re making two transactions for one payment — but I don’t think that should get in the way of what is a really strong privacy tool.

Matt Odell [55:14]: And just to add here: you could do something like BIP47 — you could do these payment codes without the notification transaction — but then you’re doing that communication out of band. So you’d have to be doing that off-chain. Now the cool part about the notification transaction — Nick just went through the negative, which is that you’re making an additional Bitcoin transaction and that’s the part that was considered spam — the cool part means that you don’t have to do any additional backup. If you just have your seed phrase — your secret words — it can recover your payment code, it can recover all of your different generated addresses with all the different people that you made transactions with before, all from that single seed. If you do it out of band, then all of a sudden you need to actually keep a digital backup that ideally is encrypted, that can have bit rot and the computer drives can fail. It’s way more difficult to back up a digital file than it is to put a bunch of words on a piece of steel and have it being waterproof and fireproof and whatnot.

CoinJoiner [56:27]: Yeah, that’s a really good point. And actually I saw the other day that there is a proposal for something very similar to BIP47: it’s called Efficient Reusable Taproot Addresses. But actually I think it suffers from that point you just mentioned, that because there isn’t a notification transaction, it makes it a bit harder to restore from just a seed. I think something else has to be saved — at least, that’s my understanding of it.

Matt Odell [57:02]: Before we get to those, I just want to jump in real quick. I think Pavel, you have a hard stop in like 2 minutes, correct?

Pavlenex: No, I’m having so much fun with you guys and I’m drinking, so I delayed all my obligations just for you, Matt. So I’ll be here until the end.

Matt Odell [57:21]: I love to hear it. I like to think the freaks are a big part of it too. Okay, so let’s talk about this. I kind of looked into it — it looks like a normal Taproot Bitcoin address and has similar properties. So it doesn’t have a notification transaction. My biggest confusion there is: How does someone know? Like, if I post my payment code on Twitter, you know it’s a payment code and you know it’s not a fixed address to reuse. If I post a Taproot address — and even if, on the receiver’s side, I’m set up to take reusable payments out of it — I’m going to expect that the majority of people are just not going to realize and just send to this fixed reused address anyway. That’s my biggest concern. And that’s not even a technical concern — it’s just a user flow concern, right?

CoinJoiner [58:17]: Yeah, I’m not too sure of the details of these reusable Taproot addresses, but yeah, that makes sense to me. Like, if you don’t have the notification transaction, how does your wallet know that it’s expecting to receive a transaction?

Matt Odell [58:44]: Yeah, how do you know the receiver is expecting a reusable address? How do you know the sender’s even going to realize that it’s a reusable address? On both sides it’s kind of odd there.

CoinJoiner [58:55]: Maybe it still uses a similar payment code. I’m just talking off the top of my head here — I don’t actually know, but maybe it still has a payment code format, but instead of using BC1 addresses, it uses Taproot addresses with some slightly different cryptography so that it doesn’t need a notification transaction.

Matt Odell [59:21]: At least for that proposal, one of the cool parts that was highlighted about it was that it looks like a regular Taproot address — it was like a key aspect of that specific proposal. Now, obviously it’s just a proposal — it’s very early days. Maybe there are cool things that can happen with Taproot in that regard, but I think in the meantime, there’s obviously a critical need for some kind of reusable payment code. BIP47 seems to fit the bill. If the concern is that on-chain fees are gonna be increasing because people are using BIP47, I would point them to the live view of mempool.space right now, where 1 sat per vByte confirms right away. So I think we implement that now, and if fees go up ever, then at that point we can start to phase them out and try and be more efficient on-chain. But right now they’re just mining empty blocks and you can just do one sat per vByte, right?

Tony [1:00:18]: Yeah if anything, you can go ahead and already set up that notification transaction with the person you think you may be paying in the future, and then whenever you need to pay them — maybe there’s a big congestion — you already sent that notification transaction when it was 1 sat. So then you can just keep making payments to them afterwards.

Matt Odell [1:00:35]: Yeah. And it just seems like a double standard because, on Lightning, I’ve got to open and close channels all the fucking time. Lightning is one big batch transaction — which is cool, and it’s an automated way of doing that. But with BIP47, there’s already a hundred people linked with my payment code. They’ve already linked. Now they don’t have to link again unless they create a new wallet! Pavel, have you looked into these reusable Taproot addresses at all?

Pavlenex [1:01:07]: No I haven’t, unfortunately, but I added it to my list of reading things about the Bitcoin protocol evolving. I’m reading as you guys speak — it seems very interesting. But yeah, I have to have some time to think about potential downsides of it.

Matt Odell [1:01:29]: The ever-growing to do list. So first of all, on the BIP47 front, it seems like this whole Canadian trucker stuff has really prioritized it for a lot of people. I know Bitcoin Development Kit (BDK) is considering merging it, which is intended to be a project that is used as a backend for an assortment of wallets. And then BlueWallet — which is available on both iOS and Android — there’s an outstanding bounty right now. The last I checked it was 12 million sats to integrate it into BlueWallet, which I think would be massive. Because right now — forget the notification transaction — the biggest issue of BIP47 is: a donator has to have an Android phone and they have to specifically have a Samourai wallet installed. And when you’re talking about donations, you want to try and reduce the friction of the people who are donating as much as possible — and that is obviously the biggest point of friction. So hopefully — over the next couple of months — we start to see wallets implement it besides Samourai, and ideally cross-platform: desktop and iPhone.

Tony [1:02:40]: Yeah. One of the things that I wanted to add is: if you have a bunch of donors and let’s say they’re all using PayNyms. Eventually, consolidation may end up happening and specific donors will be linked to each one. You may not get all of the donators, but you still probably would want to — after you crowdfund or want to start using your donations — still CoinJoin afterwards, after the fact, just so you don’t unintentionally link — like you said, you have 2.5 Bitcoin UTXOs from two different donors and then you spend 1 Bitcoin and then all of a sudden you have linked those two donators as two individuals that have both donated at that point. Maybe you can say that they don’t exactly know that it was for a specific cause, but eventually there’s —

Matt Odell [1:03:48]: Well you know at the very least they paid the same person or something. So maybe this is a good time to just — whether it’s PayNyms or whether it’s BTCPay or SatSale or Tallycoin — you’re not reusing addresses, you’re receiving all these on-chain funds. How does someone who’s crowdfunding, who’s controlling those funds that are received, how should they go about thinking about their privacy and their donee’s privacy going forward? How do they manage those funds? How should they think about it?

CoinJoiner [1:04:24]: Yeah, I think Tony raised a really good point that you should probably do some CoinJoins after you’ve received the donations. Once you do a CoinJoin where there’s a whole bunch of inputs and a whole bunch of identical looking outputs, it breaks these really deterministic, really easy to follow links in the Bitcoin blockchain. So it will not only protect your privacy as the recipient of those donations — because it makes it hard to follow what you’re spending that donated money on — but it can also protect your donors, that it will be a lot more difficult to figure out who donated and which address is used for what, because it will just look like a whole mess of inputs and outputs. And who knows what belongs to who!

Matt Odell [1:05:17]: I figured you’d have strong opinions on this, considering your Twitter handle is @CoinJoiner! So let’s talk about this from a practical point of view. First of all, there’s these chain surveillance firms — and freaks who have listened to a lot of Dispatch have heard me explain this a million times, but it’s always good to explain it just in case someone’s coming in here fresh just for this episode to do crowdfunding — we have these mercenary firms, these chain surveillance firms, that their only job is to track people’s transactions. Collate known Bitcoin addresses, track people’s transactions. They work with corporations, they work with governments, they work with authoritarians, they share that information around, they have different automated tools to do it. And the whole method to their madness is probability analysis. So with Bitcoin, I can send transactions to myself all day if I want to. So their job is basically to determined when I’m not sending a transaction to myself — I’m actually sending it to Tony or someone else. When does that change of ownership happen? And they attach probability scores to that, and they have different heuristics that affect those probability scores. So one that Tony was just talking about is: in your Bitcoin wallet, it might say that you have a total balance of 20 million sats, but really it’s made up of a bunch of UTXOs. You can think of them as like bills in your wallet. So you might actually have four 5 million sat UTXOs. And if you construct a transaction that’s paying out 20 million sats, all four of those 5 million sat UTXOs are going on the input side. And there’s something called the common input ownership heuristic, which is this idea that all the inputs are usually controlled by the same person, because they’re constructing a transaction. Now you can break that with a two-person CoinJoin. You can break it kind of with a simulated two-person CoinJoin. And the reason is: multiple people are providing inputs instead of just one person. And one of the cool aspects of that is that the more people that do that — even if you’re not actually doing a two-person CoinJoin — you’re breaking that common input ownership heuristic. Another way is something called PayJoin, which actually BTCPayServer supports. Unfortunately, a lot of people aren’t using it, but it’s this idea that: when you pay someone, the receiver is contributing an input. So on the input side, it’s not just the sender’s input — it’s also one of the receiver’s inputs, and it breaks the probability analysis. Now, the reason I bring this up is because: if you have a non-reused address fundraiser — so with the Tallycoin fundraiser, it was obvious, right? It was a fixed address: everyone could see how much it was being raised on-chain. They could see who was donating to it. If they were sending from KYC exchanges or if they were KYC’ed a couple hops away, they could combine that. So a chain surveillance firm could see: This donation came from Cash App — I’m going to hit Cash App up and say, Who made this withdrawal? Cash App then sends their full name, their address, their phone number, their e-mail address, a picture of their face, and then they can use that to then track more people. Now, if you’re not reusing addresses, it’s not as easy for them. But one of the common techniques they’ll do is they’ll basically donate to the fund as well, and then track that transaction flow. So if I wanted to track the Bitcoin Smiles fundraiser and see how those flows are moving, I would basically just keep sending my own Bitcoin as donations and then track each of those outputs and see: Are they getting co-mingled with other outputs? And then try and track from there. That would be the technique that would be done, right?

CoinJoiner [1:09:14]: Yeah, for sure. And so ideally, it would best to CoinJoin the money after you’ve received it. And in a way that doesn’t merge all your UTXOs into one big input.

Matt Odell [1:09:33]: Yeah if your CoinJoin is just merging all of them together and doing a CoinJoin, it doesn’t help either. So then there’s another aspect: coin selection. Nick, you want to talk about coin selection a little bit?

CoinJoiner [1:09:47]: Yeah. So when you’re constructing a Bitcoin transaction, you can choose which UTXOs — or if you’re using a good wallet, you can choose which inputs — are going to be used for that Bitcoin transaction. So ideally, if you’re receiving donations and you want to hide the privacy of your donors and yourself, you might select each donation input and use each input individually — one at a time — in a CoinJoin transaction to break that link, instead of merging them all into one and then CoinJoining. That would defeat the purpose a bit.

Matt Odell [1:10:35]: So not all wallets have coin control. I think it’s cool that BTCPayServer actually has an integrated wallet. Pavle, does that integrated wallet have coin control in it? It does, right?

Pavlenex [1:10:51]: Yeah, it does. Also, we do label certain invoices. For example, if you have crowdfund, we’ll label it crowdfunding for you, and we try to auto label as much as we can so that we can make it easier for you to know what your UTXOs belong to — what store or what app. So we try to do a little bit of automation on that end. So yeah, you can with BTCPayServer pretty easily use labels in order to send funds from the wallet. Also that wallet, if you’re self-hosting, that server relies on your full node, and on top of that has a full hardware wallet support. So you can use your hardware wallets with your full node on your own server, so you don’t have to leak information to third-party servers or whatever web wallets that third parties are hosting. For example: Trezor, or whatever wallet we are talking about. So our wallet is pretty good privacy-wise, but I’m not sure how many people are actually using it, though we recently released an update and improved its UI as well. So I think we are getting there when it comes to usability of our wallet.

Tony [1:12:15]: I guess one of the problems with obfuscating all the donors and doing CoinJoining afterwards is that: the reality is that you do lose some visibility as a donation and crowdfunding source. So on one hand, it’s great privacy — no one should know what I’m doing with the funds — but there is one trade-off in the fact that if you are trying to be as visible as possible, just try to be accountable. I think we’ve seen it a little bit with this Tallycoin stuff is: there were people out there threatening like, Hey I don’t think you’re actually going to donate the funds — I want to hold you accountable. I want to see the donations going off. So there’s an aspect of having super visibility for transparency’s sake. And then also just wanting to protect yourselves from a privacy perspective. I’m not sure if you guys have any thoughts on that?

CoinJoiners [1:13:16]: Yeah, that’s a really good point. And so actually Tallycoin — in defense of them — they actually do support a unique address for each donation and they also support PayNyms and other things, but the people running this fundraiser elected not to use those and they elected to use a single address in the name of transparency. So yeah, I definitely think there’s a conversation to be had here as to what trade-off are you going to make? Is the transparency really worth how much privacy has been given up for the recipients and the donors? Because personally I would think that there’s gotta be better ways to prove that you’re going to use the funds in an appropriate manner. I think there’s probably some better way to do like a proof of reserves maybe in some more private way, and also prove that the donations are going out, putting the funds to good use.

Matt Odell [1:14:26]: You’re not really getting that much of a transparency benefit from reusing address except for total amount raised. Because at the end of the day, unless you go and film every person you give the Bitcoin to — which has its own privacy risks — you could just send out those funds to a million different addresses and you control all those million different addresses anyway.

Tony [1:14:51]: Yeah you go out and say these million addresses are truckers, but they’re actually not.

Matt Odell [1:14:56]: Right. But the alternative — if you don’t reuse an address and you use coin control and you use CoinJoin — is that you can still, if you want to dox all recipients on video, you could still do that, right? I wonder like on GoFundMe, when someone raises money on GoFundMe — which is by far getting way more volume than Bitcoin fundraising does — you’re trusting GoFundMe of the total amount that has been raised. There’s no transparency in that regard — you’re sending bank transfers or credit card payments, and then you don’t have any visibility into where it goes afterwards. Are you really even getting that much of a transparency benefit? Is it even demanded by the market?

CoinJoiner [1:15:46]: I don’t think so! Yeah, I think there’s gotta be better ways to prove that you’re a trustworthy recipient of these donations and that you’re spending them in good ways. I don’t think reusing an address and having a publicly visible total donated is really necessary for things like this. As you say, if you still want to go out and film handing the money out, the only discrepancy there would be that maybe the fundraiser received more money than you gave out and no one’s able to prove that. But I think that’s not really the biggest concern.

Matt Odell [1:16:32]: And like, when I’m donating to something, I’m choosing to trust the organizer of the raise. Or if it’s just an individual, I’m trusting the individual. I don’t need to have insight into what happens to the money afterwards. It’s a trusted relationship already.

Tony [1:16:50]: And I do want to touch on that: there is a difference here between being an individual and accepting crowdfunding. Let’s say I’m an individual and I can go out and set up my BTCPayServer or SatSale and go out there and pitch myself and advertise and say, Hey I’m a trucker — please donate to me. But then there is a trade-off here, like another side of the coin, where we don’t actually know all the trucker’s addresses. So we actually have to go out there and be a custodian for donations. Like, you donate to this master — it could be multisig, so you’re trusting multiple individuals instead of just having to trust a single one — but there is a difference here in setting this up for yourself. And then how do you go out and find all the truckers to donate to? So there’s a little bit of a problem here. And BTCPayServer — I was actually looking at your sites and everything. I actually like your guys’ approach. If I’m an individual and I want to “donate” to BTCPayServer, you guys do list individual contributors and point to their own BTCPayServers.

Matt Odell [1:18:03]: If I recall correctly, they don’t even have a master fund that you can donate to — you choose who you want to donate to. And this is a key point here: the whole point to me of Bitcoin is P2P commerce, and this idea of lowering friction. And to me — especially when you’re talking about a situation where you’re dealing with a hostile state — Bitcoin should be able to obviate the need for large centralized crowdfunds. If you have many small individual raises that are going direct to those individuals — and we already see this with the protests where individuals at protests are posting social media posts about their experiences, they’re posting videos. Now you can imagine a world with BIP47 or BOLT12 on the Lightning side or Lightning addresses or something like that, where a trucker can put a QR code on their truck. And if you see that QR code on the thing, you can pay to it. And the reason we don’t see that as much is because there is a level of friction to running a BTCPayServer or SatSale, right? Like, individual truckers can’t figure that out. Or maybe they can, but there’s definitely a level of friction there as opposed to just downloading a mobile wallet, getting your BIP47 QR code, and painting it on your truck or posting it on social media or something.

CoinJoiner [1:19:32]: Yeah, that’s very true. It’s a lot more accessible. I’m not going to pretend that installing SatSale is the easiest thing in the world. It’s definitely not the easiest thing to set up sometimes, even though maybe for Bitcoiners it’s not too bad. But for people who’ve never touched Bitcoin before — they don’t know what a node is, they don’t know what a VPS is, they don’t know any of these things are — it’s much much easier for them to download a mobile wallet that would support these reasonable payment codes and other more private methods of receiving donations.

Tony: Pavle, what’s your thoughts here?

Pavlenex [1:20:12]: Well, I just think it is beautiful that we have many options and that different use cases can be fulfilled through all of these options, and that at the end of the day, we still don’t have a perfect solution. So I’m just excited about the future development and what people will come up with and perhaps make BTCPayServer obsolete one day, making better things and improving protocols and developing things that are easy for newbies to use. So I agree with you — it is much easier to just paint a QR code on a truck or just print it out and put it in a store than installing a payments server. But yeah, payments have their own use cases that are just different. We’re just trying to help people out any way we can, but there needs to be a much easier way to accept donations. And yeah, I’m just excited and hopeful that we will have a solution one day. Maybe not tomorrow, but who knows?

CoinJoiner [1:21:20]: I know BTCPayServer, don’t you guys also have that Uncle Jim set up where I could host my BTCPayServer and then I could make like sub servers or different donation accounts for a whole bunch of my friends, for example? And they would have their own individual donation portal that would be specific for those funds being received for them. Would you be able to speak a little bit about that? I think that’s a really cool idea. Maybe, for example, instead of having one big crowdfunding platform, you could have — sure, one person might host it, but — the individual donations go to a specific individual. So you can have one donation gateway for each tracker, for example, and it would go directly to them and it would still be in a more privacy-enhancing way by not raising addresses. What are your thoughts?

Pavlenex [1:22:25]: Yeah, that’s awesome that you mentioned it. I didn’t even think about mentioning it because it involves a certain trust in whoever is hosting a server. But yeah, a BTCPayServer does not mean that you need to host it. We call these people third party hosts. So we obviously don’t envision a world where everybody needs to run a server in order to accept Bitcoin payments, but we like to think about it as having as many BTCPayServer factories around the world [as possible], community members running BTCPayServers. For example: in El Salvador, we have community members running BTCPay for their local community and onboarding merchants on their own BTCPayServer. And later on educating merchants about them deploying their own servers. So, for on-chain transactions, this works well. People just need to input their own xpub key or public key, and it is easy. The tricky part though — which we have problems with right now — is with the Lighting Network, and how do we allow people to accept Bitcoin payments in a non-custodial way. Because if you’re sharing your BTCPayServer with your local community, you need to take custody of their funds via the Lightning Network, and this is where we are struggling at the moment. There are some things that we’re thinking of: for example, having a dedicated BTCPayServer app where one day you will be able to run a Lightning node on your phone and then connect to that server. So there are solutions, but we are just exploring all the options. But yeah, simply said: people can open up their BTCPayServer to anybody or to their friends and invite them so that anybody can basically accept payments and you are just hosting a server. So yeah, it’s an Uncle Jim type of thing, as you mentioned. I’m really glad that you brought it up because I completely forgot about it.

CoinJoiner [1:24:30]: Maybe with Lightning — so something I was thinking about: maybe the main person who’s running the shared BTCPayServer, maybe the Lightning payments go to them and they hold the custody of those lightening payments, but maybe it could automatically withdraw after, say, 10,000 sats or something, that it makes an on-chain transaction going to going to the specific individuals. So you make a Lightning payment, you’re intending it to go to someone who’s using that shared BTCPayServer, but the Lightning payment actually goes to the main person who’s running the payment server, it goes to their Lightning node, but then say maybe after some amount of sets of have built up on their side, then they could automatically withdraw it to the individual using the xpub.

Pavlenex [1:25:36]: Yeah. This is already possible. We have a built-in solution called LNbank, which is basically a Layer 3 running on top of L2, which allows people to have internal BTCPay Lightning wallets, but it all goes to one node and then it is distributed to them in a way. Yeah, there are ways to hack around it, but for having it truly non-custodial — it is a bit tricky. We are just exploring solutions because we don’t want to put a target on people running instances. There are instances of BTCPayServer that have 10,000 users. So you have one guy hosting it for 10,000 merchants around the world, and he’s doing it for on-chain completely free of charge. People import their own public keys. They receive payments. He’s not a custodian — he does not really have custody of their funds. He cannot steal their funds. But with Lightning — yeah, it’s a hot wallet. It’s a little bit tricky. And in some wicked world, perhaps it can even have some legal implications for whoever is hosting because — if government is stupid enough to try to do it — he can be considered a money transmitter.

CoinJoiner [1:26:58]: Yeah, they’re the custodian. At that point, they’re receiving the funds and they’ve got some responsibility.

Pavlenex [1:27:06]: Yeah. But ideally, if we could make it that Lightning nodes are run on mobile phones and that they’re online, they would have the ability to accept payments at any time, then ideally you can onboard people to your instance. They just install a BTCPayServer remote mobile application that allows you to connect to a server, and then everybody is happy — nobody’s a custodian of your funds and you’re running a Lightning node on your phone. Hopefully we will get there one day — we are thinking about it. It’s one of our goals this year to create a dedicated app so that anybody can install it, then choose a server or host their own and then accept payments. But yeah, it’s tricky — it’s not an easy thing to solve, but we are very committed to it. It’s one of our top priorities this year and next year as well.

Tony [1:27:57]: Yeah I could definitely see something very Muun Wallet-like where you’re basically an LSP and all the invoices that come in get turned into on-chain transactions in the end. You do pay a little bit more on the fees — you’d just take that out of the receiving user. But I could definitely see something like that where the BTCPay Uncle Jims can still accept Lightning without being a custodian. There’s arguments of whether or not at any point they can run off with the funds, but at that point it’s like donations or payments or something — it’s just temporarily trusted and you’re still using that Uncle Jim. So ideally, maybe it’s not like tens of thousands of users using one, but I would love to have seen a situation where it’s not just three or four people taking charge of such a massive donation crowdfunding effort and it’s more like 20–100 different Uncle Jims. But at the same time, we almost go back to it: you never know how big something’s going to be or how mad the government’s going to be at you afterwards. When we’re talking about Bitcoin — once an address is out there, it’s out there. And then everyone in the world can decide that they want to donate to it. So it’s like things that we have to think about. It goes back to the transparency thing too: like, sure — we want to be super transparent and then just use one address. It’s things that we have to think about before we can involved in crowdfunding, especially if we’re doing it on behalf of other people. I would just love to see more Uncle Jims involved in crowdfunding efforts and maybe even rotating out Uncle Jims when the time is right, where it’s just not one single point of failure, or 3–5 single points of failure or things like that.

Pavlenex [1:30:00]: Yeah, I completely agree. Reducing the centralization in a way, and having as many options out there, and decentralizing — making it harder for people to attack a single point. That’s what matters: I don’t envision a world where everybody needs to run a node, but if we can make it easier so that we have servers all around the world, it will be harder for a government or whoever is trying to attack. That’s one of the things I’m also excited about when it comes to BTCPayServer, just making it hard for people to have a centralization of power against us. So just having as much options and as much alternatives, because at this point you have 20 or 30 or 50 small BTCPayServer providers and people just packing BTCPayServers locally, translating it into their own language and making their own customized payment processor for their local communities. That’s our goal. We are just here to make software, and it’s up to people how they will use it and distribute it, and make it hard for a government or the attacker to chase them or stop them. And it’s also about circular economy: I want to say with Bitcoin Smiles, for example — for us, it is very easy. We don’t have concerns like Canadian trackers have, but it is very easy for us when we don’t have to convert Bitcoin. Because I’ve been working with nonprofits for now four years with BTCPayServer. I constantly try to assist them. And there are so many things. We are talking here about all of these technical things like CoinJoins, PayJoins. But when it comes to these non-profits — trust me: for them, they barely know how to use the wallet. It’s so confusing for them. They try to sell it and then they get back to us: Oh, we shouldn’t have sold the Bitcoin — we should have kept it, and things like that. So circular economy can also make things way easier and much more resilient, in my opinion, as well as reducing centralization.

Matt Odell [1:32:14]: Yeah. Let’s unpack that because to the listener, they might not realize Bitcoin Smiles is based in El Salvador. It’s a fundraiser to have dental care for local Salvadorans. And El Salvador has this legal tender law — if you’re not aware that Bitcoin’s legal tender in El Salvador, you’re probably living under a rock. But that means that all that Bitcoin that is raised can directly be spent on whatever items they need. But in the case of the Canadian protesters, there isn’t necessarily that ability to spend the Bitcoin directly. And as a result, what you usually see people recommend is: Okay, then go cash it out at a regulated service provider, a regulated brokerage — that comes with KYC. That comes with the potential of getting blacklisted at one of those exchanges. So Pavle: in your experience, when you’re doing these raises for places that are not El Salvador — in any of the other countries besides El Salvador — from a practical point of view, how do people go about that? What techniques do they use? What are the strategies that people think about in terms of turning that fundraised Bitcoin into actual real world things that they need?

Pavlenex [1:33:40]: Yeah, sure. So — just one thing about Bitcoin Smiles: the reason why it was so easy for me to work on it is because we just did the entire setup on top of Bitcoin. So Bitcoin Smiles is basically just a community project. It is not a proper non-profit. We don’t have any paperwork set up. We didn’t have to do any of that in order to raise funds and change peoples lives. It basically was the two of us having a chat like we are now, and I asked him like, Okay, what can I do to help you? And then he told me this story about people having dentures and not having access to medical care. And I was like, Okay, let’s create a crowdfund. And he was like, Well I’m not really a non-profit. You don’t have to be! You can just do things on top of Bitcoin and you don’t have to care about all of these things, because if you don’t convert it — if you just spend it directly on patients and medication and all sorts of things — you don’t have to go through all of these complexities. And the reason why we were able to move this fast with Bitcoin Smiles is we removed all of these government complexities that people usually have problems with. Because with BTCPayServer Foundation, a foundation that funds a couple of developers to build BTCPayServer, it’s a proper non-profit, and it was a pain in the ass to form it. I think it took us a year and a half to do it properly. That is insane. With Bitcoin Smiles it was just two of us: we raised 2 Bitcoin and we were immediately able to change peoples’ lives. So that’s one thing I want to point out: that with Bitcoin, you can do things like that — it depends on the way you use it, but you get the point of what I’m trying to say. I’m just too excited!

CoinJoiner [1:35:34]: So yeah, it works in El Salvador when people are receiving Bitcoin directly and it’s legal tender there — it’s very easy for them to go and spend it. But for the Canadian truckers who have now received this Bitcoin, they can’t even go and cash it out because these UTXOs are all in this huge blacklist, this huge list of UTXOs that all the exchanges aren’t allowed to process. So how do the truckers actually go and spend that Bitcoin that they’ve now received? I think it’s a bit of an issue. And I saw some people suggesting that Bitcoiners in Canada should go and go on and buy —

Matt Odell: It might’ve been me.

CoinJoiner [1:36:25]: Yeah! That it’s a really good opportunity to go and get some no-KYC Bitcoin, perhaps directly from the Bitcoiners.

Matt Odell [1:36:29]: Well my argument was that: forget the Canadian protest — just protests in general: If you have a protest that’s locally by you, it just might be a good opportunity to get no-KYC sats because it’s just something that I do. If I know I’m going to hang out with Bitcoiners, I’m always making sure to have some cash on me so I could buy their drinks for them and then they pay me in Bitcoin. Like, I know at some point at 2 in the morning, they’re just going to only have sats, and I don’t see why it would be — especially as Bitcoin fundraising for protests becomes more common — because obviously it’s highlighted now for the Canadian protests, but with my work with Alex Gladstein at HRF, it became really obvious that that’s the main use case for dissidents and activists around the world. If you live in an authoritarian country and you’re politically persecuted — you’re against the government — you are going to be completely financially blockaded. 100% blockaded. If you tell them they can just receive funds from anywhere in the world, their eyes light up — it’s an obvious use case to them. Now, once you start going down the rabbit hole of: you’ve gotta use BTCPayServer, and you gotta run a server. And then they’re like, How do I make sure the government doesn’t know I’m running the server? And then you’ve got to maintain coin control and all that stuff — it gets a little bit more dicey for them. But even if you see someone like Navalny of Russia, they’re still using a fixed reused address, because they’re like, It is so powerful for us to just be able to receive the funds in the first place. I was talking to one of his head lawyers at HRF’s most recent Oslo Freedom Forum and I was trying to convince her to switch and she’s like, I honestly don’t care! Putin can know how much we’re raising — he can’t take it away from us. Now, I strongly disagree with that premise — not only for them, but for the people that are donating to them — but then the pain point immediately becomes: How do you actually utilize the funds? And in El Salvador, that’s obvious. And I’m curious, Pavel — and by the way, the thing you mentioned about the non-profit hits really hard for me because I’m a co-founder of OpenSats for open source funding and it took us fucking forever to get our non-profit status. And there’s so much paperwork, it’s just a pain in the ass, but yeah. So, what do you advise them to do? I mean, gift cards, I guess, is an option — it’s not an ideal option. Maybe like linking up with other Bitcoiners that are maybe ideologically motivated? That, rather than just selling it to random Bitcoiners at a protest, it’s like, I’m ideologically motivated — reach out to them via Signal or some kind of encrypted channel, or even better, in person in a dark pub or something, and be like, Will you buy a couple thousand dollars worth of Bitcoin so that I can go out and buy fuel or food or whatever people need? Like, how do you frame it? How do you think about it?

Pavlenex [1:39:43]: Yeah. So HRF recently has really been helpful in onboarding all of these non-profits. Usually they would go to us and then we would have to onboard them, but Alex and the team have recently really done a great job in creating resources and also offering them help to set it up. So basically they offloaded all of these complexities on our end so that we can develop software, and they basically educate people about how to use funds and how to convert them. So I think Alex may have a better answer for that one, but usually my experience so far — I worked with 15, I think, at this point — what they usually do is they just HODL Bitcoin for a specific period of time, and then once a month, or once in a few weeks, they go to an exchange and convert it. And then you have those that basically autoconvert it or autosell right away. We do have some things on BTCPayServer set up so that you can autosell right away.

Matt Odell: To a KYC exchange, right? Like with an API?

Pavlenex [1:40:49]: Right, yeah. I guess it all depends on your concern and how much you care about the privacy. And also about how capable you are technically in order to do it, because obviously everybody will love to do it in a private way so they don’t have to think about it. But we really have to handhold most of these non-profits. And it is the sad truth that we mostly need to communicate back and forth with them, explain to them: Go to this, you can buy gift cards, just HODL it, or find local people to sell it to, or things like that. I think Alex has some setup, but I cannot remember which exchange and how do they actually advise people to — maybe it is BISQ, I’m not sure.

Matt Odell [1:41:44]: He really likes Paxful, which does have KYC, but is peer-to-peer. But obviously BISQ could be a good option. HodlHodl could be a decent option. With HodlHodl, it’s centralized but non-custodial. With BISQ, it’s more censorship-resistant, because you run the software on your own computer and connect to people peer-to-peer.

Tony: And you can even do the face-to-face option as well. So if you are doing protest-level stuff, you can say, Oh, let’s meet where the protest is.

Matt Odell [1:42:18]: Yeah. Depending on your jurisdiction, ATM’s could be a possibility. Gift cards like at Bitrefill could be an option.

CoinJoiner [1:42:33]: Yeah it’s a really big motivation for really fostering that circular economy of Bitcoin. Because if people do want to cash out and they can’t go to a KYC exchange, then yeah, I think we really have to make sure that there are people willing to buy the Bitcoin off them and transacting in Bitcoin. So people actually need to use Bitcoin, not just the buy and hold, Number Go Up. I think it’s really important that actually these circular economies are fostered in this peer-to-peer way.

Matt Odell [1:42:10]: And this is a good point for people to realize: even in a world where the majority of donations are coming in through BIP47 rather than something like SatSale or BTCPayServer, SatSale and BTCPay actually could benefit people who do these types of raises indirectly, because they make it easy for merchants to accept Bitcoin without a trusted third party. And why is that important? That’s important because: if you’re accepting through BitPay or OpenNode, they can also get the blacklists. But if we have merchants around the world that are onboarded with BTCPayServer or SatSale, they can make their own determination of whether or not they’re going to be doing chain surveillance, whether or not they’re going to be complying with burdensome government regulation or authoritarian policies. And all of a sudden, those all become off-ramps for real goods and services. So when you guys think about merchant adoption, how can an average Bitcoiner — besides if they actually run a business that sells goods and services and starts accepting Bitcoin in a sovereign way through something like BTCPay or SatSale — how can Bitcoiners encourage this kind of circular economy? Because I think the circular economy of Bitcoin will happen eventually. The question is: How do we accelerate it?

CoinJoiner [1:44:51]: Yeah. I really like your idea of paying back friends in Bitcoin. So if they buy you a drink or they buy you dinner, you can pay them back in sats or vice versa. I think that’s a really really good way to start, just getting people used to it, getting people on board — they get a mobile wallet. It’s quite easy to do: you can teach them, show them the ropes. I think that’s a really good way to get started. For getting merchants to onboard with Bitcoin, I think it’s a bit trickier getting them set up in a way that works for their business while keeping it not too technical. It’s a little bit tricky. So with SatSale or something, one of the major motivators for me to build an Umbrel app was that it’s like a plug and play thing now, that you could get one of the Raspberry Pis, install Umbrel on it, download SatSale from the app store, and then you’ve essentially got an in-person point of sale ready to go for your business.

Matt Odell: Because then you don’t have the Tor issue if it’s on a local network, right?

CoinJoiner: Exactly. That’s right.

Pavlenex [1:46:16]: Yeah. For me, it’s all about local communities and having all of these people educating merchants and us creating software resources, documentation on how people can basically take the initiative and change their local communities. Like, it started very small in El Salvador and look at it now! I think that’s a perfect example of how impactful these small communities can be. And we should encourage a circular economy and people adopting Bitcoin on a local level. And I think that’s the way to fight this. Because if we continue to do it in a way that we have all of these centralized services and that Bitcoin equals fiat, we will get all of these pain points and all these problems. But once you start thinking about Bitcoin the way it’s supposed to work without all of these centralized parties, lots of these complexities actually don’t exist anymore.

Tony: One thing I would add — just thinking about all the different topics like dispersing the funds and the local economy and tying the merchants into this — you could even set up something where, at protests, I would imagine there’s still a lot of people out there buying water for everyone and distributing that to the protesters. Water, food utilities, things like that, that they need on the ground floor. You could even see just a pop-up of different stores as individuals. And you can tie in something like BTCPayServer or SatSale to the merchant services. So like: I’m going to list a water bottle for sale or 24 water bottles or food, and anyone that donates to that — you actually, as an individual, or maybe a team of small individuals, you go out and you actually buy the utilities that someone had just donated. So you can list all these different protester-friendly stores that are all BTCPayServers or SatSales.

Matt Odell: You could even go into the local stores like in Ottawa, since we keep using it as an example. I mean, Ottawa, there’s all these local stores there that are obviously selling a bunch of things to protesters. You could go there and try and onboard them to Bitcoin and be like, These protesters have Bitcoin. I can get you set up — maybe even charge them a little bit of money to do it so it’s not just completely charity — and then get them set up and then be like, Bitcoiners can go there to spend their money.

Tony: Exactly, yeah. So if you don’t have merchants that you can set up, even just the approach of being that middleman to buy basic necessities like food and water.

Matt Odell: I like that idea. I mean, another thing that’s just very simple is: engage your local merchants — regardless of protests. Engage your local merchants. Be like, Are you accepting Bitcoin yet? I might be a Bitcoiner, but I love cash for the privacy reasons. And whenever I see a place that is credit card-only — even if I see the sign — I always pull out my cash and make it as friction-full as possible so that they see that I want to pay with cash. And I think you can do that in a friendly but insistent way, that: Maybe you should start accepting Bitcoin? And here’s the ways you can start accepting Bitcoin. Here’s some guides: I can help get you set up and you get to save on credit card fees — it’s a very obvious selling point. You have no chargeback risk.

Tony: Yeah. And that’s why I like what Michael’s doing with Oshi down in Austin and traveling around the United States, literally trying to do that and onboard businesses and to try to create an evangelist network where it’s not just him doing it, but other people as well trying to onboard merchants and get satsback, even, as a result. So yeah, even something as simple as walking into a store and immediately saying, Do you accept Bitcoin? can go a long way. And eventually if enough people are doing that, maybe it’s something to look into.

CoinJoiner [1:50:32]: Yeah, I 100% agree. So actually, someone did a study on what drives Bitcoin adoption by retailers. And it’s a few years old so it’s pretty out of date. I think it was 2016 data or something, but the top two reasons for Bitcoin acceptance was 1) that the customers asked for it and 2) that them accepting Bitcoin will bring in extra customers. And I think both of those are quite easy to convey. If you ask, Do you accept Bitcoin? or if you make it known that there are a whole bunch of Bitcoiners wanting to spend their Bitcoin, then I think that’s a really big motivation for the merchant.

Matt Odell: And you can piggyback it off of this growing, blossoming global meetup community that is happening, right? There’s Bitcoin meetups all around the world. You have a condensed amount of individuals that are ideologically motivated. And I would say to meet up organizers that one thing that you can do that is very actionable is encourage local businesses to accept Bitcoin. And then once they do start accepting Bitcoin and you help them accept Bitcoin — and it needs to be clear here: in a sovereign way, because there was a movement in 2013 where everyone was just trying to get them onto BitPay. It was a centralized service. They were autoselling to fiat. You get them on in a sovereign way and then you give them basically what amounts to free advertising at your meetup. I’ve seen with OC Bitcoiners in California — which by the way, if you’re a Bitcoiner in California, I don’t know how you circle that square, but that’s besides the point — there’s some great Bitcoiners over there. They actually host their meetups at the different restaurants and bars that decide to accept Bitcoin. But you don’t even have to do that. You can just be like this great establishment that is at this location started accepting Bitcoin and you just mention it that at your meetup — it’s extremely powerful.

CoinJoiner [1:52:41]: Yeah. In the Australian Bitcoin meetups — the one in Melbourne, we go to a place that accepts Bitcoin at a bar. And actually we’ve been to other places before and you often find if you offer to pay the bartender in Bitcoin and you show them to download a mobile wallet and you give them a pretty decent tip — which, by the way, tips never happen in Australia, that’s not a common thing — they love it! I’ve seen some bartenders bouncing off the walls. They’ve got like 300 bucks in Bitcoin by the end of the night.

Matt Odell: Bartenders are the easiest to onboard, especially like two hours into being at the bar. I’ve onboarded a bunch of bartenders myself. So we’re probably gonna wrap it up soon, but usually I like to leave the more controversial, nuanced topics towards the end, because usually only the ride or dies get to this point. I’m curious on your guys’ opinion: so we go through all of these different trade-offs and we’re talking about running an always-on service on a virtual private server that is hosted in the cloud. That usually requires KYC. That’s one of the reasons why I really like Voltage is because they don’t require KYC — you just pay with Bitcoin. But I do think eventually they might have to start requiring KYC. LunaNode is a recommended one because their KYC is light, but they still require a phone number. I will always shill silent.link where you can just get a burner phone number and pay with Bitcoin and just download it as an e-SIM. Or alternatively you go and pay cash to get one. So with all these different trade-offs, and we’re talking about you should do coin control afterwards and you should do CoinJoin. And we’re talking about in a situation where you have a state level actor — you have the Canadian government actually going out there and doing surveillance and doing chain surveillance and blacklisting addresses. I’m going to say a very controversial thing right now: To me, in that kind of situation, it seems way better, in terms of a trade-off balance, to accept Monero as your donation, and then swap into Bitcoin. Like, if you’re going to keep savings, just swap into Bitcoin, but for the actual donation collection and then spending of it, you accept Monero. Am I off base here? Or is that something that people should be considering in a state level type of situation?

CoinJoiner [1:55:44]: Yeah, I think it’s definitely preferable to using a single reused address. And depending on how much privacy you need, it might be the best option. I don’t have any big problems with Monero. I think it’s pretty cool — the cryptography is pretty awesome. Pretty cool community, too — good values. So yeah, no issues there for me!

Pavlenex: I’m still in shock — how dare you, Odell.

Matt Odell: Tony’s giving me a look. What are your thoughts, Tony?

Tony: Yeah. I don’t know if you can do something that’s just as simple as posting an address and receiving privacy.

Matt Odell: And I’m talking about a world where BIP47 hasn’t been adopted by wallets yet. This is one of the reasons why I want BIP47 to be adopted. But even in a world where BIP47 is adopted, you’re still doing coin control afterwards.

Tony: Right. And I still think about the UX issues, and we talk about all the complexities of even just using Bitcoin itself today — like, this whole two hours, the complexities of Bitcoin. And now we’re throwing — like, sure: from a privacy perspective there’s a lot of great properties there, but now we’re throwing the UX issue of like, Okay, let’s explain Monero, let’s explain how to do swaps. Let’s explain how to do trustless swaps.

Matt Odell: You won’t have to do trustless swaps in that situation. You post a Monero address, and then you just go to sideshift.ai and you just swap it into Bitcoin.

Tony: True, okay. But still, there’s still a little bit of trade-off of explaining that to people as well. In addition to all the other Bitcoin caveats that we throw out there. And there could be timing analysis. There can be other things associated with these swaps. So that’s my only thing: is from a UX perspective.

Matt Odell: Well, there’s my controversial thought for the day. I feel like it’s definitely a conversation that should be had in this particular situation. I mean, if you talk about this most recent fundraise: if they had done that, they’d be in a way better situation right now. And they could still hold Bitcoin at the end of the day.

Tony: Would they though? Because they are still out there saying: We are the 3–5 individuals that are crowdfunding for the truckers themselves. So they will still be the custodians in a way. Like, sure — it’ll help. The government can’t come in and say, Okay, we’re going to blacklist these addresses and everything like that — it helps on that side. But there’s still single points of failure here that they can target. If they know who those 3–5 individuals are, they’ll still come attack you regardless.

Matt Odell: Well, the point is you wouldn’t need to have 3–5 individuals doing it, right? Individual truckers could post it and then they could swap it into Bitcoin. They could download a mobile wallet. They could post it. You wouldn’t know how many funds went to the address, you wouldn’t know where they sent it afterwards.

Tony: But we don’t even see them doing the very basic thing today of just reusing an address. So, if we can’t even get people to reuse a Bitcoin address! Even if we say it’s not the most private way, well then how are we going to get them to reuse something that they never in their life have heard of before? At least most people have heard Bitcoin, I think, at this point now.

Matt Odell: Right. The biggest trade-off is that I think you lose a donation pool, right? You have less people willing to donate to you because they don’t have Monero to donate. They have Bitcoin that they want to donate.

CoinJoiner: Yeah, and it could be hard to convince them to swap it back into Bitcoin once they’ve received the Monero.

Matt Odell: Ooh. Someone with a more controversial take than me!

CoinJoiner: No no, it would just be like another step that you’d have to go to sideshift.ai and then there might be some significant fee there as well. Yeah, I think we should definitely try and build the software that makes this possible to raise money using Bitcoin. But yeah, maybe in some circumstances — if there’s no other option — then Monero might be your best choice if you’ve got a pretty strong adversary who’s watching very closely.

Matt Odell: Okay. Well, I’m glad that I at least brought it up. I think it’s something that we should be willing to talk about without canceling people. And we’ll see what happens. We know Pavle is not going to be canceled because he just does not want to talk about anything, I guess!

Tony: When Monero fork for BTCPayServer?

Matt Odell: Well, I mean, Monero is completely different than Bitcoin from a code base, so that’s pretty difficult.

Pavlenex: Well, there is a community docker plugin, which allows you to accept Monero on BTCPayServer, so I guess we continue with the controversy. So cancel BTCPayServer, cancel Odell, cancel Pavlenex.

Matt Odell: And make sure you cancel Tony while you’re at it. Guys, so this was a great conversation. I think it will be very helpful for people, especially in adversarial environments who are trying to raise money and getting financially blockaded. I usually like to end it with final thoughts. But with you guys specifically, I mean, you both are heavily involved with these open source projects. Make sure you let people know how they can contribute, whether that’s through donations or actually contributing to open source work with your project. So we’ll start final thoughts. Pavle, final thoughts?

Pavlenex: Sure. Final thoughts: if you wish to contribute to an open-source project, btcpayserver.org, we currently need a lot of people, not only developers, we need help with our documentation, content, and things like that. So if you have any skill, feel free to hit me up on Twitter @pavlenex, and I will happily onboard you. Also bitcoin.design for those interested in design and UX. We also need quite a lot of contributors there.

Matt Odell: Thanks Pavle. And I would say that I think it’s important to realize that BTCPay is a massive project and it’s not just programmers that you’re looking for: it’s people doing documentation, design, all these sorts of things.

Pavlenex: Yeah, exactly.

Matt Odell: Thank you, Pavel. I really appreciate your time and thank you for going longer than you expected to go. It is truly appreciated. Nick, final thoughts?

CoinJoiner: Yeah. So you can find SatSale at satsale.org. And there’s a link to the GitHub. There’s not many contributors just yet. It’s still pretty small project, but I like to think it’s a very small code base and very accessible. And especially because it’s written in Python, so it’s quite accessible to junior developers, especially. And so I’m actually currently getting some SatSale T-shirts printed, and I’ll be sending those out to all substantial contributors, past and present. And if you want to support SatSale, you can donate on the website as well, and I’ll be using that money to get some shirts printed. And actually, can I plug one of the things I’ve been working on lately? So: gun.fun. Gun is a command line Bitcoin wallet, and it supports peer-to-peer betting using Bitcoin. It’s written in Rust, it uses BDK, it’s really easy to set up with a ColdCard wallet. So I’ve been working on that with Lloyd, llfourn on GitHub. And yeah, I think Lloyd’s going to be making some bets tonight or tomorrow. So we’ve got a lot of bets coming in to try and onboard new users, and I think some of them will have some pretty good odds. So keep an eye out for that.

Matt Odell: Awesome. I was not aware of that project. I look forward to diving into it. Thank you, Nick. I really do appreciate all the work you do. And I appreciate you coming on the show and discussing this all with the freaks. Tony, final thoughts?

Tony: Yeah, no awesome discussion guys. Really appreciate us having this. Not only — if you’re out there listening — contributing to these projects from a technical standpoint or documentation, whatever it is, but also donating is such an important topic too. Like, you’re really changing lives out there. So yeah, we all want to hold our Bitcoin and never spend it. But there’s like people out there that need this, and even if we’re donating causes and they may not exactly know how to distribute the funds very properly or what to do afterwards — go out there and do it! Don’t be too stingy out there. We are trying to change the world out there. So be the change you seek.

CoinJoiner: Yeah. The support goes a really long way. Any donation really really matters a lot. It allows us to spend more of our time on these things that we really think are important. Download SatSale, get your hands dirty, give it a try, connect it to your Bitcoin node. I think you’ll find it pretty fun.

Matt Odell: Awesome. Thank you guys. Just to echo what Tony said, your work is really appreciated, not just on the facilitating donations front, because I think that is a major use case that Bitcoin can fix and that it will fix, but we we need to make it easier. And you guys have made it significantly easier than it was just two, three years ago. But I think we can go above and beyond that. And I do appreciate all the work you do there, but also in onboarding merchants and being able to onboard them in a sovereign way without centralized third parties and without address reuse — so that privacy best practices are taken into account — is absolutely massive. It feels like we actually have a foundation where we can start trying to build a circular economy rather than building on quicksand using something like BitPay or OpenNode.

--

--