tango.finance
Skip to content

Tango vaults

Deposits

How a deposit into a Tango vault on release 0.15.0 is requested, settled and claimed, how its price is set, and how one transaction can do all three.

A deposit turns USDC into shares of a vault. Every deposit is a request that a settler settles, and it is priced at the vault's NAV per share at the moment it settles. NAV (net asset value) is the total value of everything the vault holds. A holder who can also settle, as you can on your own tango.finance strategy, can request, settle and claim in a single transaction.

Key points

  • Every deposit is priced at the vault's NAV when it is settled, never when it is requested.
  • A deposit has three steps: request, settle and claim. Every deposit is a request that a settler settles.
  • The vault's multicall can run all three steps in one transaction for a caller who holds the settle role, which is how your deposits on tango.finance work.
  • Nothing settles while NAV is stale. A request can wait, and it can be cancelled.

How a deposit works

  1. The depositor requests a deposit by calling requestDeposit, or an operator calls it for them. An operator is an address the depositor has approved to act for them. The amount must meet the vault's minimum. The USDC moves to the vault's deposit silo, a holding contract where it waits outside NAV.
  2. A settler settles requests, up to the vault's batch size. The settler is whichever key holds the settle role: the VaultAdmin, a VaultManager or a Settler. Settlement first turns fees built up so far into shares, then values the vault, and fills every request in the batch at the same price.
  3. The depositor, or their operator, claims the shares.

Requests in one batch must be listed in the order they were made. A request can be filled in part, and the rest stays pending.

Deposit cap

The deposit cap limits the vault's net principal. Net principal is the deposits settled, minus the redemptions settled and the forced exits paid. The vault accepts every request and applies the cap at settlement. If the requests in a batch add up to more than the room left, each one is filled in proportion and the rest stays pending.

The cap can be lowered immediately. Raising it is a High-tier change, and it can never go above a ceiling fixed at deployment. See Timelocks.

Fees at deposit

If the vault sets an entry fee, it is taken in shares at settlement. A depositor can cancel a pending request and get back the USDC still waiting. If the vault sets a deposit cancellation fee, that fee is taken first. Both fees are capped by ceilings fixed at deployment. See Fees.

How long can a request wait?

A pending request has no expiry. It waits until it is settled or cancelled. Before it is settled, it can also be transferred to another address, if the vault's holder policy allows the new owner.

Settlement needs a fresh NAV. While NAV is stale, requests wait. This happens, for example, while a tokenized stock's price is frozen over a weekend, or right after cash moves to or from a perps account. See When NAV is stale.

Cancelling works even while the vault is paused or NAV is stale.

One transaction with multicall

The vault has a multicall function. It runs several of the vault's own functions in one transaction, each with the caller's own permissions, and the whole batch reverts if any part fails.

A caller that holds the settle role, and owns the request or is its operator, can therefore request, settle and claim in one transaction. The vault has no function that reports the next request's id, so the batch names the id it expects. If another request takes that id first, the claim at the end fails and the whole batch reverts, so the caller never settles someone else's request by mistake.

On tango.finance

Your wallet is the VaultAdmin, which holds the settle role, so nobody needs to settle your deposits for you. Each deposit is one approval of the exact amount and one call to the vault's multicall that:

  1. requests the deposit;
  2. settles it at NAV per share;
  3. claims the shares to your wallet;
  4. sends the cash into the strategy's account, so the agents can put it to work.

Your first deposit also approves your manager contract as your wallet's operator. Deploy makes your first deposit. Later deposits start from Deposit on the strategy's page. See Deposits in the app.

A deposit settles only while NAV is fresh. While a price the strategy needs is stale, the one-transaction deposit cannot go through.

Vaults are public contracts, so anyone could request a deposit into one. On tango.finance, only the owner's own requests are settled automatically. Someone else's request stays pending onchain until they cancel it.