Tango vaults
Bridging
How Tango vaults move funds to other chains and venues through attested sub-accounts, and how NAV stays correct while funds are in transit.
Some strategies need money somewhere other than the vault's own chain, such as an account on a perps exchange. Bridging means moving funds from one chain to another. A Tango vault has no bridge of its own. Funds can only leave through an attested sub-account, using transfers approved in advance. While money is in transit, the vault will not settle deposits or withdrawals until it has a value that counts that money.
Key points
- The vault has no bridge of its own, and every sub-account lives on the vault's chain.
- Funds leave the chain only through an attested sub-account, using call shapes (approved transaction types) set for it. One example is a Circle CCTP transfer to one fixed recipient.
- While funds are in transit, the attested value must count them. The vault's NAV stays stale until it accepts a reading taken after the transfer.
Which sub-accounts can bridge?
A tracked sub-account can only hold registered tokens on the vault's chain, so it never bridges. Bridging is a call that an attested sub-account makes. That call must match one of the account's approved call shapes.
A call shape can fix a call's arguments byte by byte. So a bridge shape can pin down:
- the bridge contract and function;
- the destination chain;
- the recipient on the other side;
- any hook data the bridge forwards, meaning extra instructions it passes on at the destination.
The amount can be left open, but the destination cannot. Adding a new route means approving a new shape. That is a Critical-tier change, which waits 14 days on Tango's production factories. See Timelocks.
How NAV stays correct in transit
The vault's NAV (net asset value) is the total value of everything it holds. An attested sub-account's part of NAV comes from an attestation, a value that an attester posts for the account. While money is moving, it has left the sub-account but has not yet arrived at the destination.
Attested sub-account on Base -> Circle CCTP: approve USDC, then burn it with a fixed recipient (an approved call shape) Circle CCTP -> Trading account on the destination venue: minted and credited, usually in seconds Destination venue -> Attested sub-account on Base: withdrawals can only be sent back to the sub-account NAV during transit: the attester counts funds in flight or waits; the vault's NAV is stale until a reading from after the transfer is accepted
Three rules keep the value honest during that time:
- The attester counts everything or waits. An attestation is the account's whole net worth, including funds in transit. If the attester cannot see part of it yet, it must report an earlier observation time or skip the reading.
- After the account makes a call, such as a bridge transfer, its NAV is stale, meaning too old to use. It stays stale until the vault accepts a reading observed at least the stale period later. Vaults set this period longer than a transfer takes on the bridge's slow path.
- USDC that the vault sends to the sub-account, or that comes back, is tracked exactly. It never needs an attestation and never makes NAV stale on its own.
While NAV is stale, deposits and withdrawals wait. Nobody can settle against a value taken in the middle of a transfer.
The route the Tango app uses
Perps strategies in the Tango app use an attested sub-account on Base and a trading account on Hyperliquid:
- On the way out, the sub-account makes a fast transfer through Circle's Cross-Chain Transfer Protocol (CCTP), which burns USDC on one chain and mints it on another. The transfer is forwarded to the strategy's own trading account on HyperCore, Hyperliquid's trading layer. The sub-account has only two approved shapes: the USDC approval to Circle's bridge, and this transfer, with the recipient fixed.
- On the way back, the trading account can only send USDC to the strategy's attested sub-account on Base. The trading wallet's signing policy enforces this, not the vault.
- After each transfer, new NAV values must wait out the account's stale period before they can be used.
See Perps on Hyperliquid for fees and timing, and Hyperliquid trading wallets for how the trading account is controlled.