In ethervm.io, RETURNDATASIZE is described as follows.

RETURNDATASIZE : Byzantium hardfork, EIP-211: the size of the returned data from the last external call, in bytes

The smart contract has 3 frequently used storage(stack, memory storage)

I was wondering where the return data from an external call stays before it is stored in memory or storage. Does anyone have any good answers or resources?

2 Answers 2


When a smart contract makes an external call to another smart contract or external function, the return data from that call is not directly stored within the calling smart contract's storage. Instead, the return data is typically used within the execution context of the calling contract.

After the external function is executed, any return data (such as return values or response data) is included in the transaction's output data. This return data is not stored within the calling contract's storage; rather, it's part of the transaction's execution result.

  • Is it similar to the event log of a transaction?
    – imelon2
    Sep 1, 2023 at 4:36
  • 1
    yep, exactly. you can have a look at the log from your ide console to compare the value. Sep 1, 2023 at 4:46

It is not memory, stack nor storage. It is its own place inside the EVM implementation. It can only be accessed through RETURNDATASIZE and RETURNDATACOPY.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.