Zeus - Proof of Energy
Verifiable energy data. On-chain. Auditable
Created on 21st February 2026
•
Zeus - Proof of Energy
Verifiable energy data. On-chain. Auditable
The problem Zeus - Proof of Energy solves
Energy generation data today is self-reported and siloed. When a solar farm claims it produced 500 MWh for a tax credit, or a utility reports renewable generation for REC issuance, there's no
independent way to verify those numbers. Auditors rely on spreadsheets. Regulators rely on trust. Fraud happens.
Zeus fixes this by creating a cryptographic proof layer for energy data:
- Operators register generation assets (solar, wind, hydro, smart meters) as on-chain NFTs with location, capacity, and metadata
- Readings from those assets are batched, Merkle-hashed, pinned to IPFS, and attested on-chain — creating an immutable, timestamped record
- Anyone can independently verify a specific reading against the on-chain Merkle root — no trust required
- Compliance reports are generated from verified data: capacity factor, uptime, generation totals, REC eligibility — all backed by on-chain proof
- Data marketplace lets buyers purchase verified energy data with escrowed payments that auto-settle when quality thresholds are met
- Financing triggers release payouts automatically when assets hit performance targets (e.g. "pay out 0.5 ADI if this solar array generates >40 kWh for 3 consecutive batches")
It works for individual operators uploading manually, or at enterprise scale — the platform includes an adapter for Esyasoft's MDM platform, which manages 25M+ meters globally.
Challenges we ran into
Challenges I ran into:
ADI Chain is not ZKsync Era. We initially configured the project with
@matterlabs/hardhat-zksync
andzksolc
because ADI Chain is built on the ZKsync stack. Every deployment attempt failedwith a cryptic
execution reverted
during gas estimation. After hours of debugging (trying explicit gas limits, different deploy scripts, directzksync-ethers
factories), we finally dug into theADI docs and discovered that ADI uses the newer ZKsync OS/Atlas architecture, which is EVM gas-equivalent — it
accepts standard
solc
bytecode, not zksolc-compiled bytecode. Created a separatehardhat.config.evm.ts
without the ZKsync plugin, recompiled with standard solc, and all 5 contracts deployed onthe first try.
Nonce race conditions. When the simulator sends readings for 4 devices in quick succession, the backend fires 4 on-chain transactions nearly simultaneously. The second and third transactions
would fail with "transaction nonce is not consistent" because the previous tx hadn't confirmed yet. Fixed by adding a transaction mutex that serializes all on-chain submissions through a promise
queue — each tx waits for the previous one to confirm before sending.
Node v24 + ZKsync tooling. Early in development,
@matterlabs/hardhat-zksync
would crash trying to download the zksolc compiler binary due to afetch maxRedirections
error in Node v24.Worked around it by manually downloading the zksolc and zkvm-solc binaries and pointing to them via
compilerPath
in the Hardhat config. This ended up being moot once we switched to standard solcfor ADI deployment, but it cost a full day of debugging.
Tracks Applied (2)
Futurllama
Open Project Submission
ADI Foundation
Cheer Project
Cheering for a project means supporting a project you like with as little as 0.0025 ETH. Right now, you can Cheer using ETH on Arbitrum, Optimism and Base.
