Inspiration

New York City has thousands of small, wonderful places that never get visited because everyone already knows to go to Times Square or Central Park. At the same time, everyone talks about AI agents doing things on their own, but almost nobody lets an AI agent actually touch real money, because if the AI gets tricked, the money is just gone.

We wanted to build something that solves both problems at once. An app that pays people small amounts of real money for visiting overlooked parts of the city, built by an AI agent that decides the payments, but wrapped in safety rules so strong that even a tricked AI cannot drain the funds. Ripple's challenge asked for exactly this: agentic finance that a bank or city could actually trust. That is what pushed us to build Know York.

What it does

You walk to a real place in New York, one that is a little off the beaten path. You take a photo and submit it in the app. Behind the scenes:

  1. The app checks you are really there and the photo is real and new.
  2. Grok, our AI agent, looks at your submission and decides how much to pay you.
  3. A set of fixed rules, not the AI, double checks that the amount is allowed.
  4. If it passes, you get paid in RLUSD, a digital dollar, directly to your wallet on the XRPL blockchain.
  5. You also get a digital stamp on Solana that is soulbound, meaning it can never be sold or given away, like a permanent passport stamp.

New missions also get added automatically. Grok scouts new overlooked places in New York on its own, checks that they are real and not already on the list, and adds them. We even added a "New Mission" button so this can happen live in a demo.

How we built it

Here is how one submission moves through the system, step by step: Know York architecture diagram

Step Component What happens
1 User Sends a photo and their location
2 Sentinel checks Confirms the right place, a fresh photo, not reused, not already claimed
3 Grok (the AI) Proposes an amount to pay
4 Policy engine, fixed rules, no AI Checks the cap, the right recipient, and the allowed place list
5 XRPL payment, small "agent" wallet Pays the person, capped at 10 RLUSD by the blockchain itself
6 Guardian, a separate program with its own key Refills the agent wallet from the big treasury, a little at a time
7 Solana soulbound stamp Mints a passport stamp that can never be sold or transferred
8 One shared decision ID Links the database record, the XRPL payment, and the Solana stamp together

What keeps this safe:

  1. The AI only ever proposes an amount. It never sends money itself.
  2. Fixed rules, not the AI, check every proposal before any money moves.
  3. Even if both of those are fooled, the agent wallet only holds 10 RLUSD, a limit set directly on the XRPL blockchain, so it cannot pay more than that no matter what.
  4. The AI never holds the treasury key. Only the separate guardian program does.

We used:

  • Grok for deciding payouts, scouting new missions, and checking photos.
  • XRPL and RLUSD for real, provable payments with a built in spending limit.
  • Solana for soulbound collectible stamps.
  • A small Express and TypeScript backend, with everyone on the team owning a different piece.
  • A real map on the frontend, built with Leaflet, showing every mission as a pin, with a live button to add a new one.

Challenges we ran into

Making the AI truly unable to overspend. A limit written in our own app code can always be bypassed, skipped, or have a bug. We had to find a way to stop overspending that did not depend on our code working correctly at all, which meant learning how to push that limit down into the blockchain itself.

Proving it for real. It was not enough to believe the safety worked. We had to run a real attack on the public testnet, with our own rules turned off on purpose, and watch what actually happened, without knowing in advance if it would really hold up. The blockchain rejected the overspend on its own, and that rejection is permanently visible on the public testnet explorer.

Keeping keys separate. Splitting the AI's wallet from the treasury wallet meant restructuring our code into two separate programs that never share settings, and constantly checking that a treasury key could never accidentally end up where the AI could reach it.

A tricky library bug. Some XRPL library dependencies only work in a newer JavaScript format, and our test tool silently failed to load them. The error messages did not point to the real cause, so tracking down which exact package was breaking things took a lot of trial and error.

A file bug that broke payments. A missions file got saved in an unexpected text format by a different tool, and it crashed the page showing all the places, without any obvious reason at first. Figuring out why took real digging.

Never paying twice. Making sure a slow or unclear payment confirmation could never turn into a duplicate payment meant thinking through timing and failure cases that are easy to miss.

Accomplishments that we're proud of

We are proud that this is not just a nice idea, it actually works, live, on real public blockchains. A real payment happens. A real stamp gets minted. A real overspend attempt gets refused by the ledger itself, not by a promise in our code. We also built a live demo button that asks Grok to find a brand new real place in New York on the spot and immediately shows it on the map with a reward attached, which makes the whole idea feel alive instead of just a slideshow.

What we learned

We learned that the safest way to let an AI handle money is to never fully trust the AI in the first place. Every layer, from fixed rules to a spending cap enforced by the blockchain, exists because we assumed the layer before it could fail. We also learned a lot about how real blockchains handle limits, trust lines, and stablecoins, and how much simpler an AI integration becomes once you stop asking the AI to be careful and instead make it physically unable to do damage.

What's next for Know York

We would like to let sponsors, local businesses, or even city programs fund the treasury, so the reward pool grows with real community support instead of just testnet faucets. We also want the mission scout to run on a real weekly schedule instead of only on demand, add a human review option for new missions before they go live, and bring multi signature protection to the agent wallet so that even a leaked AI wallet key could not be misused alone.

+ 14 more
Share this project:

Updates

Submission history