{
  "$schema": "https://degreesofsatoshi.com/encyclopedia/schemas/article-v1.json",
  "schemaVersion": "1.0.0",
  "id": "internal-transactions",
  "canonical": "https://degreesofsatoshi.com/encyclopedia/internal-transactions/",
  "collection": "ethereum",
  "title": "Internal transactions: an explorer label for execution traces",
  "description": "Understand an explorer’s internal-transactions tab as a view of nested execution, rather than a list of separately signed Ethereum transactions.",
  "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": "“Internal transactions” is an explorer label commonly used for calls or value movements within an Ethereum transaction’s execution. These are not separately signed top-level transactions. A trace can reveal their call tree, errors and ETH values, but explorers can differ in which trace operations they display.",
    "claimId": "internal-transactions-quick-answer",
    "sourceIds": [
      "geth-tracing",
      "eth-transactions"
    ]
  },
  "keyFacts": [
    {
      "label": "Parent",
      "value": "Nested calls occur within an enclosing transaction execution.",
      "sourceIds": [
        "geth-tracing"
      ],
      "id": "parent",
      "claimId": "internal-transactions-fact-parent"
    },
    {
      "label": "Types",
      "value": "A trace distinguishes CALL, DELEGATECALL, contract creation and other operations.",
      "sourceIds": [
        "geth-tracing"
      ],
      "id": "types",
      "claimId": "internal-transactions-fact-types"
    },
    {
      "label": "Errors",
      "value": "A nested frame can fail even when an enclosing caller handles that failure.",
      "sourceIds": [
        "geth-tracing",
        "eip140"
      ],
      "id": "errors",
      "claimId": "internal-transactions-fact-errors"
    }
  ],
  "prerequisites": [
    "ethereum-transaction-receipts"
  ],
  "sections": [
    {
      "id": "tree",
      "heading": "Read execution as a tree",
      "sourceIds": [
        "geth-tracing"
      ],
      "paragraphs": [
        "A user calls a router, which calls a pool, which calls token contracts. The enclosing transaction has one top-level hash, while the trace can show several nested frames with their own inputs and return data.",
        "The nested frame’s from field describes an execution relationship. It does not mean that contract independently created and signed a new network transaction."
      ]
    },
    {
      "id": "value",
      "heading": "ETH movements and token events are different views",
      "sourceIds": [
        "geth-tracing",
        "erc20"
      ],
      "paragraphs": [
        "An ETH value field in a call trace is not an ERC-20 balance transfer. Token transfers usually involve changes to a token contract’s storage and associated logs.",
        "Do not add every displayed trace value blindly: delegated execution, failed calls and nested accounting require context. Use successful state changes to understand the net result."
      ]
    },
    {
      "id": "availability",
      "heading": "Trace data depends on the service",
      "sourceIds": [
        "geth-tracing"
      ],
      "paragraphs": [
        "Geth provides tracers that reconstruct execution and return different details. An explorer may index only selected operations or use different labels.",
        "An empty internal-transactions tab does not demonstrate that no contract logic ran. Compare the top-level receipt, relevant logs and a suitably configured trace when the distinction matters."
      ]
    }
  ],
  "faq": [
    {
      "question": "Does an internal transaction have its own sender signature and fee?",
      "answer": "A nested EVM call does not have a separate top-level transaction signature or independent network fee payment. Its work contributes to the enclosing execution’s gas use.",
      "sourceIds": [
        "geth-tracing",
        "eth-gas"
      ]
    }
  ],
  "claims": [
    {
      "id": "internal-transactions-quick-answer",
      "articleSlug": "internal-transactions",
      "statement": "“Internal transactions” is an explorer label commonly used for calls or value movements within an Ethereum transaction’s execution. These are not separately signed top-level transactions. A trace can reveal their call tree, errors and ETH values, but explorers can differ in which trace operations they display.",
      "sourceIds": [
        "source-269c0acf9654acdf",
        "source-c4666896686db30e"
      ],
      "sourceLocators": [
        {
          "sourceId": "source-269c0acf9654acdf",
          "locator": "callTracer; prestateTracer"
        },
        {
          "sourceId": "source-c4666896686db30e",
          "locator": "The transaction lifecycle; Typed transaction envelope"
        }
      ],
      "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": [
          "Read Geth callTracer frame types, depth-zero root, nested calls, errors and target semantics. DELEGATECALL points to code and is not automatically a payment.",
          "Trace configuration, prestate diff behavior and ERC-20 accounting support distinguishing nested execution, token logs and separately signed transactions. Explorer labels are explicitly qualified."
        ]
      }
    },
    {
      "id": "internal-transactions-fact-parent",
      "articleSlug": "internal-transactions",
      "statement": "Parent: Nested calls occur within an enclosing transaction execution.",
      "sourceIds": [
        "source-269c0acf9654acdf"
      ],
      "sourceLocators": [
        {
          "sourceId": "source-269c0acf9654acdf",
          "locator": "callTracer; prestateTracer"
        }
      ],
      "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": [
          "Read Geth callTracer frame types, depth-zero root, nested calls, errors and target semantics. DELEGATECALL points to code and is not automatically a payment.",
          "Trace configuration, prestate diff behavior and ERC-20 accounting support distinguishing nested execution, token logs and separately signed transactions. Explorer labels are explicitly qualified."
        ]
      }
    },
    {
      "id": "internal-transactions-fact-types",
      "articleSlug": "internal-transactions",
      "statement": "Types: A trace distinguishes CALL, DELEGATECALL, contract creation and other operations.",
      "sourceIds": [
        "source-269c0acf9654acdf"
      ],
      "sourceLocators": [
        {
          "sourceId": "source-269c0acf9654acdf",
          "locator": "callTracer; prestateTracer"
        }
      ],
      "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": [
          "Read Geth callTracer frame types, depth-zero root, nested calls, errors and target semantics. DELEGATECALL points to code and is not automatically a payment.",
          "Trace configuration, prestate diff behavior and ERC-20 accounting support distinguishing nested execution, token logs and separately signed transactions. Explorer labels are explicitly qualified."
        ]
      }
    },
    {
      "id": "internal-transactions-fact-errors",
      "articleSlug": "internal-transactions",
      "statement": "Errors: A nested frame can fail even when an enclosing caller handles that failure.",
      "sourceIds": [
        "source-269c0acf9654acdf",
        "source-ccab9c4be966af8f"
      ],
      "sourceLocators": [
        {
          "sourceId": "source-269c0acf9654acdf",
          "locator": "callTracer; prestateTracer"
        },
        {
          "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": [
          "Read Geth callTracer frame types, depth-zero root, nested calls, errors and target semantics. DELEGATECALL points to code and is not automatically a payment.",
          "Trace configuration, prestate diff behavior and ERC-20 accounting support distinguishing nested execution, token logs and separately signed transactions. Explorer labels are explicitly qualified."
        ]
      }
    }
  ],
  "sources": [
    {
      "id": "geth-tracing",
      "label": "Geth built-in tracers",
      "publisher": "Go Ethereum",
      "url": "https://geth.ethereum.org/docs/developers/evm-tracing/built-in-tracers",
      "locator": "callTracer; prestateTracer",
      "note": "Nested EVM call traces and the distinction between tracing and top-level transactions.",
      "version": null,
      "checkedAt": "2026-10-02T17:25:58.908Z",
      "contentSha256": "0528d605bfb3fb8f0e38525282805a88734c04f9f3763e7a05dff9b3934b11a3",
      "recordId": "source-269c0acf9654acdf"
    },
    {
      "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": "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": "erc20",
      "label": "ERC-20 Token Standard",
      "publisher": "Ethereum Improvement Proposals",
      "url": "https://eips.ethereum.org/EIPS/eip-20",
      "locator": "totalSupply; balanceOf; transfer; decimals; approve; allowance; transferFrom; Transfer",
      "note": "Token supply, displayed units and balance accounting.",
      "version": "ERC-20",
      "checkedAt": "2026-10-02T17:03:45.826Z",
      "contentSha256": "98bda5e4707841a68684879878c4c165fdaa47d89ed69ebf232ab9be06ff050e",
      "recordId": "source-ac4ad503a55127bb"
    },
    {
      "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"
    }
  ],
  "related": {
    "articles": [
      "delegatecall-explained",
      "smart-contract-events",
      "ethereum-transaction-hashes"
    ],
    "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. “Internal transactions: an explorer label for execution traces.” Published 2026-10-02; updated 2026-10-02. https://degreesofsatoshi.com/encyclopedia/internal-transactions/"
}
