CarbonTrace Lite - Project Story
Inspiration
The Moment It All Started
I remember the exact moment when the idea for CarbonTrace Lite was born. It wasn't in a high-tech lab or during a climate conference—it was in a small community hall in Alexandra, Johannesburg, where I watched a group of schoolchildren present their environmental project to a room full of empty chairs.
These kids had spent months planting trees, cleaning up local parks, and educating their neighbors about climate change. They were passionate, dedicated, and genuinely making a difference. But when they tried to get recognition or support for their efforts, they hit a wall. Nobody could verify their work. Nobody could prove those trees were actually planted. And without proof, there was no support, no funding, no reward for their hard work.
That moment broke my heart. And it lit a fire in me.
The Problem That Wouldn't Leave Me Alone
I couldn't stop thinking about what I'd witnessed. These children—and countless other community groups across South Africa—were doing real, meaningful environmental work. But they were invisible to the systems that could support them.
Carbon markets, which should have been their ally, were designed for corporations with deep pockets and expensive verification processes. The few verification companies that existed charged fees that would bankrupt a school or a small farming co-op. And the "green apps" that claimed to help? They were just glorified calculators that trusted whatever number you typed in. No verification. No accountability. No real proof.
I thought about the Kariba REDD+ scandal in Zimbabwe, where communities were promised benefits from carbon credits but saw little of the revenue. I thought about the schools in South Africa where children planted trees but couldn't prove it. I thought about the fundamental injustice: the people doing the real work were the ones being left behind.
The "Aha" Moment
The breakthrough came when I realized the solution wasn't to make existing verification systems cheaper or more accessible. It was to build something entirely new—a system that didn't require expensive third-party verifiers or complex bureaucracy.
What if we could use satellite data—freely available from sources like Sentinel-2—to independently verify environmental claims? What if we could use machine learning to detect fraud and ensure accountability? What if we could put this power directly into the hands of communities, through a simple mobile app that anyone could use?
That was the moment CarbonTrace Lite was born. Not as a business idea, but as a mission.
Why This Matters
Today, CarbonTrace Lite is more than just a project. It's a proof of concept that another way is possible. It's a demonstration that we can build systems that are fair, transparent, and accessible to everyone—not just those with money and power.
But more than that, it's a promise. A promise to those kids in Alexandra that their work matters. A promise to every school, every farming co-op, every community group that their environmental efforts will be seen, verified, and rewarded.
This is why I built CarbonTrace Lite. Because trust isn't a verification strategy. And because the people doing the real work deserve real proof.
What it does
CarbonTrace Lite is a verifiable community carbon ledger that turns local environmental actions into on-chain carbon credits. Users log actions like tree planting, and the system cross-checks claims against independent satellite and weather data before minting verified CTC credits on Polygon Amoy.
How we built it
The system uses a verification pipeline that validates claims via Zod schemas, fetches NDVI/NDWI satellite data and weather information, extracts 7-feature vectors, and applies both rule-based scoring and ML anomaly detection (dependency-free MLP + isolation forest) to generate confidence scores and credit multipliers. Verified credits are minted as on-chain attestations via smart contracts on Polygon Amoy.
Challenges we ran into
Satellite APIs weren't built for our use case. Sentinel Hub's Statistical API returns raw time-series rasters, not answers. We had to reduce NDVI/NDWI series to baseline-vs-current deltas (seriesDelta in engine.ts), handle missing/short series gracefully, and build a per-source fallback so one dead API never kills a verification — each source independently falls back to mock (src/data-sources/index.ts). The deterministic mock provider (USE_MOCK_DATA=true) was itself a challenge: it had to be realistic enough to demo against while clearly labeled as mock in every certificate.
Verifying with thin data. A single claim carries only type, GPS, quantity, and date — no photos, no sensors. Scoring that against satellite + weather meant accepting uncertainty instead of faking precision: a 7-feature vector (quantity plausibility, seasonal fit, signal deltas) feeds both a rule-based confidence score and an ML anomaly detector, and low-confidence claims earn half or zero credits rather than a yes/no verdict.
ML with no real fraud data. No public dataset of "fake community carbon claims" exists, so we built a synthetic fraud generator (synthetic-data.ts) encoding coherent fraud patterns — flat signals, impossible quantities, out-of-season claims, combined fraud. The dependency-free MLP (ann.ts) trains on it to >90% suite accuracy, but we know synthetic data is a ceiling: the model can only catch fraud shapes we imagined, which is why the anomaly score discounts rule confidence instead of overriding it — and why public-dataset retraining (npm run train) is our stated roadmap.
Blockchain without breaking the demo. Real mints need RPC URLs, private keys, and a deployed contract — none of which a judge should have to set up. So attestation is dual-mode: canonical SHA-256 data hashes are always real and reproducible offline (hashVerification()), while the chain submission simulates by default and only touches Polygon Amoy when all three live credentials are present (src/chain/index.ts).
Accomplishments that we're proud of
Built a fully functional verification engine with 23/23 tests passing and clean type checking
Implemented ML anomaly detection that catches fraudulent claims with >90% accuracy on synthetic fraud patterns
Created a mobile-first dashboard with real-time mapping and verification status tracking
Successfully deployed smart contracts on Polygon Amoy with simulated attestation capabilities
What we learned
The carbon-market problem is MRV cost, not intent. A credit equals a tonne of CO₂, but certifying small community actions costs more than the actions themselves — that's the exclusion mechanism. Cheap automatic verification (satellite + weather cross-checks) is the actual unlock, more than any token design. Trust comes from showing your work. Every verdict ships a per-signal breakdown in plain language, and every certificate carries its data hash, tx hash, and sources. Users forgive "partially verified" when they can see why — transparency beat accuracy as a trust builder. Blockchains are receipts, not judges. The chain never decides truth; it only stores fingerprints of decisions made off-chain. That separation (verify off-chain → attest on-chain via mint + verifyHash) kept the contract tiny and the demo reproducible without keys. Synthetic data is scaffolding, not a foundation. It let us build and test the full pipeline with zero API keys and 23/23 green tests, but we document it as a limitation, not a feature. The honest boundary — mock data, synthetic fraud, simulated attestation — became part of the pitch rather than something to hide.
What's next for CarbonTrace-Lite
- Training ML models on public soil-carbon and land-cover datasets for improved accuracy
- Implementing ledger-settled redemptions for marketplace transactions
- Integrating ESP32 sensor nodes to feed real-time environmental data into the verification pipeline
- Expanding pilot programs with schools and co-ops across South Africa
Log in or sign up for Devpost to join the conversation.