ERC-7540
ERC-7540 extends ERC-4626 with asynchronous deposit and redemption flows, adding request-fulfill lifecycles for vaults that can't process operations instantly.
In Depth
ERC-7540 adds async request-fulfill lifecycles to the ERC-4626 vault standard. Instead of instant deposits and withdrawals, users submit requests that operators fulfill later. This is critical for real-world asset vaults, cross-chain vaults, and any system where liquidity isn't immediately available. The async model introduces new bug classes around request state transitions, claim ordering, and share accounting across pending and fulfilled states. Fuzzing is essential because the bugs live in sequences of requests, fulfillments, and cancellations that no developer would test manually. For the full invariant breakdown, see How to Fuzz ERC-7540 Async Vaults.
Frequently Asked Questions
What is ERC-7540?
ERC-7540 is an Ethereum standard that extends ERC-4626 vaults with asynchronous deposit and redemption flows. Users submit requests that get fulfilled later by operators, making it suitable for real-world asset vaults and cross-chain systems where instant settlement isn't possible.
How do you test async vault security?
Testing ERC-7540 vaults means writing invariants for request lifecycle correctness (requests can't be fulfilled twice or skipped), claim ordering, share accounting across pending and fulfilled states, and the consistency between preview functions and actual execution. See the ERC-7540 fuzzing guide for the complete approach.