Your wallet already makes a new bitcoin address for every payment. It has done that for over a decade, and it is the right thing to do.
The problem is what happens when you are not in the room. Getting a fresh address to whoever is paying you means being there every single time: a message, a QR code, a copy and paste that has to land correctly. So for anything you publish once and walk away from, a donations page, an invoice footer, a profile, people do one of two other things instead. They reuse a single address, which throws the rotation away. Or they hand over an xpub, which is worse, because the payer can then see every address you will ever use and the balance behind them.
Rotating addresses is solved. Handing them out is not.
That is the actual gap, and it is narrower than the version you usually hear. Bitcoin being public is not the problem. The problem is that the fix for it needs you to show up.
The short version. Your wallet rotates addresses; handing one to a payer is what still needs you. Silent payments remove that requirement, and have done for two years. Nobody uses them because the address is 116 characters long. A name fixes the last part, and running your own scanner fixes the bit nobody mentions.
Silent payments removed the interaction in 2024
A silent payment address looks like a normal address and behaves completely differently. When somebody pays it, their wallet does a piece of maths and derives a brand new address that only you can spend from. Nobody has to be online. Nothing is announced.
Two people who both paid you cannot tell they paid the same person. Nor can anyone watching the chain, because there is nothing linking those payments to each other or to the address you published.
So you can publish one address, once, and keep it for life. That is BIP 352, and it has been finished for two years.
Almost nobody uses it. Here is why:
sp1qqg94rylj0uklf6lkyc5n92jp3p392g0rpvh0f74qphufxcx9zya97qh8w4z290qym8ve33a02ejfc3lanvw9aljfz6upuc2gfnulepd75ccrhdql
One hundred and sixteen characters. You cannot say that to someone. You cannot put it on a business card. The privacy problem was solved. The result was unusable, so nobody used it.
A name that means an address
There is a standard for the missing piece. BIP 353 publishes a name in DNS, the same system that decides where your email goes, so that this:
rob@bitsaga.be
means that address. Someone types the name into a wallet, the wallet looks it up, and the payment happens. No copying, no asking me for a fresh address, no waiting for me to be online.
The record is signed, and the wallet checks the signature itself rather than trusting whoever served it. Sparrow does this today. So does Cake Wallet.
You can pay rob@bitsaga.be right now. It has been live since yesterday.
Free, no account, about thirty seconds
Get a payment name
One name people can actually type, pointing at an address that tells them nothing about what else you were paid.
silentpayments.net →What silent payments cost you
Silent payments have a cost, and it is not obvious until you look.
Why someone has to scan
Because every payment lands on a freshly derived address, your wallet cannot simply look up its own addresses to find your money. Somebody has to scan the whole chain, doing maths with your key against every transaction, to work out which outputs are yours.
That somebody sees a great deal.
What that key can see
The protocol hands your scan private key to whichever server your wallet is pointed at. It cannot spend your coins. It reveals every payment you will ever receive, for as long as you use that address.
The key keeps working forever
A silent payment address never rotates. That is the whole point of it, and it means the key you handed over keeps working for as long as you use that address.
So the default experience today is this: you turn on a privacy feature, and a server you have never heard of receives the key that shows it everything you are paid. Sparrow ships with a public one selected automatically. Nothing is hidden about this. It is simply a strange price to pay for privacy.
How I noticed
I published my own name, someone paid it, and the payment appeared in my wallet within seconds. Which was the moment the problem stopped being theoretical.
My own scanning server was still building its index at the time. So the payment was not found by my machine. It was found by a public server I had never chosen, using the key my wallet handed it without asking me. It worked perfectly, and a stranger watched it happen.
Run the scanner yourself
The fix is simple. Run the scanning server on a machine you own. Then the only computer that can see your incoming payments is the one in your house.
Frigate, by the author of Sparrow Wallet, does the scanning. It now runs on StartOS alongside your own Bitcoin node, reachable over your own Tor address, with nothing exposed on your router.
The first index takes a day or two and about 18 GB. After that, keeping up with new blocks costs almost nothing.
What we built
Two things, both open source, both free.
- A StartOS package that publishes your payment name. Paste the address from your wallet, pick a name, and it hands you the exact DNS record to publish on a domain you own. Nobody but you can then change where that name points. It also keeps re-checking the record, and turns red if it ever stops pointing at you.
- A place to get a name if you do not own a domain. Free, no account, no email address, about thirty seconds.
What you have to trust us about
One thing. We would rather tell you than let you find out later.
What we cannot do to you
We never hold your money. There is no balance here and no account. Payments go straight to addresses only your wallet can spend from. If this service disappeared tonight, every coin you were sent would still be yours.
We never see your keys either. You give us a public address, and nothing else.
What we could do to you
But we run the domain, so we control what your name resolves to.
A dishonest operator could point it at their own address. Every payment after that would go to them, with valid signatures, with no wallet complaining, invisibly. And because silent payment outputs are unlinkable, you could not even follow the money to see where it went.
Nothing prevents that. Not DNSSEC, which proves the domain owner said something, not that you agreed to it. Not the specification, which has no security considerations section at all. Nostr's naming standard has the rule that would prevent it, telling clients to follow the key rather than the name. BIP 353 has no equivalent.
Why we cannot do it quietly
Nothing stops us outright. What we can do is make it impossible to do quietly. Every name issued, changed or removed is written to a public change log, each entry containing the hash of the one before it, so removing or editing history breaks every entry after it. And the StartOS package re-checks your record on its own and turns red if it stops pointing at you.
Being able to catch us is weaker than us being unable to try. It is the strongest promise anyone can honestly make here, and it is more than anyone else in this category currently offers. The largest existing provider has no way to update a name once claimed, which is why one of its best known names carries five conflicting records and cannot be paid at all.
What this does not solve
Four things worth knowing before you rely on any of this.
- A name on our domain is only as durable as our domain. If it ever lapsed, whoever registered it next would inherit every name we issued. We are renewing it long and locking it, and you should weigh that promise for what it is.
- Your own domain is strictly better than ours, and the package prints exactly what to add. We would rather you did that.
- Names shorter than five characters are held back for now. There is no way to un-give a name, and first come first served on the short ones is how every naming service starts regretting itself.
- Your domain needs DNSSEC, or wallets refuse the name outright. There is no insecure fallback, by design.
Try it
If you already run a node, install the package, paste your address, and publish the record on your own domain. That is better than anything we can offer you.
If you just want a name that works, take one from us.
Free, no account, about thirty seconds
Get a payment name
One name people can actually type, pointing at an address that tells them nothing about what else you were paid.
silentpayments.net →And if you want to pay something and watch it work, rob@bitsaga.be is live.
Neither you nor anyone else can see what else has been sent there. Which was the entire point.