<!-- tempo-docs-context -->
> Source: [/docs/accounts/virtual-addresses](https://tempo.xyz/developers/docs/accounts/virtual-addresses.md)
> Section: [Accounts](https://tempo.xyz/developers/docs/accounts.md). Create accounts, set up signing methods, policies, access keys, key rotation, and fees, and follow guides for users, automations, agents, and teams.
> [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.

# Virtual Addresses

Give each customer their own deposit address while every payment lands in one Tempo account.

## Overview

Virtual addresses turn one Tempo account into an omnibus account. You register the account once, then hand each customer a deposit address derived from it. Stablecoins sent to any of those addresses land in your account.

Each deposit names the address it was sent to, and that address carries your customer tag. You credit the right customer without per-customer wallets or sweep jobs. The tag tells you whose address received the deposit, not who sent it.

<span id="when-to-use-virtual-addresses" />

<span id="virtual-address-use-cases" />

## Use Cases

Virtual addresses fit a business that holds funds for many customers in one account:

* **Exchanges and Brokers:** Give each customer a deposit address.
* **Custodians:** Run an omnibus wallet for many clients.
* **Payment Processors and Platforms:** Issue an address per merchant, customer, or invoice.

If each customer controls their own funds, give them their own [Tempo account](https://tempo.xyz/developers/docs/accounts/apps) instead.

<span id="choose-the-account-that-receives-deposits" />

## Receiving Account

Deposit addresses stay bound to the account you register, so register one whose keys can change. A [configurable account](https://tempo.xyz/developers/docs/accounts/account-configuration/configuration-updates) adds or removes signers at the same address, and runs on the devnet until [T14](https://tempo.xyz/developers/docs/protocol/upgrades/t14). On mainnet, register a multisig or upgradeable contract instead of a single-key account if you expect to rotate keys.

<span id="set-up-deposit-addresses" />

## Setup

:::steps
### Register Your Account

Send one [registration transaction](https://tempo.xyz/developers/docs/guide/payments/virtual-addresses) from the account. Register more than once to get separate ranges of addresses, such as one per business line.

### Give Each Customer an Address

Derive each customer's address offchain from your registration and a customer tag you choose. Creating an address needs no transaction, so issue as many as you need. Keep the mapping from tag to customer in your own records.

### Credit Each Deposit

Every deposit to a customer's address shows up in your account's transfer history with that address. Read the customer tag from it and credit that customer. For history, read transfers with the [Tempo API](https://tempo.xyz/developers/docs/api/transfers).
:::

<span id="your-accounts-rules-still-apply" />

## Account Rules

Deposits to a virtual address are deposits to your account. Your account's [receive policy](https://tempo.xyz/developers/docs/accounts/policies/receive-policies#virtual-address-behavior) decides which stablecoins and senders it accepts. Tempo holds anything else instead of crediting it. Confirm each deposit reached your account before you credit the customer.

Tempo forwards only TIP-20 stablecoins. Other tokens sent to a virtual address are unrecoverable, so tell customers to send only supported stablecoins on Tempo.

<span id="virtual-address-technical-details" />

## Related

[Virtual Addresses for TIP-20 Deposits](https://tempo.xyz/developers/docs/protocol/tip20/virtual-addresses): Covers how forwarding works, the address format, and what changes for wallets and indexers.

[Customer Deposit Addresses](https://tempo.xyz/developers/docs/guide/payments/virtual-addresses): Use for sending the registration transaction and deriving each address.

[Receive Policies](https://tempo.xyz/developers/docs/accounts/policies/receive-policies): Covers which stablecoins and senders an account accepts.
