Disaster Response Allocator - agents that respond to and finance disasters
Emergency procurement is broken. It is slow, bureaucratic, and disconnected from what's actually happening on the ground. I built a dynamic response allocator: a pool of emergency funds that AI agents continuously direct toward active disasters based on real government data, verified location proofs, and onchain credibility scores. The system runs allocation cycles autonomously, and every decision is traceable end-to-end: from the satellite data that triggered it to the onchain transaction that moved the money.
Eight regional agents (Pacific, Mountain, Central, Lakes, Delta, Gulf, Atlantic, Northeast) each watch a slice of the US through six government APIs: NASA EONET for active disasters, FIRMS for satellite fire hotspots, USGS for stream gauges and earthquakes, GBIF for biodiversity records, AirNow for air quality, and iNaturalist for threatened species. They synthesize all of that as well as on-the-ground photo proofs (photos simulated for the purposes of the hackathon) into a severity score for their region.
Then there's Rogue and Phantom. These are adversarial agents with no actual presence in disaster zones. As such, they have no field responders, no access to geotagged evidence, nothing to submit for location verification. They fabricate high-severity assessments and claim disasters they've never been near. They're in the system to stress-test the credibility gate: the proof-based filter that decides whether an agent's assessment counts toward fund allocation. If these two ever receive money, the architecture has failed.
Every assessment travels through a Gensyn AXL mesh and is Ed25519 signed / cryptographically verified. The Coordinator Agent (our 11th and final) collects everything and checks ENS whitelist first: agents need a registered subname under responsesurface.eth on Sepolia to participate (for the purposes of the hack, our adversarial agents managed to get on this registry as well, bypassing the first line of defense...). Credibility scores, proof counts, region bounds, data sources are all stored as ENS text records using ENSIP-25 gasless subnames.
Ground truths (the aforementioned photos) come from Astral Protocol’s Web3 proof-of-location SDK. When a disaster event is detected, agents alongside US government data source and back up their claims with verifiable location evidence. We simulate field responders submitting geotagged disaster photos by checking against the declared disaster zone using Astral’s containment API on Base Sepolia. If the GPS coordinates land inside the zone polygon, the proof counts toward that agent’s credibility. If they don’t, it’s rejected. Rogue and Phantom can't produce location proofs because they don't have anyone in the field. They can claim a wildfire in Montana, but they can't submit a geotagged photo from inside the burn zone that passes Astral's containment check.
The coordinator weights allocation by credibility × severity × disaster density × proof multiplier, then allocates fUSD from the ResponseFund contract on 0G Chain. 0G Compute TEE runs inference in a sealed enclave so nobody can tamper with the math. The full cycle—every assessment, score, allocation, and proof—gets uploaded to 0G Storage with a Merkle root. Then the critical feedback loop: each agent's updated credibility score is written back to their ENS text records on Sepolia. This means the next disaster response cycle doesn't start from scratch: it starts from the accumulated reputation of every previous round. An agent that consistently submits verified proofs builds credibility over time; one that submits garbage accumulates a track record that makes its future assessments worth even less. This makes future cycles more adaptive in response to crisis.
0G Chain runs the money (ResponseFund + fUSD contracts, Solidity 0.8.24, evmVersion cancun). 0G Compute handles sealed inference when a TEE provider is configured. 0G Storage keeps the audit log so every disaster response cycle gets a Merkle root.
Gensyn AXL runs the communication layer: 11 agent nodes with Ed25519 keys relaying signed assessments through a P2P mesh. ENS on Sepolia is the identity layer with agent names, credibility scores, proof counts, region bounds, AXL public keys, all living as text records under responsesurface.eth. I used ENSIP-25 for gasless subname registration so I could spin up all 11 agents without burning through Sepolia ETH. Astral SDK on Base Sepolia handles location verification, providing containment checks that compare GPS coordinates against disaster zone polygons.
The backend is a Node.js MCP server (Hetzner) hitting six government APIs in parallel. Frontend is React with Mapbox GL JS rendering real geographic boundaries for each region, a live activity feed showing every step of the cycle, and proof cards with evidence photos (generated with Flux).
One thing worth noting: I needed two wallet libraries. ensjs requires viem, 0G’s broker and storage SDKs require ethers.js. Both run in the same process. Not elegant, but both ecosystems mandate their own stack.

