silentpayments.net
Detail
plain words, no jargon the standards, named every number, and how to check it

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

ONE REUSED ADDRESS
bc1qxy2kgdyg…hx0wlh
02 Apr 2019+0.05000000
11 Apr 2019+0.12500000
03 Jun 2019+0.00420000
27 Sep 2019+1.00000000
14 Jan 2020+0.08800000
142 more
19 Aug 2026+0.02100000
HOLDING NOW2.41983047
EVER RECEIVED11.90420000

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.

PAYMENT NAME
alice@silentpayments.net
nothing to print

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 addressA payment name
If you reuse it, can somebody read your balanceYes, instantlyThere is nothing to reuse
Can two people who paid you compare notesYes, they paid the same stringNo, they paid different addresses
Do you have to be involved for each paymentYes, to send a fresh oneNo, never again
Can you publish it once and leave itOnly by giving up the rotationYes, for life
Does the payer need anything from youA fresh address, or your xpubJust the name
Can you read it down a phoneNoYes
Does it work if you are offlineYesYes
Extra bytes written to the chainNoneNone
Who has to do extra workNobodyYour own wallet, scanning
Can an exchange pay itYesNot 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.

The derivation, drawn

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.

The signature chain, drawn

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.