Glossar
Calldata
Aktualisiert 12. Juni 2026
Calldata ist ein schreibgeschützter, nicht-persistenter Datenbereich in der Ethereum Virtual Machine (EVM), der die Eingabedaten einer Transaktion enthält, wenn ein Smart Contract aufgerufen wird.
Aufbau und Funktionsweise
Jede Transaktion, die eine Smart-Contract-Funktion aufruft, übermittelt ihre Eingabedaten als Calldata. Der Aufbau folgt einem festen Schema: Die ersten vier Bytes enthalten den sogenannten Function Selector – die ersten vier Bytes des Keccak256-Hashs der Funktionssignatur (z. B. transfer(address,uint256)). Danach folgen die nach ABI-Standard kodierten Funktionsargumente, jeweils auf 32-Byte-Slots ausgerichtet.
Konkret bedeutet das: Ruft ein Nutzer die Funktion transfer eines ERC-20-Tokens auf, enthält die Calldata die Zieladresse und den Betrag – codiert und unveränderlich an die Transaktion gebunden. Der Smart Contract kann diese Daten lesen, aber weder überschreiben noch dauerhaft speichern.
Die EVM stellt drei spezialisierte Opcodes bereit, um auf Calldata zuzugreifen: CALLDATASIZE liefert die Gesamtgröße der Eingabedaten in Bytes, CALLDATALOAD liest 32 Bytes an einem bestimmten Offset direkt auf den Stack, und CALLDATACOPY überträgt einen definierten Bereich in den flüchtigen Arbeitsspeicher (Memory).
Gas-Effizienz und Relevanz für Layer-2-Protokolle
In Solidity gibt es drei Möglichkeiten, Funktionsparameter entgegenzunehmen: storage, memory und calldata. Calldata ist dabei die kostengünstigste Option, weil keine Kopie der Daten angelegt wird – der Contract liest direkt aus dem Transaktionsdatenfeld. Für read-only-Parameter in externen Funktionen ist calldata daher die empfohlene Wahl.
Diese Eigenschaft ist auch für die Skalierung von Ethereum zentral: Rollups – also Layer-2-Protokolle wie Optimism oder Arbitrum – bündeln viele Transaktionen, komprimieren sie und veröffentlichen die komprimierten Rohdaten als Calldata auf der Ethereum-Hauptkette (Layer 1). Damit erben die Transaktionen die Datenverfügbarkeitsgarantien von Ethereum, ohne dass jede einzelne vollständig auf Layer 1 ausgeführt werden muss. Die Kosten für diese Calldata-Veröffentlichung waren lange Zeit ein dominanter Kostenfaktor für Rollup-Nutzer. EIP-4844 führte mit sogenannten „Blobs" einen günstigeren, temporären Datenspeicher ein, der Calldata für diesen Zweck teilweise ersetzt und die Transaktionsgebühren auf Layer 2 erheblich senkt.
Calldata ist damit kein reines Entwicklerdetail, sondern ein Grundbaustein sowohl der Smart-Contract-Interaktion als auch der Ethereum-Skalierungsarchitektur.