← Protocols
Symbiotic
01Description

Permissionless restaking framework. Networks (AVS-equivalents) plug into modular Vaults that delegate any ERC-20 collateral (wstETH, sUSDe, cbBTC, ENA, native ETH wrappers) to Operators in exchange for restaking rewards and slashing exposure.

02Best for
  • 01permissionless restaking for any ERC-20
  • 02running a Symbiotic Network (AVS)
  • 03Operator delegation strategies
  • 04LRT/LRTfi backed by Symbiotic vaults
03Install
  • pnpm add viem
04Environment variables
VariableScopeDescription
NEXT_PUBLIC_SYMBIOTIC_VAULT_FACTORYClientSymbiotic VaultFactory on Ethereum mainnet (see https://docs.symbiotic.fi/deployments). Deploys new Vaults with custom collateral, delegator, and slasher modules.
NEXT_PUBLIC_SYMBIOTIC_OPERATOR_REGISTRYClientOperatorRegistry on Ethereum mainnet: 0xAd817a6Bc954F678451A71363f04150FDD81Af9F.
NEXT_PUBLIC_SYMBIOTIC_NETWORK_OPT_INClientNetworkOptInService on Ethereum mainnet: 0x7133415b33B438843D581013f98A08704316633c.
05Prompt snippet
Integrate Symbiotic restaking. Stakers deposit collateral into a Vault: `IERC20(collateral).approve(vault, amount); IVault(vault).deposit(address onBehalfOf, uint256 amount)` returns shares. Vaults are ERC-4626-like but split active vs withdrawing balances — read `Vault.activeBalanceOf(account)` and `Vault.withdrawalsOf(epoch, account)`. Withdraw with `Vault.withdraw(address claimer, uint256 amount)` which queues into the next epoch; claim after the epoch boundary via `Vault.claim(address recipient, uint256 epoch)`. Operators register via `OperatorRegistry.registerOperator()` then opt into Networks via `OperatorNetworkOptInService.optIn(network)` and into specific Vaults via `OperatorVaultOptInService.optIn(vault)`. Networks call `BaseDelegator.stakeAt(network, operator, timestamp, hints)` to read effective stake at a moment, and `Slasher.slash(...)` to penalize on misbehavior. Use the Symbiotic SDK or `viem` `readContract` against the deployed module addresses listed in docs.symbiotic.fi.
06Gotchas
  • Symbiotic is permissionless — anyone can deploy a Vault, Network, or Slasher; UIs MUST allowlist trusted modules. Treat unverified Vaults as malicious by default (custom delegator / slasher logic can rug).
  • Slashing is LIVE and per-Network: a single Operator slash can cascade across every Vault that delegated to that Operator. Display 'slashable by N networks' before users deposit.
  • Withdrawals are epoch-based, not time-based — `epochDuration` is set per-Vault (often 7 days). Funds remain slashable for the full current + next epoch after withdrawal request.
  • Symbiotic vs EigenLayer: an Operator can opt into BOTH; ETH backing the same operator is double-restaked, doubling slashing surface. LRTs (ether.fi, Mellow) often stack both — read the LRT's opt-in policy.
  • Vault `activeShares` are not transferable on most default delegators; secondary liquidity comes from LRTs (Mellow, Re7, P2P) wrapping the position, not the Vault itself.
  • Networks set their own `maxNetworkLimit` and Operators set `operatorNetworkLimit` — effective stake is the MIN of both plus delegator-level caps. Don't quote raw vault TVL as 'restaked' to a network.
  • Mellow / Re7 LRT vaults built on Symbiotic add a strategy contract on top — that contract can rebalance allocations across multiple Symbiotic Vaults, adding extra trust assumptions.
07Alternatives