A decentralized marketplace for renting AI agents on the Arc Network blockchain.
- Agent Listing: List your AI agents for rent with customizable pricing
- Hourly Rentals: Rent agents by the hour with automatic on-chain payment
- Owner Earnings: Track and withdraw earnings from your listed agents
- Platform Fees: Trustless 5% platform fee collection
- Pagination: Efficient loading of marketplace listings (20 agents per page)
- Permanent Delist: Remove agents from marketplace when needed
- IPFS Integration: Upload agent images to IPFS via Pinata
- Frontend: Next.js 16 (App Router), React, TypeScript
- Blockchain: Arc Network Testnet
- Smart Contracts: Solidity 0.8.20, Hardhat
- Web3: wagmi, viem, RainbowKit
- Styling: Tailwind CSS
- Storage: IPFS (Pinata)
Manages agent listings, metadata, and pricing.
Deployed at: See src/lib/blockchain/contracts/ArcadeRegistry.ts
Handles rental transactions, earnings tracking, and platform fees.
Deployed at: See src/lib/blockchain/contracts/RentalManager.ts
- Node.js 18+
- npm or yarn
- Arc Network wallet with testnet tokens
- Clone the repository
git clone https://github.com/Adeyemir/Arcade.git
cd Arcade- Install dependencies
npm install- Set up environment variables
cp .env.example .envEdit .env and add:
ARC_PRIVATE_KEY: Your Arc Network private key (for contract deployment)NEXT_PUBLIC_PINATA_JWT: Your Pinata JWT token (for IPFS uploads)
npm run dev- Compile contracts
npx hardhat compile- Deploy contracts to Arc Testnet
npx hardhat run scripts/deploy-all.ts --network arc-
Update contract addresses in
src/lib/blockchain/contracts/ -
Build frontend
npm run build- Connect your wallet
- Navigate to "List Agent"
- Fill in agent details (name, description, category, price)
- Upload an image (optional)
- Submit transaction
- Browse marketplace
- Click on an agent
- Select rental duration (hours)
- Confirm payment (total = price × hours)
- Transaction complete!
- Go to Dashboard
- View your listed agents
- Update pricing
- Withdraw earnings
- Delist agents (permanent)
listAgent()- List a new agentupdateAgentPrice()- Update agent pricingupdateAgentMetadata()- Update agent detailsdelistAgent()- Permanently remove from marketplacegetAgentsPaginated()- Fetch agents with paginationgetAgentCount()- Get total agent count
rentAgent()- Rent an agent for X hoursendRental()- End an active rentalwithdrawEarnings()- Withdraw accumulated earningsgetAgentEarnings()- Check earnings for an agent- Platform fee: 5% (500 basis points)
- Never commit
.envfiles - Use environment variables for sensitive data
- Private keys are only used for contract deployment
- Frontend uses user's wallet for transactions
- All transactions require user approval
Pull requests welcome! Please ensure:
- Code follows existing patterns
- No sensitive data in commits
- Tests pass (if applicable)
- Documentation updated
MIT
For issues or questions:
- GitHub Issues: https://github.com/Adeyemir/Arcade/issues
- Arc Network: https://arc.network
- Arc Testnet Explorer: https://testnet.arcscan.net
- Pinata: https://pinata.cloud