Meme Atlas AZ · dex-liquidity-depth

池子散開之後:如何讀懂 DEX 流動性與深度

沿著鏈、代幣身分、交易對與池地址逐層查證,分辨儲備、美元流動性、期間成交量、價格衝擊與碎片化的證據邊界。

發布
更新
編輯責任
Meme Atlas AZ

鏈上池資料通常沿網路、合約、報價資產與池機制分散。每張卡片列出的價格、期間量、交易筆數與美元流動性只屬於自己的 pair,沒有一張卡片能代表全部市場。研究的第一步不是挑最大的數字,而是辨認每筆資料來自哪個池。

碎片化會讓看似簡單的「流動性有多少」分裂成多個問題:資產是否同一份合約或跨鏈表示,數字屬於哪個交易對,池內兩側各有多少儲備,資料涵蓋哪段期間,路由是否需要經過中間資產。若這些範圍沒有寫在數字旁邊,研究紀錄很容易把不同鏈、不同報價資產及不同曲線靜默合併。

本篇建立的是池證據診斷路徑。它不替池排序,不估算適合的輸入大小,也不把畫面流動性改寫成可執行承諾。

先鎖定那一格水面:身分五欄

開始讀數字前,先替觀察物件填五欄:鏈、代幣 mint 或合約、交易對地址、報價資產、池。鏈回答狀態記在哪本帳;mint 或合約把代號綁到具體資產;交易對地址定位承載兩側資產的實體;報價資產說明價格以什麼計量;池則包含協議版本、費率層或其他會影響曲線的識別資料。

代號不在這五欄中擔任唯一鍵。同樣代號的兩個頁面可能指向不同合約;同一合約也能分散在多個報價池。即使 SHIB、PEPE、BONK 或 WIF 出現在研究表格裡,也不能因熟悉的標誌便跳過地址核對。跨鏈身分應另由網路與代幣身分證據處理,不能靠池價反推。

DEX Screener 的 Pair 結構提供 `chainId`、`pairAddress`、基礎代幣、報價代幣等欄位,正好顯示池資料本來就帶有範圍。這些欄位應連成可復核的身分記錄;若其中一欄缺失,先保留未確認,不把另一個同名頁面的內容搬過來補洞。

五欄也能防止報價方向混亂。base/quote 對調時顯示方向相反;以其他資產報價的池還要經過另一個美元換算來源才得到 `priceUsd`。末位差異可能來自方向、換算時點或報價資產不同。身分句寫完整後,才有資格進入度量欄。

同一張卡上的五種不同問題

池卡常把儲備數量、美元流動性、期間成交量、交易筆數與目前池價放在相鄰位置。版面接近不代表定義相近;研究表應為五者分欄,並為每欄加上時間形態。

儲備數量是池內兩種資產各自可見的單位。它保留了曲線最需要的結構,因為十萬枚低單價代幣與十萬枚高單價代幣並不代表相同美元狀態。美元流動性則是供應商按其價格來源把池內資產換算後的快照摘要;它便於閱讀量級,卻拿掉了兩側比例、價格曲線與換算假設的許多細節。

`volume` 描述某段期間累積的活動。同一批單位可以在窗口內反覆流轉,所以二十四小時期間量不是池裡現存的一袋資產。交易筆數是該期間內被來源歸入的事件計數;筆數多不能告訴你每筆大小,也不能單獨排除機器活動、拆分事件或資料漏收。兩者都必須攜帶窗口標籤。

目前池價是特定儲備狀態下,基礎資產相對報價資產的局部關係。它不同於 CoinGecko 方法下從多個合資格 ticker 處理出的彙整市場價格。彙整值回答供應商範圍內的市場摘要,池價回答一個鏈上一個池的狀態;任一方都不應偷偷借用另一方的範圍名稱。

期間量除以流動性有時會被寫成活動相對快照的描述比率,但那個比率不是品質章、可用額度或交易規模答案。分子跨越時間,分母取自一個時點;高值可能來自反覆周轉、窗口端點或流動性在期間中變動。研究者最多描述這兩項資料的關係,不能把比率變成「深度分數」。

池曲線不能由美元流動性標題還原

Uniswap v2 官方概念頁說明,每個 pair 由持有兩種代幣餘額的流動池支撐,交換會在常數乘積規則下改變兩側儲備。這個模型不適合被當成所有 DEX 的共同程式;集中流動性、混合曲線及訂單簿都有不同結構。只讀 `liquidity.usd` 無法還原池型、有效區間、費用與當前儲備,也不能產生可執行報價。

價格衝擊不是市場移動,也不是滑價承諾

Uniswap Labs 把價格衝擊描述為該筆交易相對池流動性所直接造成的代幣價格改變;池較薄時,相同名目規模可能推動更大的變化。研究紀錄應把它標為「由假設交易引起的池內曲線移動」,而不是泛稱所有價格差。

市場移動屬於另一條時間線。從觀察到實際狀態更新之間,其他參與者、套利活動、報價資產價格或跨市場資訊都可能改變池價;這不是原先那筆假設輸入本身的曲線效果。滑價不確定性則涉及預期與實際結果的差,包括狀態變動、路由與執行條件。三者可能同時出現,但原因與證據不相同。

因此,看到起點價格與某個結果價格的差,不應立刻全數命名為價格衝擊。若數字來自靜態曲線試算,需寫明池模型、起始儲備與是否計費;若差異跨越兩個時間點,就另記市場狀態;若來源只給最後畫面而沒有路由細節,便保留無法拆分。這種分欄比給出一個看似精密的百分比更忠於證據。

美元流動性也不等於「在任一方向都能維持畫面價格的金額」。它沒有完整揭露有效區間、經過哪些池、各段費用、網路成本、同期價格移動與最終結果。研究文字應說「來源顯示的池快照」,而不要改寫成「可無摩擦處理的容量」。

多池資料保持逐列,不製造統一深度

研究表應讓每個池一直保持分離:每列帶鏈、合約或 mint、pair address、quote、池型、觀察時間與窗口。跨報價資產、池曲線、網路或代幣表示的畫面流動性不能靠相加變成可執行深度;期間量也不能因窗口看似相同就升格為全市場活動。

路由與資料空洞:畫面數字為何仍不等於結果

路由可能把一個資產關係拆成多段,例如先經過中間報價資產,再抵達目標池。每一段都有自己的儲備、費率與狀態;單看終點池的流動性,無法描述前段是否形成瓶頸。聚合路由亦可能分流到多池,但「畫面上存在多池」不證明任一時點必然採用全部池,也不證明跨鏈水面能無條件連成一條路。

資料缺口要保留成正式狀態。DEX Screener schema 允許 `priceUsd`、`liquidity`、`fdv`、`marketCap`、`priceChange` 與 `pairCreatedAt` 等欄位為空。空值只表示該回應未提供或無法按此結構表達,不能抄成零。`pairCreatedAt` 即使存在,也只記池建立時間;它沒有回答當前報價在何時刷新。

陳舊值需要觀察時間與來源更新訊息共同判讀。若頁面沒有欄位級更新時間,應寫「於某時看到此值,報價更新時點未提供」。這比用池年齡推測新鮮度更精確。若報價資產本身的美元換算異常,`priceUsd` 也可能受到另一層資料影響,不能只檢查 base token 一側。

某些代幣轉移可能帶稅、重基準、回呼或其他非標準行為,導致一般儲備模型不足;此處只能把它們列為限制。研究者需要來源文件、合約行為與池實際記錄才能進一步判斷,不能從代號、稅率傳聞或一次失敗事件建立通則。這篇文章不提供如何繞過限制的操作程序。

費用、網路成本、同步狀態及其他人的交易也都在 schema 標題之外。正因如此,深度研究不是把一個 `liquidity.usd` 欄複製到結論,而是逐層保留哪些資料已知、哪些只屬模型、哪些仍未取得。

費率層是池身分的一部分

同一 DEX、同一對代幣可以存在多個 fee tier 與多個池位址。只寫「某幣/USDC 池」會把不同曲線與不同流動性部位混在一起。工作紙要保存 factory、協議版本、pool 或 pair address、token0/token1 完整位址、費率層與觀察區塊。

低費率不保證較佳成交。集中流動性若遠離目前 tick,總鎖倉看起來很大,當前價格附近仍可能很薄;較高費率的池反而可能在局部區間有更多 active liquidity。比較前要先確定使用者路由實際會經過哪一池。

集中流動性部位不是一個總額

每個部位都有上下 tick、liquidity 數值、未領費用與擁有者。價格落在區間外時,部位不向當前 swap 提供雙邊流動性。把所有部位的美元估值加總,不能直接回答某方向、某數量的價格影響。

部位 NFT 的轉移只改變擁有者,不一定立刻改變池狀態;increase、decrease、collect 與 burn 才有各自的資金語義。事件表要按函式與最後 state 分開,不能看到 NFT burn 就寫成基礎代幣銷毀。

Router 報價是另一筆觀察

router 可能拆單、走中介資產或跨過多個 fee tier。報價紀錄必須包含精確輸入量、輸入與輸出 token、方向、每一腿池位址、費用、區塊與時間。沒有輸入量的「最佳價格」無法重現。

報價取得後,其他交易可能先改變池狀態;公開 mempool、排序與 MEV 也會影響實際 receipt。`minimumAmountOut` 與 deadline 是交易限制,不是保證。報價、送出與鏈上完成是三個不同時間點。

Reserve 與 token balance 可能不同

在部分 AMM,合約內部 reserve 欄位與 token 合約的 `balanceOf(pool)` 可能暫時不同。直接轉帳、`sync`、fee-on-transfer token 或非標準會計都可能造成差異。研究要標明讀的是哪個欄位與哪個區塊,不能把兩者當同義詞。

若 token 在 transfer 時收費,router 的名義輸入量不一定等於池實收。黑名單、最大交易量與交易開關也可能令標準模擬失真。這些是 token 合約權限的證據,不會從單一 TVL 數字自動浮現。

美元流動性有第二條價格鏈

池的 reserve 原本以兩種 token 單位存在。轉成美元需要其中一腿或兩腿的外部價格;因此 USD 值至少多一個來源與時間。池 state 很新,但 quote token 的美元價格已過期時,畫面上的美元總額是混合時點資料。

穩定幣名稱也不是永遠等於一美元的證明。資料供應商可能使用固定假設、即時市場價或自己的聚合結果。若方法未公開,保留原始 token reserve 比假裝得到精確美元深度更可靠。

RPC、索引器與畫面各有延遲

RPC 讀取要保存 chain ID、block 或 slot、commitment 與節點同步狀態。索引器可能晚幾個區塊,DEX 前端也可能有自己的 cache。三者數字不同時,先對齊物件、欄位與時間,而不是用固定百分比判定誰錯。

歷史區塊若需要 archive node,而目前端點不支援,就不能拿今天的 reserve 代替過去。無法取得的歷史深度保持未知;截圖只能證明當時畫面可見內容,不能補出鏈上 state。

跨鏈流動性不能直接服務同一交易

同一品牌代幣可能在多條鏈都有池,但一筆鏈上 swap 只能使用該鏈可到達的路由。另一條鏈的資本必須經過橋接、等待、費用與對應資產 mapping,才能成為不同交易環境中的資金。跨鏈 TVL 總和不是當前訂單深度。

wrapped 或 bridged token 也要保存來源與目的合約。相同 ticker、圖示與 1:1 宣稱不足以證明可贖回關係。mapping 未證實時,各鏈觀察分開,不建立虛假的統一池。

流動性移除是時間事件

LP 減少部位或提取 reserve 後,舊 snapshot 仍可能被快取頁面展示。每個流動性數字都要帶區塊與觀察時間;長期「流動性充足」不能由一次截圖支持。locker 也要查明合約、受益者、解鎖時間與管理權。

「LP 已燒毀」要核對 LP token 或部位的贖回機制。它不會讓池內基礎 token 自動離開流通供應,也不等於池永遠維持目前深度。市場狀態與控制權是兩欄證據。

缺值與失敗不可變成零

provider 回傳 `null`、欄位缺失、RPC timeout、schema 變更與真實零 reserve 是不同狀態。最後成功資料若超過新鮮門檻,只能帶 stale 時間展示;沒有可信舊值時則標為 unavailable。

這套狀態不評分池的好壞,只描述觀察是否可用。畫面保留來源與時間,不把不同物件的數字轉成差異徽記或固定閾值政策。研究者取得的是可重查的池 passport,不是交易訊號。

池證據工作紙:收尾前逐欄留下答案

一份可交接的池證據工作紙,可以從身分句開始:寫出鏈、完整 mint 或合約、pair address、基礎資產、報價資產、協議與池型。接著分別抄錄兩側儲備、來源顯示的美元流動性、期間量、期間交易筆數及目前池價,為每個期間欄補上窗口,為整份觀察加日期與時間。

然後替方法留一段文字:美元換算來自何處,池是否採常數乘積、集中區間或尚未確認的曲線,價格衝擊是來源欄位、作者模型或根本沒有計算。若有多池,只逐列保存,不先合成;若另有供應商彙整價,把它放在不同區塊,清楚標成供應商方法範圍。

限制欄應逐項回答:是否有空值,是否缺報價更新時間,池建立時間有沒有被誤當更新時間,路由可能經過哪些尚未核實的段落,報價資產與跨鏈表示是否已確認,費率、有效區間及非標準轉移行為是否有直接證據。沒有答案的項目寫未知,不能用「看起來正常」填滿。

最後留下的是一張可重做的池地圖,而不是勝負表。可靠結論可以只是:「已確認多個不同範圍的快照;它們的流動性與期間活動尚不能合成單一可執行深度。」當每個限定詞都能追回來源,碎片化不再被一個總數遮住,而成為研究本身需要呈現的結構。

內容來源