Free

Biarkan Claude membaca pool Uniswap V3 dalam 5 menit

Kolom liquidity pool Uniswap V3 bukan uang dan bukan kedalaman swap. Biarkan Claude memandu Anda melalui setiap kolom yang mudah salah baca.


Siapa pun yang main DeFi cepat atau lambat akan menatap data pool Uniswap V3. Dan di antara deretan angka di halaman pool itu, ada setidaknya satu kolom yang hampir semua orang salah baca pada kali pertama —— salah baca yang cukup besar untuk membuatmu mengira pool senilai 100 juta dolar memiliki "likuiditas" 3,2 kuintiliun dolar di dalamnya.

Tulisan ini membaca satu pool dari awal sampai akhir dalam lima menit, menggunakan smarts MCP plus Claude. Data nyata, pool USDC/WETH 0.05% di mainnet.

Tarik seluruh state pool dalam satu kalimat

Setelah smarts MCP terhubung, Claude memanggil get_uniswap_v3_pool dengan slug univ3-usdc-weth-eth dan mendapat ini:

protocol: Uniswap V3
pair: USDC/WETH
fee: 0.05%
price:
  1 WETH in USDC: 2310.3381
  1 USDC in WETH: 0.00043283
tick: 198868
liquidity: 3243712254364037809
liquidity_note: Uniswap V3 sqrt-formula virtual liquidity
                at the current tick. Not a USD amount and
                not the depth available to swap.
tvl_usd: 100,645,897.62
tokens:
  token0: USDC (decimals 6)
  token1: WETH (decimals 18)
block_number: 24959248

Datanya sendiri sederhana. Intinya setiap kolom punya jebakan. Satu per satu.

token0 dan token1 tidak diurutkan sesuai logika bisnis

Orang mengira di pool USDC/WETH, USDC adalah "mata uang utama" dan WETH adalah "aset yang dihargai". Salah. Uniswap V3 mengurutkan token0 dan token1 murni berdasarkan nilai numerik alamatnya. Alamat USDC 0xa0b8... lebih kecil dari alamat WETH 0xc02a..., jadi token0 = USDC, token1 = WETH.

Urutan ini menentukan semua perhitungan internal: arah harga, arah tick, satuan likuiditas. Pindah ke pool lain, misalnya WETH/DAI, dan peran token0/token1 bisa terbalik —— semua intuisi soal "ETH naik atau turun?" harus dihitung ulang.

Salah satu untungnya membiarkan Claude membaca pool: ia langsung mengembalikan harga berlabel di kedua arah, jadi tidak perlu menghitung di kepala "tick ini sisi mana token mana".

fee 0.05% berarti ini pool "pasangan stabil"

Empat fee tier yang umum di Uniswap V3 adalah 0.01% / 0.05% / 0.30% / 1.00%.

  • 0.01%: stablecoin lawan stablecoin (USDC/USDT)
  • 0.05%: aset berkorelasi tinggi (USDC/WETH dan sejenisnya —— pasangan dalam, volatilitas terbatas)
  • 0.30%: pasangan biasa
  • 1.00%: pasangan long-tail, volatilitas tinggi

USDC/WETH memakai 0.05% bukan 0.30% berarti: market maker bertaruh pada volume, bukan pada fee tebal per trade, karena volatilitas terbatas dan arusnya besar.

Mengetahui ini, begitu lihat pool baru ber-fee 1% kamu bisa menebak: entah token baru atau memang tidak ada yang peduli pada pasangan itu.

price datang langsung dari tick saat ini —— tidak ada "harga transaksi terakhir"

State pool V3 tidak punya kolom terpisah "harga transaksi terakhir". Harga saat ini adalah apa pun yang dikatakan slot0.sqrtPriceX96, dan tick adalah ekspresi logaritmiknya. Dengan kata lain: selama tidak ada yang trading, harga tetap di tempat, model yang sangat berbeda dari "fill terakhir" di CEX.

(Untuk harga historis pakai oracle bawaan V3 —— state pool menyimpan array akumulator observation yang bisa dipakai menurunkan TWAP. Itu mekanisme tersendiri.)

1 WETH = 2310.34 USDC yang baru kita baca adalah "kuotasi saat ini" pool; swap berikutnya berangkat dari harga itu dan mendorong harga sepanjang kurva ke tick baru.

tick adalah koordinat diskret dari harga skala log

tick: 198868 adalah angka yang membingungkan semua orang pertama kali. Rasanya seperti harga, tapi bukan dolar.

V3 mendiskretisasi harga secara logaritmik: raw_price = 1.0001^tick, di mana raw_price adalah wei token1 dibagi wei token0 —— bukan harga tampilan. Untuk mengubahnya jadi "1 ETH dalam USDC" masih perlu dikalikan 10^(decimals_token0 - decimals_token1). Setelah penyesuaian itu, tick 198868 sesuai dengan 1 ETH ≈ 2310 USDC.

Kenapa serumit ini? Karena setelah harga jadi logaritmik, market maker bisa menempatkan likuiditas hanya pada rentang harga tertentu —— misalnya "hanya antara 2200 dan 2400". Tick diskret adalah label rentang itu. Ini inovasi khas V3 dibanding V2: concentrated liquidity.

Dalam praktik kamu tidak perlu menghitung tick. Cukup tahu: tick yang lebih besar tidak otomatis berarti harga lebih tinggi (tergantung mana token0), dan satu langkah tick = perubahan harga 0.01%.

Kolom liquidity: yang paling gampang salah baca

Inilah jebakan besar: liquidity: 3243712254364037809.

19 digit, kelihatan seperti wei. Tapi ini bukan uang.

Ini "likuiditas virtual" L dari matematika Uniswap V3 —— parameter internal yang menggambarkan kemiringan kurva market making di rentang sqrt-price. Satuannya bukan USD dan tidak sebanding dengan kepemilikan pool yang sesungguhnya.

Respons tool bahkan memperingatkan dengan liquidity_note:

Uniswap V3 sqrt-formula virtual liquidity at the current tick. Not a USD amount and not the depth available to swap.

Kenapa klausul kedua? Karena salah baca lain yang umum adalah membaca liquidity sebagai "berapa yang bisa saya swap sekarang tanpa slippage". Salah juga. Kedalaman swap V3 dihitung per segmen: di dalam rentang tick saat ini, kamu pakai L ini dengan rumus sqrt-price; begitu volume swap mendorong harga melewati batas tick, kamu menyeberang ke rentang berikutnya dan beralih ke L milik rentang itu. Setiap batas yang dilewati menukar L baru, sampai trade selesai. Jadi "berapa yang bisa di-swap tanpa slippage" tergantung berapa L yang ditaruh di tiap rentang sepanjang jalur —— satu angka dari slot0 tidak memberitahu apa-apa.

Pesannya: jangan bandingkan kolom liquidity dengan USD, jangan dipakai membandingkan "kedalaman" antar pool —— itu menyesatkan.

TVL: berapa uang yang sebenarnya ada di pool

tvl_usd: 100,645,897.62. Inilah uang nyata di pool.

Dari mana angka ini? Saldo USDC nyata kontrak ditambah saldo WETH nyatanya, masing-masing dikalikan harga USD saat ini dari DefiLlama, lalu dijumlahkan.

Dibandingkan dengan kolom liquidity:

Kolom Nilai Arti
liquidity 3.24 × 10¹⁸ parameter matematika internal V3, tanpa satuan
tvl_usd $100,645,897 uang yang benar-benar dipegang pool

Keduanya diterjemahkan sebagai "likuiditas" di percakapan kasual, tapi mereka hal yang berbeda. Untuk bercerita lihat TVL, untuk hitung-hitungan lihat liquidity, jangan pernah dicampur.

block_number: kamu sedang melihat snapshot

Detail terakhir: block_number: 24959248.

Data on-chain selalu datang dengan nomor blok. Setiap kolom yang Claude tarik dibaca di blok yang sama. Itu berarti dua hal:

  1. Harga, likuiditas, dan TVL saling konsisten (tidak ada drift seperti "harga 5 menit lalu, TVL sekarang")
  2. Detik berikutnya bisa sudah berbeda

Untuk logika monitoring atau arbitrase, properti konsistensi ini krusial —— sekali tarik, kamu dapat snapshot dunia yang koheren, tidak perlu khawatir antar-kolom selisih waktu.

Mengaplikasikannya

Setelah memahami semua ini, kotak peralatannya jadi luas:

  • Cek kesehatan pool: tarik saldo nyata token0/token1 (bukan kolom liquidity) dan periksa apakah secara matematis cocok dengan TVL. Saldo besar tapi harga jauh dari nilai wajar = mungkin ada peluang arbitrase.
  • Bandingkan antar fee tier: USDC/WETH ada pool 0.05% dan 0.30%; harganya biasanya berdekatan —— kalau melebar itu sinyal arbitrase.
  • Bandingkan antar chain: bandingkan USDC/WETH di Ethereum mainnet dengan USDC/WETH di Base —— spread-nya bicara tentang biaya bridge dan likuiditas.
  • Monitor tick: ikuti pergerakan tick untuk mendeteksi "harga baru saja melewati batas".

Semua ini dulu butuh install web3.py, tulis script, jaga ABI, sewa RPC. Sekarang semuanya level percakapan dengan Claude + MCP —— tanya, dia baca.

Tidak perlu matematika untuk membaca pool

Model matematika V3 punya tembok masuk. sqrtPriceX96, tick, L, concentrated liquidity —— konsep-konsep itu sudah memukul mundur banyak orang. Tapi dalam praktik 90% kebutuhanmu cuma "pool ini sehat, ada uangnya, harga berapa" —— tanpa rumus.

Jadikan Claude penerjemah V3-mu, mengubah likuiditas virtual dan kode tick jadi kalimat manusia "1 ETH = 2310 USDC, pool berisi $100 juta". Keputusannya, dari titik itu, di tanganmu.