SplitChain

Split expenses with crypto friends on any chain. Settle in one click.

SplitChain

Created At

HackMoney 2026

Winner of

ENS

ENS - Integrate ENS

Prize Pool

Project Description

Splitting expenses with crypto friends is a mess. Everyone's on a different chain — one friend is on Arbitrum, another on Polygon, someone else on Base.

And unlike apps like Splitwise, you can't just keep adding expenses on-chain because every update would require a transaction, which means gas fees every single time. Add 10 expenses? Pay gas 10 times. That's not practical.

SplitChain fixes both problems.

We use Yellow Network state channels to track expenses off-chain. Add as many expenses as you want — it's instant and completely free. No wallet popups, no gas, no waiting. The blockchain only gets involved when you actually settle up.

When it's time to pay, just click settle. Your friend is on Optimism but you want money on Arbitrum? LI.FI finds the best bridge route and handles it in one click.

Add friends by their ENS name instead of copying wallet addresses. The app does the math, simplifies who owes who, and lets you settle across any chain.

It's Splitwise for crypto.

How it's Made

SplitChain is built with Next.js and React, using TypeScript throughout.

For authentication, we use @Privy it lets users connect with MetaMask or just email. Email users get an embedded wallet automatically, so non-crypto friends can join without dealing with seed phrases.

The core of the app runs on @Yellow Network. We use the @erc7824/nitrolite SDK to create state channels when a group is formed. Every expense is a signed message sent through this channel, no on-chain transaction needed. This is how we get instant, gasless expense tracking. The state channel keeps everyone in sync through WebSocket connections to Yellow's ClearNode.

For settlements, we integrated the @LI.FI SDK. When someone needs to pay across chains, LI.FI queries 20+ bridges and DEXs to find the optimal route. User signs once, and LI.FI handles the rest, whether it's Stargate, Hop, or whatever works best for that specific transfer. Which improves the UX.

@ENS resolution is handled through Viem with Alchemy RPC. Users add friends by typing "vitalik.eth" instead of pasting addresses. We resolve names and pull avatars automatically.

@Firebase handles persistence as a backup layer. If the state channel disconnects, the app falls back to database sync so nothing gets lost.

Zustand manages client state, and Tailwind handles the UI.

background image mobile

Join the mailing list

Get the latest news and updates

SplitChain | ETHGlobal