Split bills easy with friends using crypto payments and phone contacts
What is Chip In? Chip In is mobile app for splitting bills with friends. Very simple to use! Main features:
Login with Google or phone number (no complicated wallet setup!) App reads your phone contacts and shows which friends already using app Create bills and split between friends automatically Friends see how much they owe you Pay bills using cryptocurrency (PYUSD stablecoin or ETH) All payments on blockchain - very transparent and safe
Why we build this? When friends go restaurant or buy something together, always problem to split bill. Who paid? How much everyone owe? Very messy! Chip In solve this. You create bill, app calculate everything, friends pay directly from app. No more asking "did you pay me?" or "how much I owe?" How it works:
You login (very easy, just Google or phone) App checks your contacts You create bill and add friends App shows everyone how much they owe Friends click "Pay Now" and payment done! Everyone happy! ✅
Technologies we used: Frontend (Mobile App):
React Native + Expo - to make mobile app work on Android and iOS TypeScript - for writing code (more safe than JavaScript) Thirdweb SDK - this very important! It help us make wallet login very easy. User don't need know about "wallet" or "seed phrase". Just login Google and boom, they have wallet!
Smart Account Magic:
We use Thirdweb Smart Accounts - this mean user have TWO addresses:
EOA (normal wallet) - where they receive money Smart Account - where they send money from
Smart account is VERY COOL because we sponsor gas! User don't pay any fees! We pay fees for them using Thirdweb sponsorship
Backend (Server):
Node.js + Express - simple server Prisma + PostgreSQL - for saving data (who owes what) We connect with Thirdweb API to check user wallets
Payment System:
PYUSD (PayPal stablecoin) - this is stable, $1 = $1 always Also support ETH and other tokens We use ERC-20 token transfers Support multiple chains: Ethereum Sepolia (testnet), Base, Arbitrum
Hacky/Cool Parts:
Contact Sync Problem:
Phone contacts have messy phone numbers (+91-999-888-7777 or 9998887777) We normalize ALL phone numbers (remove spaces, dashes, brackets) Match with database to find friends
Two Address Problem:
Smart wallet give two addresses - confuse! We always use EOA (admin account) for receiving money Use Smart Account for sending (because sponsored gas) This was TRICKY to figure out!
Auto-Login:
When app open, automatically login user No need click "connect wallet" every time Store auth in AsyncStorage (phone memory)
Gas Sponsorship:
User never see "gas fee" or "transaction cost" We pay everything using Thirdweb paymaster This make app feel like normal app, not crypto app!
Problems we faced:
Understanding admin account vs smart account (took long time!) Thirdweb API documentation sometimes confusing for beginners Making contacts sync work across different phones Testing payments on testnet (getting testnet tokens hard!)
What we learn:
Thirdweb make crypto SO MUCH EASIER Smart accounts are future of crypto UX Users don't care about "blockchain" - they just want app work!

