BlockReq
すべての記事に戻る

レシピ

Equifold 一幣多マーケット監視:eth_subscribe 開盤アラート

Equifold 一トークン多市場開盤を BlockReq パブリック WSS eth_subscribe に掛ける:token で多市場を集約、初市 / 第 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。開盤リズム:RH 開盤の見方。本篇は 一トークン → 多市場集約。

用途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}(鍵はローカル)左に同じ

チェーン: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 / marketmarketsByToken[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 ≥ 2index、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 に切替可。Factory + topic0 を貼り / env に入れ、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 を落とす。公開エンドポイント · プランと料金。