Verification checklist
- Pin the block, implementation and both decimal precisions before comparing observations.
- Separate strategy earnings, external transfers and accounting adjustments.
- Measure rounding at the intended deposit size and inspect minimum-share enforcement.
- Read redemption previews alongside owner-specific limits and simulate the exit.
1. Start with assets per share, not TVL growth
Rising TVL does not automatically enrich existing holders. A normal deposit increases both assets and shares, potentially leaving the value of each existing share unchanged. In a simplified vault without virtual offsets or fees, where every share represents the same underlying asset, let A be total assets and S be total shares. The displayed exchange rate is P=A/S. Read the decimals of both tokens before interpreting raw integers as a human-readable price.
The ERC-4626 method definitions standardize an interface rather than every strategy's accounting. A/S is therefore a starting point, not a substitute for the deployed conversion logic. My research rule is straightforward: reconcile the source of asset growth before discussing the quality of returns. Annualizing a price move before explaining it reverses that order.
2. A worked example: a 10% gain with no strategy profit
Assume a vault holds 1,000 asset units against 1,000 shares, so P=1. An address transfers another 100 assets directly to the vault without minting shares. Assume this implementation includes that transfer in totalAssets. P becomes 1.10, and a holder's 100 shares now represent 110 assets instead of 100.
| State | Assets A | Shares S | A/S |
|---|---|---|---|
| Before transfer | 1,000 | 1,000 | 1.00 |
| 100 assets donated | 1,100 | 1,000 | 1.10 |
| New deposit of 110 | 1,210 | 1,100 | 1.10 |
The final row assumes that a new depositor receives 100 shares at the new exchange rate. Existing holders may receive a real gift, but no strategy profit was required. If the donor and the holder belong to the same economic entity, its 100-asset outflow must also enter the calculation. Counting only its vault position can turn an internal transfer into apparent profit. Nor does a one-time donation establish a recurring 10% return.
Preserve A, S and the Transfer, Deposit and Withdraw logs around the event, trace the sending address, and reconcile strategy events. Asset growth without share issuance is a lead, not a diagnosis. Interest accrual, rebasing and valuation changes can produce superficially similar patterns; the observation alone proves neither a donation nor an attack.
3. Rounding: why a tiny test deposit is not sufficient
For a simplified vault without fees or virtual offsets, depositing u asset base units yields floor(u×S/A) share base units. An entitlement of 100.4 rounds down to 100, losing approximately 0.3984% to rounding. An entitlement of 0.4 may round to zero. These are integer base units, not whole tokens displayed by a wallet.
If the unrounded entitlement is q, losing less than one unit implies a relative rounding loss below 1/q. Requiring q to reach at least 1,000 is a conservative research screen for keeping this isolated loss below 0.1%. It is neither a universal safety threshold nor protection against fees or changing state. OpenZeppelin's ERC-4626 security discussion explains donation-driven rate changes and defenses involving virtual assets, virtual shares and precision offsets. Check the deployed implementation and parameters, not merely a claim that a project uses a library.
A tiny trial deposit consequently provides incomplete evidence. Simulate the intended size on a local fork, and inspect whether the actual entry point enforces a minimum share output. Calling previewDeposit beforehand does not lock the next transaction's execution price.
4. A quote is not an exit: inspect preview and max together
The standard's previewRedeem estimates redemption proceeds including withdrawal fees, but does not enforce redemption limits. maxRedeem(owner) addresses the owner's current share limit. Capture both at the same block instead of combining screenshots taken at different times.
Suppose a wallet owns 100 shares and previewRedeem(100) returns 110 assets, while maxRedeem(owner)=20. It is incorrect to report 110 assets as immediately withdrawable. Query previewRedeem(20), inspect queues, pause status, the receiver and permissions, then simulate the actual exit call. If the limit is zero, record zero immediate synchronous redemption capacity and investigate other exit mechanisms separately. Positive reported value and insufficient immediate liquidity can coexist.
5. Keep a record another researcher can reproduce
A minimum record includes chain ID, block number and hash, vault and implementation addresses, the asset address, both decimal precisions, totalAssets, totalSupply, the owner's shares, relevant preview and max results, and transaction hashes. With a proxy, also preserve the implementation version at that block. Otherwise, an upgrade can be mistaken for a change in strategy performance.
Build a reconciliation: opening assets plus net deposits, strategy profit or loss, external gifts and valuation changes, less fees not already included elsewhere, should equal closing assets. Specify whether fees leave as assets or dilute holders through share issuance; do not count them twice. Then report changes per share, identifiable recurring return sources and the immediately redeemable fraction separately. Unexplained differences belong in an unattributed category, rather than automatically becoming earnings or evidence of misconduct.
6. Judge sustainability and realizability separately
Higher reported value can depend on temporary subsidies; genuine underlying assets can also be temporarily unavailable for redemption. A useful conclusion states how much value per share changed, which components might recur, and how many shares can currently exit through a verified path. Until those questions are answered, projecting a short-lived move into an APY simply gives accounting uncertainty a precise-looking label.
This is a research framework with hypothetical calculations, not a safety assessment of any particular vault or investment advice.