Skip to content

thomasfevre/chill-split

Repository files navigation

Chill'Split 🧾💸

A Web3-powered group expense tracker – built to feel Web2.

Chill'Split lets friends and groups split expenses in a transparent, trustless, and automated way — powered by smart contracts, but designed for everyday users. It abstracts away blockchain complexity using modern wallet tech, gas sponsorship, and automatic reimbursements.


🧭 Overview

❓ What Is Chill'Split?

Chill'Split is the next evolution of group expense apps (like Tricount or Splitwise), fully decentralized. Users can:

  • Create or join a group via code
  • Add expenses
  • Validate or reject expenses on-chain
  • Settle balances automatically, using USDC (only USDC for now)
  • Reimburse transparently — without needing to "trust" anyone

Despite being on-chain, Chill'Split is designed to feel like a regular web app — no confusing wallet popups or crypto jargon (except for the on-ramp process unfortunately).


🧪 Key Features

  • 🏗 Group-specific smart contracts: Each group gets its own deployed contract to track members, expenses, validations, and balances.
  • 🔐 Fully on-chain logic: Every validation, approval, and settlement happens on the blockchain.
  • 🚫 No manual signatures: Using Dynamic.xyz, all wallet interactions are abstracted (Gasless txs, EIP-7702, EIP-2612).
  • 🔄 Gas sponsored: No user has to pay transaction fees — even for on-chain calls ( txs are sponsored in server actions).
  • 💸 On-ramping support: Wallets can be funded with fiat using Transak, built into the UI (on top of the current dynamic on-ramp providers)*
  • 📱 Mobile-first experience: Tailored UI and authentication for users unfamiliar with Web3.

*Transak was added on top of dynamic embedded on-ramp service, because I wanted to have the quickest on-ramp workflow possible for the end user

⚙️ Tech Stack

🧱 Frameworks & Libraries

🔐 Wallet & Auth

  • Dynamic.xyz – Wallet abstraction and authentication (supports social login, signature hiding)
  • EIP-7702 - Enable gasless transactions sponsored in server actions
  • EIP-2612 & Permit – For signature-free USDC approvals

🧾 Payments & Onramping

  • Transak – Fiat-to-crypto on-ramp integrated into the onboarding flow
  • For the off-ramp process, users can always use the embedded Dynamic workflow (a nice future update would be to add a simpler workflow here)



🔗 Smart Contract Architecture

  • Factory Contract – Deploys and tracks individual group contracts.
  • Group Contract – Manages:
    • Participants & pseudonyms
    • Expenses and validator logic
    • Settlement and balance updates
    • Reimbursements and payout flow

Every group action (add expense, validate, close, reimburse) is executed on-chain. Users can verify everything on block explorers — no hidden balances or calculations.



🚀 Getting Started

# 1. Clone the repo
git clone https://github.com/your-username/chillsplit.git

# 2. Install dependencies
npm install

# 3. Set up environment variables (.env.local)
# Include Dynamic.xyz keys, Transak API, RPCs, etc.

# 4. Run the dev server
npm run dev

📦 Build & Deploy


For production:
npm run build
npm run start



💬 Contact

Built with ❤️ by Thomas FEVRE
Feel free to open issues or suggestions!

TODO

  • Show user USDC balance (even if embedded wallet has it)
  • Simulate contract before actually write in server actions to avoid gas waste
  • handle the off-ramp with transak if simpler & quicker than embedded wallet options

About

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors