RoboPunks is an ERC-721 NFT collection deployed on Ethereum. The collection features 1,000 unique robot-themed collectibles with a minting price of 0.02 ETH each. Users can mint up to 3 NFTs per wallet when public minting is enabled.
- Blockchain: Ethereum
- Smart Contract: Solidity ^0.8.24
- Frontend: React.js & tailwindCss
- Contract Libraries: OpenZeppelin
- Web3 Integration: ethers.js/web3.js
- Mint up to 3 unique RoboPunk NFTs per wallet
- Fixed supply of 1,000 NFTs
- Mint price: 0.02 ETH per NFT
- Owner-controlled public minting switch
- Secure withdrawal mechanism to designated wallet
The RoboPunksNFT contract is a standard ERC-721 implementation with additional functionality:
- Minting Control: Owner can enable/disable public minting
- Supply Management: Hard cap of 1,000 NFTs
- Per-wallet Limits: Maximum 3 NFTs per wallet address
- Metadata Management: Updateable base URI for token metadata
- Fund Security: Withdrawals only possible to a designated wallet
- Node.js and npm installed
- MetaMask or another Web3 wallet
- Some ETH for minting and gas fees
-
Clone the repository:
git clone https://github.com/yourusername/RoboPunksNFT.git cd RoboPunksNFT -
Install dependencies:
npm install
-
Start the development server:
npm start
- Connect your wallet using the "Connect Wallet" button
- If public minting is enabled, the mint button will be active
- Select the quantity you wish to mint (up to 3)
- Confirm the transaction in your wallet
- Once confirmed, your NFTs will appear in your Mint Page
To deploy and manage the contract:
- Deploy the contract to your chosen Ethereum network
- Call
setIsPublicMintEnabled(true)to enable minting - Set the base token URI with
setBaseTokenUri("https://your-metadata-server.com/tokens/") - Optionally set a different withdrawal wallet with
setWithdrawWallet(address) - Use
withdraw()to transfer collected ETH to the designated wallet
# Install Hardhat for local blockchain development
npm install --save-dev hardhat
# Start local blockchain
npx hardhat node
# Deploy contract to local blockchain
npx hardhat run scripts/deploy.js --network localhost
# Run tests
npx hardhat testContributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the UNLICENSED License - see the LICENSE file for details.
- Built with OpenZeppelin contracts
- Inspired by the NFT community
For questions or support, please open an issue on this repository.