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 read our Contributing Guidelines before submitting a Pull Request.
For discussions, questions, or onboarding help, join us on Discord:
👉 Discord: <DISCORD_LINK>(https://discord.gg/VcbbKWC9Xc)
If you need help or have questions:
- Open an issue on the GitHub repository
- Join our community on Discord for discussions and contributor support.
This PR improves contributor onboarding and communication by:
- Adding the official Discord link to the Contributing Guidelines and README
- Clarifying how contributors should use Discord, GitHub Issues, and Discussions
- Improving wording and structure in the Community & Communication section
- Updating the Code of Conduct contact section for better clarity
Discord provides a faster and more collaborative environment for contributors. This change helps new contributors know where to ask questions and engage with the community while ensuring all interactions follow the Code of Conduct.
- Documentation updated
- No breaking changes
- Follows project guidelines
Built with ❤️ on Algorand