DeFi risk research
DeFi yield research: sources, costs and risks
A displayed yield leaves several questions unanswered: who pays it, which asset it is paid in, how the percentage is calculated and when the underlying position can be withdrawn. This guide follows those questions through a fictional calculation and the protocol risks that calculation leaves out. It does not recommend a deposit, loan or leveraged position.
Educational research methods, without recommendations to buy, sell or hold an asset. Crypto assets can lose all their value. Read the risk disclosure.
By AlfaDAOPublished Updated
1. Map the cash flows before comparing percentages
Describe the position in plain language: the asset supplied, the claim received, who can borrow or use the asset, and which contracts hold it. Separate borrower-paid interest, swap-related fees, protocol incentives and other token distributions. These mechanisms create different dependencies. A headline annual percentage cannot tell you whether rewards are paid in the same asset as principal or in an incentive token whose value can change independently.
Aave’s supply documentation, for example, links supplier interest to utilization and governance parameters, with rates changing as market conditions change. Use that as a model for the questions to ask, not an assumption about every protocol. Record whether the displayed figure is APR or APY, the compounding convention, the measurement window, and whether the interface already combines rewards with base interest.
Source references
2. Calculate the stated assumptions and omissions
Suppose a fictional position starts with 1,000 units of a token. A constant 4% simple annual rate for exactly one year adds 40 units. Assume rewards convert to another 20 units of that same token and the listed entry, claim and exit costs total 15 units. Subtracting those costs leaves 45 additional units, or 4.5% of the starting balance. These are invented inputs, not an available product or an expected return.
Removing the assumed rewards leaves 25 units, or 2.5%. Neither calculation includes taxes, changes in rates or token prices, a loss of principal, or costs beyond the listed 15 units. It is not a complete net-return estimate. If the original 1,000-unit principal were lost, the positive arithmetic above would not describe the outcome. A larger token balance can also have a lower currency value.
Fictional one-year arithmetic; excludes taxes, price changes and principal loss
| Scenario | Additional units after listed costs | Share of starting balance, not a forecast |
|---|---|---|
| Including assumed rewards | 40 + 20 − 15 = 45 units | 4.5% |
| Removing assumed rewards | 40 − 15 = 25 units | 2.5% |
3. Trace asset, contract and oracle dependencies
Create a dependency list covering the supplied asset, receipt or share token, application contracts, upgrade administrators, external price inputs and any bridge or wrapper. Record the network and exact deployment for each. A familiar protocol name does not mean that a new integration has the same contracts or assumptions. Check what an audit actually reviewed and whether the current implementation and configuration match its scope.
For a price feed, identify the specific feed and what it measures. Chainlink explains that data-feed sourcing differs, including some feeds with a single underlying source or calculated values. The presence of an oracle brand is therefore not a complete review. Ask what happens if prices are delayed, unavailable or economically different from the price at which a position could be unwound. Preserve unsupported answers as open risks.
Source references
4. Distinguish supplying from a collateralized borrow
An unleveraged supply position and a borrow backed by collateral have different failure conditions. If a strategy borrows, record the collateral values, debt values, liquidation thresholds and how interest changes debt. Aave’s documented health factor compares threshold-adjusted collateral with borrowing; falling below one makes a position eligible for liquidation under its rules. That is a protocol-specific condition, not a universal safe-margin recommendation.
As a toy sensitivity test, collateral worth 2,000 with an assumed 75% threshold against 1,000 of debt gives a ratio of 1.5. If collateral value falls to 1,200 while those other inputs stay fixed, the ratio becomes 0.9. Actual debt, prices and parameters need not stay fixed. This example explains a mechanism; it is not a suggested collateral level, stress scenario or borrowing strategy.
Source references
5. Inspect the withdrawal path under stress
Find the actual exit mechanism: immediate redemption, available pool liquidity, a queue, an unbonding period, or a secondary-market sale. These are different claims. Aave’s withdrawal guidance conditions withdrawal on available liquidity and describes additional constraints when supplied assets support a borrow. A displayed balance therefore should not be treated as proof that every unit can always be withdrawn at once.
Write a stress checklist using the mechanism you actually found. What happens if many suppliers seek to leave, a reward ends, an asset deviates from its intended value, or the user needs funds on another network? Include network fees and intermediary approvals in the exit map. Do not assume that a successful small withdrawal would prove the availability of a much larger future withdrawal.
Source references
6. Keep a risk ledger instead of a yield ranking
For each important dependency, write the adverse event, the evidence checked, the uncertainty remaining and the observation that would trigger a review. Separate documented controls from your interpretation of their effectiveness. A pause function can address some incidents while also affecting availability; a governance vote can change parameters without making an underlying asset immune to loss.
Attach the source date and missing inputs to each percentage. Keep the case without rewards and the withdrawal constraints beside the headline rate. Comparing percentages with different assets, time windows or cost assumptions will not establish which position is suitable or safe.