Liquid Delegation Vaults (Bolts): Deep Dive
This page documents the on-chain bolt primitives used for liquid delegation on Tangle:
LiquidDelegationFactory: deploys vaults per(operator, asset, blueprintIds)tuple.LiquidDelegationVault: holds custody of assets, delegates intoMultiAssetDelegation, and mints transferable shares.
Vault Identity (Tuple) and Deterministic Lookup
The factory uses a deterministic key derived from:
operatorassetblueprintIds(empty meansAllmode)
This lets integrators look up “the vault for operator X and blueprint set Y” without scanning events.
Share Accounting (What totalAssets() Means)
The reference vault implements ERC-4626-like conversions but uses the restaking delegation as totalAssets().
Implication: if a vault holds idle balances (or harvests rewards into its own balance), integrators must verify whether those balances are included in totalAssets() for share pricing.
Withdrawals (ERC-7540 Request / Redeem)
Withdrawals are asynchronous:
requestRedeem(...)burns shares and schedules an underlying unstake inMultiAssetDelegation.- After the exit delay (round-based),
redeem(...)executes the unstake and transfers assets to the receiver.
Integration Notes for requestId
The vault records requests as (controller, requestId) → { shares, requestedRound, claimed } and emits RedeemRequest(...).
The reference redeem(...) currently locates a claimable request by matching shares rather than taking requestId as an explicit parameter. If you are building a production integration, treat “request identification” as a core UX/API concern (index and track requestId from the emitted event).
What UIs/Indexers Typically Track
currentRound()anddelegationBondLessDelay()onMultiAssetDelegationto show when a redeem becomes claimable.- The vault’s
RedeemRequest(controller, owner, requestId, ...)events to display pending requests. - The vault’s tuple
(operator, asset, selectionMode, blueprintIds)to explain exposure.
Rewards (Vault-Level)
Bolts operate as a single delegator address at the restaking layer. Any delegator-level rewards accrue to the vault address.
The reference contract includes harvestRewards() as a hook; how rewards are reflected to share holders (share price vs separate claims) is an implementation decision and should be made explicit in your vault UX.
Risks and Caveats
- Redemptions are delayed by the restaking exit delay (round-based).
- Slashing can reduce the underlying delegation and change the assets received on exit.
- Blueprint selection (
AllvsFixed) determines the service surface area a bolt is exposed to.