Inspiration

AI assistants are getting good at finding things and planning purchases, but letting one near your whole wallet is a bad trade. One wrong cart or one bad prompt and the money is gone. We wanted the help without handing over the keys.

That led to Solpouch: small spending "pouches", each with its own budget and rules. The assistant can shop from a pouch, but it can never spend more than the pouch allows, and it can never refill one.

What it does

You create a pouch for something like groceries, takeout or job supplies. Each pouch has a per-order limit, a daily limit and a list of stores it is allowed to pay.

Then you say or type what you need. The assistant searches the store, builds a cart and asks when something is unclear. Every line is checked against the pouch rules, and you see the exact items and price before anything is paid. If you choose, a pouch can pay small exact matches on its own.

You stay in control the whole way:

  • Freeze a pouch with one tap and nothing can be paid from it.
  • Only the owner can add money, and refills wait out a cooling-off period, so a budget can't be topped up on impulse.
  • The dashboard shows every order, what each pouch spent today and the transaction behind each payment.

Each pouch is its own vault on Solana holding USDC, so the limits are enforced by the on-chain program and not only by our app. The demo runs on Solana devnet with test tokens: it shows the full checkout flow without placing a real retailer order.

How we built it

  • Frontend: Next.js, React and TypeScript, with a dashboard for pouches, orders and limits.
  • Backend: a TypeScript API on PostgreSQL (Tiger Data) that stores accounts, pouches and orders, and keeps the spend history behind the dashboard chart.
  • Payments: a Solana program gives every pouch its own vault and checks the limits on-chain. An indexer reads payments back from the chain so the dashboard matches what actually happened.
  • Assistant: chat and voice tools for shopping requests. Voice runs through ElevenLabs, and Gemini checks that the items in a cart match what was asked for.
  • Funding: a Stripe Checkout integration in test mode for the "Add money" flow.
  • Sign-in: Google sign-in is the account. The Solana wallet is linked to it by signing a challenge and is only used for money.
  • Android: the same app packaged for Android and signed, ready for Play testing.

Most of the work was in the joins: keeping the cart, the payment status and the receipt in agreement across the assistant, the database and the chain.

Challenges we ran into

Letting the AI help without letting it hold the money. The assistant needed real tools to be useful, so every tool is narrow: it can search and build a cart, but paying needs your approval and refilling is owner-only. On top of that sit ownership checks and the on-chain limits, so a mistake in one layer is caught by the next.

Never paying twice. Requests get retried and connections drop. We keep a journal of every payment operation, lock each pouch while it is being changed, and recover half-finished payments on restart, so a repeated request returns the same result instead of a second charge.

Not promising what we can't deliver. A price found while shopping is an estimate; theal one. We keep the two separate, and a cart whose price moved past the pouch's limit goes back to you instead of paying.

Accomplishments that we're proud of

We turned the pouch idea into a working product: sign in, create a pouch, ask for something out loud, approve the cart and watch the payment land on devnet with a receipt.

We're also proud of the parts nobody sees in a demo. Limits are enforced on-chain, repeated payment requests are safe, and the backend has 352 passing tests. You can delete your account and data yourself, and the app says plainly that it runs on test funds.

Two of our four team members were at their first hackathon.

What we learned

A payment app is much more than sending a transaction. You have to record what happened, survive failures halfway through, and explain the result clearly to the person whose money it is.

AI works better with a small job and hard limits. "Prepare a cart for review" is easier to build, easier to trust and easier to explain than "go buy this for me".

We also learned to put the rule where it can't be skipped. A limit in the app is a promise; a limit in the vault is a guarantee.

What's next for Solpouch

  • Test the full Stripe sandbox and devnet flow end to end.
  • Improve shopping results and make the voice experience smoother.
  • Connect real retailer checkout.
  • Put the Android app through Play's closed testing.

Longer term, we want real funding in the US and Canada through approved providers, with a security review before any real money moves.

Built With

Share this project:

Updates

Submission history