Flexible Vaults are built on a modular, upgradeable architecture that enables seamless integration with new protocols. The system is designed to offer dynamic permission management for curators, allowing precise and adaptable control over what actions can be performed — without compromising on safety or decentralization goals.
This architecture implements a fully-featured liquid vault with the following capabilities:
Flexible Vaults introduce Verifier.sol
, a call-level permission control system. It determines whether a curator (CALLER_ROLE holder) is allowed to make specific calls based on the verification type:
hash(who, where, selector)
exists in an admin-controlled allowlist.hash(who, where, value, calldata)
against a Merkle tree.ICustomVerifier
.ERC20Verifier
: Validates transfer
/approve
calls with role-checks on caller, recipient, and asset.SymbioticVerifier
, EigenLayerVerifier
: Validate delegation and reward-specific and calls.BitmaskVerifier
: Matches call byte-by-byte with a bitmask, allowing partial call validation. Enables checks like approve(farmContract, anyAmount)
.