SettleLab
전체 코스
DeFi · LESSON 02

DeFi 지표 문해력: TVL, dedup, 거래량

DeFiMarket map입문45분근거 3
AreaDeFi
TopicMarket map
Evidence layerINDEXER / OPS
Connected areasStablecoin / Agent / AI

학습 결과

  • TVL, stablecoin supply, DEX volume, fees, revenue가 서로 다른 지표라는 점을 설명한다.
  • receipt token, LP token, bridge TVL이 중복 집계될 수 있는 경로를 찾는다.
  • 대시보드 숫자를 제품 의사결정에 쓰기 전에 정의와 기준일을 붙인다.

선행 조건

  • defi-glossary-source-check

완료 기준

  • headline TVL, protocol TVL, chain TVL, stablecoin supply를 같은 숫자로 취급하지 않는 설명을 남겼다.
  • 중복 예치와 receipt token을 제거하는 집계 규칙을 쿼리 또는 의사코드로 표현했다.

DeFi 지표 문해력: TVL, dedup, 거래량

도입

DeFi를 처음 볼 때 가장 위험한 습관은 TVL 하나로 시장 규모, 안전성, 유동성, 사용자 수를 모두 판단하는 것이다. TVL은 "프로토콜 컨트랙트에 들어 있는 자산 가치"에 가까운 지표지만, 매매가 가능한 깊이, 탈출 가능한 유동성, 수익 품질, 담보 위험을 직접 말해주지는 않는다.

같은 10억 달러라도 의미가 다르다. 스테이블코인 공급량일 수도 있고, lending market의 예치액일 수도 있고, DEX LP token이 다시 lending protocol에 담보로 들어간 값일 수도 있다. 학습자는 먼저 숫자를 외우는 대신 "이 값은 어떤 자산을 어떤 기준으로 세었는가"를 묻는 습관을 가져야 한다.

학습 목표

  • TVL, stablecoin supply, DEX volume, fees, revenue가 서로 다른 지표라는 점을 설명한다.
  • receipt token, LP token, bridge TVL이 중복 집계될 수 있는 경로를 찾는다.
  • 대시보드 숫자를 제품 의사결정에 쓰기 전에 정의와 기준일을 붙인다.

개념 설명

대시보드가로 스크롤 · 크게 보기 지원
DeFi 지표 검증 대시보드한 화면에 보이는 DeFi 숫자를 바로 비교하지 않고, 정의·중복 가능성·운영 의사결정 용도를 먼저 분리한다.
Headline TVL
정의 확인

프로토콜 컨트랙트에 잠긴 토큰 가치인지, 체인 합산인지, bridge TVL 포함 여부인지 확인한다.

Stablecoin Supply
별도 축

유통 공급량은 liquidity와 다르며, 같은 금액이 lending TVL로 다시 잡힐 수 있다.

DEX Volume
시간 구간

24h, 7d, monthly volume은 거래 활동을 말하지만 LP 손익과 protocol revenue는 따로 계산한다.

Dedup Risk
경고

LP token, vault share, receipt token이 다른 프로토콜에 예치되면 같은 원자산이 여러 번 보일 수 있다.

high숫자 범위 혼동metric, source, timestamp, inclusion rule을 함께 저장한다.
medium중복 집계 가능성underlying asset과 receipt token을 같은 exposure group으로 묶는다.
크게 보기
Headline TVL
정의 확인

프로토콜 컨트랙트에 잠긴 토큰 가치인지, 체인 합산인지, bridge TVL 포함 여부인지 확인한다.

Stablecoin Supply
별도 축

유통 공급량은 liquidity와 다르며, 같은 금액이 lending TVL로 다시 잡힐 수 있다.

DEX Volume
시간 구간

24h, 7d, monthly volume은 거래 활동을 말하지만 LP 손익과 protocol revenue는 따로 계산한다.

Dedup Risk
경고

LP token, vault share, receipt token이 다른 프로토콜에 예치되면 같은 원자산이 여러 번 보일 수 있다.

high숫자 범위 혼동metric, source, timestamp, inclusion rule을 함께 저장한다.
medium중복 집계 가능성underlying asset과 receipt token을 같은 exposure group으로 묶는다.
표 자료가로 스크롤 · 크게 보기 지원
지표말해주는 것말하지 않는 것확인 질문
TVL컨트랙트에 예치된 자산 가치즉시 탈출 가능한 liquidityreceipt token이 다시 세어졌는가
DEX volume일정 기간 거래 활동거래 품질과 LP PnLwash trading 또는 incentive 영향이 있는가
Fees사용자가 낸 비용protocol revenue 귀속LP, treasury, referrer 중 누가 받는가
Stablecoin supply유통 중인 pegged asset 규모특정 pool의 깊이어떤 chain과 issuer 기준인가
Open interestperp 포지션 노출청산 흡수 능력margin, funding, oracle이 연결되는가
크게 보기
지표말해주는 것말하지 않는 것확인 질문
TVL컨트랙트에 예치된 자산 가치즉시 탈출 가능한 liquidityreceipt token이 다시 세어졌는가
DEX volume일정 기간 거래 활동거래 품질과 LP PnLwash trading 또는 incentive 영향이 있는가
Fees사용자가 낸 비용protocol revenue 귀속LP, treasury, referrer 중 누가 받는가
Stablecoin supply유통 중인 pegged asset 규모특정 pool의 깊이어떤 chain과 issuer 기준인가
Open interestperp 포지션 노출청산 흡수 능력margin, funding, oracle이 연결되는가

DefiLlama는 TVL, fees/revenue, DEX/perp volume, yields, stablecoins, bridge data처럼 서로 다른 metric을 분리해 추적한다. 따라서 강의 자료나 운영 대시보드에서도 한 숫자를 "DeFi 규모"라고 단독 표기하지 않는다. "2026-05-31 기준, DefiLlama의 TVL 정의로 본 protocol TVL"처럼 범위를 붙여야 나중에 수치가 바뀌어도 해석이 남는다.

코드로 확인하기

CODE SURFACEtypescript
type LlamaProtocol = {  name: string;  chainTvls?: Record<string, { tvl: number }>;  category?: string;  tvl?: number;};export function normalizeProtocolTvl(protocol: LlamaProtocol) {  const chainBreakdown = Object.entries(protocol.chainTvls ?? {}).map(([chain, row]) => ({    protocol: protocol.name,    category: protocol.category ?? "unknown",    chain,    usd: Math.max(0, Number(row.tvl ?? 0))  }));  return {    protocol: protocol.name,    reportedTvlUsd: Number(protocol.tvl ?? 0),    chainBreakdown,    warning:      chainBreakdown.length === 0        ? "missing chain breakdown"        : "do not compare with stablecoin supply or DEX volume"  };}
CODE SURFACEsql
with exposures as (  select    position_id,    user_id,    protocol,    token_symbol,    underlying_symbol,    usd_value,    case      when token_type in ('receipt', 'lp_token', 'vault_share') then underlying_symbol      else token_symbol    end as exposure_group  from defi_positions),deduped as (  select exposure_group, max(usd_value) as dedup_usd  from exposures  group by exposure_group)select sum(dedup_usd) as portfolio_exposure_usdfrom deduped;

첫 번째 코드는 API 응답을 그대로 "시장 규모"로 쓰지 않고 chain breakdown과 경고를 함께 만든다. 두 번째 쿼리는 receipt token과 원자산을 같은 exposure group으로 묶어 중복 집계를 줄인다. 실제 운영에서는 protocol별 adapter 규칙이 더 필요하지만, 핵심은 숫자 자체보다 집계 규칙을 보존하는 것이다.

강의 포인트

표 자료가로 스크롤 · 크게 보기 지원
관점확인할 질문증거로 남길 것
데이터 정의이 숫자는 어떤 metric인가metric name, source URL, timestamp
중복 제거같은 underlying이 두 번 잡혔는가exposure group rule
제품 판단이 숫자로 어떤 결정을 하는가alert threshold와 action owner
업데이트재검증 주기는 얼마인가publish date와 refresh policy
크게 보기
관점확인할 질문증거로 남길 것
데이터 정의이 숫자는 어떤 metric인가metric name, source URL, timestamp
중복 제거같은 underlying이 두 번 잡혔는가exposure group rule
제품 판단이 숫자로 어떤 결정을 하는가alert threshold와 action owner
업데이트재검증 주기는 얼마인가publish date와 refresh policy

실무 예시

인덱서[OPS] DeFi 홈 화면에 "총 120B TVL" 같은 문구를 넣고 싶다고 하자. 이 표현은 학습자에게 강한 인상을 주지만, 교육 자료로는 부정확하다. 어떤 출처의 어떤 TVL인지, bridge TVL을 포함하는지, chain native staking을 제외하는지, liquid staking token이 다른 protocol에 담긴 값을 어떻게 처리했는지를 설명하지 않기 때문이다.

실무 화면에서는 숫자를 크게 쓰더라도 작은 주석을 붙인다. 예를 들어 "Protocol TVL, DefiLlama methodology, refreshed 2026-05-31"처럼 표기한다. 그리고 학습 과제에서는 같은 데이터로 "stablecoin supply", "DEX volume", "lending deposits"를 별도 카드로 나누게 한다. 이렇게 해야 나중에 AMM, lending, perps 강의에서 서로 다른 위험 신호를 같은 축으로 잘못 비교하지 않는다.

흔한 오해와 실패 시나리오

표 자료가로 스크롤 · 크게 보기 지원
오해왜 위험한가교정 방식
TVL이 크면 안전하다큰 담보도 oracle 조작, liquidation congestion, governance risk를 막지 못한다TVL 옆에 exploit history와 risk controls를 둔다
volume이 크면 revenue가 크다fee tier, incentive, rebate, wash trading 영향을 분리해야 한다volume, gross fee, protocol revenue를 따로 저장한다
stablecoin supply는 liquidity다supply가 특정 pool의 깊이를 보장하지 않는다pool depth와 redemption route를 별도 확인한다
bridge TVL은 chain TVL이다출발 chain과 도착 chain에서 같은 자산이 보일 수 있다bridge category를 별도 노출한다
크게 보기
오해왜 위험한가교정 방식
TVL이 크면 안전하다큰 담보도 oracle 조작, liquidation congestion, governance risk를 막지 못한다TVL 옆에 exploit history와 risk controls를 둔다
volume이 크면 revenue가 크다fee tier, incentive, rebate, wash trading 영향을 분리해야 한다volume, gross fee, protocol revenue를 따로 저장한다
stablecoin supply는 liquidity다supply가 특정 pool의 깊이를 보장하지 않는다pool depth와 redemption route를 별도 확인한다
bridge TVL은 chain TVL이다출발 chain과 도착 chain에서 같은 자산이 보일 수 있다bridge category를 별도 노출한다

실습 과제

  1. TVL 정의표 만들기: DefiLlama, DEX volume, stablecoin supply, protocol revenue를 한 표로 분리하고 각 행에 기준일과 사용 목적을 붙인다.
  2. 중복 제거 쿼리 작성하기: LP token이나 vault share가 다시 담보로 들어간 예시를 만들고, 같은 underlying exposure가 두 번 합산되지 않게 SQL 또는 TypeScript 규칙을 작성한다.

완료 기준

  1. headline TVL, protocol TVL, chain TVL, stablecoin supply를 같은 숫자로 취급하지 않는 설명을 남겼다.
  2. 중복 예치와 receipt token을 제거하는 집계 규칙을 쿼리 또는 의사코드로 표현했다.

근거 자료

  • DeFi 종합 학습 자료 README
  • 01 Market Overview
  • DefiLlama Methodology
Final checkpoint

읽기를 마쳤다면 여기서 기록한다

아래 버튼은 읽기 진도를 저장한다. 체크리스트, 과제, 랩 산출물은 위 Workbook에서 따로 관리한다.

  • headline TVL, protocol TVL, chain TVL, stablecoin supply를 같은 숫자로 취급하지 않는 설명을 남겼다.
  • 중복 예치와 receipt token을 제거하는 집계 규칙을 쿼리 또는 의사코드로 표현했다.

학습 자료 근거

DeFi 종합 학습 자료 README
DeFi 학습 범위와 데이터 기준일 확인
내부 참고 문서
01 Market Overview
TVL, 카테고리, 시장 지표의 원본 설명 재구성
내부 참고 문서
DefiLlama Methodology
https://docs.llama.fi/