For the complete documentation index, see llms.txt. This page is also available as Markdown.

Symbiotic Vaults

Reports an account's underlying-asset balance in any configured Symbiotic ERC-4626 vault.

One immutable adapter that reports the underlying-asset balance for an account's position in any Symbiotic ERC-4626 vault. The set of vaults to query is governed on the NAV Calculator (per-adapter, MANAGER-gated) and passed in as bytes32 instance coordinates — vault addresses widened to bytes32 — so adding a vault is a config transaction, not a deploy.

  • Type: Meta-adapter

  • protocolSubId: keccak256("symbiotic-vaults")

  • Instance key: the vault address, widened to bytes32

  • positionId: abi.encode(address(vault))

  • Source: SymbioticVaultsMetaBalanceAdapter.sol


Positions returned

Leg
PositionKind
isDebt
Description

Supplied

Supplied

false

The account's vault shares, redeemed to the vault's asset

A single leg. Valuation goes through the shared fee-aware ERC-4626 redemption helper (previewRedeem), so any redemption fee the vault charges is reflected in the reported amount rather than assumed away.


Which vaults this covers

These are synchronous ERC-4626 vaults, which is what makes a small meta-adapter sufficient — the position is a share balance convertible to assets on read, with no withdrawal queue or epoch to model.

Symbiotic's restaking vaults more generally are not all of this shape. Only vaults configured on the NAV Calculator are queried, and each is checked against Symbiotic's own registries before being added.

How a vault is tied to Symbiotic, positively. Measured on mainnet for KPK USDC LiquidLane: it is a registered entity of the Symbiotic VaultFactory (isEntity(vault) == true), and its delegator() was minted by one of Symbiotic's two DelegatorFactories. The two factories' entity counts sum exactly to the VaultFactory's total, and all share the VaultFactory's owner; the delegator's vault() points back at the vault.

That check is worth stating precisely, because it is asymmetric: the VaultFactory assertion is guess-free, while the delegator assertion hardcodes one of the two known DelegatorFactories. A vault whose delegator came from the other factory would still be genuine Symbiotic.


Failure behaviour

A configured instance that is not a readable ERC-4626 vault reverts at vault.asset() and is dropped by the meta-adapter's per-instance catch — the account's other positions are unaffected. This is the family's usual fail-closed-per-instance behaviour: an unreadable instance contributes nothing rather than poisoning the whole adapter's result.

Last updated