DeFi composability: mapping the dependencies beneath yield
Unpack a multi-protocol position into assets, liabilities, permissions and shared failure points.

One position can contain many systems
Composability allows a smart contract to interact with other contracts, combining functions into a larger application. Ethereum’s composability documentation presents this as a building block of application development. For financial analysis, the same convenience creates a dependency problem: a simple deposit screen can conceal several contracts, assets and control systems.
Imagine a vault that accepts a stablecoin, lends it, receives a receipt token and deposits that receipt elsewhere for additional rewards. The visible balance is not a single cash account. It is a sequence of claims whose redemption depends on the underlying steps. More layers can improve functionality without creating independent sources of safety.
Draw a balance sheet for each layer
Start with the end user’s asset and trace what the vault actually holds. Identify whether the vault has debt, whether it lends unsecured or against collateral, and whether the receipt can be redeemed immediately. Then follow the assets backing the next receipt. Stop only when the economic exposure is clear, not when a familiar protocol name appears.
A useful diagram uses solid arrows for asset claims and dashed arrows for dependencies such as oracles, bridges and administrators. Two vaults may hold different receipts but rely on the same collateral token or emergency multisignature group. Counting protocol names would suggest diversification; the dependency diagram may reveal a concentrated exposure.
Separate yield sources from token emissions
Decompose a quoted return into borrower interest, trading fees, staking rewards and incentive tokens. Each component has different drivers. A reward token’s displayed dollar value depends on price and the ability to sell it; it is not equivalent to the same amount of immediately available base-asset income. Fees, borrowing costs and reinvestment expenses belong on the other side of the calculation.
For a hypothetical $10,000 position, $400 of annualized borrower interest plus $600 of reward-token value gives a displayed 10% gross rate. If operating fees are $100 and reward-token prices halve before sale, the illustrative realized amount is $400 + $300 − $100 = $600, or 6%. This calculation assumes unchanged principal and timing; it is not a forecast.
Test the unwind in reverse
Entry can be easy while exit requires several sequential redemptions. Ask which market must supply liquidity first, whether a withdrawal queue applies and whether debt must be repaid before collateral is released. A receipt that trades actively today might become illiquid when many holders need the same exit.
Construct a paper unwind with time stamps. At each step, record the token received, gas required, price uncertainty and conditions that could prevent progress. If a protocol pauses withdrawals, an upstream vault may also become unable to pay even without a flaw in its own code. This is propagation of a dependency failure, not necessarily insolvency at every layer.
Evaluate shared controls and bounded claims
Review who can upgrade the vault, change routes or add new assets. A strategy description can become obsolete after governance action. An audit may cover the vault contract without covering every future integration. Distinguish immutable constraints from manager discretion and verify which powers remain active in the deployed version.
For comparison, write a one-page risk inventory rather than ranking products solely by yield. Include ultimate assets, leverage, withdrawal sequence, common dependencies and unknowns. If a crucial dependency cannot be established, label the analysis incomplete. Precision in the displayed annual percentage does not compensate for uncertainty about what is owned. The purpose of this exercise is to understand a structure, not to recommend participation.
One revealing exercise is to ask what remains if incentive rewards become zero tomorrow. Recalculate income, expenses and the ability to unwind without assuming reward-token sales. This does not predict that rewards will end. It identifies whether the structure has an underlying economic source of income or whether its apparent attractiveness depends chiefly on continued subsidies and the willingness of others to buy the distributed token.
Gross deposits are not your net capital
Start a fictional account with $1,000, deposit it as collateral, borrow $500 and deposit those borrowed funds into a second application. The screens may now show $1,500 of assets, but the account still owes $500. Before fees and valuation changes, net equity remains $1,000. Counting both deposits as fresh savings disguises the borrowing that connected them.
Now apply a simple stress: both asset positions lose 10% while the debt remains $500. Assets fall from $1,500 to $1,350; equity falls to $850, a 15% loss. This intentionally simplified arithmetic excludes interest, collateral rules and liquidation. Its purpose is to show why percentage changes should be calculated against net equity as well as gross assets. Adding real protocol mechanics can make the path less forgiving, not more.
Build your dependency diagram with liabilities drawn as explicitly as assets. Each borrowing step should identify the repayment asset, interest mechanism, collateral and liquidation conditions. A lending position elsewhere does not automatically cancel that debt: different currencies, maturities or withdrawal restrictions can prevent the offset from working when needed.
Look for the dependency that joins separate branches
Composability makes it possible for one application to build on another’s contracts. That can reduce duplicated work, but it also means that separately branded applications can share important components. Ethereum’s composability documentation explains the building-block model. The financial question is what happens when a widely used block stops behaving as expected.
In a paper portfolio with three vaults, color every exposure to the same stablecoin, oracle, bridge and administrator. A single color appearing across all three branches is more informative than three different logos. Next, remove that dependency and trace what fails first: valuation, borrowing, withdrawal or final redemption. Avoid declaring every connected position a total loss; specify the actual propagation mechanism and distinguish delay from impairment.
This produces a much more useful stress test than applying the same arbitrary loss percentage to every asset. It also identifies where more research has the highest value. One unresolved bridge controlling all three exits may matter more than a minor fee difference between the vaults. The map should help prioritize questions, not become decorative complexity that hides them.