HTML NFT for opensea

Hello, Im trying to make a html NFT, i’ve done it before like here - , but this time it keeps going wrong and im not sure why, was hoping someone more experienced could find the issue.

The latest one is blank -

It might not need all the extentions im not sure, i want to make 10, each with their own preview image, html and json. maybe I’ve got the json format wrong, just lost

my remix code -

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.2;

import "@openzeppelin/contracts/token/ERC721/ERC721.sol";
import "@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol";
import "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol";
import "@openzeppelin/contracts/security/Pausable.sol";
import "@openzeppelin/contracts/access/Ownable.sol";
import "@openzeppelin/contracts/token/ERC721/extensions/ERC721Burnable.sol";
import "@openzeppelin/contracts/utils/Counters.sol";

contract AurochNFT is ERC721, ERC721Enumerable, ERC721URIStorage, Pausable, Ownable, ERC721Burnable {
    using Counters for Counters.Counter;

    Counters.Counter public _tokenIdCounter;

    constructor() ERC721("Auroch NFT", "AURV1") {}

    function _baseURI() internal pure override returns (string memory) {
        return "";

    function pause() public onlyOwner {

    function unpause() public onlyOwner {

    function safeMint(address to, string memory uri) public onlyOwner {
        uint256 tokenId = _tokenIdCounter.current();
        _safeMint(to, tokenId);
        _setTokenURI(tokenId, uri);

    function _beforeTokenTransfer(address from, address to, uint256 tokenId)
        override(ERC721, ERC721Enumerable)
        super._beforeTokenTransfer(from, to, tokenId);

    // The following functions are overrides required by Solidity.

    function _burn(uint256 tokenId) internal override(ERC721, ERC721URIStorage) {

    function tokenURI(uint256 tokenId)
        override(ERC721, ERC721URIStorage)
        returns (string memory)
        return super.tokenURI(tokenId);

    function supportsInterface(bytes4 interfaceId)
        override(ERC721, ERC721Enumerable)
        returns (bool)
        return super.supportsInterface(interfaceId);

Also once i find out where i went wrong ill make a tutorial so i don’t forget and other people can learn a new method of webdesign

thank to anyone taking the time to read the code :slight_smile:

I can’t find the tutorial i was using either

this is the project if anyone is interested,

i can remunerate to look at the code if possible

kind regards, James1