{
  "id": 7745,
  "title": "EIP-7745: Trustless log and transaction index",
  "status": "Draft",
  "type": "Standards Track",
  "category": "Core",
  "summary": "Ethereum currently uses bloom filters in each block header to help search event logs, but they are inefficient today. This proposal replaces them with a new Merkle-based log index that uses moderate extra consensus data yet greatly reduces bandwidth and computation for finding events, especially for light clients and indexing services.",
  "impacts": [
    "Indirect impact: improved performance and reliability of dapps or explorers that rely on historical event searches, especially on bandwidth-constrained devices.",
    "Log-heavy applications may gain cheaper, more scalable indexing and queries, but need underlying infrastructure updated to support the new index.",
    "Wallets performing event lookups or light-client verification may adopt log-index proofs or depend on upgraded infrastructure providers and RPCs.",
    "Indexers, explorers, DHT-based log networks and RPC providers must implement the new global log index, filter-map structure and Merkle-proof generation.",
    "Specification targets L1 execution; no direct changes for L2s unless they mirror L1 header fields or adopt this log index.",
    "Validators and full nodes must construct log index state per block, maintain consensus data and integrate changes into fork-handling logic.",
    "Consensus clients treat log_index_root as opaque execution data but must update header schemas, fork logic and networking to recognize it.",
    "Execution clients must maintain the LogIndex, replace logs_bloom with log_index_root, manage filter maps and Merkle trees, and extend RPCs.",
    "Enables efficient, Merkle-provable log searches that touch only small portions of the global log dataset.",
    "Maintains consistently low false positive rates even as block gas limits and log volumes increase.",
    "Reduces bandwidth for log-event discovery by orders of magnitude compared with existing per-block bloom filters.",
    "Provides precise block and transaction positions for candidate hits, minimizing unnecessary receipt fetches during log queries."
  ],
  "discussion_url": "https://ethereum-magicians.org/t/eip-7745-two-dimensional-log-filter-data-structure/20580",
  "source_markdown_url": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-7745.md",
  "canonical_url": "/latest/eips/7745.json",
  "markdown_url": "/latest/eips/7745.md",
  "citations": [
    {
      "recordId": "eip-7745",
      "artifactPath": "normalized/7745.json",
      "url": "/records/proposal/eip-7745/normalized/7745.json",
      "label": "EIP-7745: Trustless log and transaction index",
      "snippet": "Ethereum currently uses bloom filters in each block header to help search event logs, but they are inefficient today. This proposal replaces them with a new Merkle-based log index that uses moderate extra consensus data "
    }
  ]
}
