Problem Statement
From PFAS “forever chemicals” contaminating the water of over 158 million Americans, to 199 million tons of plastic choking our oceans, hazardous materials are flowing through our ecosystems unchecked. Every year, the U.S. generates 35 million tons of hazardous waste, much of it tracked on paper manifests or siloed digital systems that can be lost, forged, or edited after the fact. Industrial runoff and outdated disposal networks leak toxins into our drinking water and food chains. Regulators move reactively—audits come months or years too late, damage is already done, and evidence has vanished. Meanwhile, affected communities remain in the dark, powerless to verify what companies do with their waste.
"The current waste tracking system relies on paper manifests, siloed systems, and slow audits. Records can be forged, waste can be lost, and oversight happens months after damage is done. Communities have no visibility.
California “lost loads”: An LA Times investigation revealed that over five years, regulators couldn’t confirm arrival for about 174,000 tons of hazardous material—about 35,000 tons/year—despite strict cradle‑to‑grave tracking laws.
And companies only act after being caught — like 3M, which paid $10.3 billion in PFAS cleanup." "We’re reactive when we need to be preventive."
Key Figures
- 158 M Americans exposed to PFAS in their drinking water
- 199 M tons of plastic in our oceans
- 35 M tons of hazardous waste generated in the U.S. annually
- Paper‑based, siloed manifests that are slow, error‑prone, and easily falsified
-Industry self‑reports to landfill weigh‑in records found roughly 800 000 tons of hazardous drilling and fracking waste unaccounted for in 2019 alone
Our Vision
We imagine a world where hazardous waste is:
- Transparently tracked at every hand‑off
- Publicly verifiable in real time
- Responsibly managed by design, not by regulation alone
The Solution
Blockchain‑Powered Hazardous Waste Tracking System
- Public ledger for verifiable waste handling (no more paper classics)
- Smart contracts enforce “cradle‑to‑grave” logic, auto‑rejecting duplicate or unauthorized transfers
- GeoJSON & GIS integration to pin every movement on the map
- Real‑time alerts for contamination risks or route anomalies
- ESG dashboards that build public trust and satisfy investor transparency demands
How It Works
Company Onboarding & JWT Auth
- Companies register and login to receive a signed JWT.
- Every write call (create or transfer) carries a cryptographic proof of which company performed it.
- Companies register and login to receive a signed JWT.
Material Creation
- On‑chain:
initializeMaterial(id, description)— enforces uniqueness and records the first “holder.” - Off‑chain: MongoDB stores full GeoJSON, metadata, timestamp, and the on‑chain transaction hash.
- On‑chain:
Material Transfer
- GeoJSON input: accepts both
{lat,lng}and full GeoJSONPointorLineString. - On‑chain:
transferMaterial(id, newHolder)only succeeds if the caller is the current holder. Sequence numbers increment to prevent replay. - Off‑chain: logs every step with geometry, human descriptions, status flags, and
txHash.
- GeoJSON input: accepts both
Public Reads & Dashboards
GET /api/materials/:id/featurecollection→ full GeoJSON history for mapping.GET /api/transfers/log→ flat, timestamped log of every company’s actions.- CSV & PDF exports for regulators or board reports.
Inspiration
We are in california so we know that during droughts water is valuable yet large amounts of have become undrinkable due to hazardous waste
What I Learned
- Smart Contract Design: Enforcing role‑based access, uniqueness, and sequence counters in Solidity.
- GeoJSON & Mongo 2dsphere: Storing and querying complex spatial data at scale.
- Error‑Handling Across Layers: Surfacing on‑chain reverts as clean HTTP errors, aborting off‑chain writes on failure.
- JWT‑Backed Auth: Tying every action to a company identity, cryptographically.
- Cerebras implementation for fast, live streaming.
- doing middleware to connect python backend with typescript frontend.
How I Built It
Contracts
- Used OpenZeppelin’s
AccessControlfor generator/holder roles. - Wrote
initializeMaterialandtransferMaterialwith events (MaterialInitialized,MaterialTransferred).
- Used OpenZeppelin’s
Backend
- Flask + PyMongo for REST, spatial queries, and exports.
- Web3.py to transact with Ethereum, waiting for receipts and catching
ContractLogicError.
- Flask + PyMongo for REST, spatial queries, and exports.
Front‑end
- Exposed GeoJSON FeatureCollections for Leaflet/Mapbox.
- Flat transfer logs for dashboards and compliance portals.
- JWT in
Authorization: Bearerfor write operations.
- Exposed GeoJSON FeatureCollections for Leaflet/Mapbox.
NextJS, Tailwind
Challenges Faced
Our biggest challenge was the time because we wanted to use solana and attempted to use it until we realized solana had toomany problematic updates with no real fixes 15 hours in where we had to rewrite our entire backend.
- On‑chain Permissions
- Atomicity: Ensuring off‑chain writes never occur without a successful on‑chain transaction.
- Connecting Backend to Front end: We spent most our time connecting the backend to the frontend.
Why This Shifts the Industry Standard
- Immutable, Tamper‑Proof Records: Blockchain enforces an append‑only, cryptographically secured audit trail.
- Geospatial Accountability: Linking every transfer to precise coordinates prevents “off‑book” disposals.
- Proactive Compliance: Smart contracts automatically reject invalid transfers and can trigger alerts on violations.
- Open, Machine‑Readable Data: GeoJSON + public APIs mean communities, regulators, and investors all share one source of truth.
Together, these elements transform hazardous waste from a hidden liability into a verifiable asset, ensuring companies are responsible by design—and setting a new bar for environmental accountability worldwide.
A Glass of Water Shouldn’t Be a Gamble make pollution visible before it becomes a tragedy.
We first prototyped and devloped a smart contract on Solana with Rust/Anchor for its low fees and high throughput, but constant breaking network upgrades and shifting SDKs kept invalidating our local clusters and CI pipelines. Switching to Ethereum with Hardhat and Web3.py gave us a rock‑solid, well‑documented toolchain, mature event logs for our immutable audit trail, and seamless Python integration—while we continue to handle all GeoJSON spatial logic off‑chain in MongoDB.
Log in or sign up for Devpost to join the conversation.