TVL
Also written total value locked
TVL, total value locked, is the dollar value of the assets sitting in a protocol's contracts, summed per chain and across chains. It is a definition rather than a measurement: whether borrowed coins, the protocol's own token, liquid staking or a receipt token deposited a second time are counted is a choice each data vendor makes, and it moves with token prices whether or not anyone deposited anything.
Two dashboards can show the same protocol on the same day with TVL figures a billion dollars apart, and both can be correct. TVL is not observed on a chain; it is assembled from contract balances and prices by somebody who first decided what counts.
How it works
The arithmetic is simple: take the balances of every token held by a protocol's contracts, multiply each by a price, sum. DefiLlama's definitions page puts it as the "value of all coins held in smart contracts of the protocol", with a chain's TVL the sum of its protocols. Everything interesting is in what gets left out, and DefiLlama's page is the most explicit published version of those choices, because it states its test — TVL "is meant to be a proxy for the skin in the game / risk taken by depositors".
Borrowed coins. Deposit 100 into a lending market, borrow 70, deposit the 70 again, and a naive balance count reports 170 of a capital base of 100. DefiLlama counts only what is locked in the contracts and moves borrows into a separate Borrowed figure, explicitly to stop cycled lending inflating the total.
The protocol's own token. Governance tokens staked in the protocol go to a separate Staking figure, and LP positions with the protocol's own token on one side go to Pool2. The reasoning given is that the team minted those tokens, so depositing them costs users nothing comparable to outside capital. Tokens the protocol mints itself and that come back in — LUSD deposited into Liquity is the page's example — are not counted, because the collateral behind them already is. Non-circulating and vesting tokens are excluded, which is what stops a token with a 10 million dollar market cap and a 1 billion dollar fully diluted value showing 500 million "locked".
Double counting. A liquid staking token or an LP receipt deposited into a second protocol is the same capital twice. DefiLlama flags the second protocol as double-counted so chain and global totals do not sum it twice, and gives dashboard readers a toggle. Liquid staking protocols are tracked but not counted towards chain TVL by default, and native staking — ETH proof-of-stake, staked ADA — is never counted, since it would turn chain TVL into a proxy for the token's market cap.
Toggles, not deletions. Staking, Pool2, Borrowed, Vesting and Offers (funds approved for spending but never deposited) are shown as optional toggles beside TVL rather than included by default. So "DefiLlama's TVL" is itself several numbers, depending on which boxes the person who screenshotted it had ticked.
Price, not flow. Because every balance is multiplied by a price, TVL moves with the market. A 20% fall in ETH takes 20% off an all-ETH protocol with no withdrawal at all. DefiLlama publishes USD Inflows separately — daily balance change per asset, times price, summed — and that is the series that says whether deposits arrived.
Why it matters here
Every vendor in on-chain analytics that sells a TVL column is selling its definition, and only some print it. That is the question to ask before the price:
- DefiLlama publishes the exclusions above, a per-protocol
methodologystring in its API and the adapter code, so a number can be traced to the line that produced it. - L2BEAT does not sell TVL for rollups at all: it publishes Total Value Secured, which includes idle bridged assets and native governance tokens, and says why it differs.
- Token Terminal, Artemis and Messari carry TVL inside a wider metric library, each computed one way across their own coverage — and Token Terminal's TVL covered 201 projects against 323 for fees when the card was checked, so coverage of the metric is not coverage of the platform.
- Trading Strategy reports TVL per vault and drawdown against peak TVL, a different object from protocol TVL entirely.
Comparing two vendors' TVL for one protocol tells you mainly that they made different choices, and a TVL chart over a month of falling prices tells you mainly that prices fell. If what you need is whether capital moved, buy the tool that publishes flows or the balances underneath, not the one with the biggest headline number. The guide to where an on-chain number comes from covers the same problem for active addresses, fees and volume.
Where you will meet this
The cards where this changes a decision, then the rest that use the word.
Sources
- DefiLlama documentation — Data definitions — DefiLlama, read
- L2BEAT — Frequently asked questions — L2BEAT, read
FAQ
Why did a protocol's TVL fall when nobody withdrew?
Because TVL is a balance multiplied by a price. DefiLlama's own definitions page gives the example — a protocol holding all of its TVL in ETH, a day on which ETH drops 20% and nobody deposits or withdraws, and TVL down 20% while net inflows are zero. Its separate USD Inflows metric takes each asset's balance change between consecutive days, multiplies by price and sums, which is the number that answers whether money arrived.
Why does L2BEAT show a bigger number for a rollup than DefiLlama does?
Because L2BEAT does not publish TVL for rollups. It publishes Total Value Secured, a sum of canonically bridged, externally bridged and natively minted assets, including L2-native governance tokens such as ARB and OP. Its own FAQ says DefiLlama's TVL instead focuses on assets actively engaged in applications. ETH bridged to a rollup and left idle is in the first number and not in the second.
Updated