BlockReq
返回全部文章

實戰範例

ETH StablePair Hook 監聽工具:peg / 費率 / LP

Uniswap StablePair Hook 主網 USDC/USDG · USDC/USDT:公共 WSS eth_subscribe PoolManager Swap / ModifyLiquidity + hook logs,盯 peg 漂移、動態費率、LP 進出。註冊每月免費 3M 請求。

BlockReq Engineering2026年10月1日5 分鐘閱讀

Uniswap 官方宣佈 StablePair Hook 主網落地,覆蓋 USDC/USDG · USDC/USDT——這篇盯 PoolManager Swap / ModifyLiquidity + hook logs:peg 漂移、動態費率、LP 進出進同一張告警面板。Base 股幣 Swap 盯盤 盯的是白名單大單成交;本篇盯 ETH 主網 StablePair 穩定池層。

公共端點開跑 · blockreq.com 註冊每月免費 3M 請求。

用途Endpoint
公共 HTTPShttps://ethereum-rpc.blockreq.com/v1/rpc/public
公共 WSSwss://ethereum-rpc.blockreq.com/v1/rpc/public
私有末尾 public → {API_KEY}(Key 放本地)

鏈:Ethereum Mainnet EVM chainId = 0x1(1)。公開端點 · eth_subscribe · 套餐 · 註冊。

1. Hook:StablePair × peg / 費率 / LP

盤面語感鏈上訊號你盯什麼
穩定池成交PoolManager Swap · poolId ∈ 表sqrtPrice · fee · amount0/1
peg 漂移成交後 tick / sqrtPriceX96相對參考價 1:1 偏差
動態費率Swap 事件 fee 欄位 / hook getFeefeeE6 方向差
LP 進出ModifyLiquidity · liquidityDelta加倉 / 撤出幅度

同族對照:Base 股幣篇收斂到 Swap 大單;ETH 本篇收斂到 StablePair peg + 費率 + LP 卡。

2. 事件:PoolManager Swap / ModifyLiquidity + hook

本地 JSON 維護:

env預設(可編輯)
POOL_MANAGER0x000000000004444c5dc75cB358380D2e3dE08A90
STABLEPAIR_HOOK0x0000113dCf4ADd69999Fad8F20F2b63F979bfcC0
POOL_ID_LISTUSDC/USDT · USDC/USDG poolId(官方部署表)
PEG_BPS / LP_DELTA_MIN漂移與撤出閾值

同一條 Ethereum 公共 WSS:訂 PoolManager Swap + ModifyLiquidity,按 topics[1] = poolId 過濾;可並行訂 hook 地址 logs。

Step A · 訂 PoolManager Swap

{
  "jsonrpc": "2.0", "id": 1, "method": "eth_subscribe",
  "params": ["logs", {
    "address": "0x000000000004444c5dc75cB358380D2e3dE08A90",
    "topics": [
      "0x40e9cecb9f5f1f1c5b9c97dec2917b7ee92e57ba5563708daca94dd84ad7112f",
      ["POOL_ID_USDC_USDT", "POOL_ID_USDC_USDG"]
    ]
  }]
}
  • topics[0]:V4 Swap(bytes32,address,int128,int128,uint160,uint128,int24,uint24)。
  • topics[1]:indexed PoolId;解碼 amount0/1 · sqrtPriceX96 · liquidity · tick · fee → 算 peg 偏差與費率卡。

Step B · 訂 ModifyLiquidity(可並行)

{
  "jsonrpc": "2.0", "id": 2, "method": "eth_subscribe",
  "params": ["logs", {
    "address": "0x000000000004444c5dc75cB358380D2e3dE08A90",
    "topics": [
      "0xf208f4912782fd25c7f114ca3723a2d5dd6f3bcc3ac8db5af63baa85f711d5ec",
      ["POOL_ID_USDC_USDT", "POOL_ID_USDC_USDG"]
    ]
  }]
}
  • topics[0]:V4 ModifyLiquidity(bytes32,address,int24,int24,int256,bytes32)。
  • liquidityDelta < 0 且幅度 ≥ LP_DELTA_MIN → LP 撤出卡;正值 → 加倉卡。

Step C · 穩定池卡欄位

{ chain: "ethereum", pad: "stablepair-hook", kind: "swap|peg|fee|lp", poolId, hook, sqrtPriceX96, tick, fee, pegBps, liquidityDelta, txHash, blockNumber, ts }

同 txHash + logIndex 去重;demo 擰 poolId 表與閾值。官方參考 poolId(部署頁可核對):

  • USDC/USDT · 0x2b21c65d9a7dc6926ee330a1c6e5a8037fd81774f3dc066536f800128e39f634
  • USDC/USDG · 0xeda62d2906d0edf26d40c793d581609552a44a87f618a98ff76ebe8dde4b7edb

3. 瀏覽器 demo(StackBlitz)

預設連 Ethereum 公共 WSS;貼上 PoolManager / StablePair hook / poolId 表 + peg·LP 閾值,點 Start 刷穩定池卡。程式碼在 StackBlitz 裡看,文章只嵌預覽:

倉庫:blockreq/blog-demos → examples/ethereum-uniswap-v4-stablepair-hook-listen(Vite+React+viem;StackBlitz 開倉庫 root)。

WSS  → wss://ethereum-rpc.blockreq.com/v1/rpc/public
HTTPS→ https://ethereum-rpc.blockreq.com/v1/rpc/public
env  → POOL_MANAGER · STABLEPAIR_HOOK · POOL_ID_LIST · PEG_BPS · LP_DELTA_MIN

換 keyed:WSS 末尾 public → {API_KEY}。開跑配額:blockreq.com 註冊每月免費 3M 請求。

4. 告警節奏

  1. Swap 到達 → 解碼 poolId · sqrtPrice · fee · amounts → pegBps / fee 卡。
  2. ModifyLiquidity 到達 → liquidityDelta 閾值 → LP 加倉 / 撤出卡。
  3. 出站 → ETH StablePair · kind=… · pool=… · pegBps=… · fee=… · blk=…。
  4. 去重 → 同 txHash + logIndex 只推一次。

斷線後重連並重新 subscribe;空窗 HTTPS eth_getLogs 按塊段回補同一 PoolManager。POST → https://ethereum-rpc.blockreq.com/v1/rpc/public。

5. 小結 + CTA

  1. 粒度:ETH StablePair 盯盤 = peg 漂移 + 動態費率 + LP 進出。
  2. 配方:PoolManager + Swap/ModifyLiquidity topic + poolId 表 + 閾值 → 穩定池卡。
  3. 可跑:瀏覽器掛 BlockReq Ethereum 公共 WSS;demos1 路徑見上。
  4. 開跑:公開端點 + blockreq.com 註冊每月免費 3M 請求。

下一步:固化 poolId / 閾值 JSON → Webhook → 與 Base 股幣 Swap 大單卡同屏疊層。文件 · 定價 · 註冊。