> ## Documentation Index
> Fetch the complete documentation index at: https://docs.polygon.technology/llms.txt
> Use this file to discover all available pages before exploring further.

# Privacy with Paychannels

> How Paychannels keep individual payments, counterparties, and amounts off the public chain: blinded epoch roots, owner-signed reads, and exactly what the chain, the public, and the hub operator can each see.

On most blockchains, every payment is public: anyone can see who paid whom, how much, and when. Paychannels keep individual payments off the chain entirely. The chain sees money entering and leaving a hub, plus one opaque commitment per settlement. Who paid whom, and how much, stays between the payer, the payee, and the hub.

## 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.

Nothing about an individual payment appears onchain: not the payer, not the merchant, not the amount, not even that the payment happened. A settlement covering a hundred million payments looks the same as one covering ten.

## 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.

The salt is derived from a secret shared between the hub and its verifiers, and it changes every epoch. Without it, a commitment reveals nothing about the totals behind it, and commitments from different epochs cannot be compared. Publishing the full leaf set or a withdrawal proof therefore exposes nothing beyond what deposits and withdrawals already show.

## 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 an `X-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

| Data | The chain | The public | The account owner | Hub operator and verifiers |
| - | - | - | - | - |
| Deposit and withdrawal amounts and times | Yes | Yes | Yes | Yes |
| Running total withdrawn per account | Yes | Yes | Yes | Yes |
| Settlement roots | Yes | Yes | Yes | Yes |
| Hub-wide aggregate volume | No | Yes | Yes | Yes |
| That a payment happened | No | No | Their own | Yes |
| Payment counterparties and amounts | No | No | Their own | Yes |
| Account balance, lifetime credit and debit | No | No | Their own | Yes |

## 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](/pos/paychannels/trust-model): what the operator is trusted for and how to audit it.
* [Paychannels overview](/pos/paychannels/overview)
