EthStorage: a modular L2 for programmable key-value storage on DA
GitHub RepoImpressions603
View on GitHub
@githubprojectsPost Author

EthStorage: A Modular L2 for Programmable Key-Value Storage on DA

If you've been watching the Ethereum L2 space, you've probably noticed most projects focus on scaling transactions or computation. But what about storage? Storing data on Ethereum is expensive, and IPFS or Arweave aren't natively programmable from within Ethereum smart contracts.

EthStorage changes that. It's a modular L2 that gives you a programmable key-value store backed by Ethereum's data availability (DA) layer. Think of it like a decentralized database that your smart contracts can read and write to, without the gas costs of Ethereum mainnet storage.

What It Does

EthStorage is essentially a storage rollup. It takes key-value pairs, submits their data commitment to Ethereum (using something like EIP-4844 blobs or calldata), and then stores the actual data offchain in a network of storage nodes. Smart contracts on L1 can interact with this storage through a bridge, allowing them to store and retrieve arbitrary data efficiently.

The repository you're looking at, es-node, is the core node software that runs the EthStorage network. It handles data storage, retrieval, and synchronization with the L1 contract.

Why It's Cool

A few things stand out:

  • Programmable storage from L1: Your Solidity contract can store gigabytes of data and access it with simple key-value calls, all while keeping the security of Ethereum's consensus.
  • Modular design: It doesn't try to do everything. It's a focused layer for storage, meaning it can be combined with other L2s (for transactions) or used standalone.
  • Efficient data availability: Instead of storing everything on L1, it posts only commitments. Storage nodes keep the actual data, and anyone can verify it.
  • Developer friendly: The API is straightforward. You put(key, value) and get(key). That's it.

Real use cases include decentralized content hosting, NFT metadata at scale, game state storage, or any application that needs a large, cheap, and verifiable key-value store.

How to Try It

You can spin up your own es-node locally or on testnet. The GitHub repo has everything you need. Here's the quick start:

# Clone the repo
git clone https://github.com/ethstorage/es-node.git
cd es-node

# Build the binary
make es-node

# Run with default config
./build/bin/es-node --datadir ./data --l1.endpoint <your-l1-rpc-url>

Or if you prefer Docker:

docker pull ethstorage/es-node
docker run -v ./data:/data ethstorage/es-node --datadir /data

For a full testnet deployment, check the README. They also have a testnet faucet and a simple demo dApp to try out storage operations in a browser.

Final Thoughts

EthStorage is one of those projects that solves a real pain point without overcomplicating things. If you've ever tried to store a few megabytes of data on Ethereum and cried at the gas costs, this is worth a look. It's not trying to replace rollups for computation, it's filling a specific gap that has been annoying devs for years.

The code is clean, the documentation is decent, and the architecture makes sense. If you're building something that needs cheap, verifiable storage, give es-node a try.


Follow @githubprojects for more developer tools and open source projects.

Back to Projects
Last updated: June 19, 2026 at 06:47 AM