{
  "$schema": "https://degreesofsatoshi.com/encyclopedia/schemas/article-v1.json",
  "schemaVersion": "1.0.0",
  "id": "ethereum-block-reorganizations",
  "canonical": "https://degreesofsatoshi.com/encyclopedia/ethereum-block-reorganizations/",
  "collection": "ethereum",
  "title": "Ethereum reorganizations: when a recent block leaves the chosen chain",
  "description": "Understand why an included Ethereum transaction can change block position before finality and what applications should recheck after a reorganization.",
  "aliases": [
    "Ethereum chain reorg",
    "Ethereum removed transaction logs"
  ],
  "dates": {
    "published": "2026-10-02",
    "modified": "2026-10-02",
    "verified": "2026-10-02T19:27:58.939Z",
    "dataAsOf": "2026-10-02"
  },
  "authorship": {
    "publisher": "Degrees of Satoshi editorial project",
    "process": "AI-assisted research and drafting with a separate automated source-verification pass; no external expert or named human review is implied."
  },
  "quickAnswer": {
    "text": "A block reorganization occurs when a node’s chosen chain changes and recent blocks are replaced by another accepted branch. Transactions from a replaced block may be included again elsewhere or remain absent; their old receipt position is no longer enough. Check the current chain and finality status, and let applications undo events from removed blocks.",
    "claimId": "ethereum-block-reorganizations-quick-answer",
    "sourceIds": [
      "x425-eth-eth-pos",
      "x425-eth-eth-jsonrpc"
    ]
  },
  "keyFacts": [
    {
      "label": "Chain choice",
      "value": "Consensus fork choice determines the chain head a node follows.",
      "sourceIds": [
        "x425-eth-eth-pos"
      ],
      "id": "chain-choice",
      "claimId": "ethereum-block-reorganizations-fact-chain-choice"
    },
    {
      "label": "Receipts",
      "value": "A receipt identifies the block containing the observed transaction execution.",
      "sourceIds": [
        "x425-eth-eth-jsonrpc"
      ],
      "id": "receipts",
      "claimId": "ethereum-block-reorganizations-fact-receipts"
    },
    {
      "label": "Logs",
      "value": "RPC log data can indicate that a log was removed by a reorganization.",
      "sourceIds": [
        "x425-eth-eth-jsonrpc"
      ],
      "id": "logs",
      "claimId": "ethereum-block-reorganizations-fact-logs"
    }
  ],
  "prerequisites": [
    "ethereum-proof-of-stake-finality",
    "ethereum-transaction-receipts"
  ],
  "sections": [
    {
      "id": "before-finality",
      "heading": "Inclusion and durable settlement are different milestones",
      "sourceIds": [
        "x425-eth-eth-pos"
      ],
      "paragraphs": [
        "A transaction can first appear in a block near the head while consensus is still developing around that part of the chain. A competing branch can replace that recent inclusion. Finality supplies a stronger consensus milestone than first appearance.",
        "Do not describe every wallet notification as irreversible settlement. The strength of the observation depends on the actual block and network state."
      ]
    },
    {
      "id": "example",
      "heading": "A deposit notification may need to be undone",
      "sourceIds": [
        "x425-eth-eth-jsonrpc",
        "x425-eth-eth-pos"
      ],
      "paragraphs": [
        "Suppose an application credits a deposit from a newly observed log. That block is then removed by a reorganization. The application must reconcile the credit with the current chain rather than keep treating the removed event as a settled deposit.",
        "If the transaction later appears in another block, its new position and execution result should be checked. Re-inclusion is not guaranteed solely because the original signed transaction still exists."
      ]
    },
    {
      "id": "tracking",
      "heading": "Track identifiers with their current block context",
      "sourceIds": [
        "x425-eth-eth-jsonrpc"
      ],
      "paragraphs": [
        "Keep the transaction hash, block hash and log position when processing events. The RPC removed indicator and updated receipts help an indexer distinguish a current event from one belonging to a replaced branch.",
        "For material settlement decisions, use the appropriate finalized state and a documented reconciliation policy. This article does not prescribe one universal confirmation count for every application."
      ]
    }
  ],
  "faq": [
    {
      "question": "Does a reorganization mean a transaction signature changed?",
      "answer": "No. The chain’s inclusion history can change while the signed transaction remains the same. Its accepted block position and result must be checked again.",
      "sourceIds": [
        "x425-eth-eth-jsonrpc",
        "x425-eth-eth-pos"
      ]
    },
    {
      "question": "Can an application ignore a removed log because it saw it first?",
      "answer": "No. A removed log describes an event from a block no longer in that accepted chain position. Applications need to reconcile their derived state.",
      "sourceIds": [
        "x425-eth-eth-jsonrpc"
      ]
    }
  ],
  "claims": [
    {
      "id": "ethereum-block-reorganizations-quick-answer",
      "articleSlug": "ethereum-block-reorganizations",
      "statement": "A block reorganization occurs when a node’s chosen chain changes and recent blocks are replaced by another accepted branch. Transactions from a replaced block may be included again elsewhere or remain absent; their old receipt position is no longer enough. Check the current chain and finality status, and let applications undo events from removed blocks.",
      "sourceIds": [
        "source-df4587da99d9b637",
        "source-a5154b4118a3d15f"
      ],
      "sourceLocators": [
        {
          "sourceId": "source-df4587da99d9b637",
          "locator": "Slots; epochs; block proposals; attestations; finality"
        },
        {
          "sourceId": "source-a5154b4118a3d15f",
          "locator": "eth_getBalance; eth_getTransactionReceipt; block parameter; logs"
        }
      ],
      "scope": {
        "collection": "ethereum",
        "dataAsOf": "2026-10-02",
        "blockHeight": null
      },
      "qualification": "",
      "evidenceStatus": "documented",
      "verification": {
        "status": "verified",
        "method": "independent automated source review",
        "checkedAt": "2026-10-02T19:27:58.939Z",
        "reviewer": "Independent automated verification agent verify_bitcoin_stablecoins_100",
        "notes": [
          "Read fork-choice discussion and RPC receipt/log fields. removed flag, blockHash, logIndex and transactionHash support reconciliation. An old receipt position does not promise re-inclusion or unchanged execution; draft uses qualified finality rather than a universal confirmation count."
        ]
      }
    },
    {
      "id": "ethereum-block-reorganizations-fact-chain-choice",
      "articleSlug": "ethereum-block-reorganizations",
      "statement": "Chain choice: Consensus fork choice determines the chain head a node follows.",
      "sourceIds": [
        "source-df4587da99d9b637"
      ],
      "sourceLocators": [
        {
          "sourceId": "source-df4587da99d9b637",
          "locator": "Slots; epochs; block proposals; attestations; finality"
        }
      ],
      "scope": {
        "collection": "ethereum",
        "dataAsOf": "2026-10-02",
        "blockHeight": null
      },
      "qualification": "",
      "evidenceStatus": "documented",
      "verification": {
        "status": "verified",
        "method": "independent automated source review",
        "checkedAt": "2026-10-02T19:27:58.939Z",
        "reviewer": "Independent automated verification agent verify_bitcoin_stablecoins_100",
        "notes": [
          "Read fork-choice discussion and RPC receipt/log fields. removed flag, blockHash, logIndex and transactionHash support reconciliation. An old receipt position does not promise re-inclusion or unchanged execution; draft uses qualified finality rather than a universal confirmation count."
        ]
      }
    },
    {
      "id": "ethereum-block-reorganizations-fact-receipts",
      "articleSlug": "ethereum-block-reorganizations",
      "statement": "Receipts: A receipt identifies the block containing the observed transaction execution.",
      "sourceIds": [
        "source-a5154b4118a3d15f"
      ],
      "sourceLocators": [
        {
          "sourceId": "source-a5154b4118a3d15f",
          "locator": "eth_getBalance; eth_getTransactionReceipt; block parameter; logs"
        }
      ],
      "scope": {
        "collection": "ethereum",
        "dataAsOf": "2026-10-02",
        "blockHeight": null
      },
      "qualification": "",
      "evidenceStatus": "documented",
      "verification": {
        "status": "verified",
        "method": "independent automated source review",
        "checkedAt": "2026-10-02T19:27:58.939Z",
        "reviewer": "Independent automated verification agent verify_bitcoin_stablecoins_100",
        "notes": [
          "Read fork-choice discussion and RPC receipt/log fields. removed flag, blockHash, logIndex and transactionHash support reconciliation. An old receipt position does not promise re-inclusion or unchanged execution; draft uses qualified finality rather than a universal confirmation count."
        ]
      }
    },
    {
      "id": "ethereum-block-reorganizations-fact-logs",
      "articleSlug": "ethereum-block-reorganizations",
      "statement": "Logs: RPC log data can indicate that a log was removed by a reorganization.",
      "sourceIds": [
        "source-a5154b4118a3d15f"
      ],
      "sourceLocators": [
        {
          "sourceId": "source-a5154b4118a3d15f",
          "locator": "eth_getBalance; eth_getTransactionReceipt; block parameter; logs"
        }
      ],
      "scope": {
        "collection": "ethereum",
        "dataAsOf": "2026-10-02",
        "blockHeight": null
      },
      "qualification": "",
      "evidenceStatus": "documented",
      "verification": {
        "status": "verified",
        "method": "independent automated source review",
        "checkedAt": "2026-10-02T19:27:58.939Z",
        "reviewer": "Independent automated verification agent verify_bitcoin_stablecoins_100",
        "notes": [
          "Read fork-choice discussion and RPC receipt/log fields. removed flag, blockHash, logIndex and transactionHash support reconciliation. An old receipt position does not promise re-inclusion or unchanged execution; draft uses qualified finality rather than a universal confirmation count."
        ]
      }
    }
  ],
  "sources": [
    {
      "id": "x425-eth-eth-pos",
      "label": "Ethereum proof of stake",
      "publisher": "ethereum.org contributors",
      "url": "https://ethereum.org/en/developers/docs/consensus-mechanisms/pos/",
      "locator": "Slots; epochs; block proposals; attestations; finality",
      "note": "Consensus proposal schedule, voting and finality distinctions.",
      "version": "Documentation snapshot retrieved 2 October 2026; response hash recorded separately",
      "checkedAt": "2026-10-02T18:55:26.560Z",
      "contentSha256": "eb014204a846dc845deffe602d4156aea675ab817dc792cfb60b25bc3e9e4703",
      "recordId": "source-df4587da99d9b637"
    },
    {
      "id": "x425-eth-eth-jsonrpc",
      "label": "Ethereum JSON-RPC API",
      "publisher": "ethereum.org contributors",
      "url": "https://ethereum.org/en/developers/docs/apis/json-rpc/",
      "locator": "eth_getBalance; eth_getTransactionReceipt; block parameter; logs",
      "note": "RPC requests explicitly identify addresses and block scope; receipts and removed log fields support verification examples.",
      "version": "Documentation snapshot retrieved 2 October 2026; response hash recorded separately",
      "checkedAt": "2026-10-02T18:55:24.990Z",
      "contentSha256": "ed13997ec4f415dff80883add0730d4e64bcc8c17b95dd4f6c27aed0241a4073",
      "recordId": "source-a5154b4118a3d15f"
    }
  ],
  "related": {
    "articles": [
      "ethereum-proof-of-stake-finality",
      "smart-contract-events",
      "ethereum-transaction-receipts",
      "ethereum-network-upgrades"
    ],
    "dossiers": [],
    "wallets": []
  },
  "revisionHistory": [
    {
      "date": "2026-10-02",
      "kind": "published",
      "summary": "First publication after primary-source research and separate automated verification."
    }
  ],
  "citation": "Degrees of Satoshi editorial project. “Ethereum reorganizations: when a recent block leaves the chosen chain.” Published 2026-10-02; updated 2026-10-02. https://degreesofsatoshi.com/encyclopedia/ethereum-block-reorganizations/"
}
