Inspiration

We talked to college students who had just gotten their first credit cards. The same problems came up again and again:

  • They didn't understand how their credit score works or what makes it drop.
  • They were confused about fees, interest, and how payback works.
  • They didn't know which card to use for a purchase, or which card to get.
  • Due dates were poorly organized and easy to miss.

Every rewards app tells students to chase points. But a student carrying a balance at 29.9% APR loses far more to interest than any card earns back. Nobody was counting the whole cost of a purchase. So we built a copilot that does.

Most apps help you earn points. Pocket Pilot makes sure you keep your money.

What it does

Pocket Pilot is a credit card copilot for college students. You can use it as a chat agent in ASI:One or as a phone app.

  • Picks the card that costs you least. Not the highest points rate, but the best net result:

$$\text{net value} = \text{rewards} - \text{interest} - \text{fees}$$

  • Debt Guard. If you're carrying a balance, the purchase will collect interest, so Pocket Pilot counts it:

$$\text{interest} = \text{amount} \times \frac{\text{APR}}{12} \times 3 \text{ months}$$

For example, $84.50 at Whole Foods: Aurum Gold earns $3.38 (4%), but at 29.9% APR it costs $6.32 in interest. With Debt Guard on, Pocket Pilot switches to Zero Intro (0% APR).

  • One Card (Visa Flexible Credential). Tap one card. At the moment of payment, our rules pick the money source: credit if you pay in full, debit if you're carrying a balance and checking covers it (with a $100 buffer), and pay-in-4 for purchases of $200 or more. A $600 laptop becomes 4 × $150.
  • Due dates with approval. "Aurum Gold is due Oct 30. Pay $640 on Oct 29, after payday?" It also flags unused subscriptions before a free trial converts. Nothing moves money until you say yes.
  • Credit coach. Ask "Why did my credit score drop?" and get a plain-words answer using your real numbers, including an honest "I can't see that" when the data isn't there.

How we built it

Fetch.ai: four agents on Agentverse, usable in ASI:One

Agent Job
Pocket Pilot The one you chat with. Implements the Agent Chat Protocol, understands the request, and routes it to the right specialist
Card Scorer Ranks every card by net value for a purchase
Merchant Resolver Predicts the store's merchant category code (MCC) with a confidence score
Payment Planner Due dates, payday, and subscriptions; schedules actions only after approval, and only when Pocket Pilot asks

The whole main flow (see cards → pick a card → Debt Guard → due soon → approve) happens inside one ASI:One conversation.

Predicting the store category. The real MCC only exists after you swipe, so the Merchant Resolver predicts it from the strongest available signal:

Signal Confidence
MCC from a real transaction 0.99
Your own history at that store 0.95
Our table of known chains (fuzzy matching) 0.90
Map place type (supermarket, gas station, …) 0.65
Unknown 0.30

Below 0.6, it plays safe and picks the flat-rate card. It also knows quirks, like Target coding as a discount store (5310), not grocery, so a "4% groceries" card won't pay 4% there.

Anthropic Claude. We made a deliberate choice: all money math is deterministic Python, never an LLM, so the numbers are exact and repeatable. Claude explains each decision in plain language and powers the credit coach, grounded in the student's own cards, balances, due dates, and payday. If the API is unavailable, the app falls back to offline answers.

Visa Flexible Credential. One Card's four authorization rules run at the moment of payment, using the MCC from the authorization request. The MCC is preserved, so rewards still apply. Since only the card issuer can run rules on the real Visa network, we simulate the issuer's authorization step (/api/vfc/authorize).

Coinbase x402. Our agents earn and pay with USDC on Base Sepolia (testnet only):

  • Earn: a paid /x402/best-card endpoint. Another agent gets HTTP 402 Payment Required, pays $0.001 in test USDC, and gets the pick.
  • Pay: when the Merchant Resolver isn't confident about a store, it can pay for a better lookup.
  • Guardrails: $0.01 max per call and $0.05 per day. Only settled payments count against the cap, and if our engine can't answer, the caller isn't charged.
  • Example transaction: basescan

Capital One Nessie. Customer accounts, balances, and purchases come from the Nessie API, so every pick and alert is based on the student's accounts rather than hard-coded numbers.

Stack. Python + Flask backend (deployed on Render), uAgents for the agents, and Expo / React Native + TypeScript for the phone app.

Challenges we ran into

  • Slow, restricted venue Wi-Fi. Port 80 was blocked and agent hops through the cloud took seconds. We switched Nessie to HTTPS and added local routing between our own agents.
  • A payment approved twice. A timeout caused a retry that approved the same payment again. We made every write idempotent: approving twice still schedules exactly one payment, and the agent never says "Done" unless it really is.
  • x402 settlement failures. Some payments failed at the facilitator. We added logging, retries, and an on-chain check, and the spending cap only counts settled payments.
  • Predicting a category before the swipe. We had to be honest about uncertainty, which led to confidence scores and a safe fallback instead of guessing.
  • Chat parsing in ASI:One. Messages arrive with @agent mentions and curly quotes, so "yes" wasn't always recognized as yes. We normalize them before parsing.

Accomplishments that we're proud of

  • The Debt Guard flip: the same purchase switches from the "best rewards" card to the 0% card once you carry a balance. That's the moment rewards apps get wrong.
  • A complete multi-agent flow inside ASI:One, from "show my cards" to an approved payment.
  • Safety built in: approval before any action, idempotent writes, spending caps, and confidence thresholds.
  • 333 automated tests (51 server, 282 agents).

What we learned

  • How card payments really work: the MCC is set by the merchant's bank and sent in every authorization message. It describes the store, not what you buy.
  • How to build agents that are safe with money: approval first, one execution per action, hard caps, and falling back instead of guessing.
  • - **For students, avoiding interest beats chasing points. At 25–30% APR, carrying a balance costs more than any rewards card pays back.

What's next

  • A bank partner to issue a real One Card on Visa Flexible Credential
  • Real account linking (e.g. Plaid) beyond the Nessie sandbox
  • App Store / Play Store builds with EAS
  • Proactive due-date reminders pushed to the student
  • "Which first card should I get?" recommendations
  • A savings tracker showing how much money Pocket Pilot kept for you

Try it

Built With

Share this project:

Updates

Submission history