The short versionThe trade, and how to check any of it
Fresh addresses are solved.
Handing them out is not.
Your wallet has made a new address for every payment for years, and that part works. The part that does not is getting one of those addresses to the person paying you. Do it by hand every time, or publish one address and leave it, or hand over an xpub. A payment name is the fourth option, and it is the only one that costs you nothing.
Side by side
What the middle option gives away
This is not what your wallet does. It is what the one address on your donate page becomes, once a second person has paid it. Your wallet would have given each of them a different address, if only you had been there to hand one over.
Same wallet, same payments, no roll. Each one landed on a fresh address that only your wallet can find, exactly as it would have anyway. The difference is that nobody had to ask you for anything.
Point by point
The same questions, both ways
| A published address | A payment name | |
|---|---|---|
| If you reuse it, can somebody read your balance | Yes, instantly | There is nothing to reuse |
| Can two people who paid you compare notes | Yes, they paid the same string | No, they paid different addresses |
| Do you have to be involved for each payment | Yes, to send a fresh one | No, never again |
| Can you publish it once and leave it | Only by giving up the rotation | Yes, for life |
| Does the payer need anything from you | A fresh address, or your xpub | Just the name |
| Can you read it down a phone | No | Yes |
| Does it work if you are offline | Yes | Yes |
| Extra bytes written to the chain | None | None |
| Who has to do extra work | Nobody | Your own wallet, scanning |
| Can an exchange pay it | Yes | Not today. None support it |
One honest thing, because you should hear it from us rather than find out later. This is new, and not every wallet can pay a name yet. No exchange can. So if somebody needs to pay you straight out of an exchange, give them an ordinary address for that one payment, and give everybody else your name. Nothing here replaces your wallet. It sits in front of it.
The honest cost is in the last two rows. A silent payment writes nothing extra to the chain, but your wallet has to look for payments rather than being told about them, and no custodian implements sending to one. What that scanning actually costs is measured rather than hand-waved.
Under it
Two standards, joined by one boring service
Neither piece is ours. Both are published bitcoin improvement proposals with reference implementations and test vectors.
BIP 352 · Silent Payments
One address you publish forever. The sender combines it with the public keys of the coins they are spending and derives a fresh destination only you can spend from. No message to you, no notification transaction, no extra bytes.
BIP 353 · DNS Payment Instructions
A signed DNS record saying this name means that address. The signature chain runs to the DNS root key, and a wallet checks it itself rather than taking a resolver’s word for it.
Worth knowingThe trust
One thing you should know
What you are trusting, and how to check it
Bitcoin is doing the hard part here and it does not need our help. The only new thing you are trusting is a name pointing at an address, and that is worth thirty seconds of your attention rather than a lecture.
Your money is not here
There is no account and no balance on this site. Payments go straight to addresses only your wallet can spend from. If this service disappeared tonight, every coin you were sent is still yours and nothing needs moving.
Your keys are not here
You give us a public address, and nothing else. We cannot spend your coins, and we cannot see what you were paid, because finding your payments needs a private key that never leaves your wallet.
We could move your name
We run the domain, so we control what your name resolves to. So every change goes into a public log that cannot be quietly edited, and you can point the same name at your own domain instead and cut us out entirely.
Check all of it yourself
None of the following needs our cooperation, our permission, or our continued existence.
# is this zone actually signed, and by which key dig DS silentpayments.net # -> 2371 13 2 B89EE094A909E7801788D4079EBC7F6CA16494D62D4A38BBF74FFFA664F6DDD6 # what does your name resolve to right now, validated to the root delv TXT alice.user._bitcoin-payment.silentpayments.net # -> must print "fully validated". if it does not, do not pay it. # the whole log, and its own chain check curl https://silentpayments.net/api/log curl https://silentpayments.net/api/log/verify # pull the record on a schedule and diff it against your own copy. # that is the entire monitoring story, and it is four lines of cron.
The stronger move is not to monitor us at all. Publish the same record on a domain you own and the whole question disappears. We would rather say that than sell you something.
A valid signature proves the record came from whoever controls the zone. It does not prove they should have. The complete list of parties above you, ours included, is on the payment names page, and it is shorter than the list behind an ordinary web certificate.
Next
Claim a name
No account, no email address. One form and one signed record.
BIP 352How it works
The derivation, one step at a time, with real test vector numbers.
The caseWhy this exists
Cypherpunks, chain surveillance, and 353 documented attacks on holders.
PublicChange log
Every name we issue or change, written where you can check it.
Self hostRun it yourself
Publish the same record on a domain you own and cut us out.