Splitt
Splitt decides what to pay when a client pays only part of an invoice. contracts/src/ProjectVault.sol keeps each project's USDC separate with createProject reserve minimums, maxPerPayment and maxPerDay policy, addCommitment obligations, deposit and attribute for incoming funds, and payBatch, which executes only with the owner's EIP-712 signature over authorizationDigest and emits PlanExecuted with the plan hash for replay protection; ProjectVaultV2.sol adds a payee-change delay. server/src/agent/planner.ts asks Claude via @anthropic-ai/sdk for a draft, checks it with validatePlan from @splitt/core and falls back to baselinePlan. server/src/circle/operator.ts submits signed batches through @circle-fin/developer-controlled-wallets with idempotent retries, and packages/core/src/cctp.ts (burnCalls, decodeCctp, checkCctpMessage) handles inbound CCTP deposits. The Next.js app in web/ covers vault deployment, a no-wallet demo and self-serve workspaces, with a public Arc testnet vault at 0x724c12bea7fab30e27a9b3f4d5581351ebc2c6c6.
I build stuff you don't see every day.
1 (Solo) — Harrie
Project payment workspace for partial client receipts, protected reserves and owner-authorized USDC payouts on Arc Testnet.