What reaches the chain
Only three kinds of data ever touch the chain:- Deposits. The account, amount, and time of each deposit into the channel contract.
- Withdrawals. The account, amount, and time of each withdrawal, plus the account’s running total withdrawn.
- Settlement roots. One 32-byte hash per hub per epoch, covering every account on the hub.
Blinded settlement roots
Each settlement root is a Merkle tree with one leaf per account. A plain leaf would reveal each account’s lifetime received and spent totals to anyone who sees a withdrawal proof. Paychannels blind those totals instead. Each leaf contains:- The account address.
- The account’s running total withdrawn, which is already public onchain.
- A commitment that hashes the account’s lifetime credit and debit together with a per-epoch salt.
Reading account data requires your signature
Balances and payment history are not public, even offchain. The hub and the explorer serve per-account data only to the account owner. To read your account, your client signs a short-lived challenge with a key that controls the account and sends it in anX-TP-Owner-Auth header. The server checks the signature itself before answering. A request that cannot sign for the account gets 401 or 403, never a balance.
The explorer’s per-account views work the same way: connect a wallet and sign the challenge. Hub-wide aggregates, such as total payments and settlement history, stay public.
Who can see what
What the operator sees
The hub operator and every verifier see the full ledger: every payment, every counterparty, and every balance. Verifiers need that visibility to recompute the blinded commitments and check the operator’s arithmetic before signing a settlement. A partner that runs a verifier learns every balance it co-signs. This is the trade Paychannels make for verifiable settlement. Payment data stays private from the public and from the chain, while the parties responsible for checking the ledger can see it.Limits
- Deposits and withdrawals are public. Their amounts and timing per address are visible onchain, like any token transfer. Timing analysis around deposits and withdrawals is possible.
- Owner signatures prove control, not anonymity. Signing a read request proves you control a key at that moment. It does not hide an account’s existence from the hub operator.
- Payees learn what you pay them. A merchant sees the payments it receives, including your address.
Related
- Trust model: what the operator is trusted for and how to audit it.
- Paychannels overview