Launching an NFT collection

  • Buburuza supports scalable NFT deployment with low BUBU fees and full EVM compatibility. Follow these steps to create and deploy your first NFT.

    1. Write Your ERC-721 Smart Contract

    Using OpenZeppelin’s ERC-721 implementation:

    // SPDX-License-Identifier: MIT
    pragma solidity ^0.8.9;
    
    import "@openzeppelin/contracts/token/ERC721/ERC721.sol";
    import "@openzeppelin/contracts/access/Ownable.sol";
    
    contract BubNFT is ERC721, Ownable {
        uint256 public nextTokenId;
    
        constructor() ERC721("BuburuzaNFT", "BUBNFT") {}
    
        function mint(address to) external onlyOwner {
            _safeMint(to, nextTokenId);
            nextTokenId++;
        }
    }

    Explanation:

    • BubNFT is the NFT contract with name "BuburuzaNFT" and symbol "BUBNFT".

    • mint function allows the contract owner to mint NFTs to any address.

    • nextTokenId keeps track of sequential token IDs.

    2. Set Up Your Development Environment

    You’ll need:

    • Remix IDE (https://remix.ethereum.org)

    • MetaMask wallet connected to Buburuza Testnet

    • Test BUBU tokens to pay for gas fees

    3. Compile the Contract

    1. Open Remix → Create a new file BubNFT.sol

    2. Paste the contract code above

    3. Go to Solidity Compiler tab → select 0.8.9 or above → Compile

    4. Deploy the Contract

    1. Go to Deploy & Run Transactions tab in Remix

    2. Environment → Injected Web3 (connects to MetaMask)

    3. Ensure MetaMask is on Buburuza Testnet

    4. Click Deploy → confirm transaction in MetaMask

    5. After deployment, Remix will show the contract address

    5. Mint Your First NFT

    1. In Remix, under Deployed Contracts, expand BubNFT

    2. Call mint(<recipient_address>) → transaction confirmed in MetaMask

    3. NFT is minted to the recipient address; token ID increments automatically

    6. Verify and Interact

    • Verify the contract on Buburuza Explorer

    • Interact via Read Contract / Write Contract tabs

    • View NFT ownership, metadata, and transactions on-chain

    Best Practices

    • Use base URI for metadata if deploying multiple NFTs

    • For public minting, add payment logic (payable function)

    • Integrate with IPFS or decentralized storage for NFT assets

    • Test thoroughly on Buburuza Testnet before mainnet deployment

Last updated