BlockReq
返回全部文章

實戰範例

Equifold 一幣多市場監聽:eth_subscribe 開盤告警

把 Equifold 一幣多市場開盤掛到 BlockReq 公共 WSS eth_subscribe:一幣聚合多市場、首市 / 第 N 市優先順序標籤。Base + 可選 RH 切換。註冊每月免費 3M 請求。

BlockReq Engineering2026年9月16日5 分鐘閱讀

同一枚 token,可以在 多個市場 / 報價側 陸續開盤——ETH 報價一檔,stock token 報價再一檔,盤面一層層鋪開。Equifold 在 Base 上線、以及 Robinhood 側多市場討論,語境轉述自 EquiFold · Base 與 EquiFold · multi-market。這篇只做一件事:一條 eth_subscribe 掛 Factory,按 token 聚合多市場,對 首市 / 第 N 市 打優先順序與速率標籤。

Bags 單配對落地:幣股配對發射。新池 agent:新池 Agent。開盤節奏:搶開盤怎麼盯。本篇盯 一幣 → 多市場聚合。

用途Base(預設)Robinhood(可選切換)
公共 HTTPShttps://base-rpc.blockreq.com/v1/rpc/publichttps://robinhood-mainnet-rpc.blockreq.com/v1/rpc/public
公共 WSSwss://base-rpc.blockreq.com/v1/rpc/publicwss://robinhood-mainnet-rpc.blockreq.com/v1/rpc/public
私有末尾 public → {API_KEY}(Key 放本地)同左

鏈:Base EVM chainId = 0x2105(8453);可選 RH 0x1237(4663)。Free 3M Requests / 30 days · 公開端點 · eth_subscribe · 定價。

1. 單配對 → 一幣多市場聽模型

盤面語感鏈上訊號盯什麼
市場落地Factory create / open 類事件marketId、baseToken、quoteToken
同一 token 再開一檔同 baseToken、新 quote / 新 market寫入 marketsByToken[token]
首市開盤該 token 聚合表長度 = 1優先順序標籤 P0 / first
第 N 市開盤長度 ≥ 2標籤 P1… / nth + 速率窗

Stock-pairs 篇盯「一側 ∈ stock 表的 單對」;本篇盯「同一 token 下市場列表怎麼長」。

2. Equifold 事件 + 報價型別

常見報價側兩類(以部署 ABI / env 為準):

報價型別示例告警側怎麼用
ETH / WETH 報價原生流動性檔首市常落在這裡 → P0
Stock token 報價AAPL / TSLA 一類同 token 再開一檔 → Nth 擴充套件

Factory 地址、create/open 的 topics[0] 用環境變數佔位(EQUIFOLD_FACTORY、EQUIFOLD_MARKET_TOPIC0),換鏈或換部署只改 env。

3. 一條訂閱:Factory + topic,按 token 聚合

同一條公共 WSS,訂 Factory 窄 logs;每條推送解碼出 base / quote / market,推進本地聚合表。

Step A · 訂 Factory create/open(topic0 佔位)

{
  "jsonrpc": "2.0", "id": 1, "method": "eth_subscribe",
  "params": ["logs", {
    "address": "${EQUIFOLD_FACTORY}",
    "topics": ["${EQUIFOLD_MARKET_TOPIC0}"]
  }]
}
  • address / topics[0] 從 env 讀;以 Equifold Factory ABI 為準。
  • 解碼 baseToken / quoteToken / market(欄位名以 ABI 為準)→ key = baseToken.toLowerCase()。

Step B · 本地聚合 marketsByToken

欄位含義
tokenbaseToken(聚合鍵)
markets[]{ market, quote, tx, ts, index }
firstAt首市時間戳
count當前市場數

每條 create:count += 1,index = count;index === 1 → 首市;否則第 N 市。

Step C · 與 stock-pairs 的分工

篇聽什麼產出
幣股配對PairCreated × stock 表單配對卡
本篇Equifold Factory × token 聚合首市 / 第 N 市優先順序卡

4. 告警:首市 vs 第 N 市(優先順序 · 速率標籤)

用 優先順序 + 速率 管推送節奏(正面標籤,方便看板色塊):

標籤觸發(demo)推送策略
P0 · firstindex === 1立即推;欄位齊全
P1 · nthindex ≥ 2帶 index、quote、距首市 Δt
rate · burst同 token 在短窗內多市連開疊速率標籤,合併成一簇卡
rate · steady間隔拉長的後續市單條輕量更新
  1. 市場落地 → { token, market, quote, index, factoryTx, ts }。
  2. 首市 → 同上 + priority: "P0";Webhook / 看板高亮。
  3. 第 N 市 → priority: "P1" + index + deltaFromFirstMs。
  4. 速率簇 → 短窗內同 token 多條 → 一張簇卡,列出 markets[] 摘要。

斷線:重連必重新 subscribe;空窗用 HTTPS eth_getLogs 按塊段回補,再用同一套聚合 + 優先順序規則回放。預設 POST → https://base-rpc.blockreq.com/v1/rpc/public;切 RH 時換表中 RH 行。

5. Free 3M + 雙端點切換(StackBlitz)

預設連 BlockReq Base 公共 WSS;UI 可切換 RH。貼上 / env 填 Factory + topic0,實時刷 marketsByToken、打 P0 / P1 / rate 標籤。程式碼在 StackBlitz 裡看,文章只嵌預覽:

倉庫:blockreq/blog-demos → examples/equifold-multi-market-listen。換 keyed:WSS 末尾 public → {API_KEY}。Free 3M 夠短時雙鏈試聽;長期看板換 keyed。

6. 小結

  1. 一幣多市場 = Factory 事件按 token 聚合;聽列表怎麼長,聽首市與第 N 市。
  2. 配方:一條 Factory 訂閱 + marketsByToken + P0/P1/rate 標籤。
  3. Base 公共 WSS 預設開跑;StackBlitz 一鍵切 RH;Free 3M 覆蓋試聽。
  4. 系列:幣股單配對 · 新池 Agent · 開盤節奏 · 薄流動性 · 本篇多市場聚合。下一步:Factory / topic0 固化 .env → P0/P1 進 Webhook → checkpoint 落盤。公開端點 · 套餐與定價。