<!-- tempo-docs-context -->
> Source: [/docs/zones/deposit](https://tempo.xyz/developers/docs/zones/deposit.md)
> Section: [Zones](https://tempo.xyz/developers/docs/zones.md). Connect to a Zone and work with private balances, deposits, and withdrawals. Zones is in limited preview; see the introduction for access. Earlier testnet sandbox guides describe a separate integration.
> [Documentation index](https://tempo.xyz/developers/llms.txt) · [Docs skill](https://tempo.xyz/developers/SKILL.md)

> Tempo MCP: Use `search`, `find_pages`, `read_page`, and `code` at `https://mcp.tempo.xyz` for Tempo and related documentation.
> If an indexed page is missing or reflects an older site, read this site’s [documentation index](https://tempo.xyz/developers/llms.txt) and Markdown pages directly.

<span id="deposit-into-a-zone" />

# Deposit

Deposit through the Zone's portal on public Tempo, then confirm the private account is credited. First [connect to the Zone](https://tempo.xyz/developers/docs/zones/connect) and get the operator's supported encryption and contract tooling.

[Try the deposit demo](https://tempo.xyz/developers/docs/guide/private-zones/deposit-to-a-zone) with test funds. It uses the earlier sandbox interface.

## Submit an encrypted deposit

<span id="check-the-asset-and-recipient" />

:::steps
### Prepare the deposit

Confirm that the deployment accepts the token and that the depositor and recipient satisfy its access rules. Choose the private recipient and memo, and a public refund recipient.

<span id="check-the-deposit-fees" />

#### Calculate deposit fees

Use the deployed portal's `calculateDepositFee` and `calculateBouncebackFee` helpers to determine the amount the private account can receive and the required failure coverage. Deposit fees are deducted from the amount sent. Show the expected net credit before authorization; see the [deposit fee rules](https://tempo.xyz/developers/docs/protocol/zones/execution#deposit-fees) for the exact calculation.

<span id="encrypt-and-authorize-the-deposit" />

### Send funds

Use the operator's supported tooling to encrypt the private recipient and memo with the Zone's published encryption key. Approve token spending where required, then submit the encrypted deposit to `ZonePortal` on Tempo.

The token, amount, depositor, and refund recipient remain public. See the [privacy model](https://tempo.xyz/developers/docs/zones/privacy).

<span id="confirm-the-private-credit" />

### Confirm arrival

After the public transaction finalizes, use the recipient's authenticated connection to [check the Zone credit](https://tempo.xyz/developers/docs/zones/balances). Save the public deposit reference and private credit record together.
:::

## Track the deposit

Read the deposit outcome with the [Zone status API](https://tempo.xyz/developers/docs/api/zones). Use the queue hash returned by `ZonePortal.depositEncrypted`, not its transaction hash.

Click **Try**, enter the deposit queue hash and the Zone’s numeric `chainId`, then use an API key with `data:read` and access to that Zone. The request tool includes language examples and the response.

`GET /v1/zones/deposits/{depositHash}`

Get Zone deposit

[API reference](https://tempo.xyz/developers/docs/api/zones#getzonedeposit) — request parameters, authentication, and response schema. The examples below use editable sample values.

Requires a [Tempo API key](https://tempo.xyz/developers/docs/api/console/api-keys). Replace `YOUR_API_KEY` before running this request.

**cURL**

```bash
curl 'https://api.tempo.xyz/v1/zones/deposits/0x1111111111111111111111111111111111111111111111111111111111111111?chainId=1424310003' \
  --header 'tempo-api-key: YOUR_API_KEY'
```

**TypeScript**

```ts
fetch('https://api.tempo.xyz/v1/zones/deposits/0x1111111111111111111111111111111111111111111111111111111111111111?chainId=1424310003', {
  headers: {
    'tempo-api-key': 'YOUR_API_KEY'
  }
})
```

A `pending` deposit has not completed. For a failed deposit, inspect `refund.status` and confirm the refund before retrying. Continue to use authenticated [balance and activity reads](https://tempo.xyz/developers/docs/zones/balances) for the private account's ledger.

## Handle deposit failures

Follow the deployment's [deposit lifecycle](https://tempo.xyz/developers/docs/protocol/zones/bridging#deposits-tempo--zone) for policy failures and refunds. Confirm the eventual credit or refund before retrying a deposit.

If funds start on another network, [route them to Tempo](https://tempo.xyz/developers/docs/routes) first, then deposit through the Zone portal.

<span id="try-a-sandbox-deposit" />
