Skip to main content

Documentation Index

Fetch the complete documentation index at: https://daehan-base.mintlify.app/llms.txt

Use this file to discover all available pages before exploring further.

Flashblocks 엔드포인트는 모든 표준 Ethereum JSON-RPC 메서드와 함께, 사전 확인에 특화된 추가 메서드를 제공합니다. 이를 통해 블록이 seal되기 최대 약 1.8초 전까지 시퀀서가 정렬한 데이터를 기준으로 상태를 조회하고, 트랜잭션을 시뮬레이션하고, 이벤트를 스트리밍할 수 있습니다.
모든 표준 Ethereum JSON-RPC 메서드는 Flashblocks 엔드포인트에서도 동일하게 동작합니다. 트랜잭션 풀 대신 사전 확인 상태를 기준으로 조회하려면 "pending" block tag를 사용하세요. 엔드포인트 URL과 두 티어의 차이는 Base RPC 개요를 참고하세요.

HTTP 메서드

메서드설명
eth_simulateV1사전 확인 상태를 기준으로 트랜잭션 번들 시뮬레이션
base_transactionStatus트랜잭션이 노드 mempool에 수신되었는지 확인

WebSocket 구독

Flashblocks WSS 엔드포인트에서 eth_subscribenewHeads를 사용하면, 2초마다가 아니라 Flashblock마다 약 200ms 주기로 새 이벤트를 받습니다. 또한 Flashblocks 엔드포인트에서만 제공되는 전용 구독 타입 세 가지를 추가로 사용할 수 있습니다.
구독 타입설명
newFlashblockTransactions개별 트랜잭션을 사전 확인되는 즉시 스트리밍(~200ms 간격)
pendingLogs사전 확인 트랜잭션에서 발생한 필터링된 이벤트 로그 스트리밍
newFlashblocks시퀀서의 전체 Flashblock payload 객체 스트리밍

인프라 스트림

원시 Flashblocks 인프라 스트림은 Flashblocks 인식 RPC 노드가 소비하는 upstream WebSocket 피드입니다. 시퀀서가 트랜잭션을 사전 확인할 때마다 약 200ms 간격으로 새 메시지를 내보냅니다.
애플리케이션은 인프라 스트림에 직접 연결하면 안 됩니다. 이 엔드포인트는 노드 운영자 전용입니다. 앱 개발자는 Flashblocks 인식 RPC 제공업체를 통해 위의 WebSocket 구독 메서드를 사용하세요.
네트워크Raw stream URL
Mainnetwss://mainnet.flashblocks.base.org/ws
Sepoliawss://sepolia.flashblocks.base.org/ws

Flashblock Object

각 인프라 스트림 메시지의 최상위 구조입니다.

payload_id
string
생성 중인 블록의 고유 식별자입니다. 하나의 전체 블록 안에 포함된 모든 Flashblock에서 동일하게 유지됩니다.
index
number
현재 블록 안에서의 Flashblock 인덱스입니다. 0에서 시작하며(시스템 트랜잭션만 포함), 사용자 트랜잭션은 인덱스 1부터 시작합니다. 일반적으로 블록당 9~10까지 증가하지만, 시퀀서 타이밍 드리프트가 있으면 10을 초과할 수도 있습니다.
base
Base Object
블록 헤더 속성입니다. index0일 때만 존재합니다. Base Object를 참고하세요.
diff
Diff Object
이 Flashblock에서 발생한 증분 블록 상태 변경입니다. 모든 메시지에 포함됩니다. Diff Object를 참고하세요.
metadata
Metadata Object
보조 데이터입니다. 안정적이지 않으며 필드가 예고 없이 변경될 수 있습니다. Metadata Object를 참고하세요.

Base Object

전체 블록 헤더 속성을 담고 있습니다. index: 0 메시지, 즉 각 전체 블록의 첫 번째 Flashblock에만 존재합니다.

parent_hash
string
부모 블록의 해시입니다.
fee_recipient
string
트랜잭션 수수료를 받는 주소(coinbase)입니다.
block_number
string
16진수 형식의 블록 번호입니다.
gas_limit
string
이 블록에서 허용되는 최대 가스량(16진수)입니다.
timestamp
string
블록 생성 시각의 Unix timestamp(16진수)입니다.
base_fee_per_gas
string
EIP-1559 기준 base fee per gas(16진수)입니다.
prev_randao
string
온체인 난수에 사용되는 이전 RANDAO 값입니다.
extra_data
string
시퀀서가 설정하는 임의 데이터 필드입니다.

Diff Object

이 특정 Flashblock의 증분 블록 상태 변경을 담고 있습니다. 모든 메시지에 포함됩니다.

state_root
string
이 Flashblock의 트랜잭션을 적용한 뒤 상태 trie의 Merkle root입니다.
block_hash
string
이 Flashblock 인덱스 시점의 부분 블록 해시입니다. 더 많은 트랜잭션이 사전 확인될수록 매 Flashblock마다 바뀝니다.
gas_used
string
이 Flashblock까지 누적된 가스 사용량(16진수)입니다.
blob_gas_used
string
누적 blob gas 사용량(EIP-4844, 16진수)입니다.
transactions
string[]
이 Flashblock에 포함된 RLP 인코딩 트랜잭션 배열입니다.
withdrawals
array
검증자 출금 정보입니다(Base L2에서는 항상 비어 있음).
receipts_root
string
트랜잭션 영수증의 Merkle root입니다.
logs_bloom
string
이 Flashblock 로그용 Bloom filter입니다.
withdrawals_root
string
출금 정보의 Merkle root입니다.

Metadata Object

metadata 객체는 안정적이지 않습니다. 필드가 사전 고지 없이 추가, 수정, 제거될 수 있습니다. 프로덕션 의존성을 여기에 두지 말고, 대신 diff 객체를 사용하거나 표준 RPC로 finalized 블록 데이터를 조회하세요.

block_number
number
10진수 정수 형식의 블록 번호입니다.
new_account_balances
object
업데이트된 ETH 잔액(16진수)을 주소별로 담은 맵입니다. 이 Flashblock에서 잔액이 바뀐 계정만 포함합니다.
receipts
object
트랜잭션 해시를 Receipt 객체에 매핑한 값입니다.

Receipt Object

metadata.receipts에 포함되는 축약형 트랜잭션 영수증입니다. 트랜잭션 유형은 type 필드로 판단합니다.

type
string
트랜잭션 유형입니다: 0x0 Legacy, 0x1 Access List, 0x2 EIP-1559, 0x7e Deposit(L1→L2).
status
string
트랜잭션 상태입니다. 성공이면 0x1, 실패면 0x0입니다.
cumulativeGasUsed
string
이 트랜잭션까지 포함한 블록 누적 가스 사용량(16진수)입니다.
logs
Log[]
트랜잭션에서 발생한 이벤트 로그 배열입니다. Log Object를 참고하세요.
logsBloom
string
이 영수증 로그의 Bloom filter입니다.
transactionIndex
string
블록 내 트랜잭션 인덱스(16진수)입니다.

Log Object

address
string
이벤트를 발생시킨 컨트랙트 주소입니다.
topics
string[]
인덱싱된 이벤트 파라미터 배열입니다. Topic 0은 보통 이벤트 시그니처 해시입니다.
data
string
ABI 인코딩된 비인덱스 이벤트 파라미터입니다.

전체 예시

Index 0base 객체(블록 헤더)를 포함합니다:
{
  "payload_id": "0x03997352d799c31a",
  "index": 0,
  "base": {
    "parent_hash": "0x9edc29b8b0a1e31d28616e40c16132ad0d58faa8bb952595b557526bdb9a960a",
    "fee_recipient": "0x4200000000000000000000000000000000000011",
    "block_number": "0x158a0e9",
    "gas_limit": "0x3938700",
    "timestamp": "0x67bf8332",
    "base_fee_per_gas": "0xfa"
  },
  "diff": {
    "state_root": "0x208fd63edc0681161105f27d03daf9f8c726d8c94e584a3c0696c98291c24333",
    "block_hash": "0x5c330e55a190f82ea486b61e5b12e27dfb4fb3cecfc5746886ef38ca1281bce8",
    "gas_used": "0xab3f",
    "transactions": ["0x7ef8f8a0b4afc0b7ce10e150801bbaf08ac33fecb0f38311793abccb022120d321c6d276..."],
    "withdrawals": []
  },
  "metadata": {
    "block_number": 22585577,
    "new_account_balances": {
      "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": "0x0"
    },
    "receipts": {
      "0x07d7f06b06fea714c1d1d446efa2790c6970aa74ee006186a32b5b7dd8ca2d82": {
        "type": "0x7e",
        "status": "0x1",
        "cumulativeGasUsed": "0xab3f",
        "logs": [],
        "logsBloom": "0x00000000...",
        "transactionIndex": "0x0"
      }
    }
  }
}
Index 1–N (diff만 포함)base 객체가 없습니다:
{
  "payload_id": "0x03997352d799c31a",
  "index": 4,
  "diff": {
    "state_root": "0x7a8f45038665072f382730e689f4a1561835c9987fca8942fa95872fb9367eaa",
    "block_hash": "0x9b32f7a14cbd1efc8c2c5cad5eb718ec9e0c5da92c3ba7080f8d4c49d660c332",
    "gas_used": "0x1234f",
    "transactions": ["0x02f90133...", "0x02f90196..."],
    "withdrawals": []
  },
  "metadata": {
    "block_number": 22585577,
    "new_account_balances": {
      "0x4200000000000000000000000000000000000015": "0x1234"
    },
    "receipts": {
      "0x7c69632dc315f13a...": {
        "type": "0x2",
        "status": "0x1",
        "cumulativeGasUsed": "0x1234f",
        "logs": [],
        "logsBloom": "0x00000000...",
        "transactionIndex": "0x1"
      }
    }
  }
}