A complete marketplace for tokenizing physical goods as NFTs on Etherlink
Transform any physical item into a tradeable NFT with automatic IPFS storage, category-based collections, and seamless marketplace integration.
Click to watch the full demo of MeCuadra marketplace
- 🚀 One-Click NFT Creation - Upload image, add details, mint & list automatically
- 📱 Universal Wallet Support - Thirdweb v5 integration with multiple wallet options
- 🗂️ Smart Categories - ERC1155 collections organized by item type (Vehicles, Electronics, etc.)
- 💰 XTZ Native Trading - Built for Etherlink with Tezos integration
- 🔄 Real-time Updates - New NFTs appear instantly in the marketplace feed
- 🎨 Modern UI/UX - Clean, responsive interface with shadcn/ui components
# Install dependencies
pnpm install
# Set up environment
echo "NEXT_PUBLIC_THIRDWEB_CLIENT_ID=your_client_id" > .env.local
# Run development server
pnpm run dev
Open http://localhost:3000 and start creating NFTs! 🎉
- Connect your wallet (MetaMask, WalletConnect, or social login)
- Upload photos of your physical item
- Describe your asset with category, condition, and manufacturer
- Set Price in XTZ and click "Create & List NFT"
- Done! Your NFT is minted and automatically listed for sale
- Browse the marketplace feed with all available NFTs
- Filter by category, price range, or search by name
- Buy with one click using XTZ
- Own the NFT representing the physical asset
Frontend: Next.js 14 + TypeScript + Tailwind CSS
Blockchain: Thirdweb v5 SDK + ERC1155 Collections + MarketplaceV3
Storage: IPFS via Thirdweb Storage
Network: Etherlink Testnet (XTZ)
Contract | Address | Type |
---|---|---|
Main Marketplace | 0xd1f1Ddc...4c6e71ac1F75 |
MarketplaceV3 |
Vehicles Collection | 0xdC0F1Fa...ef4d2660c59 |
ERC1155 |
📝 Note: Additional category collections can be deployed as needed in
constants/addresses.ts
- Wallet connection with Thirdweb v5
- NFT creation with IPFS metadata upload
- ERC1155 minting with proper tokenId extraction
- Automatic marketplace approval & listing
- Real-time marketplace feed with filtering
- XTZ payment integration
- Responsive UI with loading states & error handling
- Proper TokenId Extraction: Correctly parses
TransferSingle
event logs to get real tokenId - IPFS Integration: Seamless image upload and metadata storage
- Marketplace Approval: Automatic
setApprovalForAll
before listing - Event-Driven Updates: Uses
waitForReceipt
for reliable transaction confirmation
NFTs not appearing? → Check the "Refresh" button or wait for auto-update (2 minutes)
Wallet issues? → Ensure you're on Etherlink Testnet with sufficient XTZ for gas
Contract errors? → Verify all addresses in constants/addresses.ts
are deployed correctly
Contributions welcome! Please feel free to submit a Pull Request.
MIT License - see LICENSE for details.
Built with ❤️ using Thirdweb v5 on Etherlink