# alchemy university Week 1 nft

By [Dawn88](https://paragraph.com/@dawn88) · 2022-11-22

---

Get in touch with alchemy through friends and create nft. This is a very interesting project. Learn it completely for free. If you like Web3, let's join together.

[https://www.alchemy.com/](https://www.alchemy.com/)

![cool iron man](https://storage.googleapis.com/papyrus_images/dc6c7155bb985d4894a7c116c00a2cd489870e4fdc544cef7a49686b6fd08f53.png)

cool iron man

opensea address

[https://testnets.opensea.io/assets/goerli/0x784f7f039cacc60b7518069594a41f7e1ae7433e/0](https://testnets.opensea.io/assets/goerli/0x784f7f039cacc60b7518069594a41f7e1ae7433e/0)

Contract deployment address

[https://goerli.etherscan.io/address/0xF8d0E7c5F3548da8Ed8E66098d7846a928519eE3](https://goerli.etherscan.io/address/0xF8d0E7c5F3548da8Ed8E66098d7846a928519eE3)

Contract code

    contract IronMan is ERC721, ERC721Enumerable, ERC721URIStorage, Ownable {
        using Counters for Counters.Counter;
    
        Counters.Counter private _tokenIdCounter;
        uint256 MAX_SUPPLY = 66000;
        uint256 MAX_NFT = 10;
        constructor() ERC721("iron Man", "pt") {}
    
        function safeMint(address to, string memory uri) public  {
            uint256 tokenId = _tokenIdCounter.current();
            require(_tokenIdCounter.current() <= MAX_SUPPLY, "I don't give you more");
            require(balanceOf(to) <= MAX_NFT, "The maximum holding quantity is 10");
            _tokenIdCounter.increment();
            _safeMint(to, tokenId);
            _setTokenURI(tokenId, uri);
        }
    
        // The following functions are overrides required by Solidity.
    
        function _beforeTokenTransfer(address from, address to, uint256 tokenId, uint256 batchSize)
            internal
            override(ERC721, ERC721Enumerable)
        {
            super._beforeTokenTransfer(from, to, tokenId, batchSize);
        }
    
        function _burn(uint256 tokenId) internal override(ERC721, ERC721URIStorage) {
            super._burn(tokenId);
        }
    
        function tokenURI(uint256 tokenId)
            public
            view
            override(ERC721, ERC721URIStorage)
            returns (string memory)
        {
            return super.tokenURI(tokenId);
        }
    
        function supportsInterface(bytes4 interfaceId)
            public
            view
            override(ERC721, ERC721Enumerable)
            returns (bool)
        {
            return super.supportsInterface(interfaceId);
        }
    }
    

Self introduction

Introduce myself I am Dawn who loves sports and loves music Wbe3 juniors join in learning because they like new things Before creating an nft, watch the official teacher's course twice. There are videos and texts. The course steps are clear. Then you will know what to do after you start creating. I completed it on November 22 today and took 4 hours. In the process of creating nft, I used a new tool Open Zeppelin Remix IPFS. If I open a fitness club in the future, use these tools to create nft for my members. It should be a good way to enter the club with nft. I am very excited when I think about it

---

*Originally published on [Dawn88](https://paragraph.com/@dawn88/alchemy-university-week-1-nft)*
