SplitBot is an autonomous financial co-pilot that lives directly inside your group chats. It transforms conversational context into trustless financial execution. By leveraging multimodal AI, SplitBot listens to voice notes and text messages to maintain a real-time shared ledger for group trips, high-intensity events, or shared living.
Unlike traditional trackers, SplitBot is a Sovereign Agent (ERC-8004) that manages a decentralized escrow pool. It uses Lit Protocol TEE to ensure that private keys are never held by a single party, enabling the agent to autonomously calculate debts, execute payouts via MiniPay, and programmatically enforce fairness through deposit slashing.
This project doesn't just build a bot; it implements the complete decentralized agent infrastructure required for the next generation of on-chain economy.
TripEscrow.sol.graph TD
A[Human Users] -->|Deposit USDC| B(TripEscrow.sol)
A -->|Telegram Voice/Text| C[SplitBot Agent #222]
C -->|Secure Session Sigs| L[Lit Protocol TEE]
L -->|Threshold Sign| B
C -->|P2P Gossip| G[libp2p Agent Mesh]
C -->|Encrypted Memory| D[(AgentVault IPFS)]
B -->|Transfers USDC| E[Payee Wallet]
B -.->|If Default| S[Slashing Protocol]
The TripEscrow.sol contract manages group funds with integrated agent permissions.
| Contract | Network | Address |
|---|---|---|
| TripEscrow | Celo Sepolia | 0x79cB34E300D37f3B65852338Ac1f3a0C1ED6Ca29 |
| Agent Identity | Celo Sepolia | Agent ID #222 (ERC-8004) |
The TripEscrow.sol contract serves as the decentralized settlement layer for all group financial interactions. It acts as a non-custodial vault where funds are managed by the SplitBot Agent's verifiable logic.
graph TD
User(("User"))
Agent["SplitBot Agent"]
Contract{{"TripEscrow.sol<br/>(Celo Sepolia)"}}
subgraph "Main Functions"
User -->|"deposit() / USDC"| D["USDC Escrow Pool"]
Agent -->|"settleExpense()"| S["Reimburse Payee"]
Agent -->|"slashUser()"| SL["Penalize Defaulter"]
Agent -->|"refundUser()"| RF["Return Funds"]
end
subgraph "Edge Cases & Security Guards"
D -.-> E1{"Allowance == 0?"}
E1 -->|"No"| FAIL1["Revert: Transfer Failed"]
S -.-> E2{"TotalPool < Amount?"}
E2 -->|"Yes"| FAIL2["Revert: Insufficient Pool"]
S -.-> E3{"Amount > $500?"}
E3 -->|"Yes"| FAIL3["Revert: Daily Cap Exceeded"]
SL -.-> E4{"UserDeposit < Amount?"}
E4 -->|"Yes"| FAIL4["Revert: Insufficient Deposit"]
RF -.-> E5{"UserDeposit < Amount?"}
E5 -->|"Yes"| FAIL5["Revert: Insufficient Deposit"]
Contract -.-> E6{"isPaused?"}
E6 -->|"Yes"| FAIL6["Revert: Pausable"]
end
style D fill:#f9f,stroke:#333
style FAIL1 fill:#ff9999,stroke:#b22
style FAIL2 fill:#ff9999,stroke:#b22
style FAIL3 fill:#ff9999,stroke:#b22
style FAIL4 fill:#ff9999,stroke:#b22
style FAIL5 fill:#ff9999,stroke:#b22
style FAIL6 fill:#ff9999,stroke:#b22
slashUser(). This moves the offender's deposit into the collective pool for redistribution, programmatically enforcing social contracts.Imagine three friendsโAlice, Bob, and Charlieโon a 3-day trip to Bali.
TripEscrow at the start of the trip. The pool now contains 300 USDC./settle.settleExpense(Alice, 100 USDC).SplitBot is designed to be flexible for different group trust levels. It supports two distinct settlement strategies:
Direct P2P Settlement (Demo Mode):
Trustless Escrow Pooling (Hardcore Mode):
TripEscrow.sol contract upfront.settleExpense() via Lit Protocol TEE to reimburse creditors from the pool.SplitBot doesn't just log numbers; it builds a Verifiable Reputation Score for every user.
AgentVault is the "Persistent Brain" of the SplitBot. It ensures the Agent has perfect memory across restarts while maintaining absolute privacy.
| Layer | Technology | Purpose |
|---|---|---|
| Privacy | Lit Protocol (TEE) | Encrypts the Agent's state (Transactions/Registry) using Threshold Cryptography. Only the Agent's logic can see the plain text. |
| Storage | Pinata / IPFS | Provides a decentralized, immutable home for the encrypted memory. |
| Economic Barrier | Thirdweb x402 | Implements a tiny micropayment (USDC) for every "Memory Save" to prevent spam and fund the Agent's operations. |
| AI Processing | Gemini 1.5 Flash | Interrogates the recovered memory to provide conversational responses and dynamic balance tracking. |
The Workflow:
Bot Saves State $\rightarrow$ 2. Lit Action Encrypts String $\rightarrow$ 3. Thirdweb x402 Micropayment $\rightarrow$ 4. Pinata Pins JSON $\rightarrow$ 5. CID Returned.Located in apps/splitbot-agent.
# Register your wallet first in Telegram!
/register <YourCeloAddress>
# Talk to the Agent
"Hey SplitBot, I paid 80 for the rental car." (Text or Voice)
# View History & Dynamic Balances
/history
# Settle
/settle
0xaAf16AD8a1258A98ed77A5129dc6A8813924Ad3CToday, group travel and shared expenses are fundamentally broken.
Spreadsheet Fatigue: People spend more time manually logging costs than enjoying their trips.
Social Trust Friction: Relying on friends to "remember" to pay often leads to awkward reminders and uncollected debts.
Manual Execution: Sending dozens of individual P2P payments at the end of a trip is error-prone and tedious.
Data Fragmentation: Financial history is scattered across apps, bank statements, and chat logs, with no verifiable source of truth.
โ
The Solution
SplitBot turns group conversation into autonomous financial coordination.
Multimodal Logging: The AI understands natural language. Just say, "I paid $80 for the car," and the shared ledger updates instantly.
Trustless On-Chain Escrow: Users deposit USDC into the TripEscrow contract at the start. Funds are managed strictly by the Agent's logic, not the developer.
Agentic Settlement: With one command (/settle), the Agent verifies debts across the group and executes all payouts simultaneously.
Programmable Fairness: If a user defaults or "ghosts," the system can slash their initial deposit to cover the missing liquidity, ensuring no one is left out of pocket.
Persistent Reputation: Powered by AgentVault, every interaction builds a verifiable on-chain reputation for both the user and the agent, moving trust from the social layer to the protocol layer.
x402 micropayments for persistent agentic data storage
Want to grow through just grant funding
India
nan