Built on Base Sepolia • Web3 + AI Powered

Split Travel Expenses Instantly with AI & Blockchain

Smart wallet pools for your trips. AI powered receipt scanning, automatic currency conversion, and transparent onchain settlement you can verify.

Next.jsBaseAI OCRIPFSSmart Contracts

You

+1.18

ETH

Alice

+0.08

ETH

Bob

-1.26

ETH

5 expenses logged
5 Members • 12 Expenses

Why Travel Kitty?

AI + Base transparency for painless, trustless group expense splitting. Everything verifiable, nothing complicated.

AI Powered OCR

Upload a receipt — AI extracts totals, currency, and line items. Editables before posting.

Onchain Proof

Trips and settlements recorded on Base Sepolia with auditable smart contracts.

Join via 6 Code

Creator deploys a trip wallet via Factory, shares a 6 character code, members join onchain.

Net Settlement (mUSD)

One click ‘Execute Split’, then members ‘Settle Up’. Uses test mUSD with ERC-20 approve.

Privacy First

Receipt images on IPFS; onchain stores only a compact hash/bytes reference (no PII).

Explorer Links

One click Basescan links for every deploy & settlement so anyone can verify outcomes.

How It Works

Four on-chain steps from receipt to settlement

01

Create Trip

Deploy a trip wallet on Base. Creator auto joins and gets a 6 character join code.

02

Share & Join

Friends join using the code. The app calls join() so membership is recorded onchain.

03

Execute Split (onchain)

Upload a receipt, AI extracts items/total, then post the split to compute balances.

04

Settle Up

Debtors approve mUSD and call settleToken(). One click, verifiable on Basescan.

See It In Action

Watch a quick walkthrough of Travel Kitty on Base Sepolia: connect a wallet, create a trip with AI receipt OCR, share and join via code, execute the split onchain, and settle up with transparent transactions.

  • Create a trip and auto extract items with AI OCR
  • Share a 6 character join code and joining is onchain
  • Claim test mUSD with cooldown feedback
  • Execute Split (onchain) then Settle Up for payers
  • One click Basescan links for every transaction
~90s demo walkthrough · Base Sepolia

What travelers say

Real feedback from people who split smarter with Travel Kitty

Raka Pradipta

@raka.trips

Receipt OCR in seconds review, tweak, and submit.
Aulia Putri

@auliarmdnii

Settlements link to Basescan easy to verify.
Kevin Lim

@kevinlim

Multi currency totals without manual FX math.
Dewi Kartika

@dewik

Images offchain, onchain hashes for privacy.
Arif Nugroho

@arif.ng

Net settlement shows exactly who pays whom.
Sinta Wardana

@sintawr

Base Sepolia demo made wallet onboarding simple.
Bagus Mahendra

@bagus.m

Snappy UI with real time balance updates.
Yuki Tan

@yukitan

6 digit code join was effortless.
Nadia Putri

@nadia.putri

Onchain history reduces back and forth disputes.
Raka Pradipta

@raka.trips

Receipt OCR in seconds review, tweak, and submit.
Aulia Putri

@auliarmdnii

Settlements link to Basescan easy to verify.
Kevin Lim

@kevinlim

Multi currency totals without manual FX math.
Dewi Kartika

@dewik

Images offchain, onchain hashes for privacy.
Arif Nugroho

@arif.ng

Net settlement shows exactly who pays whom.
Sinta Wardana

@sintawr

Base Sepolia demo made wallet onboarding simple.
Bagus Mahendra

@bagus.m

Snappy UI with real time balance updates.
Yuki Tan

@yukitan

6 digit code join was effortless.
Nadia Putri

@nadia.putri

Onchain history reduces back and forth disputes.
Raka Pradipta

@raka.trips

Receipt OCR in seconds review, tweak, and submit.
Aulia Putri

@auliarmdnii

Settlements link to Basescan easy to verify.
Kevin Lim

@kevinlim

Multi currency totals without manual FX math.
Dewi Kartika

@dewik

Images offchain, onchain hashes for privacy.
Arif Nugroho

@arif.ng

Net settlement shows exactly who pays whom.
Sinta Wardana

@sintawr

Base Sepolia demo made wallet onboarding simple.
Bagus Mahendra

@bagus.m

Snappy UI with real time balance updates.
Yuki Tan

@yukitan

6 digit code join was effortless.
Nadia Putri

@nadia.putri

Onchain history reduces back and forth disputes.
Raka Pradipta

@raka.trips

Receipt OCR in seconds review, tweak, and submit.
Aulia Putri

@auliarmdnii

Settlements link to Basescan easy to verify.
Kevin Lim

@kevinlim

Multi currency totals without manual FX math.
Dewi Kartika

@dewik

Images offchain, onchain hashes for privacy.
Arif Nugroho

@arif.ng

Net settlement shows exactly who pays whom.
Sinta Wardana

@sintawr

Base Sepolia demo made wallet onboarding simple.
Bagus Mahendra

@bagus.m

Snappy UI with real time balance updates.
Yuki Tan

@yukitan

6 digit code join was effortless.
Nadia Putri

@nadia.putri

Onchain history reduces back and forth disputes.
Raka Pradipta

@raka.trips

Receipt OCR in seconds review, tweak, and submit.
Aulia Putri

@auliarmdnii

Settlements link to Basescan easy to verify.
Kevin Lim

@kevinlim

Multi currency totals without manual FX math.
Dewi Kartika

@dewik

Images offchain, onchain hashes for privacy.
Arif Nugroho

@arif.ng

Net settlement shows exactly who pays whom.
Sinta Wardana

@sintawr

Base Sepolia demo made wallet onboarding simple.
Bagus Mahendra

@bagus.m

Snappy UI with real time balance updates.
Yuki Tan

@yukitan

6 digit code join was effortless.
Nadia Putri

@nadia.putri

Onchain history reduces back and forth disputes.
Raka Pradipta

@raka.trips

Receipt OCR in seconds review, tweak, and submit.
Aulia Putri

@auliarmdnii

Settlements link to Basescan easy to verify.
Kevin Lim

@kevinlim

Multi currency totals without manual FX math.
Dewi Kartika

@dewik

Images offchain, onchain hashes for privacy.
Arif Nugroho

@arif.ng

Net settlement shows exactly who pays whom.
Sinta Wardana

@sintawr

Base Sepolia demo made wallet onboarding simple.
Bagus Mahendra

@bagus.m

Snappy UI with real time balance updates.
Yuki Tan

@yukitan

6 digit code join was effortless.
Nadia Putri

@nadia.putri

Onchain history reduces back and forth disputes.
Raka Pradipta

@raka.trips

Receipt OCR in seconds review, tweak, and submit.
Aulia Putri

@auliarmdnii

Settlements link to Basescan easy to verify.
Kevin Lim

@kevinlim

Multi currency totals without manual FX math.
Dewi Kartika

@dewik

Images offchain, onchain hashes for privacy.
Arif Nugroho

@arif.ng

Net settlement shows exactly who pays whom.
Sinta Wardana

@sintawr

Base Sepolia demo made wallet onboarding simple.
Bagus Mahendra

@bagus.m

Snappy UI with real time balance updates.
Yuki Tan

@yukitan

6 digit code join was effortless.
Nadia Putri

@nadia.putri

Onchain history reduces back and forth disputes.
Raka Pradipta

@raka.trips

Receipt OCR in seconds review, tweak, and submit.
Aulia Putri

@auliarmdnii

Settlements link to Basescan easy to verify.
Kevin Lim

@kevinlim

Multi currency totals without manual FX math.
Dewi Kartika

@dewik

Images offchain, onchain hashes for privacy.
Arif Nugroho

@arif.ng

Net settlement shows exactly who pays whom.
Sinta Wardana

@sintawr

Base Sepolia demo made wallet onboarding simple.
Bagus Mahendra

@bagus.m

Snappy UI with real time balance updates.
Yuki Tan

@yukitan

6 digit code join was effortless.
Nadia Putri

@nadia.putri

Onchain history reduces back and forth disputes.

Technical Architecture

Built with modern, scalable technologies

Frontend

  • Next.js 15 (App Router) + TypeScript
  • TailwindCSS + Framer Motion UI
  • RainbowKit + Wagmi + Viem for wallets
  • TanStack Query for data fetching

Backend (API & AI)

  • Next.js Route Handlers (Edge runtime)
  • Supabase (Postgres) for trips/receipts/members
  • OpenRouter Vision (Qwen2.5-VL) for OCR + key rotation
  • Currency utils & split logic off-chain → push to contract

Blockchain

  • Solidity: Factory, TravelKitty, Faucet, MockUSD (ERC-20)
  • Base Sepolia testnet
  • Join onchain, record split (addExpense), settleToken mUSD
  • Basescan links for transaction verification

Frequently Asked Questions

Q1 Do I need cryptocurrency to use Travel Kitty?

For the demo you’ll connect to Base Sepolia. You’ll need a tiny amount of test ETH for gas and test mUSD (claimable from the in-app faucet).

Q2 Which chain and tokens are supported in the demo?

We run on Base Sepolia. The kitty settles with a test ERC-20 (mUSD). Real-network support will come after the hackathon.

Q3 How do I join a trip?

Enter the 6 character join code in the app. This links you in our database, then the app also calls the smart contract ‘join’ so you become an onchain member. Creators are auto-joined after creating a trip.

Q4 How accurate is the AI receipt scanning?

We use OpenRouter Vision (Qwen2.5-VL) with a tuned prompt. It works well on standard receipts, and you can edit items/amounts before recording onchain.

Q5 What data is onchain vs off-chain?

Members, balances, recorded splits, and settlement live onchain. Receipt text and metadata live in our database; images are stored by URL. No sensitive personal financial data is written to the blockchain.

Q6 Why do I see COOLDOWN when claiming mUSD?

The faucet can be claimed once per cooldown window (e.g., ~24h) per wallet. If you hit COOLDOWN, the app shows when you can try again.

Q7 How does settlement work?

The creator records a split onchain. Debtors then click “Settle Up”—the contract pulls mUSD from the debtor (after approval) and pays creditors, updating balances transparently.

Q8 Can I export my expense data?

Exports (CSV/PDF) are on our near term roadmap. For now you can verify settlements and splits on Basescan from the app.

Ready to Simplify Your Group Expenses?

Join thousands of travelers already using Travel Kitty to split expenses fairly and transparently.

View on GitHub