Skip to main content
POST
https://api.blockdb.io
/
v1
/
evm
/
verify
/
logs-bloom
curl -X POST "https://api.blockdb.io/v1/evm/verify/logs-bloom" \
  -H "Authorization: Bearer $BLOCKDB_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "chain_id": 1,
  "block_number": 18767124,
  "expected_bloom": "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
  "logs": [
    {
      "contract_address": "0000000000000000000000000000000000000000",
      "topics": [
        "ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
        "0000000000000000000000000000000000000000000000000000000000000000"
      ]
    }
  ]
}'
{
  "chain_id": 1,
  "data": [
    {
      "expected_bloom": "0000…",
      "computed_bloom": "0000…",
      "is_identical": true
    }
  ],
  "count": 1
}

Description

Recomputes an Ethereum receipt logs bloom filter from the logs you supply and compares it against an expected bloom (for example, the value published in a block header or receipt). Useful when you only care about log-topic coverage without re-verifying the full receipt trie.

Parameters

chain_id
number
Network identifier. Use when the verification workflow should be tied to a specific chain context. See the Chain enumeration.

Block Context

block_number
number
required
Canonical block height where the log was emitted. Use when the verification workflow should be tied to a specific block height context.
expected_bloom
string
required
2048-bit bloom filter represented as a 512-character hex string (no 0x prefix). Typically sourced from a block header or receipt.

Log Inputs

logs
object[]
required
Logs that should populate the bloom filter. Order is irrelevant.
contract_address
string
required
Address that emitted the log (hex string, 20 bytes, no 0x prefix). Encoded into the bloom.
topics
string[]
required
0-4 indexed topics (hex string, 32 bytes each, no 0x prefix). Each topic contributes to the bloom. Supply an empty array for topic-less logs.

Pagination Controls

limit
number
default:"250"
Recommended default 250; maximum 1000 to stay under ~10 MB responses.
cursor
string
Pagination cursor from a prior call.

Response Fields

chain_id
number | null
Echoed from the request when provided; otherwise null.

Data

data
object[]
Verification results.
data.expected_bloom
string
Bloom filter supplied in the request.
data.computed_bloom
string
Bloom filter recomputed from logs.
data.is_identical
boolean
true when expected_bloom and computed_bloom match bit-for-bit.

Envelope Fields

count
number
Number of verification entries returned (currently 1).

Use Cases

  • Sanity-check log ingestion pipelines without fetching receipts or recomputing trie roots.
  • Confirm that filtered event subscriptions captured all expected topics before downstream processing.
  • Lightweight guardrail for block producers or relayers to ensure bloom accuracy after custom transformations.
curl -X POST "https://api.blockdb.io/v1/evm/verify/logs-bloom" \
  -H "Authorization: Bearer $BLOCKDB_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "chain_id": 1,
  "block_number": 18767124,
  "expected_bloom": "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
  "logs": [
    {
      "contract_address": "0000000000000000000000000000000000000000",
      "topics": [
        "ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
        "0000000000000000000000000000000000000000000000000000000000000000"
      ]
    }
  ]
}'
{
  "chain_id": 1,
  "data": [
    {
      "expected_bloom": "0000…",
      "computed_bloom": "0000…",
      "is_identical": true
    }
  ],
  "count": 1
}