This full-stack decentralized application was developed as part of the Alchemy University Ethereum Developer Bootcamp. It implements a smart contract escrow system with a modern web interface, enhanced by Aave's yield-generating capabilities to earn interest on funds while in escrow.
The Escrow DApp allows users to:
- Create secure escrow transactions with customizable timelock periods
- Generate yield on locked funds through Aave lending pools
- Approve fund releases after the timelock expires
- Cancel escrow transactions (initiated by the creator)
- Initiate and resolve disputes between parties
- Track transaction status and generated yield
This project consists of two main components:
- Solidity contracts for the escrow system with Aave integration
- Testing suite using Hardhat and Viem
- Deployment scripts using Hardhat Ignition
- Next.js application with Tailwind CSS and shadcn/ui components
- Web3 integrations via RainbowKit, Wagmi, and Viem
- User interface for interacting with the smart contracts
The application is deployed on Sepolia testnet:
- Frontend: https://thecil-escrow-dapp.vercel.app/
- Smart Contract:
0x665dd99C20A84acD35D6108f911e64cc36bc5102
The application supports the following tokens on Aave v3 (Sepolia):
- DAI
- LINK
- USDC
- WBTC
- WETH
- USDT
- AAVE
- Smart Contract Security: Implemented best practices including reentrancy guards, access controls, and event emissions
- Yield Generation: Integration with Aave v3 protocol for generating yield on locked funds
- Dispute Resolution: Built-in mechanisms for handling and resolving disputes
- Modern UI/UX: Responsive design with animations and intuitive user flows
- Web3 Integration: Seamless wallet connection and transaction handling
- Node.js (v18 or higher)
- npm or yarn
- MetaMask or another Web3 wallet
-
Navigate to the solidity directory:
cd solidity
-
Install dependencies:
npm install
-
Run tests:
npx hardhat test
-
Deploy contracts (optional, already deployed on Sepolia):
npx hardhat ignition deploy ignition/modules/Escrow.ts --network sepolia --deployment-id sepolia-deployment
-
Navigate to the frontend directory:
cd frontend
-
Install dependencies:
npm install
-
Create a
.env.local
file with the following variables:NEXT_PUBLIC_WALLETCONNECT_ID=your_walletconnect_project_id NEXT_PUBLIC_ALCHEMY_RPC=your_alchemy_api_key
-
Run the development server:
npm run dev
-
Open http://localhost:3000 in your browser
- Make changes to smart contracts in the
solidity/contracts
directory - Test your changes with
npx hardhat test
- Update the frontend to integrate with your contract changes
- Test the full application flow locally
This project was created as the final assignment for the Ethereum Developer Bootcamp at Alchemy University. It demonstrates practical knowledge of:
- Solidity smart contract development
- DeFi protocol integration (Aave)
- Testing and deployment of smart contracts
- Building modern frontends for Web3 applications
- Managing wallet connections and transactions
- Multi-signature escrow transactions
- Integration with additional DeFi protocols
- Mobile application
- Support for additional networks
MIT
- Alchemy University for the education and inspiration
- Aave for their lending protocol
- Ethers.js and Viem for Ethereum interactions
- Next.js for the frontend framework
- RainbowKit for wallet connections