{
  "$schema": "https://degreesofsatoshi.com/encyclopedia/schemas/article-v1.json",
  "schemaVersion": "1.0.0",
  "id": "ethereum-reverted-transactions",
  "canonical": "https://degreesofsatoshi.com/encyclopedia/ethereum-reverted-transactions/",
  "collection": "ethereum",
  "title": "Reverted Ethereum transactions: failed execution and paid gas",
  "description": "Understand which effects a reverted Ethereum transaction rolls back, why gas can still be charged and how a caught internal failure differs from top-level failure.",
  "aliases": [],
  "dates": {
    "published": "2026-10-02",
    "modified": "2026-10-02",
    "verified": "2026-10-02T18:12:41.505Z",
    "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 reverted Ethereum transaction rolls back its execution’s state changes, but the included attempt still consumes gas and the sender’s transaction nonce. REVERT can preserve unused gas; it does not refund work already performed. A failed internal call can also be caught by a contract while the enclosing transaction succeeds.",
    "claimId": "ethereum-reverted-transactions-quick-answer",
    "sourceIds": [
      "eip140",
      "eth-transactions",
      "eth-gas"
    ]
  },
  "keyFacts": [
    {
      "label": "Rollback",
      "value": "REVERT discards the reverted execution’s state changes and logs.",
      "sourceIds": [
        "eip140"
      ],
      "id": "rollback",
      "claimId": "ethereum-reverted-transactions-fact-rollback"
    },
    {
      "label": "Remaining gas",
      "value": "REVERT does not inherently consume every remaining gas unit.",
      "sourceIds": [
        "eip140"
      ],
      "id": "remaining-gas",
      "claimId": "ethereum-reverted-transactions-fact-remaining-gas"
    },
    {
      "label": "Receipt",
      "value": "A zero receipt status identifies top-level failure.",
      "sourceIds": [
        "eip658"
      ],
      "id": "receipt",
      "claimId": "ethereum-reverted-transactions-fact-receipt"
    }
  ],
  "prerequisites": [
    "ethereum-transaction-receipts"
  ],
  "sections": [
    {
      "id": "work",
      "heading": "Why failure still has a cost",
      "sourceIds": [
        "eip140",
        "eth-gas"
      ],
      "paragraphs": [
        "Nodes performed computation before discovering the failure. The transaction pays for consumed gas even though the attempted contract-state changes are discarded. An out-of-gas failure and an explicit REVERT do not necessarily consume the same amount.",
        "Suppose an illustrative failed attempt consumes 40,000 gas at 20 gwei per gas. Its execution-gas cost is 800,000 gwei, or 0.0008 ETH. This is not a transfer of the requested token amount to the recipient."
      ]
    },
    {
      "id": "nested",
      "heading": "A subcall can fail without failing everything",
      "sourceIds": [
        "eip140",
        "solidity-delegatecall"
      ],
      "paragraphs": [
        "A contract may make another call and inspect whether it succeeded. If it handles failure and continues, the receipt can report success for the overall transaction while the failed subcall’s effects are absent.",
        "Read traces and application-specific results when a success badge seems inconsistent with the expected outcome. A receipt does not describe every nested execution decision."
      ]
    },
    {
      "id": "retry",
      "heading": "A retry is a new decision",
      "sourceIds": [
        "eth-transactions",
        "eth-jsonrpc",
        "eth-accounts"
      ],
      "paragraphs": [
        "An included failed transaction has already used its nonce. A retry normally uses the next available transaction nonce and must address the original failure condition.",
        "Increasing a fee cannot fix an expired deadline, a missing allowance or a contract condition that rejects the operation. Identify the error and current state before constructing another attempt."
      ]
    }
  ],
  "faq": [
    {
      "question": "Will raising the gas limit always make a failed transaction work?",
      "answer": "No. A higher limit may help an actual gas shortage, but it cannot make a contract’s required authorization, balance, deadline or other logical condition become true.",
      "sourceIds": [
        "eip140",
        "eth-gas"
      ]
    }
  ],
  "claims": [
    {
      "id": "ethereum-reverted-transactions-quick-answer",
      "articleSlug": "ethereum-reverted-transactions",
      "statement": "A reverted Ethereum transaction rolls back its execution’s state changes, but the included attempt still consumes gas and the sender’s transaction nonce. REVERT can preserve unused gas; it does not refund work already performed. A failed internal call can also be caught by a contract while the enclosing transaction succeeds.",
      "sourceIds": [
        "source-ccab9c4be966af8f",
        "source-c4666896686db30e",
        "source-5cadd0da692ffaa8"
      ],
      "sourceLocators": [
        {
          "sourceId": "source-ccab9c4be966af8f",
          "locator": "Specification"
        },
        {
          "sourceId": "source-c4666896686db30e",
          "locator": "The transaction lifecycle; Typed transaction envelope"
        },
        {
          "sourceId": "source-5cadd0da692ffaa8",
          "locator": "What is gas?; Base fee; Priority fee"
        }
      ],
      "scope": {
        "collection": "ethereum",
        "dataAsOf": "2026-10-02",
        "blockHeight": null
      },
      "qualification": "",
      "evidenceStatus": "documented",
      "verification": {
        "status": "verified",
        "method": "independent automated source review",
        "checkedAt": "2026-10-02T18:12:41.505Z",
        "reviewer": "Codex independent automated reviewer /root/verify_ethereum_100",
        "notes": [
          "EIP-140 confirms reverted state/log rollback, return data, unused-gas behavior and low-level failure result. Solidity Message Calls explains handled subcall failure; EIP-658 distinguishes top-level status.",
          "Independently recomputed 40000 × 20 × 10^9 = 800000000000000 wei = 0.0008 ETH. Added account nonce source to retry scope; gas and nonce remain outside the reverted contract execution effects."
        ]
      }
    },
    {
      "id": "ethereum-reverted-transactions-fact-rollback",
      "articleSlug": "ethereum-reverted-transactions",
      "statement": "Rollback: REVERT discards the reverted execution’s state changes and logs.",
      "sourceIds": [
        "source-ccab9c4be966af8f"
      ],
      "sourceLocators": [
        {
          "sourceId": "source-ccab9c4be966af8f",
          "locator": "Specification"
        }
      ],
      "scope": {
        "collection": "ethereum",
        "dataAsOf": "2026-10-02",
        "blockHeight": null
      },
      "qualification": "",
      "evidenceStatus": "documented",
      "verification": {
        "status": "verified",
        "method": "independent automated source review",
        "checkedAt": "2026-10-02T18:12:41.505Z",
        "reviewer": "Codex independent automated reviewer /root/verify_ethereum_100",
        "notes": [
          "EIP-140 confirms reverted state/log rollback, return data, unused-gas behavior and low-level failure result. Solidity Message Calls explains handled subcall failure; EIP-658 distinguishes top-level status.",
          "Independently recomputed 40000 × 20 × 10^9 = 800000000000000 wei = 0.0008 ETH. Added account nonce source to retry scope; gas and nonce remain outside the reverted contract execution effects."
        ]
      }
    },
    {
      "id": "ethereum-reverted-transactions-fact-remaining-gas",
      "articleSlug": "ethereum-reverted-transactions",
      "statement": "Remaining gas: REVERT does not inherently consume every remaining gas unit.",
      "sourceIds": [
        "source-ccab9c4be966af8f"
      ],
      "sourceLocators": [
        {
          "sourceId": "source-ccab9c4be966af8f",
          "locator": "Specification"
        }
      ],
      "scope": {
        "collection": "ethereum",
        "dataAsOf": "2026-10-02",
        "blockHeight": null
      },
      "qualification": "",
      "evidenceStatus": "documented",
      "verification": {
        "status": "verified",
        "method": "independent automated source review",
        "checkedAt": "2026-10-02T18:12:41.505Z",
        "reviewer": "Codex independent automated reviewer /root/verify_ethereum_100",
        "notes": [
          "EIP-140 confirms reverted state/log rollback, return data, unused-gas behavior and low-level failure result. Solidity Message Calls explains handled subcall failure; EIP-658 distinguishes top-level status.",
          "Independently recomputed 40000 × 20 × 10^9 = 800000000000000 wei = 0.0008 ETH. Added account nonce source to retry scope; gas and nonce remain outside the reverted contract execution effects."
        ]
      }
    },
    {
      "id": "ethereum-reverted-transactions-fact-receipt",
      "articleSlug": "ethereum-reverted-transactions",
      "statement": "Receipt: A zero receipt status identifies top-level failure.",
      "sourceIds": [
        "source-fc3b7cce0edd664b"
      ],
      "sourceLocators": [
        {
          "sourceId": "source-fc3b7cce0edd664b",
          "locator": "Specification"
        }
      ],
      "scope": {
        "collection": "ethereum",
        "dataAsOf": "2026-10-02",
        "blockHeight": null
      },
      "qualification": "",
      "evidenceStatus": "documented",
      "verification": {
        "status": "verified",
        "method": "independent automated source review",
        "checkedAt": "2026-10-02T18:12:41.505Z",
        "reviewer": "Codex independent automated reviewer /root/verify_ethereum_100",
        "notes": [
          "EIP-140 confirms reverted state/log rollback, return data, unused-gas behavior and low-level failure result. Solidity Message Calls explains handled subcall failure; EIP-658 distinguishes top-level status.",
          "Independently recomputed 40000 × 20 × 10^9 = 800000000000000 wei = 0.0008 ETH. Added account nonce source to retry scope; gas and nonce remain outside the reverted contract execution effects."
        ]
      }
    }
  ],
  "sources": [
    {
      "id": "eip140",
      "label": "REVERT instruction",
      "publisher": "Ethereum Improvement Proposals",
      "url": "https://eips.ethereum.org/EIPS/eip-140",
      "locator": "Specification",
      "note": "State rollback and remaining gas behavior for a REVERT instruction.",
      "version": "EIP/ERC-140; retrieved document hash recorded",
      "checkedAt": "2026-10-02T17:03:42.150Z",
      "contentSha256": "e6f49a3606194ec36158182489ede14ccc81b5d44b2450ea15f40d568e912345",
      "recordId": "source-ccab9c4be966af8f"
    },
    {
      "id": "eth-transactions",
      "label": "Ethereum transactions",
      "publisher": "ethereum.org contributors",
      "url": "https://ethereum.org/en/developers/docs/transactions/",
      "locator": "The transaction lifecycle; Typed transaction envelope",
      "note": "Signed transaction fields, nonces, propagation, inclusion and transaction types.",
      "version": null,
      "checkedAt": "2026-10-02T17:03:41.854Z",
      "contentSha256": "2eb9d9cb65efec673d9bb3327961aa14a0e354b612e149c5a6b733032977fee7",
      "recordId": "source-c4666896686db30e"
    },
    {
      "id": "eth-gas",
      "label": "Gas and fees",
      "publisher": "ethereum.org contributors",
      "url": "https://ethereum.org/en/developers/docs/gas/",
      "locator": "What is gas?; Base fee; Priority fee",
      "note": "Execution resource units, fee components and gas expenditure.",
      "version": null,
      "checkedAt": "2026-10-02T17:03:41.688Z",
      "contentSha256": "566e61b7dce594a477ef28bab1f5a23279feb4f782e2838623fc7491c9daec66",
      "recordId": "source-5cadd0da692ffaa8"
    },
    {
      "id": "eip658",
      "label": "Embedding transaction status code in receipts",
      "publisher": "Ethereum Improvement Proposals",
      "url": "https://eips.ethereum.org/EIPS/eip-658",
      "locator": "Specification",
      "note": "Receipts report top-level execution success or failure.",
      "version": "EIP/ERC-658; retrieved document hash recorded",
      "checkedAt": "2026-10-02T17:03:42.150Z",
      "contentSha256": "8bd00dd00fb9ce4944ba96e0c986486d90df7bd78c88ff9f9b6a7c7a56287f58",
      "recordId": "source-fc3b7cce0edd664b"
    },
    {
      "id": "solidity-delegatecall",
      "label": "Solidity: Delegatecall and Libraries",
      "publisher": "Solidity contributors",
      "url": "https://docs.soliditylang.org/en/v0.8.30/introduction-to-smart-contracts.html",
      "locator": "Delegatecall and Libraries; Storage, Memory and the Stack; Logs; Message Calls",
      "note": "Execution uses another contract’s code in the caller’s context and storage.",
      "version": "Solidity 0.8.30 documentation",
      "checkedAt": "2026-10-02T17:03:42.822Z",
      "contentSha256": "9fde27b9eb16bcd47d5e9fb73a80d2d3b288ae7b74ac56b29956267028fe7a55",
      "recordId": "source-7399ee01181109d4"
    },
    {
      "id": "eth-jsonrpc",
      "label": "Ethereum JSON-RPC",
      "publisher": "ethereum.org contributors",
      "url": "https://ethereum.org/en/developers/docs/apis/json-rpc/",
      "locator": "eth_getTransactionByHash; eth_getTransactionReceipt; eth_call; eth_getLogs; eth_getCode; eth_estimateGas; eth_getBalance; eth_getStorageAt; eth_getTransactionCount; default block parameter",
      "note": "RPC response fields, transaction receipts, call simulation and log filtering.",
      "version": null,
      "checkedAt": "2026-10-02T17:03:42.060Z",
      "contentSha256": "ed13997ec4f415dff80883add0730d4e64bcc8c17b95dd4f6c27aed0241a4073",
      "recordId": "source-a5154b4118a3d15f"
    },
    {
      "id": "eth-accounts",
      "label": "Ethereum accounts",
      "publisher": "ethereum.org contributors",
      "url": "https://ethereum.org/en/developers/docs/accounts/",
      "locator": "Account types; An account examined; Account creation",
      "note": "Key-controlled and code-controlled accounts, balances, nonces and storage.",
      "version": null,
      "checkedAt": "2026-10-02T17:03:41.958Z",
      "contentSha256": "262a5694899ae6f774aacae66b13d6929b658ecc9e23c276af9e23ee9455f034",
      "recordId": "source-2fb64d6fc5cedb00"
    }
  ],
  "related": {
    "articles": [
      "ethereum-transaction-simulation",
      "ethereum-token-approvals",
      "ethereum-transaction-receipts"
    ],
    "dossiers": [],
    "wallets": []
  },
  "revisionHistory": [
    {
      "date": "2026-10-02",
      "kind": "published",
      "summary": "First publication after primary-source research and independent automated verification."
    }
  ],
  "citation": "Degrees of Satoshi editorial project. “Reverted Ethereum transactions: failed execution and paid gas.” Published 2026-10-02; updated 2026-10-02. https://degreesofsatoshi.com/encyclopedia/ethereum-reverted-transactions/"
}
