> For the complete documentation index, see [llms.txt](https://docs.kpk.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.kpk.io/funds/infrastructure/onchain-accounting/balance-adapters/symbiotic-vaults.md).

# 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`](https://github.com/karpatkey/onchain-accounting/blob/main/src/balances/MetaBalanceAdapters/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

{% hint style="info" %}
**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.
{% endhint %}

**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.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.kpk.io/funds/infrastructure/onchain-accounting/balance-adapters/symbiotic-vaults.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
