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. 오픈 리듬: 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]은 env 플레이스홀더(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 저장. 공개 엔드포인트 · 플랜과 요금.