A secure, decentralized escrow application built on Monad Testnet using React, TypeScript, and ethers.js.
The Monad Escrow Service provides a trustless way to conduct transactions between parties by leveraging smart contracts on the Monad blockchain. The application allows users to:
- Create escrow contracts as buyers
- Receive funds as sellers
- Arbitrate disputes as third parties
- View and manage escrow contracts
- Track transaction statuses in real-time
- Contract verification before transactions
- Address validation and verification
- Rate limiting protection
- Security notices and warnings
- Network validation
- Secure transaction handling
The escrow smart contract is deployed on Monad Testnet at:
0x44f703203A65b6b11ea3b4540cC30337F0630927
Source code: GitHub - BluOwn/monadescrow
- Wallet Connection: MetaMask integration with address display and network detection
- Escrow Creation: Create new escrow agreements with sellers and arbiters
- Escrow Management: View, manage, and take actions on escrows
- Dispute Resolution: Raise and resolve disputes through arbiters
- Dark Mode: Toggle between light and dark themes
- Responsive Design: Works on desktop and mobile devices
- Loading States: Skeleton loaders and progress indicators
- Error Handling: Comprehensive error handling and user feedback
- Frontend: React 19, TypeScript, Bootstrap 5, React Bootstrap
- Blockchain: ethers.js 6, Monad Testnet
- Build Tool: Vite 6
- Testing: Vitest, React Testing Library
- Styling: CSS with dark mode support
- Linting: ESLint with TypeScript support
src/
├── assets/ # Static assets like images
├── components/ # React components
├── constants/ # Contract ABIs and constants
├── contexts/ # React contexts (e.g., ThemeContext)
├── hooks/ # Custom React hooks
├── types/ # TypeScript type definitions
├── utils/ # Utility functions
├── App.tsx # Main application component
├── main.tsx # Application entry point
├── index.css # Global styles
├── App.css # Component-specific styles
├── FullDarkMode.css # Dark mode styles
└── Responsive.css # Responsive design styles
- Node.js 18+ and npm/yarn
- MetaMask browser extension
- Monad Testnet configured in MetaMask
-
Clone the repository:
git clone https://github.com/BluOwn/monadescrow.git cd monadescrow -
Install dependencies:
npm install -
Start the development server:
npm run dev -
Open http://localhost:3000 in your browser
npm run build
The build artifacts will be in the build directory.
This application is designed for Monad Testnet only. It's not suitable for mainnet usage with real funds. To use the application:
- Connect your MetaMask wallet
- Ensure you're on Monad Testnet (Chain ID: 10143)
- Have some testnet MON in your wallet
- Create or interact with escrow contracts
- Multi-wallet support (WalletConnect)
- Transaction history
- Notifications for escrow status changes
- Time-based escrow release
- Multi-signature escrow support
- NFT escrow support
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
This is an experimental application on a testnet blockchain. Do not use for production purposes or with real assets. The developers are not responsible for any loss of funds.
Developer: @Oprimedev
Project Link: https://github.com/BluOwn/monadescrowts
Project Website: testnet.monadescrow.xyz
