Skip to main content

Command Palette

Search for a command to run...

EIP-1153 Explained: Transient Storage Opcodes in Ethereum

Temporary storage inside Ethereum transactions

Updated
5 min read
EIP-1153 Explained: Transient Storage Opcodes in Ethereum

Ethereum is constantly evolving to make smart contracts faster, cheaper, and easier to build. One of the most exciting improvements in recent years is EIP-1153, which introduces something called transient storage.

In this article, we’ll break down EIP-1153 in simple terms:

  • What problem does it solve

  • How transient storage works

  • Why it matters for developers

  • Real-world use cases in DeFi

Let’s dive in.


What is EIP-1153?

EIP-1153 is an Ethereum Improvement Proposal that introduces two new EVM opcodes:

  • TLOAD (0x5c)

  • TSTORE (0x5d)

These opcodes allow smart contracts to store and retrieve temporary data during a transaction.

The key idea is:

Transient storage behaves like normal storage, but it is automatically erased after the transaction ends.

So instead of writing data permanently to the blockchain, contracts can store values temporarily for just one transaction.


Why Do We Need Transient Storage?

Transactions often need temporary data that lasts longer than one function call, but does not need to be saved permanently.

Example:

  • Reentrancy locks

  • Flash loan bookkeeping

  • Temporary approvals

  • Proxy metadata

Today, developers typically use persistent storage for these temporary needs.

That’s where the problem begins.


The Core Problem with Storage Today

Ethereum contracts currently use:

  • SSTORE → write to storage

  • SLOAD → read from storage

But storage comes with major downsides:

1. Storage is Expensive

Writing to permanent storage costs a lot of gas.

Even though Ethereum offers gas refunds, EIP-3529 capped refunds to only 20%, making temporary storage patterns even less efficient.

So developers pay high gas costs even when the data is only needed for a short period.


2. Passing Data Through CALL Frames is Unsafe

Ethereum transactions can involve many nested calls:

  • Contract A calls Contract B

  • Contract B calls Contract C

  • Contract A may even be re-entered again

If an untrusted contract sits in the middle, passing information through call inputs/outputs becomes risky.


Developers use costly and awkward fixes

Because there’s no dedicated temporary storage, developers end up using expensive and awkward patterns for simple logic.


What is Transient Storage?

Transient storage is a new storage area that:

  • Works like storage inside a transaction

  • Is shared across all calls within the same contract

  • Disappears completely after the transaction finishes

Think of it as:

Storage with the lifetime of a transaction.


The New Opcodes: TLOAD and TSTORE

EIP-1153 introduces:

TSTORE

Stores a 32-byte value temporarily:

TSTORE(key, value)

TLOAD

Loads a value back:

value = TLOAD(key)

Key rules:

  • Data is not persisted on-chain

  • Data is cleared automatically at the transaction end

  • Only the owning contract can access its transient storage


Gas Cost Benefits

Transient storage is much cheaper:

Operation Gas Cost
TLOAD ~100 gas
TSTORE ~100 gas

This is comparable to warm storage operations, but without the overhead of:

  • disk writes

  • refund accounting

  • permanent state growth


Revert Behavior (Important Detail)

Transient storage behaves like normal storage when it comes to reverts:

  • If a call frame reverts, all transient writes inside it are undone.

So developers get predictable behavior.

Also:

  • TSTORE is forbidden inside STATICCALL

  • TLOAD is allowed


Real-World Use Cases

EIP-1153 unlocks many powerful patterns.


1. Cheap Reentrancy Locks

Reentrancy guards are common security tools, but expensive with SSTORE.

Transient storage makes them cheaper and automatically clears them.


2. Flash Loan Accounting

Flash loans require tracking balances only within one transaction.

Transient storage is perfect for this kind of short-lived bookkeeping.


3. Single-Transaction ERC-20 Approvals

Instead of approving a spender forever, contracts can implement:

  • Temporary approvals are valid for only one transaction

This improves safety and reduces the attack surface.


4. Proxy Metadata Passing

Proxies can store temporary call metadata without bloating calldata or permanent storage.


Security Considerations

Transient storage is powerful, but developers must understand its lifetime:

  • It lasts across calls within the same transaction

  • It is cleared only at transaction end

Therefore, if a contract sets a lock but fails to clear it, it may remain locked during subsequent calls within the same transaction.

Best practice:

  • Use memory for local variables

  • Use transient storage only for cross-call temporary state


Why Not Just Use Memory Instead?

Memory is cheaper, but it resets after every call.

Transient storage survives across multiple calls in the same transaction, which is essential for:

  • mappings

  • approvals

  • multi-call DeFi patterns

So the two serve different purposes.


Conclusion

EIP-1153 is a major improvement for Ethereum smart contracts.

It introduces transaction-scoped storage that is:

  • cheaper

  • temporary

  • safer for inter-call communication

  • useful for DeFi patterns

With transient storage, developers can build smarter, cleaner, and more gas-efficient applications without bloating Ethereum’s permanent state.


Final Thoughts

EIP-1153 is one of those upgrades that might seem small (just two opcodes), but it unlocks huge improvements in smart contract design.

As Ethereum scales, features like this will help make contracts more efficient and easier to secure.