Skip to content

Non-custodial by design

Trust boundaries

The coordinator's trust boundary is narrow on purpose: it can arrange a transaction and ask you to sign, but only you can authorise spending your coins.

What the coordinator can do

  • Match participants into a pool
  • Build the combined transaction
  • Collect each participant's signature
  • Broadcast the result

What it can't do

  • Can't steal — it never holds your keys or funds
  • Can't redirect — you only sign a tx paying your own destination + change
  • Worst case — it can refuse service or log who joined; it cannot take coins

Note

Your private key is used only by a signer running on your machine. Verify that for yourself — the signer is source-available.

Why this holds

A signature commits to the whole transaction (see Anatomy). With SIGHASH_ALL, your approval means "exactly these inputs, exactly these outputs" — including your own equal output and your change. Nothing can be added, dropped, reordered or retargeted after you sign without breaking every signature. That is what makes handing a half-built CoinJoin to a coordinator safe.

Next: don't trust, verify →