An Uber was waiting downstairs to take me to surgery. The 5 min countdown had started. I was next up, about to pitch live to thousands of Web3's finest. I only needed 4 minutes.
My project made the ETHGlobal finals out of 814 projects, 1st on
@arc, a prize from
@graphprotocol. I hadn't seen the email (ofc I hadn't!) and had it not been for the legends Pascal & Kartik finding a way to message me on Slack and Telegram, I likely never would have realized. This year's ETHOnline had 1,462 builders from 89 countries, Web3's premier hackathon experience.
In our industry, sometimes the person you're pitching to across the table later becomes the person building next to you. After judging and mentoring at nearly a dozen ETHGlobal hackathons, I put my builder hoodie back on, alone, and pulled my first all-nighter in a decade. But I very nearly didn't.
What I mean by that is my brain quite literally tried to rug me. You see, the night of the submission I felt as though the project was 80% complete. By my normal bedtime, my eyelids grew heavy and the siren sheets sang. Then came the whispers of inner negotiation: 'just go to sleep, if you wake up super early at 6am you will still have 3 hours before the deadline, that's a lot of time!'
Midnight struck. I felt the project was 90% of the way there, so I put on my pajamas and lay down. Then the internal monologue struck again, this time with a different logic entirely. With Goggins-level abuse, it told me not to be lazy, that if I was wrong about needing only 3 hours, I risked everything I had built. If I was right, I could always go to bed before 3am, sleep in longer and still submit the project properly. I ended up submitting the project at 7am (def get started earlier folks, this is not veteran builder advice!). I severely underestimated, in my sleep-deprived poor executive function state, how much work would be needed to complete the submission. I remember thinking to myself how that moment of literally forcing myself out of bed had changed everything.
The way I typically do hackathons is very product-centric. I very rarely end up working on the project I initially think of after I vet it, but rather a better one that I pivot to along the way. The majority of the time I spend is thinking about what the actual problem is that is being solved, and why the heck web3 matters at all to solve it. I find too often we're tempted to look at bounties and create Frankensteins that seem to appease what sponsors are looking for instead of thinking about who the people actually impacted are going to be. Now, not every hack is a startup, but if you treat how you approach your project like a startup founder, doing proper research, searching for signs of PMF and market demand, showing how you found the problem (and how big it is), seeing what else currently exists and why this solution is better, being able to describe it in an elevator pitch etc., I guarantee you that you will stand out.
So... What did I build in the end? OpenBook: Fresh data or your money back, for AI agents.
A lot of my day job work recently has revolved around thinking about agents, everything from developer documentation and education giving way to AI-parsable context, MCP servers and skill bundles, to how agentic economies operate onchain and what blockchain has to offer them.
What occurred to me: agents and robotic systems need fresh data. Data from one second ago is worth more to prediction markets, drones and robotaxis than data from a minute ago. How do you go beyond x402 and nanopayments and create incentives around guaranteeing freshness? That question kicked off a lot of thinking that transmuted into a product.
How it works. A promise stops being a promise when it is a payment condition. The buyer's USDC sits in escrow until the delivery, stamped with the block The Graph indexed it at, proves the seller kept its word.
Fresh? The seller is paid. Stale? The money comes back in the same transaction. That is what finally gives stale data a price curve: three-second data and three-minute data cannot sell for the same number once the seller stakes its fee on the window it promised (btw, paying gas fees in a stablecoin on Arc was awesome, as was their agent stack!).
In the demo I gave live, an agent asks for odds under 10 seconds old, gets them 3 seconds old, and the seller is paid. Then it asks for odds under a tenth of a second old. No seller can hit that, so the contract refunds it in full. Nobody had to ask. What this also does is turn any of The Graph's 15,000+ subgraphs into its own potential market with one line (id, schema, freshness window, price), with
@ensdomains as the identity layer.
Freshness is only the first market on this rail. The contract checks a statement instead of trusting data, so provenance, correctness and computation drop into the same escrow, the same names, the same books. Every promise a machine can verify becomes a market.
What data would you pay more for if it came with a freshness guarantee? Links in the reply.