Inspiration
A recycling claim is only worth something if someone else can check it. In waste recycling, it is hard to prove where material came from, who handled it, or whether the same batch was already claimed by another company. That is double counting, and it is the same trust problem carbon markets face. Meanwhile, the waste pickers who do the collecting usually have no record of their work. I grew up in Lagos, and I watched the area where I grew up get worse a little at a time because of waste. The government has been trying hard, but the problem is bigger than any one effort. What I kept noticing is that the people who actually collect and sort the waste are rarely seen, and nobody can easily prove what happened to the material afterwards. I wanted to build something that makes that work visible and checkable, so the effort that already exists can be trusted and rewarded.
We built CircuLagos for Track 1: Carbon Markets & Emissions Transparency. The idea is to give every batch of recycled material one verifiable carbon-credit record that follows it from the street to retirement, so every ton of avoided emissions is claimed exactly once.
What it does
CircuLagos is a blockchain-based carbon-credit verification platform with real-time emissions tracking. A batch moves through seven steps: scan, register, transfer, confirm, recycle, pay, retire.
- Picker: photographs the waste. AI identifies the material and gives an estimated price per kilo and sorting advice. Pickers see no weight field, and the interface avoids crypto words (Paid, Confirming, Verified).
- Aggregator: weighs and registers the batch. The photo and AI result are attached as evidence, and a duplicate photo is rejected.
- Recycler: confirms the weight received. A batch whose weight is too far off is flagged instead of accepted. Then the recycler logs the output and retires the batch, which cannot be undone and triggers the payout.
- Producer: picks retired, unclaimed batches and issues a credit claim. Claimed batches are greyed out and cannot be selected again.
- Anyone: can open a public registry page with no account, see the batches behind a credit claim, and follow the transaction links.
An impact dashboard shows verified kilos by material, area, and week, and lists areas where collection is low.
How we built it
We started from a product requirements document, then a page-by-page frontend breakdown with priorities for the demo. From that we designed 29 screens in laptop and mobile layouts, plus a shared component set, and turned them into a clickable HTML/CSS/JS prototype. Each batch is recorded on a test blockchain (Polygon Amoy), where smart contracts enforce that one batch can be claimed exactly once, preventing double counting. [Add what you actually built in code: AI model, backend, contracts.]
Emissions are tracked in real time as batches move through the registry, and the public page acts as a transparent carbon-trading platform where any credit claim and its underlying batches can be audited without an account.
A mismatch is flagged when
$$ \frac{|w_{received} - w_{logged}|}{w_{logged}} > t $$
where \( t \) is the tolerance. We suggest 5% for the demo and have left it as an open setting.
Challenges
- One batch, one credit claim. Prebuilt contracts may not enforce this by themselves, so some checks have to live in the backend as well.
- Who enters the weight. We chose the aggregator only, so nobody can inflate a number at the first step.
- Designing for pickers. The picker flow had to work on a phone with no blockchain vocabulary.
- Open decisions. The mismatch tolerance, the payout split between picker and aggregator, and the price-per-kilo source are still open. We left real market figures out on purpose rather than invent them.
What we learned
Trust has to be designed into the workflow, not added at the end. Small choices, like who can type a weight or which button a batch can no longer be selected from, are what make double counting hard.
What's next
Escrowed payments, real price data, and a pilot with aggregators in Lagos.
This is a prototype with sample data on a test network. It does not claim emissions reductions.
Built With
- etherjs
- githubgist
- javascript
- nextjs
- vercel
Log in or sign up for Devpost to join the conversation.