A decentralized NFT marketplace on the Algorand testnet where creators can mint, showcase, and distribute a wide range of NFTs including art, music, and standard digital collectibles.
- Multi-Type NFT Support: Mint art NFTs, music NFTs, and standard digital collectibles
- Purchasable & Non-Purchasable NFTs: Support for both tradeable assets and free collectibles
- Integrated Marketplace: Browse, buy, and sell NFTs seamlessly
- Portfolio Management: View and manage your NFT collection
- Secure Wallet Integration: Connect using Pera Wallet
- Low Fees: Built on Algorand with minimal transaction costs (~0.001 ALGO)
- Fast Transactions: 4.5-second finality
- React 18
- Tailwind CSS
- React Router
- Axios
- Pera Wallet Connect
- Algorand SDK
- Node.js
- Express.js
- Algorand SDK
- CORS
- PyTeal (Algorand Smart Contracts)
- Algorand TestNet
algomint/
├── backend/
│ ├── src/
│ │ ├── controllers/
│ │ │ └── nftController.js
│ │ ├── routes/
│ │ │ └── nftRoutes.js
│ │ └── services/
│ │ └── algorandService.js
│ ├── .env
│ ├── package.json
│ └── server.js
├── frontend/
│ ├── public/
│ │ └── index.html
│ ├── src/
│ │ ├── components/
│ │ │ ├── Header.js
│ │ │ ├── MintForm.js
│ │ │ └── NFTCard.js
│ │ ├── views/
│ │ │ ├── Home.js
│ │ │ ├── Marketplace.js
│ │ │ └── Portfolio.js
│ │ ├── App.js
│ │ ├── index.js
│ │ └── index.css
│ ├── .env
│ ├── package.json
│ └── tailwind.config.js
└── smart_contracts/
└── algomint_contract.py
- Node.js (v16 or higher)
- Python 3.7+ (for smart contract compilation)
- Algorand TestNet account
- Pera Wallet (mobile or browser extension)
- Navigate to the backend directory:
cd backend- Install dependencies:
npm install- Configure environment variables:
cp .env.example .envEdit .env file:
PORT=5000
ALGOD_SERVER=https://testnet-api.algonode.cloud
APP_ID=YOUR_APP_ID_AFTER_DEPLOYMENT
PLATFORM_WALLET=YOUR_PLATFORM_WALLET_ADDRESS
PLATFORM_FEE=5
- Start the backend server:
npm run dev- Navigate to the frontend directory:
cd frontend- Install dependencies:
npm install- Install Tailwind CSS:
npx tailwindcss init -p- Configure environment variables:
cp .env.example .envEdit .env file:
REACT_APP_API_URL=http://localhost:5000/api
REACT_APP_ALGOD_SERVER=https://testnet-api.algonode.cloud
REACT_APP_APP_ID=YOUR_APP_ID_AFTER_DEPLOYMENT
REACT_APP_NETWORK=testnet
- Start the development server:
npm startThe application will open at http://localhost:3000
- Install PyTeal:
pip install pyteal- Navigate to the smart contracts directory:
cd smart_contracts- Compile the contract:
python algomint_contract.pyThis generates approval.teal and clear.teal files.
- Deploy to Algorand TestNet using the Algorand SDK or
goalCLI:
# Example using goal
goal app create --creator YOUR_ADDRESS \
--approval-prog approval.teal \
--clear-prog clear.teal \
--global-byteslices 1 \
--global-ints 3 \
--local-byteslices 5 \
--local-ints 2- Update
APP_IDin both backend and frontend.envfiles with the deployed application ID.
- Connect Wallet: Click "Connect Wallet" and select Pera Wallet
- Mint NFT:
- Go to Home page
- Fill in the mint form
- Upload your file (image, audio, etc.)
- Choose NFT type (Art, Music, or Standard)
- Set as purchasable or non-purchasable
- If purchasable, set your price
- Click "Mint NFT" and sign the transaction
- Manage Portfolio: Visit the Portfolio page to view your created NFTs
- Connect Wallet: Connect your Pera Wallet
- Browse Marketplace: Explore available NFTs
- Filter & Search: Use filters to find specific types of NFTs
- Purchase NFT: Click "Buy Now" on any listed NFT and confirm the transaction
- View Collection: Check your Portfolio to see owned NFTs
POST /api/nfts/mint- Create mint transactionPOST /api/nfts/list- Create list transactionPOST /api/nfts/buy- Create buy transactionGET /api/nfts/details/:assetId- Get NFT detailsGET /api/nfts/account/:address- Get account NFTs
POST /api/nfts/submit- Submit signed transactionPOST /api/nfts/opt-in- Create opt-in transaction
GET /api/nfts/marketplace- Get marketplace listings
initialize- Initialize the marketplace contractmint_nft- Mint a new NFTlist_nft- List NFT for salebuy_nft- Purchase an NFTupdate_price- Update listing pricedelist_nft- Remove NFT from marketplace
Visit the Algorand TestNet Dispenser to fund your wallet with test ALGO.
- Mint a test NFT
- List it on the marketplace
- Use a second wallet to purchase it
- Verify transactions on Algorand TestNet Explorer
- Never commit
.envfiles to version control - Use strong wallet passwords
- Verify all transactions before signing
- This is a testnet application - do not use mainnet credentials
- Platform fees are set to 2.5% (250 basis points)
- Ensure Pera Wallet extension is installed
- Check that you're on the TestNet network
- Clear browser cache and reconnect
- Verify you have sufficient ALGO for fees
- Check that APP_ID is correctly configured
- Ensure wallet is opted into the application
- Verify backend server is running on port 5000
- Check CORS configuration
- Ensure API_URL in frontend .env matches backend URL
- IPFS integration for decentralized file storage
- Royalty system for secondary sales
- Auction functionality
- Collection creation
- Social features (likes, comments, follows)
- Mobile app using React Native
- Mainnet deployment
- Algorand Documentation
- PyTeal Documentation
- Pera Wallet
- Algorand TestNet Explorer
- Algorand TestNet Dispenser
MIT License
Contributions are welcome! Please feel free to submit a Pull Request.
For issues and questions, please open an issue on the GitHub repository.
Built with ❤️ on Algorand