A decentralized skill marketplace built on Ethereum, enabling users to buy and sell services using cryptocurrency with built-in escrow, dispute resolution, and satisfaction guarantees.
- Skill Marketplace: Browse and list skills with detailed profiles
- Web3 Payments: Support for ETH and multiple ERC20 tokens (USDC, DAI, LINK, USDT)
- Escrow System: Secure payment escrow with automatic release
- Dispute Resolution: Built-in dispute system with arbitration
- Satisfaction Guarantee: Money-back guarantee for unsatisfied customers
- Rating System: Comprehensive rating and review system
- Provider Verification: Reputation-based provider verification
- Smart Contracts: Solidity contracts with comprehensive security features
- Frontend: React + TypeScript + Vite with modern UI
- Database: Supabase with real-time capabilities
- Authentication: Web3 wallet integration (MetaMask, WalletConnect)
- Storage: Decentralized file storage for images
- Responsive Design: Mobile-first responsive design
- Frontend: React 18, TypeScript, Vite, Tailwind CSS, shadcn/ui
- Blockchain: Ethereum (Sepolia testnet), Hardhat, Viem, Wagmi
- Database: Supabase (PostgreSQL)
- Storage: Supabase Storage
- Authentication: RainbowKit, Web3 wallets
- Deployment: Vercel/Netlify ready
- Node.js 18+
- npm/yarn/bun
- MetaMask or other Web3 wallet
- Supabase account
- Ethereum testnet (Sepolia) for testing
git clone https://github.com/your-username/skillswap-dao.git
cd skillswap-dao
npm installCreate a .env file in the root directory:
# Blockchain Configuration
SEPOLIA_RPC_URL=https://sepolia.infura.io/v3/YOUR_INFURA_PROJECT_ID
PRIVATE_KEY=your_private_key_here
# Supabase Configuration
VITE_SUPABASE_URL=https://your-project.supabase.co
VITE_SUPABASE_ANON_KEY=your_supabase_anon_key
# Contract Addresses (will be updated after deployment)
VITE_SKILL_EXCHANGE_ADDRESS=0x0000000000000000000000000000000000000000
# App Configuration
VITE_APP_NAME=SkillSwap DAO
VITE_APP_URL=http://localhost:5173# Deploy to Sepolia testnet
npx hardhat run scripts/deploy.cjs --network sepolia
# Or deploy locally for testing
npx hardhat run scripts/deploy.cjs --network localhost# Setup Supabase database and storage
node scripts/setup-database.js
# Optional: Create sample data
CREATE_SAMPLE_DATA=true node scripts/setup-database.jsnpm run devVisit http://localhost:5173 to see the application.
- Get Testnet ETH: Use a faucet to get Sepolia ETH
- Configure RPC: Set up your Infura/Alchemy RPC URL
- Deploy Contracts: Run the deployment script
- Verify Contracts: Contracts are automatically verified on Etherscan
- Create Project: Create a new Supabase project
- Get Credentials: Copy your project URL and anon key
- Run Setup Script: Execute the database setup script
- Configure Storage: Storage buckets are created automatically
- Environment Variables: Set all required environment variables
- Contract Address: Update with deployed contract address
- Build & Deploy: Ready for production deployment
skillswap-dao/
βββ contracts/ # Smart contracts
β βββ SkillExchange.sol # Main marketplace contract
β βββ Lock.sol # Example contract
βββ src/
β βββ components/ # React components
β β βββ ui/ # shadcn/ui components
β β βββ SkillCard.tsx # Skill display component
β β βββ PaymentProcessor.tsx # Payment handling
β β βββ ...
β βββ pages/ # Page components
β β βββ Marketplace.tsx # Skill marketplace
β β βββ Dashboard.tsx # User dashboard
β β βββ ...
β βββ lib/ # Utilities and configurations
β β βββ SkillExchange.ts # Contract configuration
β β βββ paymentUtils.ts # Payment utilities
β βββ integrations/ # External integrations
β βββ supabase/ # Supabase client
βββ supabase/ # Database schema and migrations
βββ scripts/ # Deployment and setup scripts
βββ public/ # Static assets
- Reentrancy Protection: All contract functions protected
- Access Control: Role-based access control
- Input Validation: Comprehensive input validation
- Escrow System: Secure payment escrow
- Dispute Resolution: Fair dispute handling
- Rate Limiting: Protection against spam
- Gas Optimization: Efficient contract design
- ETH: Native Ethereum
- USDC: USD Coin (6 decimals)
- DAI: Dai Stablecoin (18 decimals)
- LINK: Chainlink (18 decimals)
- USDT: Tether USD (6 decimals)
- User selects a service and payment token
- Payment is held in escrow
- Provider completes the service
- User verifies completion
- Payment is automatically released after dispute window
- Optional: User can release payment early
- Modern Design: Clean, professional interface
- Responsive: Mobile-first responsive design
- Dark Mode: Built-in dark mode support
- Animations: Smooth transitions and micro-interactions
- Accessibility: WCAG compliant design
- Loading States: Comprehensive loading indicators
- Error Handling: User-friendly error messages
npm run build
vercel --prodnpm run build
netlify deploy --prod --dir=dist# Deploy to mainnet (after thorough testing)
npx hardhat run scripts/deploy.cjs --network mainnet# Run smart contract tests
npm run test
# Run frontend tests
npm run test:frontend
# Run all tests with coverage
npm run test:coverage- Contract Events: All important events are logged
- Transaction Tracking: Complete transaction history
- Error Monitoring: Comprehensive error tracking
- Performance Metrics: Application performance monitoring
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests for new features
- Submit a pull request
This project is licensed under the MIT License - see the LICENSE file for details.
- Documentation: Check the docs folder
- Issues: Report bugs on GitHub Issues
- Discussions: Join our community discussions
- Email: support@skillswap-dao.com
- β Core marketplace functionality
- β Payment system
- β Dispute resolution
- β Basic UI/UX
- π Advanced search and filtering
- π Chat/messaging system
- π Mobile app
- π Advanced analytics
- π AI-powered matching
- π Multi-chain support
- π DAO governance
- π Advanced reputation system
Built with β€οΈ by the SkillSwap DAO team