<!-- tempo-docs-context -->
> Source: [/docs/earn/vaults](https://tempo.xyz/developers/docs/earn/vaults.md)
> Section: [Earn](https://tempo.xyz/developers/docs/earn.md). Choose a vault, deposit stablecoins, read positions, and withdraw. Earn is in beta; see the introduction for access.
> [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="choose-a-vault" />

# Vaults

Choose a vault that accepts the stablecoin your customers hold and supports the access and withdrawal requirements of your product.

An Earn [vault](https://tempo.xyz/developers/docs/earn/how-it-works) is a contract that accepts one stablecoin and issues vault shares, units that represent each account's position. The vault earns from one underlying strategy.

<span id="available-vaults" />

## Find a vault

Use the vault address and network agreed for your integration; [contact Tempo](https://tempo.xyz/contact) to discuss which vaults fit. Evaluate where its returns come from, what customers net, how they exit, and who can deposit. A vault's `verified` flag is `true` when the vault is in Tempo's curated Earn registry. It doesn't describe the strategy's risk or guarantee a return.

<span id="inspect-the-selected-vault" />

### Inspect a vault

The demo starts with the Sentora pathUSD vault on Tempo mainnet. Switch to [Moderato](https://tempo.xyz/developers/docs/quickstart/connection-details), Tempo's testnet, to inspect the pathUSD test vault. Each network lists only its approved demo vault, with live configuration from the [Earn API](https://tempo.xyz/developers/docs/api/earn).

The interactive page defaults to Sentora pathUSD on Tempo mainnet and lets you switch to the pathUSD demo vault on Moderato testnet. The vault dropdown lists only the approved demo for the selected network. It reads that vault directly from Tempo API to show its asset, access rules, deposit status, withdrawal capabilities, and liquidity. See the [Earn API reference](https://tempo.xyz/developers/docs/api/earn) for request and response fields.

Read your vault's configuration with the Earn API `GET /v1/earn/vaults/{vaultId}` endpoint. Add `include=access,apy,capabilities` to return the access, rate, and operation fields this page uses. Save the vault's `id`, its lowercase contract address, together with its network; the same address on another network is a different contract.

<span id="where-yield-comes-from" />

## How vaults generate returns

Each vault earns from one strategy. Strategies fall into three categories by the assets they hold:

* **U.S. Treasuries** — Tokenized U.S. Treasury bonds and sovereign debt products.
* **Institutional credit** — Tokenized private credit, such as warehouse lending and CLOs.
* **Collateralized lending** — Onchain lending pools. Rates move with borrow demand.

An engine is the contract that connects an Earn vault to its underlying strategy. The vault configuration reports its `engine` and accepted asset (`assetToken`); available strategies vary by network. Engines connect to their source in one of three ways:

| Source | How it connects to Earn |
| --- | --- |
| **Lending** | An engine deposits into an underlying lending vault. |
| **Managed strategies** | An engine connects to a provider-managed vault that allocates funds across its strategy. |
| **Tokenized assets** | An engine accesses an asset, such as tokenized treasuries or private credit, through a supported liquidity pool. |

## What changes a position's value

A vault share's value moves with its strategy's returns, losses, and fees. A `verified` vault carries these risks too.

| Strategy | What moves value |
| --- | --- |
| **U.S. Treasuries** | Interest rates, and the tokenized product's issuer and redemption terms. |
| **Institutional credit** | Borrower repayment. A default reduces value. |
| **Collateralized lending** | Borrow demand sets the rate. A loan whose collateral falls short can cause a loss. |

## What customers net

The vault's `apy` object reports observed rates, measured over a past window. Its `apy.vault` rate already reflects [Earn fees](https://tempo.xyz/developers/docs/earn/how-it-works#fees-and-revenue-share), the share of returns a vault pays to fee recipients such as your platform, and the underlying venue's fees. Show the remaining costs before the account deposits:

| Cost | Where it appears |
| --- | --- |
| **Earn fees** | Already in the share price and `apy.vault`. The vault's `state.feesActive` field reports whether it charges them. |
| **Underlying venue fees** | Already in the engine's reported value. |
| **Provider deposit, management, and withdrawal fees** | Read them from the strategy provider's terms before presenting a rate. |
| **Network fees** | Each deposit and withdrawal transaction. |
| **Moving funds from another network** | Each [Routes](https://tempo.xyz/developers/docs/routes) quote, in and out. Routes moves stablecoins between Tempo and other networks. |
| **Rewards** | Reported separately in the `apy` object, under temporary terms. |

An observed APY describes a measurement window; it is not a promised return.

<span id="liquidity-and-fees" />

## How customers exit

Check withdrawal support in the vault's `capabilities` object before the first deposit:

| Path | Vault support | Settlement | When liquidity is short |
| --- | --- | --- | --- |
| **Immediate redemption** | `capabilities.redeem` | In the redemption transaction | Fails; it does not enter a queue. |
| **Queued withdrawal** | `capabilities.asyncRedeem` | A request, then a later claim | Waits in the queue. |

The vault's `instantLiquidity` field is the amount, in asset base units, that the strategy would release right now across the whole vault. It isn't a quote for one account, and `null` means the engine can't report a reliable value. [Withdraw](https://tempo.xyz/developers/docs/earn/withdraw) covers the exit flow.

<span id="eligibility-and-risk" />

## Who can deposit

A vault accepts one stablecoin, and `access.status` reports whether its share token is `open` or `allowlisted` to approved holders. Before enabling a deposit, check the accepted asset, the access status, `state.depositsPaused`, and the operations listed in `capabilities`. The Earn API only reads data; submit deposits and withdrawals with [Viem's Earn actions](https://tempo.xyz/developers/docs/earn/integrate#deposit-into-a-vault) or a direct contract call.

Continue with [Deposit](https://tempo.xyz/developers/docs/earn/integrate).
