Skip to content

What is a Privacy Provider?

A Privacy Provider is an authorized entity that acts as the relay layer between end-users and on-chain Privacy Channels. Providers collect user-signed transaction bundles, validate them, optionally enhance privacy through mixing, and submit them to the channel from their own on-chain address. This breaks the direct link between users and their on-chain activity.

Two Components

Every Privacy Provider has two distinct identities:

Key pair identifier (off-chain) An Ed25519 key pair that identifies the provider within the protocol. This key pair is registered in a council smart contract and is used to sign and authorize bundles. The public key maps to a Stellar account address (G...) but it does not need to be a funded on-chain account — it exists as a cryptographic identity.

Treasury account (on-chain) A funded Stellar account that pays network fees and moves funds in and out of channels on behalf of users. This is the address that appears on-chain when bundles are submitted. One treasury account per provider.

What a Provider Does

  • Receives user bundles via a standardized API (SEP-10 authenticated sessions)
  • Validates bundle signatures and structure
  • Enhances privacy by optionally adding mixing operations (additional inputs/outputs) to increase entropy
  • Submits batches to the Privacy Channel from its treasury address
  • Manages a mempool that queues, prioritizes, and executes bundles
  • Holds transaction data linking off-chain user sessions to on-chain activity, for audit purposes
  • Processes deposits including third-party ramp flows where users pay the provider directly (fiat, cross-chain) and the provider funds the channel from its treasury

Privacy Guarantees

  • A provider only has access to transactions processed through it. If a user switches to another provider, the new provider has no history of previous transactions.
  • On-chain, observers see only the provider's treasury address submitting bundles — not the individual users involved.
  • An auditing organization can identify which provider submitted a bundle and contact that provider for details. The provider maintains the off-chain records needed to respond.

Relationship to Councils

Every provider must be registered in at least one council smart contract. The council administrator adds the provider's key pair identifier to the on-chain registry. Only registered providers can submit bundles to channels governed by that council.

A provider can be registered in multiple councils, enabling it to serve channels across different regions, asset types, or compliance regimes.

Jurisdiction belongs to the council, not to the provider. A provider's jurisdiction is determined by which councils it is registered in. See What is a Council? for details.