ERC-4626 and yield vault audit
A vault makes one promise: every share is worth its slice of the assets. Guardian audits the share math, the strategies behind it and every way out, with 20+ public yield vault reports.
DeFi audits for



Dolomite
Olympus
Onchain · Yield Vault Audit
Every share price, every strategy, every fee.
- Share pricing and first deposits Prices from tracked assets, not raw balances, with a seed deposit or virtual offset, and no deposit that mints zero shares.
- Rounding direction Deposit and redeem round down, mint and withdraw round up, and no exact exit reverts by one unit.
- totalAssets and pending PnL Open positions, claimable funding, unclaimed rewards and debts counted once, so the price does not jump when they settle.
- ERC-4626 compliance Max and preview functions that match execution and reflect every cap and pause, convert functions that exclude fees, and no revert where the standard forbids one.
- Async requests (ERC-7540) Pending, claimable and claimed states, cancellations, operators, and who carries a loss while a request waits.
- Strategy adapters and integrations Callbacks, max functions, reward claims, ADL and liquidations in every external protocol a strategy calls.
- Harvest and fee accrual Reward claims and harvests no one else can trigger or sandwich, fees on the right base, and high-water marks that only rise.
- Withdrawal queues and cooldowns Queues, epochs, lockups and partial fills that one user cannot block, reorder or reset for everyone else.
- Losses and recovery Who absorbs a strategy loss, and whether exits, late claims or new deposits shift it onto other holders.
- Curator, allocator and keeper roles What managers can move, cap or rebalance, and which of those calls an attacker can trigger instead.
- Shared strategies and multi-vaults Vaults that share a balance or a strategy, priced so one vault's shares never claim another's assets.
- Upgrades and wrappers Balances that read the same after an upgrade, and wrappers that apply each share conversion once.
Covers ERC-4626 and ERC-7540 vaults, auto-compounders, delta-neutral and leveraged strategy vaults, and wrappers over Morpho, Aave and GMX on Ethereum, L2s and HyperEVM. Keepers that harvest and rebalance are reviewed in an Offchain Automation Pentest. Liquid staking vaults have their own liquid staking audit.
Public findings
What Guardian’s vault security audits have found.
Each card links a finding in a public Guardian report. All were resolved.
-
RH-1Umami GMI · Critical
A deposit or redemption could carry a callback to the user’s own contract, which ran before the request was cleared. Cancelling the request inside it refunded the deposit while the attacker kept what the request paid out, putting every asset vault’s funds at risk.
Callbacks Read the finding RH-1 in the Umami GMI Index report
-
C-07Peapods · Critical
The lending vault had a public donate function. An attacker could deposit 1 wei, front-run a 100-token deposit with a 100-token donation, and leave the victim with zero shares.
First deposits Read the finding C-07 in the Peapods Leveraged Volatility Farming report
-
H-10Peapods · High
The vault received Fraxlend shares rounded down when it lent and burned them rounded up on repayment, as it should. Repaying the full amount then needed one share more than the vault held, so the repayment reverted.
Rounding Read the finding H-10 in the Peapods Leveraged Volatility Farming report
-
C-01BracketFi · Critical
Burns priced the payout with the wrong formula. After wstETH rose from 1 to 1.1 ETH, burning 10 brktETH paid out 12.1 wstETH against a 10 wstETH deposit.
Share conversions Read the finding C-01 in the BracketFi Round 1 report
-
C-01Umami · Critical
The hedge’s PnL was read with a size change of zero, so it always came back as zero. Margin, and with it the vault’s price per share, ignored every open gain and loss.
Pending PnL Read the finding C-01 in the Umami GMX V2 Position Manager report
-
C-01Glider · Critical
An ERC-4626 wrapper capped exits at Morpho Vault V2’s maxWithdraw, which returns zero by design. Once funds were deployed, every withdrawal and harvest reverted, freezing fully backed deposits.
Integrations Read the finding C-01 in the Glider Protocol Review report
-
H-05Glider · High
Matured deposit requests sat outside the share price and could still be cancelled. A depositor could claim only after a loss, at the impaired price, and take part of the recovery owed to the holders who bore it.
Async requests Read the finding H-05 in the Glider Protocol Review report
-
H-04Nunchi · High
Two vaults on one strategy priced shares from the same total assets but separate share supplies. A 1 WETH deposit into the new vault could withdraw 101 WETH.
Shared strategies Read the finding H-04 in the Nunchi Protocol Review report
-
C-01Synthetix LP Vault · Critical
The reward claim from Synthetix was public. Anyone could trigger it, stranding the rewards in the registry and cutting off the vault’s yield for the cost of gas.
Harvest Read the finding C-01 in the Synthetix Auto-Compounding LP Vault report
-
H-02Synthetix SNX Vaults · High
The performance fee high-water mark reset on every update, even below the old peak. After a drawdown, the vault would charge fees again on gains it had already charged.
Fees Read the finding H-02 in the Synthetix SNX Vaults report
-
C-01Gamma · Critical
A withdrawal could name a USDC-blacklisted recipient. The GMX callback then reverted on the transfer, locking the vault mid-withdrawal so no one could deposit or withdraw.
Withdrawals Read the finding C-01 in the Gamma GMX V2 Vault report
Onchain · How it runs
Two teams, and share accounting written as code.
-
01 / Two teams
Two independent teams, one scope.
Team A pairs expert manual review with the fuzzing suite. Team B runs Helix across every corner. Each cross-checks the other.
- Expert manual review
- Competitive incentives
- Cross-checked findings
-
02 / Helix AI Auditor
Helix, the leading AI Auditor.
Hundreds of parallel agents spend billions of tokens across the entire codebase. Only human-verified findings reach the report.
- Billions of tokens
- Human-guided context
- Human-triaged findings
-
03 / Invariant fuzzing
An invariant suite around your share price.
Core safety properties become executable invariants, fuzzed across every reachable state. On Umami’s GMI vaults, “TVL of a Vault = PPS * Share Supply” failed under fuzzing.
- TVL equals price per share times supply
- Previewed shares equal minted shares
- Share balances never exceed supply
-
04 / Strategies and integrations
Every protocol the vault plugs into.
Each adapter is read against how the protocol it calls really behaves: its callbacks, its max and preview functions, and the upgrades its team may ship later.
- Callbacks and async execution
- External max and preview functions
- Reward claims and harvest paths
The suite stays with your code for every later change. Synthetix’s LP vault review logged more than 20 million fuzzing runs, and on Umami’s GMI vaults, fuzzing surfaced a Critical (AV-1) and a High (LCY-1).
Published work
Yield vaults Guardian has reviewed.
- Case studyUmamiHedged GM index vaults: 3 Criticals, 6 Highs and a 16-invariant suite.
- Case studySynthetix LP VaultAave yield plus Synthetix rewards on Base: every Critical and High resolved.
- ReportGamma GMX V2 VaultA perpetual vault on GMX V2: 4 Criticals and 14 Highs.
- ReportPeapods LVFLeveraged farming, a lending vault and auto-compounders, with 47 invariants.
- ReportGliderAsync request vaults and yield wrappers over Morpho, Aave and Fluid.
- ReportOrderly Yield VaultA cross-chain, share-based yield aggregator: 7 Criticals and 6 Highs.
- ReportJones DAO jGMA leveraged GM strategy vault with keeper-driven rebalances and compounding.
- ReportsNunchiFour reports, from shared-strategy vaults to SY-wrapped genesis vaults.
Recent incidents
How vault depositors have lost money.
-
$10MResupply
A donation inflated the share price of an empty vault used as collateral. The exchange rate then rounded to zero, so the solvency check passed every borrow, and Resupply took $10 million of bad debt.
-
$93MStream Finance
Stream said an external fund manager lost about $93 million. The loss did not start with a code bug, yet curated vaults that lent against its xUSD took losses.
“Having seen many audits over many years, no one even comes close to Guardian’s approach, and the quality of the audit is unmatched.”
KalebSynthetix“I would recommend Guardian to others looking for a comprehensive audit specifically for complex projects.”
Resource Hub
Before you book a vault audit.
- ChecklistERC-4626 security checklistRounding, previews, limits, donations, fees and share-price oracles.
- ExplainerERC-4626 inflation attackThree red flags, a full walk-through and two fixes.
- GuideStepwise jumpsHow compounds, donations and rate updates move a share price in one step.
- ExplainerRounding errors in SolidityWhy truncating division breaks share math, with real bugs.
- RiskVault curator riskWhat curators control, and what Stream Finance cost curated vaults.
- RiskIs Morpho safe?Core contracts, oracles and curator choices, for allocators.
- GuideFoundry invariant testingHandlers, ghost variables and actors for your own suite.
- GuideChoosing an auditorWhat to check before you sign.
Questions
Vault audit questions
What does a vault security audit cover?
The vault and its strategy and adapter contracts, at one audited commit. The protocols a strategy calls are not re-audited; the audit checks how your adapters use them. The audit tests the code that accounts for yield, not whether a strategy’s yield will last.
How does an ERC-4626 vault audit test for the inflation attack?
With a fuzzed property that every deposit mints shares. In Peapods’ report, “LendingAssetVault::deposit/mint share balance of receiver should increase” failed. Reviewers then check the two standard fixes: a seed deposit at deployment, or OpenZeppelin’s virtual offset, set high enough that griefing is costly.
Do you audit ERC-7540 asynchronous vaults?
Yes. Glider’s report covers async request vaults. ERC-7540 requires previewDeposit and previewMint to revert on async deposit vaults, so integrators must price requests another way. It also warns that an operator is trusted with both assets and shares, so operator checks are in scope.
Which invariants do you fuzz on a vault?
Accounting identities. The Universal Vault suite ran 24 invariants 5,000,000+ times each, including “Vault’s totalAssets() = convertToAssets(totalSupply())”. Its check that maxDeposit() matches previewMint(maxMint()) failed; the report’s M-01 found maxMint passing assets where shares belong.
Do changes to an audited vault need another audit?
Yes. Bracket’s contract updates review reported 2 Criticals and 8 Highs in changes to its vaults. Adding a share conversion to transfers changed how existing balances were read (H-06) and made the vault convert amounts to shares twice (C-02). Both were resolved.
How long does a vault audit take?
It depends on size and integrations. Published Guardian vault reviews ran 10 days for Synthetix’s Auto-Compound LP Vault, about two weeks for Gamma’s GMX V2 vault, about three weeks for Umami’s GMI vaults, and about three and a half weeks for Peapods’ leveraged volatility farming.
What do we get at the end?
Human-verified findings with proof-of-concept tests, a review of your fixes, and the invariant suite, which stays with your code. On Umami’s GMI vaults, Guardian checked that every remediation resolved its issue without introducing new ones. Synthetix kept a hardened invariant fuzzing suite for continued assurance.
Smart Contract Audit
Other engagements
- Featured · Onchain Vanguard Audit A security audit designed to protect onchain teams facing unprecedented cyber risk. Explore Vanguard
- Managed services Managed Security Dedicated response team, red team, 24/7 attack and defense across every surface you run, onchain and off. Explore Managed Security
- OnchainSmart Contract AuditTwo competing teams, Helix AI and invariant fuzzing.
- OnchainDeFi Protocol AuditAccounting, oracles, liquidations and integrations.
- OnchainLending Protocol AuditInterest math, liquidations, oracles, bad debt, forks and credit.
- OnchainLiquid Staking AuditExchange rates, queues, slashing, validators and restaking.
- OnchainPerp DEX AuditFunding, liquidations, oracles, auto-deleveraging and keepers.
- OnchainRWA Tokenization AuditKYC allowlists, transfer rules, NAV oracles, redemptions and distributions.
- OnchainOptions and Derivatives AuditPricing, margin, expiry, rate swaps, tranches and leveraged tokens.
- OnchainAMM and DEX AuditSwap math, ticks, rounding, fees, MEV, routers and order books.
- OnchainUniswap v4 Hook AuditPermissions, callbacks, delta settlement, hook-owned liquidity and limit orders.
- OffchainOffchain Automation PentestKeepers, relayers, bots and the automation-to-chain boundary.
- OffchainOpSec AuditKeys, signers, privileged roles, and critical operations.
- Penetration testingAll pentestsEvery offchain engagement, and how Guardian runs them.
Start now