This project was created mainly because I looked into block chain recently and had no idea what it was or how it worked, so I created this to learn some solidity and understand fundamentals.
Freelance and contract work often lacks trustless payment infrastructure. There is no way to prove payment agreements on-chain, clients can refuse to pay after work is delivered, manual payment splitting is error-prone, and there is no guaranteed refund if work isn't delivered. Centralized escrow services charge high fees and require trust.
SplitPay is a decentralized escrow protocol for Ethereum that enables trustless, multi-party payment agreements. Funds are locked in a smart contract with a customizable deadline, payments are split automatically to multiple recipients based on predefined percentages, and refunds can be executed if work is not delivered by the deadline. All agreements are provable and immutable on-chain. No intermediaries, no fees, fully transparent.
The SplitPaymentEscrow smart contract was developed and tested using the Remix IDE on the Remix virtual machine environment.
You can deploy and interact with the contract directly in Remix by copying the Solidity file from contracts/SplitPaymentEscrow.sol.
- Trustless escrow for freelance/contract work
- Automatic payment splitting to multiple recipients
- Refunds if work is not delivered by deadline
- On-chain proof of agreement and payment
- No intermediaries or platform fees (standard Ethereum gas fees apply)
- Solidity (smart contract)
- ethers.js (frontend contract interaction)
- Next.js 14 (React, TypeScript, Tailwind CSS)
- Sepolia Ethereum testnet
If using the live demo, you should have MetaMask downloaded and be on the Sepolia testnet. Ideally you have 3 or more accounts, each with SepoliaETH tokens so that you can functionally test the app. You can get free tokens at https://sepolia-faucet.pk910.de/.
Live demo: https://splitpay-escrow-pwqu-bbx53h5y2-rehanmollicks-projects.vercel.app/
Or run locally:
- Clone this repository
- Install dependencies:
npm install
- Run the local dev server:
npm run dev
- Connect MetaMask (Sepolia network) and interact with the app at
http://localhost:3000
- Create a new escrow contract by specifying recipients, their shares, and a deadline.
- Deposit ETH into the contract as the buyer.
- Confirm delivery to release funds to recipients, or refund if the deadline passes without delivery.
- Manage contracts by pasting the contract address on the manage page.
MIT