Using Unstealth we have identified the on-chain production elements of the Heidelberg Materials carbon capture and storage use case. This report summarises what the on-chain data shows and details the transactions and revenue it has generated for the Hedera network.
01First, a little about the project
Heidelberg Materials is one of the world's largest cement producers. It uses carbon capture and storage technology to produce what it claims is the "world's first carbon captured near-zero cement". It calls this cement evoZero.
Heidelberg uses Hedera to record the carbon capture and storage data on-chain. This post from 2024 does a good job of explaining the use case in more detail.
We used Unstealth to research this use case. If you want early access to the tools we used, sign up for the beta.
Figure 1 · Carbon Bank Contract 0.0.9721469
CO₂ in, CO₂ out: the bank's running ledger
- Deposited (cumulative)
- Withdrawn against sales (cumulative)
Each step up is a certified batch landing in the contract. The gap between the lines is the CO₂ still held.
Show the data
02How does the use case work on-chain?
Heidelberg Materials runs a "carbon bank" on Hedera for the CO₂ its Brevik cement plant captures.
Each time a batch of captured CO₂ has been shipped and stored, Heidelberg's production account writes a public record of it to Hedera. The record includes which plant it came from, the DNV certificate number, and each step of the CO₂'s journey from capture to ship to terminal to well.
Figure 2
From the kiln to the seabed, and onto the ledger
Top: what happens to the CO₂. Below the line: what lands on Hedera. Boxes with an id open on HashScan.
The batch is then split in two. About 90% is deposited into a smart contract that acts as the bank's ledger, keeping separate balances for fossil and biogenic CO₂. The other 10% is held back as a reserve, recorded with an NFT that stays in the account and isn't sold.
A second NFT is created and immediately destroyed for each deposit, as a one-time stamp that the batch was counted. When Heidelberg sells evoZero cement, it draws the matching amount of CO₂ out of the bank against a customer invoice, identified only by a code so no customer names appear.
Because every deposit and withdrawal is on Hedera, anyone can check that the stored CO₂ adds up, and that the same tonne of captured carbon is never claimed twice.
The eight production entities
In production this use case uses eight entities. There's also a testing system they use which has many more, but we'll just stick to production for now.
The on-chain data refers to a batch of CO₂ as a cycle. If you're confused about what a cycle means below, it just means batch.
-
Account Carbon bank account 0.0.9098705
Signs and pays for everything below. Created 17 April 2025.
-
Topic Cycle topic 0.0.9721453
Records one full record per cycle: the DNV assurance serial code, plant details and the CO₂ chain of custody.
-
Topic Deposit topic 0.0.9721454
Each cycle's ~90% deposit share, biogenic and fossil.
-
Topic Buffer topic 0.0.9721455
Each cycle's ~10% buffer, or reserve, share.
-
NFT Deposit NFT 0.0.9721458
Minted and burned seconds later each cycle, as a stamp before the tonnes go into the contract.
-
NFT Buffer NFT 0.0.9721456
One per cycle, kept by the carbon bank as the reserve. 18 held.
-
Contract Carbon Bank Contract 0.0.9721469
Holds the CO₂ balances: deposit() each cycle, withdraw() and transfer() against hashed invoice and verification IDs.
-
Contract Backup Storage Contract 0.0.9721460
The Carbon Bank Contract calls it inside every deposit(), so it's a live part of the system. It seems to be some kind of backup.
03What does the on-chain data show?
So far, 92,470 tonnes of CO₂ have been deposited into the carbon bank contract and 17,059 tonnes withdrawn as a result of evoZero cement sales. The current balance held by the contract is 75,410 tonnes.
Since recording started in October 2025, both CO₂ deposits and withdrawals have grown significantly. Monthly withdrawals peaked at 2,801 tonnes in July 2026, about 10x January's 288 tonnes, and have eased since, to 978 tonnes in September and 808 in October (to the 28th).
Figure 3 · withdraw() calls, by month
Demand for evoZero: CO₂ withdrawn each month
- Tonnes withdrawn against invoices
Each withdrawal matches a sale of evoZero cement to a customer invoice. October 2026 runs to the 28th.
Show the data
It'll be interesting to see if more capture data is recorded in the next few weeks. There hasn't been any new capture data since early June (the latest record was published in July). Records usually appear in batches weeks after capture, so this may just be a delay, but it's the longest gap so far. Worth keeping an eye on.
Figure 4 · Cycle topic 0.0.9721453
From the well to the ledger: when each batch was recorded
- CO₂ stored in the well
- Record published on Hedera
- No new records
Records land in batches, usually weeks after the CO₂ is stored. The shaded stretch is the time since the last one.
Show the data
04How much does it use Hedera?
Every step above is a Hedera transaction, and the carbon bank account signs and pays for all of them. Up to 28 October 2026 it has paid for 5,751 transactions and ℏ1,286 in fees, revenue for the Hedera network worth about $134 at the exchange rate on the day each fee was paid.
Almost all of that revenue comes from the 1,623 contract calls, the deposit() and withdraw() calls that run the bank's ledger. Writing a batch's record to a topic costs a fraction of a cent. While the fees generated so far are low, it's encouraging to see transactions growing through most of 2026, peaking at 1,620 in August. Use cases like this one aren't really about volume though; they're more about seeing if an enterprise can figure out how to use the network in a way that provides value to them and their customers.
Figure 5 · Paid for by 0.0.9098705
On-chain activity and the network revenue it generated
- Contract calls
- Fee-only transfers
- Everything else
- Transactions
- 5,751
- Network revenue
- ℏ1,286≈ $134
- Contract calls
- 1,623
- Topic messages
- 88
Fee-only transfers move no HBAR between anyone; the account pays only the network fee. "Everything else" is topic messages, NFT mints and burns, and setup. October 2026 runs to the 28th.
Show the data
Get the next deep dive
Get an email when we publish new research on the real-world businesses running on Hedera. Or follow along on X.
Sources and method
Every figure here comes from Hedera mainnet via the public mirror node. Totals are the decoded arguments of every deposit() and withdraw() call to the Carbon Bank Contract up to the end of 28 October 2026 (UTC). Batch dates and tonnages are from the 18 records on the Cycle topic: "stored" is the end of each batch's co2_transferred_to_well leg, "recorded" is the record's consensus time. Activity and revenue cover every transaction paid for by the carbon bank account, with each fee converted to US dollars at the network's exchange rate on the day it was paid.
The eight entities are tied together on-chain: one account signs and pays for all of them. Photos: Heidelberg Materials AG, used for editorial purposes. This report is independent research and is not investment advice.