> ## Documentation Index
> Fetch the complete documentation index at: https://base-a060aa97-docs-devrel-859-withdrawal-window-docs-still.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Private Transactions

> Run confidential enterprise payments on Base with Base Ledgers: balances, transfers, and counterparties stay private while funds settle onchain.

<Warning>
  Base Ledgers is in early access. [Request access](https://www.coinbase.com/developer-platform/developer-interest) to run your own ledger, or use [Coinbase Managed](https://docs.cdp.coinbase.com/payments/overview) for a managed service built on it.
</Warning>

Run your own private payments product on Base with **Base Ledgers**. Balances, transfers, and counterparties stay off public block explorers, while funds settle on Base through a single `Portal` contract. Compliance is enforced at the ledger level with your own KYC controls, funds are self-custodied in a contract you control, and every deposit and withdrawal is an onchain call you can bundle atomically with other Base actions.

## Guides

<CardGroup cols={2}>
  <Card title="Deposit to a ledger" icon="arrow-down-to-line" href="/build-on-base/ledgers/deposit">
    Move funds from Base into the ledger with an encrypted recipient.
  </Card>

  <Card title="Transfer inside a ledger" icon="shuffle" href="/build-on-base/ledgers/transfer">
    Move balances inside the ledger with nothing on the public chain.
  </Card>

  <Card title="Withdraw from a ledger" icon="arrow-up-from-line" href="/build-on-base/ledgers/withdraw">
    Release funds back to Base while keeping the account private.
  </Card>
</CardGroup>

## Why Base Ledgers

* **Private by default.** Balances, transactions, and transfers stay off public block explorers. Deposits hide the recipient and withdrawals hide the sender, so the two stay unlinkable.
* **Compliant.** An operator gates the ledger with its own KYC and compliance controls.
* **Composable with Base.** Deposits and withdrawals are onchain calls you can bundle with other actions (deposit-and-act or withdraw-and-swap) that settle together or not at all.
* **Configurable.** Run a ledger on your own terms with self-custodied funds and custom logic for how transactions are processed.

## Built For

<CardGroup cols={2}>
  <Card title="B2B payments" icon="building">
    Pay vendors without broadcasting your supplier list to the public chain.
  </Card>

  <Card title="Payroll & payouts" icon="money-check-dollar">
    Run onchain payroll without publishing what every employee or contractor earns.
  </Card>

  <Card title="Treasury operations" icon="vault">
    Move balances between corporate accounts, custodians, and counterparties privately.
  </Card>

  <Card title="Cross-border remittance" icon="globe">
    Run KYC-gated corridors where sender, recipient, and amount aren't exposed.
  </Card>
</CardGroup>

## How It Works

A payment moves through three stages: funds enter through the Portal contract, move privately within the ledger, and exit back to Base. The operator runs the services that process each step and decides how to authorize withdrawals.

1. **[Deposit](/build-on-base/ledgers/deposit).** A user moves funds from Base into the ledger. The recipient is encrypted, so deposits to one account stay unlinked.
2. **[Transfer inside a ledger](/build-on-base/ledgers/transfer).** Inside the ledger, users transfer, swap, and earn yield while balances and activity remain private.
3. **[Withdraw](/build-on-base/ledgers/withdraw).** A user moves funds back to Base. Onchain, a withdrawal reveals the asset and amount but not the account behind it.
