Stats
            
                Public Functions
                21
            
            
                Event Types
                4
            
            
                Code Size
                137,076 bytes
            
         
     
 
         
            
                
    
        Events (4)
        keyboard_arrow_up
    
    
        
            
                
                    
                        
                            Approval
                                Event
                            
                            
                                Parameters
            
                        
                            help
                            
                                                        Event parameters list the data that an event contains.
            
                            
                        
                                    
                            
                                
                                    
                                        | owner | 
                                        
                        
                            address  help
                            
                                The type of this value is address, which means it stores an Ethereum address, such as a wallet address.
                            
                         | 
                                    
                                    
                                        | approved | 
                                        
                        
                            address  help
                            
                                The type of this value is address, which means it stores an Ethereum address, such as a wallet address.
                            
                         | 
                                    
                                    
                                        | tokenId | 
                                        
                        
                            uint256  help
                            
                                The type of this value is uint, which stands for unsigned integer. Integer means it's a whole number (such as 1, 12, 52) without fractions or decimals. Unsigned means it can't have a negative or positive sign, so it's always a positive number.
                            
                         | 
                                    
                                
                            
                         
                     
                 
                
                    
                        
                            ApprovalForAll
                                Event
                            
                            
                                Parameters
            
                        
                            help
                            
                                                        Event parameters list the data that an event contains.
            
                            
                        
                                    
                            
                                
                                    
                                        | owner | 
                                        
                        
                            address  help
                            
                                The type of this value is address, which means it stores an Ethereum address, such as a wallet address.
                            
                         | 
                                    
                                    
                                        | operator | 
                                        
                        
                            address  help
                            
                                The type of this value is address, which means it stores an Ethereum address, such as a wallet address.
                            
                         | 
                                    
                                    
                                        | approved | 
                                        
                        
                            bool  help
                            
                                The type of this value is other.
                            
                         | 
                                    
                                
                            
                         
                     
                 
                
                    
                        
                            OwnershipTransferred
                                Event
                            
                            
                                Parameters
            
                        
                            help
                            
                                                        Event parameters list the data that an event contains.
            
                            
                        
                                    
                            
                                
                                    
                                        | previousOwner | 
                                        
                        
                            address  help
                            
                                The type of this value is address, which means it stores an Ethereum address, such as a wallet address.
                            
                         | 
                                    
                                    
                                        | newOwner | 
                                        
                        
                            address  help
                            
                                The type of this value is address, which means it stores an Ethereum address, such as a wallet address.
                            
                         | 
                                    
                                
                            
                         
                     
                 
                
                    
                        
                            Transfer
                                Event
                            
                            
                                Parameters
            
                        
                            help
                            
                                                        Event parameters list the data that an event contains.
            
                            
                        
                                    
                            
                                
                                    
                                        | from | 
                                        
                        
                            address  help
                            
                                The type of this value is address, which means it stores an Ethereum address, such as a wallet address.
                            
                         | 
                                    
                                    
                                        | to | 
                                        
                        
                            address  help
                            
                                The type of this value is address, which means it stores an Ethereum address, such as a wallet address.
                            
                         | 
                                    
                                    
                                        | tokenId | 
                                        
                        
                            uint256  help
                            
                                The type of this value is uint, which stands for unsigned integer. Integer means it's a whole number (such as 1, 12, 52) without fractions or decimals. Unsigned means it can't have a negative or positive sign, so it's always a positive number.
                            
                         | 
                                    
                                
                            
                         
                     
                 
         
     
 
             
            
                
    
        Constants (5)
        keyboard_arrow_up
    
    
        
                
                    
                        
                            _ERC721_RECEIVED
                                Constant
                            
                            
                                
                        
                            bytes4 
help
                            
                                The type of this value is byte or bytes. Byte data is usually not intended for human reading, and stores binary data.
                            
                         
                             
                            
                                0x150b7a02
                            
                         
                     
                 
                
                    
                        
                            _INTERFACE_ID_ERC721
                                Constant
                            
                            
                                
                        
                            bytes4 
help
                            
                                The type of this value is byte or bytes. Byte data is usually not intended for human reading, and stores binary data.
                            
                         
                             
                            
                                0x80ac58cd
                            
                         
                     
                 
                
                    
                        
                            _INTERFACE_ID_ERC721_METADATA
                                Constant
                            
                            
                                
                        
                            bytes4 
help
                            
                                The type of this value is byte or bytes. Byte data is usually not intended for human reading, and stores binary data.
                            
                         
                             
                            
                                0x5b5e139f
                            
                         
                     
                 
                
                    
                        
                            _INTERFACE_ID_ERC721_ENUMERABLE
                                Constant
                            
                            
                                
                        
                            bytes4 
help
                            
                                The type of this value is byte or bytes. Byte data is usually not intended for human reading, and stores binary data.
                            
                         
                             
                            
                                0x780e9d63
                            
                         
                     
                 
                
                    
                        
                            _INTERFACE_ID_ERC165
                                Constant
                            
                            
                                
                        
                            bytes4 
help
                            
                                The type of this value is byte or bytes. Byte data is usually not intended for human reading, and stores binary data.
                            
                         
                             
                            
                                0x01ffc9a7
                            
                         
                     
                 
         
     
 
             
            
                
    
        State Variables (10)
        keyboard_arrow_up
    
    
        
            
                
                    
                        
                            _holderTokens
                                Variable
                            
                            
                                
                        
                            mapping(address => EnumerableSet.UintSet) 
help
                            
                                The type of this value is other.
                            
                         
                             
                            
                         
                     
                 
                
                    
                        
                            _tokenOwners
                                Variable
                            
                            
                                
                        
                            EnumerableMap.UintToAddressMap 
help
                            
                                The type of this value is other.
                            
                         
                             
                            
                         
                     
                 
                
                    
                        
                            _tokenApprovals
                                Variable
                            
                            
                                
                        
                            mapping(uint256 => address) 
help
                            
                                The type of this value is other.
                            
                         
                             
                            
                         
                     
                 
                
                    
                        
                            _operatorApprovals
                                Variable
                            
                            
                                
                        
                            mapping(address => mapping(address => bool)) 
help
                            
                                The type of this value is other.
                            
                         
                             
                            
                         
                     
                 
                
                    
                        
                            _name
                                Variable
                            
                            
                                
                        
                            string 
help
                            
                                The type of this value is string, which is basically just plain text. It's called a string because it is a 'string' of letters.
                            
                         
                             
                            
                         
                     
                 
                
                    
                        
                            _symbol
                                Variable
                            
                            
                                
                        
                            string 
help
                            
                                The type of this value is string, which is basically just plain text. It's called a string because it is a 'string' of letters.
                            
                         
                             
                            
                         
                     
                 
                
                    
                        
                            _tokenURIs
                                Variable
                            
                            
                                
                        
                            mapping(uint256 => string) 
help
                            
                                The type of this value is other.
                            
                         
                             
                            
                         
                     
                 
                
                    
                        
                            _baseURI
                                Variable
                            
                            
                                
                        
                            string 
help
                            
                                The type of this value is string, which is basically just plain text. It's called a string because it is a 'string' of letters.
                            
                         
                             
                            
                         
                     
                 
                
                    
                        
                            _supportedInterfaces
                                Variable
                            
                            
                                
                        
                            mapping(bytes4 => bool) 
help
                            
                                The type of this value is other.
                            
                         
                             
                            
                         
                     
                 
                
                    
                        
                            _owner
                                Variable
                            
                            
                                
                        
                            address 
help
                            
                                The type of this value is address, which means it stores an Ethereum address, such as a wallet address.
                            
                         
                             
                            
                         
                     
                 
         
     
 
             
        
        
                
    
        owner
        
        keyboard_arrow_up
    
    
        
            
                
                    Parameters
            
                help
                
                                            Function parameters list what input the function expects from the user. Each
                        parameter must be given a value.
                
            
                        
                
                        This function has no parameters.
                 
             
            
                Properties
                
                    
                        
                            Visibility
            
                help
                
                                                    Visibility determines if the function is visible to users and other contracts.
                                Only functions that are public can be used.
                
            
                                
                        public
                     
                    
                        
                            Mutability
            
                help
                
                                                    Mutability tells you if a function can make changes on the blockchain.
                                View means the function can be called by anyone without
                                a wallet and without submitting a transaction.
                
            
                                
                        view
                     
                 
             
                Source Code
                
                    function owner() public view returns (address) {
  return _owner;
}
                 
         
     
 
                
    
        renounceOwnership
        
        keyboard_arrow_up
    
    
        
            
                
                    Parameters
            
                help
                
                                            Function parameters list what input the function expects from the user. Each
                        parameter must be given a value.
                
            
                        
                
                        This function has no parameters.
                 
             
            
                Properties
                
                    
                        
                            Visibility
            
                help
                
                                                    Visibility determines if the function is visible to users and other contracts.
                                Only functions that are public can be used.
                
            
                                
                        public
                     
                    
                        
                            Mutability
            
                help
                
                                                    Mutability tells you if a function can make changes on the blockchain.
                                View means the function can be called by anyone without
                                a wallet and without submitting a transaction.
                
            
                                
                        
                            transaction
                     
                 
             
                
                    
                        Modifiers
            
                help
                
                                                Modifiers are additions to a function that typically make various checks before
                            the function is run.
                
            
                            
                    
                            
                                onlyOwner
                                    checks for the following:
                                
                                
                             
                     
                 
                Source Code
                
                    function renounceOwnership() public virtual onlyOwner {
  emit OwnershipTransferred(_owner, address(0));
  _owner = address(0);
}
                 
         
     
 
                
    
        transferOwnership
        
        keyboard_arrow_up
    
    
        
            
                
                    Parameters
            
                help
                
                                            Function parameters list what input the function expects from the user. Each
                        parameter must be given a value.
                
            
                        
                
                        
                            
                            
                                | Name | 
                                Type | 
                            
                            
                            
                                
                                    | newOwner | 
                                    
            
                address  help
                
                    The type of this value is address, which means it stores an Ethereum address, such as a wallet address.
                
             | 
                                
                            
                        
                 
             
            
                Properties
                
                    
                        
                            Visibility
            
                help
                
                                                    Visibility determines if the function is visible to users and other contracts.
                                Only functions that are public can be used.
                
            
                                
                        public
                     
                    
                        
                            Mutability
            
                help
                
                                                    Mutability tells you if a function can make changes on the blockchain.
                                View means the function can be called by anyone without
                                a wallet and without submitting a transaction.
                
            
                                
                        
                            transaction
                     
                 
             
                
                    
                        Modifiers
            
                help
                
                                                Modifiers are additions to a function that typically make various checks before
                            the function is run.
                
            
                            
                    
                            
                                onlyOwner
                                    checks for the following:
                                
                                
                             
                     
                 
                
                    
                        Requirements
            
                help
                
                                                Requirements are checks that the function makes when it runs, and give you
                            insight on what conditions are required for the function to succeed.
                
            
                            
                    
                 
                Source Code
                
                    function transferOwnership(address newOwner) public virtual onlyOwner {
  require(newOwner != address(0), "Ownable: new owner is the zero address");
  emit OwnershipTransferred(_owner, newOwner);
  _owner = newOwner;
}
                 
         
     
 
                
    
        supportsInterface
        
        keyboard_arrow_up
    
    
        
            
                
                    Parameters
            
                help
                
                                            Function parameters list what input the function expects from the user. Each
                        parameter must be given a value.
                
            
                        
                
                        
                            
                            
                                | Name | 
                                Type | 
                            
                            
                            
                                
                                    | interfaceId | 
                                    
            
                bytes4  help
                
                    The type of this value is byte or bytes. Byte data is usually not intended for human reading, and stores binary data.
                
             | 
                                
                            
                        
                 
             
            
                Properties
                
                    
                        
                            Visibility
            
                help
                
                                                    Visibility determines if the function is visible to users and other contracts.
                                Only functions that are public can be used.
                
            
                                
                        public
                     
                    
                        
                            Mutability
            
                help
                
                                                    Mutability tells you if a function can make changes on the blockchain.
                                View means the function can be called by anyone without
                                a wallet and without submitting a transaction.
                
            
                                
                        view
                     
                 
             
                Source Code
                
                    function supportsInterface(bytes4 interfaceId)
  public
  view
  override
  returns (bool)
{
  return _supportedInterfaces[interfaceId];
}
                 
         
     
 
                
    
        balanceOf
        
        keyboard_arrow_up
    
    
        
            
                
                    Parameters
            
                help
                
                                            Function parameters list what input the function expects from the user. Each
                        parameter must be given a value.
                
            
                        
                
                        
                            
                            
                                | Name | 
                                Type | 
                            
                            
                            
                                
                                    | owner | 
                                    
            
                address  help
                
                    The type of this value is address, which means it stores an Ethereum address, such as a wallet address.
                
             | 
                                
                            
                        
                 
             
            
                Properties
                
                    
                        
                            Visibility
            
                help
                
                                                    Visibility determines if the function is visible to users and other contracts.
                                Only functions that are public can be used.
                
            
                                
                        public
                     
                    
                        
                            Mutability
            
                help
                
                                                    Mutability tells you if a function can make changes on the blockchain.
                                View means the function can be called by anyone without
                                a wallet and without submitting a transaction.
                
            
                                
                        view
                     
                 
             
                
                    
                        Requirements
            
                help
                
                                                Requirements are checks that the function makes when it runs, and give you
                            insight on what conditions are required for the function to succeed.
                
            
                            
                    
                 
                Source Code
                
                    function balanceOf(address owner) public view override returns (uint256) {
  require(owner != address(0), "ERC721: balance query for the zero address");
  return _holderTokens[owner].length();
}
                 
         
     
 
                
    
        ownerOf
        
        keyboard_arrow_up
    
    
        
            
                
                    Parameters
            
                help
                
                                            Function parameters list what input the function expects from the user. Each
                        parameter must be given a value.
                
            
                        
                
                        
                            
                            
                                | Name | 
                                Type | 
                            
                            
                            
                                
                                    | tokenId | 
                                    
            
                uint256  help
                
                    The type of this value is uint, which stands for unsigned integer. Integer means it's a whole number (such as 1, 12, 52) without fractions or decimals. Unsigned means it can't have a negative or positive sign, so it's always a positive number.
                
             | 
                                
                            
                        
                 
             
            
                Properties
                
                    
                        
                            Visibility
            
                help
                
                                                    Visibility determines if the function is visible to users and other contracts.
                                Only functions that are public can be used.
                
            
                                
                        public
                     
                    
                        
                            Mutability
            
                help
                
                                                    Mutability tells you if a function can make changes on the blockchain.
                                View means the function can be called by anyone without
                                a wallet and without submitting a transaction.
                
            
                                
                        view
                     
                 
             
                Source Code
                
                    function ownerOf(uint256 tokenId) public view override returns (address) {
  return _tokenOwners.get(tokenId, "ERC721: owner query for nonexistent token");
}
                 
         
     
 
                
    
        name
        
        keyboard_arrow_up
    
    
        
            
                
                    Parameters
            
                help
                
                                            Function parameters list what input the function expects from the user. Each
                        parameter must be given a value.
                
            
                        
                
                        This function has no parameters.
                 
             
            
                Properties
                
                    
                        
                            Visibility
            
                help
                
                                                    Visibility determines if the function is visible to users and other contracts.
                                Only functions that are public can be used.
                
            
                                
                        public
                     
                    
                        
                            Mutability
            
                help
                
                                                    Mutability tells you if a function can make changes on the blockchain.
                                View means the function can be called by anyone without
                                a wallet and without submitting a transaction.
                
            
                                
                        view
                     
                 
             
                Source Code
                
                    function name() public view override returns (string memory) {
  return _name;
}
                 
         
     
 
                
    
        symbol
        
        keyboard_arrow_up
    
    
        
            
                
                    Parameters
            
                help
                
                                            Function parameters list what input the function expects from the user. Each
                        parameter must be given a value.
                
            
                        
                
                        This function has no parameters.
                 
             
            
                Properties
                
                    
                        
                            Visibility
            
                help
                
                                                    Visibility determines if the function is visible to users and other contracts.
                                Only functions that are public can be used.
                
            
                                
                        public
                     
                    
                        
                            Mutability
            
                help
                
                                                    Mutability tells you if a function can make changes on the blockchain.
                                View means the function can be called by anyone without
                                a wallet and without submitting a transaction.
                
            
                                
                        view
                     
                 
             
                Source Code
                
                    function symbol() public view override returns (string memory) {
  return _symbol;
}
                 
         
     
 
                
    
        tokenURI
        
        keyboard_arrow_up
    
    
        
            
                
                    Parameters
            
                help
                
                                            Function parameters list what input the function expects from the user. Each
                        parameter must be given a value.
                
            
                        
                
                        
                            
                            
                                | Name | 
                                Type | 
                            
                            
                            
                                
                                    | tokenId | 
                                    
            
                uint256  help
                
                    The type of this value is uint, which stands for unsigned integer. Integer means it's a whole number (such as 1, 12, 52) without fractions or decimals. Unsigned means it can't have a negative or positive sign, so it's always a positive number.
                
             | 
                                
                            
                        
                 
             
            
                Properties
                
                    
                        
                            Visibility
            
                help
                
                                                    Visibility determines if the function is visible to users and other contracts.
                                Only functions that are public can be used.
                
            
                                
                        public
                     
                    
                        
                            Mutability
            
                help
                
                                                    Mutability tells you if a function can make changes on the blockchain.
                                View means the function can be called by anyone without
                                a wallet and without submitting a transaction.
                
            
                                
                        view
                     
                 
             
                
                    
                        Requirements
            
                help
                
                                                Requirements are checks that the function makes when it runs, and give you
                            insight on what conditions are required for the function to succeed.
                
            
                            
                    
                 
                Source Code
                
                    function tokenURI(uint256 tokenId)
  public
  view
  override
  returns (string memory)
{
  require(_exists(tokenId), "ERC721Metadata: URI query for nonexistent token");
  string memory _tokenURI = _tokenURIs[tokenId];
  // If there is no base URI, return the token URI.
  if (bytes(_baseURI).length == 0) {
    return _tokenURI;
  }
  // If both are set, concatenate the baseURI and tokenURI (via abi.encodePacked).
  if (bytes(_tokenURI).length > 0) {
    return string(abi.encodePacked(_baseURI, _tokenURI));
  }
  // If there is a baseURI but no tokenURI, concatenate the tokenID to the baseURI.
  return string(abi.encodePacked(_baseURI, tokenId.toString()));
}
                 
         
     
 
                
    
        baseURI
        
        keyboard_arrow_up
    
    
        
            
                
                    Parameters
            
                help
                
                                            Function parameters list what input the function expects from the user. Each
                        parameter must be given a value.
                
            
                        
                
                        This function has no parameters.
                 
             
            
                Properties
                
                    
                        
                            Visibility
            
                help
                
                                                    Visibility determines if the function is visible to users and other contracts.
                                Only functions that are public can be used.
                
            
                                
                        public
                     
                    
                        
                            Mutability
            
                help
                
                                                    Mutability tells you if a function can make changes on the blockchain.
                                View means the function can be called by anyone without
                                a wallet and without submitting a transaction.
                
            
                                
                        view
                     
                 
             
                Source Code
                
                    function baseURI() public view returns (string memory) {
  return _baseURI;
}
                 
         
     
 
                
    
        tokenOfOwnerByIndex
        
        keyboard_arrow_up
    
    
        
            
                
                    Parameters
            
                help
                
                                            Function parameters list what input the function expects from the user. Each
                        parameter must be given a value.
                
            
                        
                
                        
                            
                            
                                | Name | 
                                Type | 
                            
                            
                            
                                
                                    | owner | 
                                    
            
                address  help
                
                    The type of this value is address, which means it stores an Ethereum address, such as a wallet address.
                
             | 
                                
                                
                                    | index | 
                                    
            
                uint256  help
                
                    The type of this value is uint, which stands for unsigned integer. Integer means it's a whole number (such as 1, 12, 52) without fractions or decimals. Unsigned means it can't have a negative or positive sign, so it's always a positive number.
                
             | 
                                
                            
                        
                 
             
            
                Properties
                
                    
                        
                            Visibility
            
                help
                
                                                    Visibility determines if the function is visible to users and other contracts.
                                Only functions that are public can be used.
                
            
                                
                        public
                     
                    
                        
                            Mutability
            
                help
                
                                                    Mutability tells you if a function can make changes on the blockchain.
                                View means the function can be called by anyone without
                                a wallet and without submitting a transaction.
                
            
                                
                        view
                     
                 
             
                Source Code
                
                    function tokenOfOwnerByIndex(address owner, uint256 index)
  public
  view
  override
  returns (uint256)
{
  return _holderTokens[owner].at(index);
}
                 
         
     
 
                
    
        totalSupply
        
        keyboard_arrow_up
    
    
        
            
                
                    Parameters
            
                help
                
                                            Function parameters list what input the function expects from the user. Each
                        parameter must be given a value.
                
            
                        
                
                        This function has no parameters.
                 
             
            
                Properties
                
                    
                        
                            Visibility
            
                help
                
                                                    Visibility determines if the function is visible to users and other contracts.
                                Only functions that are public can be used.
                
            
                                
                        public
                     
                    
                        
                            Mutability
            
                help
                
                                                    Mutability tells you if a function can make changes on the blockchain.
                                View means the function can be called by anyone without
                                a wallet and without submitting a transaction.
                
            
                                
                        view
                     
                 
             
                Source Code
                
                    function totalSupply() public view override returns (uint256) {
  // _tokenOwners are indexed by tokenIds, so .length() returns the number of tokenIds
  return _tokenOwners.length();
}
                 
         
     
 
                
    
        tokenByIndex
        
        keyboard_arrow_up
    
    
        
            
                
                    Parameters
            
                help
                
                                            Function parameters list what input the function expects from the user. Each
                        parameter must be given a value.
                
            
                        
                
                        
                            
                            
                                | Name | 
                                Type | 
                            
                            
                            
                                
                                    | index | 
                                    
            
                uint256  help
                
                    The type of this value is uint, which stands for unsigned integer. Integer means it's a whole number (such as 1, 12, 52) without fractions or decimals. Unsigned means it can't have a negative or positive sign, so it's always a positive number.
                
             | 
                                
                            
                        
                 
             
            
                Properties
                
                    
                        
                            Visibility
            
                help
                
                                                    Visibility determines if the function is visible to users and other contracts.
                                Only functions that are public can be used.
                
            
                                
                        public
                     
                    
                        
                            Mutability
            
                help
                
                                                    Mutability tells you if a function can make changes on the blockchain.
                                View means the function can be called by anyone without
                                a wallet and without submitting a transaction.
                
            
                                
                        view
                     
                 
             
                Source Code
                
                    function tokenByIndex(uint256 index) public view override returns (uint256) {
  (uint256 tokenId, ) = _tokenOwners.at(index);
  return tokenId;
}
                 
         
     
 
                
    
        approve
        
        keyboard_arrow_up
    
    
        
            
                
                    Parameters
            
                help
                
                                            Function parameters list what input the function expects from the user. Each
                        parameter must be given a value.
                
            
                        
                
                        
                            
                            
                                | Name | 
                                Type | 
                            
                            
                            
                                
                                    | to | 
                                    
            
                address  help
                
                    The type of this value is address, which means it stores an Ethereum address, such as a wallet address.
                
             | 
                                
                                
                                    | tokenId | 
                                    
            
                uint256  help
                
                    The type of this value is uint, which stands for unsigned integer. Integer means it's a whole number (such as 1, 12, 52) without fractions or decimals. Unsigned means it can't have a negative or positive sign, so it's always a positive number.
                
             | 
                                
                            
                        
                 
             
            
                Properties
                
                    
                        
                            Visibility
            
                help
                
                                                    Visibility determines if the function is visible to users and other contracts.
                                Only functions that are public can be used.
                
            
                                
                        public
                     
                    
                        
                            Mutability
            
                help
                
                                                    Mutability tells you if a function can make changes on the blockchain.
                                View means the function can be called by anyone without
                                a wallet and without submitting a transaction.
                
            
                                
                        
                            transaction
                     
                 
             
                
                    
                        Requirements
            
                help
                
                                                Requirements are checks that the function makes when it runs, and give you
                            insight on what conditions are required for the function to succeed.
                
            
                            
                    
                 
                Source Code
                
                    function approve(address to, uint256 tokenId) public virtual override {
  address owner = ownerOf(tokenId);
  require(to != owner, "ERC721: approval to current owner");
  require(
    _msgSender() == owner || isApprovedForAll(owner, _msgSender()),
    "ERC721: approve caller is not owner nor approved for all"
  );
  _approve(to, tokenId);
}
                 
         
     
 
                
    
        getApproved
        
        keyboard_arrow_up
    
    
        
            
                
                    Parameters
            
                help
                
                                            Function parameters list what input the function expects from the user. Each
                        parameter must be given a value.
                
            
                        
                
                        
                            
                            
                                | Name | 
                                Type | 
                            
                            
                            
                                
                                    | tokenId | 
                                    
            
                uint256  help
                
                    The type of this value is uint, which stands for unsigned integer. Integer means it's a whole number (such as 1, 12, 52) without fractions or decimals. Unsigned means it can't have a negative or positive sign, so it's always a positive number.
                
             | 
                                
                            
                        
                 
             
            
                Properties
                
                    
                        
                            Visibility
            
                help
                
                                                    Visibility determines if the function is visible to users and other contracts.
                                Only functions that are public can be used.
                
            
                                
                        public
                     
                    
                        
                            Mutability
            
                help
                
                                                    Mutability tells you if a function can make changes on the blockchain.
                                View means the function can be called by anyone without
                                a wallet and without submitting a transaction.
                
            
                                
                        view
                     
                 
             
                
                    
                        Requirements
            
                help
                
                                                Requirements are checks that the function makes when it runs, and give you
                            insight on what conditions are required for the function to succeed.
                
            
                            
                    
                 
                Source Code
                
                    function getApproved(uint256 tokenId) public view override returns (address) {
  require(_exists(tokenId), "ERC721: approved query for nonexistent token");
  return _tokenApprovals[tokenId];
}
                 
         
     
 
                
    
        setApprovalForAll
        
        keyboard_arrow_up
    
    
        
            
                
                    Parameters
            
                help
                
                                            Function parameters list what input the function expects from the user. Each
                        parameter must be given a value.
                
            
                        
                
                        
                            
                            
                                | Name | 
                                Type | 
                            
                            
                            
                                
                                    | operator | 
                                    
            
                address  help
                
                    The type of this value is address, which means it stores an Ethereum address, such as a wallet address.
                
             | 
                                
                                
                                    | approved | 
                                    
            
                bool  help
                
                    The type of this value is other.
                
             | 
                                
                            
                        
                 
             
            
                Properties
                
                    
                        
                            Visibility
            
                help
                
                                                    Visibility determines if the function is visible to users and other contracts.
                                Only functions that are public can be used.
                
            
                                
                        public
                     
                    
                        
                            Mutability
            
                help
                
                                                    Mutability tells you if a function can make changes on the blockchain.
                                View means the function can be called by anyone without
                                a wallet and without submitting a transaction.
                
            
                                
                        
                            transaction
                     
                 
             
                
                    
                        Requirements
            
                help
                
                                                Requirements are checks that the function makes when it runs, and give you
                            insight on what conditions are required for the function to succeed.
                
            
                            
                    
                 
                Source Code
                
                    function setApprovalForAll(address operator, bool approved)
  public
  virtual
  override
{
  require(operator != _msgSender(), "ERC721: approve to caller");
  _operatorApprovals[_msgSender()][operator] = approved;
  emit ApprovalForAll(_msgSender(), operator, approved);
}
                 
         
     
 
                
    
        isApprovedForAll
        
        keyboard_arrow_up
    
    
        
            
                
                    Parameters
            
                help
                
                                            Function parameters list what input the function expects from the user. Each
                        parameter must be given a value.
                
            
                        
                
                        
                            
                            
                                | Name | 
                                Type | 
                            
                            
                            
                                
                                    | owner | 
                                    
            
                address  help
                
                    The type of this value is address, which means it stores an Ethereum address, such as a wallet address.
                
             | 
                                
                                
                                    | operator | 
                                    
            
                address  help
                
                    The type of this value is address, which means it stores an Ethereum address, such as a wallet address.
                
             | 
                                
                            
                        
                 
             
            
                Properties
                
                    
                        
                            Visibility
            
                help
                
                                                    Visibility determines if the function is visible to users and other contracts.
                                Only functions that are public can be used.
                
            
                                
                        public
                     
                    
                        
                            Mutability
            
                help
                
                                                    Mutability tells you if a function can make changes on the blockchain.
                                View means the function can be called by anyone without
                                a wallet and without submitting a transaction.
                
            
                                
                        view
                     
                 
             
                Source Code
                
                    function isApprovedForAll(address owner, address operator)
  public
  view
  override
  returns (bool)
{
  return _operatorApprovals[owner][operator];
}
                 
         
     
 
                
    
        transferFrom
        
        keyboard_arrow_up
    
    
        
            
                
                    Parameters
            
                help
                
                                            Function parameters list what input the function expects from the user. Each
                        parameter must be given a value.
                
            
                        
                
                        
                            
                            
                                | Name | 
                                Type | 
                            
                            
                            
                                
                                    | from | 
                                    
            
                address  help
                
                    The type of this value is address, which means it stores an Ethereum address, such as a wallet address.
                
             | 
                                
                                
                                    | to | 
                                    
            
                address  help
                
                    The type of this value is address, which means it stores an Ethereum address, such as a wallet address.
                
             | 
                                
                                
                                    | tokenId | 
                                    
            
                uint256  help
                
                    The type of this value is uint, which stands for unsigned integer. Integer means it's a whole number (such as 1, 12, 52) without fractions or decimals. Unsigned means it can't have a negative or positive sign, so it's always a positive number.
                
             | 
                                
                            
                        
                 
             
            
                Properties
                
                    
                        
                            Visibility
            
                help
                
                                                    Visibility determines if the function is visible to users and other contracts.
                                Only functions that are public can be used.
                
            
                                
                        public
                     
                    
                        
                            Mutability
            
                help
                
                                                    Mutability tells you if a function can make changes on the blockchain.
                                View means the function can be called by anyone without
                                a wallet and without submitting a transaction.
                
            
                                
                        
                            transaction
                     
                 
             
                
                    
                        Requirements
            
                help
                
                                                Requirements are checks that the function makes when it runs, and give you
                            insight on what conditions are required for the function to succeed.
                
            
                            
                    
                 
                Source Code
                
                    function transferFrom(
  address from,
  address to,
  uint256 tokenId
) public virtual override {
  //solhint-disable-next-line max-line-length
  require(
    _isApprovedOrOwner(_msgSender(), tokenId),
    "ERC721: transfer caller is not owner nor approved"
  );
  _transfer(from, to, tokenId);
}
                 
         
     
 
                
    
        safeTransferFrom
        
        keyboard_arrow_up
    
    
        
            
                
                    Parameters
            
                help
                
                                            Function parameters list what input the function expects from the user. Each
                        parameter must be given a value.
                
            
                        
                
                        
                            
                            
                                | Name | 
                                Type | 
                            
                            
                            
                                
                                    | from | 
                                    
            
                address  help
                
                    The type of this value is address, which means it stores an Ethereum address, such as a wallet address.
                
             | 
                                
                                
                                    | to | 
                                    
            
                address  help
                
                    The type of this value is address, which means it stores an Ethereum address, such as a wallet address.
                
             | 
                                
                                
                                    | tokenId | 
                                    
            
                uint256  help
                
                    The type of this value is uint, which stands for unsigned integer. Integer means it's a whole number (such as 1, 12, 52) without fractions or decimals. Unsigned means it can't have a negative or positive sign, so it's always a positive number.
                
             | 
                                
                            
                        
                 
             
            
                Properties
                
                    
                        
                            Visibility
            
                help
                
                                                    Visibility determines if the function is visible to users and other contracts.
                                Only functions that are public can be used.
                
            
                                
                        public
                     
                    
                        
                            Mutability
            
                help
                
                                                    Mutability tells you if a function can make changes on the blockchain.
                                View means the function can be called by anyone without
                                a wallet and without submitting a transaction.
                
            
                                
                        
                            transaction
                     
                 
             
                
                    
                        Requirements
            
                help
                
                                                Requirements are checks that the function makes when it runs, and give you
                            insight on what conditions are required for the function to succeed.
                
            
                            
                    
                 
                Source Code
                
                    function safeTransferFrom(
  address from,
  address to,
  uint256 tokenId
) public virtual override {
  safeTransferFrom(from, to, tokenId, "");
}
                 
         
     
 
                
    
        safeTransferFrom
        
        keyboard_arrow_up
    
    
        
            
                
                    Parameters
            
                help
                
                                            Function parameters list what input the function expects from the user. Each
                        parameter must be given a value.
                
            
                        
                
                        
                            
                            
                                | Name | 
                                Type | 
                            
                            
                            
                                
                                    | from | 
                                    
            
                address  help
                
                    The type of this value is address, which means it stores an Ethereum address, such as a wallet address.
                
             | 
                                
                                
                                    | to | 
                                    
            
                address  help
                
                    The type of this value is address, which means it stores an Ethereum address, such as a wallet address.
                
             | 
                                
                                
                                    | tokenId | 
                                    
            
                uint256  help
                
                    The type of this value is uint, which stands for unsigned integer. Integer means it's a whole number (such as 1, 12, 52) without fractions or decimals. Unsigned means it can't have a negative or positive sign, so it's always a positive number.
                
             | 
                                
                                
                                    | _data | 
                                    
            
                bytes  help
                
                    The type of this value is byte or bytes. Byte data is usually not intended for human reading, and stores binary data.
                
             | 
                                
                            
                        
                 
             
            
                Properties
                
                    
                        
                            Visibility
            
                help
                
                                                    Visibility determines if the function is visible to users and other contracts.
                                Only functions that are public can be used.
                
            
                                
                        public
                     
                    
                        
                            Mutability
            
                help
                
                                                    Mutability tells you if a function can make changes on the blockchain.
                                View means the function can be called by anyone without
                                a wallet and without submitting a transaction.
                
            
                                
                        
                            transaction
                     
                 
             
                
                    
                        Requirements
            
                help
                
                                                Requirements are checks that the function makes when it runs, and give you
                            insight on what conditions are required for the function to succeed.
                
            
                            
                    
                 
                Source Code
                
                    function safeTransferFrom(
  address from,
  address to,
  uint256 tokenId,
  bytes memory _data
) public virtual override {
  require(
    _isApprovedOrOwner(_msgSender(), tokenId),
    "ERC721: transfer caller is not owner nor approved"
  );
  _safeTransfer(from, to, tokenId, _data);
}
                 
         
     
 
                
    
        mint
        
        keyboard_arrow_up
    
    
        
            
                
                    Parameters
            
                help
                
                                            Function parameters list what input the function expects from the user. Each
                        parameter must be given a value.
                
            
                        
                
                        
                            
                            
                                | Name | 
                                Type | 
                            
                            
                            
                                
                                    | to | 
                                    
            
                address  help
                
                    The type of this value is address, which means it stores an Ethereum address, such as a wallet address.
                
             | 
                                
                                
                                    | tokenId | 
                                    
            
                uint256  help
                
                    The type of this value is uint, which stands for unsigned integer. Integer means it's a whole number (such as 1, 12, 52) without fractions or decimals. Unsigned means it can't have a negative or positive sign, so it's always a positive number.
                
             | 
                                
                                
                                    | _tokenURI | 
                                    
            
                string  help
                
                    The type of this value is string, which is basically just plain text. It's called a string because it is a 'string' of letters.
                
             | 
                                
                            
                        
                 
             
            
                Properties
                
                    
                        
                            Visibility
            
                help
                
                                                    Visibility determines if the function is visible to users and other contracts.
                                Only functions that are public can be used.
                
            
                                
                        public
                     
                    
                        
                            Mutability
            
                help
                
                                                    Mutability tells you if a function can make changes on the blockchain.
                                View means the function can be called by anyone without
                                a wallet and without submitting a transaction.
                
            
                                
                        
                            transaction
                     
                 
             
                
                    
                        Modifiers
            
                help
                
                                                Modifiers are additions to a function that typically make various checks before
                            the function is run.
                
            
                            
                    
                            
                                onlyOwner
                                    checks for the following:
                                
                                
                             
                     
                 
                
                    
                        Requirements
            
                help
                
                                                Requirements are checks that the function makes when it runs, and give you
                            insight on what conditions are required for the function to succeed.
                
            
                            
                    
                 
                Source Code
                
                    function mint(
  address to,
  uint256 tokenId,
  string memory _tokenURI
) public onlyOwner {
  _mint(to, tokenId);
  _setTokenURI(tokenId, _tokenURI);
}
                 
         
     
 
         
        
        
            Internal functions are parts of the contract that can't be used directly, but instead are used by
            the public functions listed above.
        
        
                
    
        internal ERC721._safeTransfer
        
        keyboard_arrow_up
    
    
        
            
                
                    Parameters
            
                help
                
                                            Function parameters list what input the function expects from the user. Each
                        parameter must be given a value.
                
            
                        
                
                        
                            
                            
                                | Name | 
                                Type | 
                            
                            
                            
                                
                                    | from | 
                                    
            
                address  help
                
                    The type of this value is address, which means it stores an Ethereum address, such as a wallet address.
                
             | 
                                
                                
                                    | to | 
                                    
            
                address  help
                
                    The type of this value is address, which means it stores an Ethereum address, such as a wallet address.
                
             | 
                                
                                
                                    | tokenId | 
                                    
            
                uint256  help
                
                    The type of this value is uint, which stands for unsigned integer. Integer means it's a whole number (such as 1, 12, 52) without fractions or decimals. Unsigned means it can't have a negative or positive sign, so it's always a positive number.
                
             | 
                                
                                
                                    | _data | 
                                    
            
                bytes  help
                
                    The type of this value is byte or bytes. Byte data is usually not intended for human reading, and stores binary data.
                
             | 
                                
                            
                        
                 
             
            
                Properties
                
                    
                        
                            Visibility
            
                help
                
                                                    Visibility determines if the function is visible to users and other contracts.
                                Only functions that are public can be used.
                
            
                                
                        internal
                     
                    
                        
                            Mutability
            
                help
                
                                                    Mutability tells you if a function can make changes on the blockchain.
                                View means the function can be called by anyone without
                                a wallet and without submitting a transaction.
                
            
                                
                        
                            transaction
                     
                 
             
                
                    
                        Requirements
            
                help
                
                                                Requirements are checks that the function makes when it runs, and give you
                            insight on what conditions are required for the function to succeed.
                
            
                            
                    
                 
                Source Code
                
                    function _safeTransfer(
  address from,
  address to,
  uint256 tokenId,
  bytes memory _data
) internal virtual {
  _transfer(from, to, tokenId);
  require(
    _checkOnERC721Received(from, to, tokenId, _data),
    "ERC721: transfer to non ERC721Receiver implementer"
  );
}
                 
         
     
 
                
    
        internal ERC721._exists
        
        keyboard_arrow_up
    
    
        
            
                
                    Parameters
            
                help
                
                                            Function parameters list what input the function expects from the user. Each
                        parameter must be given a value.
                
            
                        
                
                        
                            
                            
                                | Name | 
                                Type | 
                            
                            
                            
                                
                                    | tokenId | 
                                    
            
                uint256  help
                
                    The type of this value is uint, which stands for unsigned integer. Integer means it's a whole number (such as 1, 12, 52) without fractions or decimals. Unsigned means it can't have a negative or positive sign, so it's always a positive number.
                
             | 
                                
                            
                        
                 
             
            
                Properties
                
                    
                        
                            Visibility
            
                help
                
                                                    Visibility determines if the function is visible to users and other contracts.
                                Only functions that are public can be used.
                
            
                                
                        internal
                     
                    
                        
                            Mutability
            
                help
                
                                                    Mutability tells you if a function can make changes on the blockchain.
                                View means the function can be called by anyone without
                                a wallet and without submitting a transaction.
                
            
                                
                        view
                     
                 
             
                Source Code
                
                    function _exists(uint256 tokenId) internal view returns (bool) {
  return _tokenOwners.contains(tokenId);
}
                 
         
     
 
                
    
        internal ERC721._isApprovedOrOwner
        
        keyboard_arrow_up
    
    
        
            
                
                    Parameters
            
                help
                
                                            Function parameters list what input the function expects from the user. Each
                        parameter must be given a value.
                
            
                        
                
                        
                            
                            
                                | Name | 
                                Type | 
                            
                            
                            
                                
                                    | spender | 
                                    
            
                address  help
                
                    The type of this value is address, which means it stores an Ethereum address, such as a wallet address.
                
             | 
                                
                                
                                    | tokenId | 
                                    
            
                uint256  help
                
                    The type of this value is uint, which stands for unsigned integer. Integer means it's a whole number (such as 1, 12, 52) without fractions or decimals. Unsigned means it can't have a negative or positive sign, so it's always a positive number.
                
             | 
                                
                            
                        
                 
             
            
                Properties
                
                    
                        
                            Visibility
            
                help
                
                                                    Visibility determines if the function is visible to users and other contracts.
                                Only functions that are public can be used.
                
            
                                
                        internal
                     
                    
                        
                            Mutability
            
                help
                
                                                    Mutability tells you if a function can make changes on the blockchain.
                                View means the function can be called by anyone without
                                a wallet and without submitting a transaction.
                
            
                                
                        view
                     
                 
             
                
                    
                        Requirements
            
                help
                
                                                Requirements are checks that the function makes when it runs, and give you
                            insight on what conditions are required for the function to succeed.
                
            
                            
                    
                 
                Source Code
                
                    function _isApprovedOrOwner(address spender, uint256 tokenId)
  internal
  view
  returns (bool)
{
  require(_exists(tokenId), "ERC721: operator query for nonexistent token");
  address owner = ownerOf(tokenId);
  return (spender == owner ||
    getApproved(tokenId) == spender ||
    isApprovedForAll(owner, spender));
}
                 
         
     
 
                
    
        internal ERC721._safeMint
        
        keyboard_arrow_up
    
    
        
            
                
                    Parameters
            
                help
                
                                            Function parameters list what input the function expects from the user. Each
                        parameter must be given a value.
                
            
                        
                
                        
                            
                            
                                | Name | 
                                Type | 
                            
                            
                            
                                
                                    | to | 
                                    
            
                address  help
                
                    The type of this value is address, which means it stores an Ethereum address, such as a wallet address.
                
             | 
                                
                                
                                    | tokenId | 
                                    
            
                uint256  help
                
                    The type of this value is uint, which stands for unsigned integer. Integer means it's a whole number (such as 1, 12, 52) without fractions or decimals. Unsigned means it can't have a negative or positive sign, so it's always a positive number.
                
             | 
                                
                            
                        
                 
             
            
                Properties
                
                    
                        
                            Visibility
            
                help
                
                                                    Visibility determines if the function is visible to users and other contracts.
                                Only functions that are public can be used.
                
            
                                
                        internal
                     
                    
                        
                            Mutability
            
                help
                
                                                    Mutability tells you if a function can make changes on the blockchain.
                                View means the function can be called by anyone without
                                a wallet and without submitting a transaction.
                
            
                                
                        
                            transaction
                     
                 
             
                
                    
                        Requirements
            
                help
                
                                                Requirements are checks that the function makes when it runs, and give you
                            insight on what conditions are required for the function to succeed.
                
            
                            
                    
                 
                Source Code
                
                    function _safeMint(address to, uint256 tokenId) internal virtual {
  _safeMint(to, tokenId, "");
}
                 
         
     
 
                
    
        internal ERC721._safeMint
        
        keyboard_arrow_up
    
    
        
            
                
                    Parameters
            
                help
                
                                            Function parameters list what input the function expects from the user. Each
                        parameter must be given a value.
                
            
                        
                
                        
                            
                            
                                | Name | 
                                Type | 
                            
                            
                            
                                
                                    | to | 
                                    
            
                address  help
                
                    The type of this value is address, which means it stores an Ethereum address, such as a wallet address.
                
             | 
                                
                                
                                    | tokenId | 
                                    
            
                uint256  help
                
                    The type of this value is uint, which stands for unsigned integer. Integer means it's a whole number (such as 1, 12, 52) without fractions or decimals. Unsigned means it can't have a negative or positive sign, so it's always a positive number.
                
             | 
                                
                                
                                    | _data | 
                                    
            
                bytes  help
                
                    The type of this value is byte or bytes. Byte data is usually not intended for human reading, and stores binary data.
                
             | 
                                
                            
                        
                 
             
            
                Properties
                
                    
                        
                            Visibility
            
                help
                
                                                    Visibility determines if the function is visible to users and other contracts.
                                Only functions that are public can be used.
                
            
                                
                        internal
                     
                    
                        
                            Mutability
            
                help
                
                                                    Mutability tells you if a function can make changes on the blockchain.
                                View means the function can be called by anyone without
                                a wallet and without submitting a transaction.
                
            
                                
                        
                            transaction
                     
                 
             
                
                    
                        Requirements
            
                help
                
                                                Requirements are checks that the function makes when it runs, and give you
                            insight on what conditions are required for the function to succeed.
                
            
                            
                    
                 
                Source Code
                
                    function _safeMint(
  address to,
  uint256 tokenId,
  bytes memory _data
) internal virtual {
  _mint(to, tokenId);
  require(
    _checkOnERC721Received(address(0), to, tokenId, _data),
    "ERC721: transfer to non ERC721Receiver implementer"
  );
}
                 
         
     
 
                
    
        internal ERC721._mint
        
        keyboard_arrow_up
    
    
        
            
                
                    Parameters
            
                help
                
                                            Function parameters list what input the function expects from the user. Each
                        parameter must be given a value.
                
            
                        
                
                        
                            
                            
                                | Name | 
                                Type | 
                            
                            
                            
                                
                                    | to | 
                                    
            
                address  help
                
                    The type of this value is address, which means it stores an Ethereum address, such as a wallet address.
                
             | 
                                
                                
                                    | tokenId | 
                                    
            
                uint256  help
                
                    The type of this value is uint, which stands for unsigned integer. Integer means it's a whole number (such as 1, 12, 52) without fractions or decimals. Unsigned means it can't have a negative or positive sign, so it's always a positive number.
                
             | 
                                
                            
                        
                 
             
            
                Properties
                
                    
                        
                            Visibility
            
                help
                
                                                    Visibility determines if the function is visible to users and other contracts.
                                Only functions that are public can be used.
                
            
                                
                        internal
                     
                    
                        
                            Mutability
            
                help
                
                                                    Mutability tells you if a function can make changes on the blockchain.
                                View means the function can be called by anyone without
                                a wallet and without submitting a transaction.
                
            
                                
                        
                            transaction
                     
                 
             
                
                    
                        Requirements
            
                help
                
                                                Requirements are checks that the function makes when it runs, and give you
                            insight on what conditions are required for the function to succeed.
                
            
                            
                    
                 
                Source Code
                
                    function _mint(address to, uint256 tokenId) internal virtual {
  require(to != address(0), "ERC721: mint to the zero address");
  require(!_exists(tokenId), "ERC721: token already minted");
  _beforeTokenTransfer(address(0), to, tokenId);
  _holderTokens[to].add(tokenId);
  _tokenOwners.set(tokenId, to);
  emit Transfer(address(0), to, tokenId);
}
                 
         
     
 
                
    
        internal ERC721._burn
        
        keyboard_arrow_up
    
    
        
            
                
                    Parameters
            
                help
                
                                            Function parameters list what input the function expects from the user. Each
                        parameter must be given a value.
                
            
                        
                
                        
                            
                            
                                | Name | 
                                Type | 
                            
                            
                            
                                
                                    | tokenId | 
                                    
            
                uint256  help
                
                    The type of this value is uint, which stands for unsigned integer. Integer means it's a whole number (such as 1, 12, 52) without fractions or decimals. Unsigned means it can't have a negative or positive sign, so it's always a positive number.
                
             | 
                                
                            
                        
                 
             
            
                Properties
                
                    
                        
                            Visibility
            
                help
                
                                                    Visibility determines if the function is visible to users and other contracts.
                                Only functions that are public can be used.
                
            
                                
                        internal
                     
                    
                        
                            Mutability
            
                help
                
                                                    Mutability tells you if a function can make changes on the blockchain.
                                View means the function can be called by anyone without
                                a wallet and without submitting a transaction.
                
            
                                
                        
                            transaction
                     
                 
             
                Source Code
                
                    function _burn(uint256 tokenId) internal virtual {
  address owner = ownerOf(tokenId);
  _beforeTokenTransfer(owner, address(0), tokenId);
  // Clear approvals
  _approve(address(0), tokenId);
  // Clear metadata (if any)
  if (bytes(_tokenURIs[tokenId]).length != 0) {
    delete _tokenURIs[tokenId];
  }
  _holderTokens[owner].remove(tokenId);
  _tokenOwners.remove(tokenId);
  emit Transfer(owner, address(0), tokenId);
}
                 
         
     
 
                
    
        internal ERC721._transfer
        
        keyboard_arrow_up
    
    
        
            
                
                    Parameters
            
                help
                
                                            Function parameters list what input the function expects from the user. Each
                        parameter must be given a value.
                
            
                        
                
                        
                            
                            
                                | Name | 
                                Type | 
                            
                            
                            
                                
                                    | from | 
                                    
            
                address  help
                
                    The type of this value is address, which means it stores an Ethereum address, such as a wallet address.
                
             | 
                                
                                
                                    | to | 
                                    
            
                address  help
                
                    The type of this value is address, which means it stores an Ethereum address, such as a wallet address.
                
             | 
                                
                                
                                    | tokenId | 
                                    
            
                uint256  help
                
                    The type of this value is uint, which stands for unsigned integer. Integer means it's a whole number (such as 1, 12, 52) without fractions or decimals. Unsigned means it can't have a negative or positive sign, so it's always a positive number.
                
             | 
                                
                            
                        
                 
             
            
                Properties
                
                    
                        
                            Visibility
            
                help
                
                                                    Visibility determines if the function is visible to users and other contracts.
                                Only functions that are public can be used.
                
            
                                
                        internal
                     
                    
                        
                            Mutability
            
                help
                
                                                    Mutability tells you if a function can make changes on the blockchain.
                                View means the function can be called by anyone without
                                a wallet and without submitting a transaction.
                
            
                                
                        
                            transaction
                     
                 
             
                
                    
                        Requirements
            
                help
                
                                                Requirements are checks that the function makes when it runs, and give you
                            insight on what conditions are required for the function to succeed.
                
            
                            
                    
                 
                Source Code
                
                    function _transfer(
  address from,
  address to,
  uint256 tokenId
) internal virtual {
  require(
    ownerOf(tokenId) == from,
    "ERC721: transfer of token that is not own"
  );
  require(to != address(0), "ERC721: transfer to the zero address");
  _beforeTokenTransfer(from, to, tokenId);
  // Clear approvals from the previous owner
  _approve(address(0), tokenId);
  _holderTokens[from].remove(tokenId);
  _holderTokens[to].add(tokenId);
  _tokenOwners.set(tokenId, to);
  emit Transfer(from, to, tokenId);
}
                 
         
     
 
                
    
        internal ERC721._setTokenURI
        
        keyboard_arrow_up
    
    
        
            
                
                    Parameters
            
                help
                
                                            Function parameters list what input the function expects from the user. Each
                        parameter must be given a value.
                
            
                        
                
                        
                            
                            
                                | Name | 
                                Type | 
                            
                            
                            
                                
                                    | tokenId | 
                                    
            
                uint256  help
                
                    The type of this value is uint, which stands for unsigned integer. Integer means it's a whole number (such as 1, 12, 52) without fractions or decimals. Unsigned means it can't have a negative or positive sign, so it's always a positive number.
                
             | 
                                
                                
                                    | _tokenURI | 
                                    
            
                string  help
                
                    The type of this value is string, which is basically just plain text. It's called a string because it is a 'string' of letters.
                
             | 
                                
                            
                        
                 
             
            
                Properties
                
                    
                        
                            Visibility
            
                help
                
                                                    Visibility determines if the function is visible to users and other contracts.
                                Only functions that are public can be used.
                
            
                                
                        internal
                     
                    
                        
                            Mutability
            
                help
                
                                                    Mutability tells you if a function can make changes on the blockchain.
                                View means the function can be called by anyone without
                                a wallet and without submitting a transaction.
                
            
                                
                        
                            transaction
                     
                 
             
                
                    
                        Requirements
            
                help
                
                                                Requirements are checks that the function makes when it runs, and give you
                            insight on what conditions are required for the function to succeed.
                
            
                            
                    
                 
                Source Code
                
                    function _setTokenURI(uint256 tokenId, string memory _tokenURI)
  internal
  virtual
{
  require(_exists(tokenId), "ERC721Metadata: URI set of nonexistent token");
  _tokenURIs[tokenId] = _tokenURI;
}
                 
         
     
 
                
    
        internal ERC721._setBaseURI
        
        keyboard_arrow_up
    
    
        
            
                
                    Parameters
            
                help
                
                                            Function parameters list what input the function expects from the user. Each
                        parameter must be given a value.
                
            
                        
                
                        
                            
                            
                                | Name | 
                                Type | 
                            
                            
                            
                                
                                    | baseURI_ | 
                                    
            
                string  help
                
                    The type of this value is string, which is basically just plain text. It's called a string because it is a 'string' of letters.
                
             | 
                                
                            
                        
                 
             
            
                Properties
                
                    
                        
                            Visibility
            
                help
                
                                                    Visibility determines if the function is visible to users and other contracts.
                                Only functions that are public can be used.
                
            
                                
                        internal
                     
                    
                        
                            Mutability
            
                help
                
                                                    Mutability tells you if a function can make changes on the blockchain.
                                View means the function can be called by anyone without
                                a wallet and without submitting a transaction.
                
            
                                
                        
                            transaction
                     
                 
             
                Source Code
                
                    function _setBaseURI(string memory baseURI_) internal virtual {
  _baseURI = baseURI_;
}
                 
         
     
 
                
    
        internal ERC721._checkOnERC721Received
        
        keyboard_arrow_up
    
    
        
            
                
                    Parameters
            
                help
                
                                            Function parameters list what input the function expects from the user. Each
                        parameter must be given a value.
                
            
                        
                
                        
                            
                            
                                | Name | 
                                Type | 
                            
                            
                            
                                
                                    | from | 
                                    
            
                address  help
                
                    The type of this value is address, which means it stores an Ethereum address, such as a wallet address.
                
             | 
                                
                                
                                    | to | 
                                    
            
                address  help
                
                    The type of this value is address, which means it stores an Ethereum address, such as a wallet address.
                
             | 
                                
                                
                                    | tokenId | 
                                    
            
                uint256  help
                
                    The type of this value is uint, which stands for unsigned integer. Integer means it's a whole number (such as 1, 12, 52) without fractions or decimals. Unsigned means it can't have a negative or positive sign, so it's always a positive number.
                
             | 
                                
                                
                                    | _data | 
                                    
            
                bytes  help
                
                    The type of this value is byte or bytes. Byte data is usually not intended for human reading, and stores binary data.
                
             | 
                                
                            
                        
                 
             
            
                Properties
                
                    
                        
                            Visibility
            
                help
                
                                                    Visibility determines if the function is visible to users and other contracts.
                                Only functions that are public can be used.
                
            
                                
                        private
                     
                    
                        
                            Mutability
            
                help
                
                                                    Mutability tells you if a function can make changes on the blockchain.
                                View means the function can be called by anyone without
                                a wallet and without submitting a transaction.
                
            
                                
                        
                            transaction
                     
                 
             
                Source Code
                
                    function _checkOnERC721Received(
  address from,
  address to,
  uint256 tokenId,
  bytes memory _data
) private returns (bool) {
  if (!to.isContract()) {
    return true;
  }
  bytes memory returndata = to.functionCall(
    abi.encodeWithSelector(
      IERC721Receiver(to).onERC721Received.selector,
      _msgSender(),
      from,
      tokenId,
      _data
    ),
    "ERC721: transfer to non ERC721Receiver implementer"
  );
  bytes4 retval = abi.decode(returndata, (bytes4));
  return (retval == _ERC721_RECEIVED);
}
                 
         
     
 
                
    
        internal ERC721._approve
        
        keyboard_arrow_up
    
    
        
            
                
                    Parameters
            
                help
                
                                            Function parameters list what input the function expects from the user. Each
                        parameter must be given a value.
                
            
                        
                
                        
                            
                            
                                | Name | 
                                Type | 
                            
                            
                            
                                
                                    | to | 
                                    
            
                address  help
                
                    The type of this value is address, which means it stores an Ethereum address, such as a wallet address.
                
             | 
                                
                                
                                    | tokenId | 
                                    
            
                uint256  help
                
                    The type of this value is uint, which stands for unsigned integer. Integer means it's a whole number (such as 1, 12, 52) without fractions or decimals. Unsigned means it can't have a negative or positive sign, so it's always a positive number.
                
             | 
                                
                            
                        
                 
             
            
                Properties
                
                    
                        
                            Visibility
            
                help
                
                                                    Visibility determines if the function is visible to users and other contracts.
                                Only functions that are public can be used.
                
            
                                
                        private
                     
                    
                        
                            Mutability
            
                help
                
                                                    Mutability tells you if a function can make changes on the blockchain.
                                View means the function can be called by anyone without
                                a wallet and without submitting a transaction.
                
            
                                
                        
                            transaction
                     
                 
             
                Source Code
                
                    function _approve(address to, uint256 tokenId) private {
  _tokenApprovals[tokenId] = to;
  emit Approval(ownerOf(tokenId), to, tokenId);
}
                 
         
     
 
                
    
        internal ERC721._beforeTokenTransfer
        
        keyboard_arrow_up
    
    
        
            
                
                    Parameters
            
                help
                
                                            Function parameters list what input the function expects from the user. Each
                        parameter must be given a value.
                
            
                        
                
                        
                            
                            
                                | Name | 
                                Type | 
                            
                            
                            
                                
                                    | from | 
                                    
            
                address  help
                
                    The type of this value is address, which means it stores an Ethereum address, such as a wallet address.
                
             | 
                                
                                
                                    | to | 
                                    
            
                address  help
                
                    The type of this value is address, which means it stores an Ethereum address, such as a wallet address.
                
             | 
                                
                                
                                    | tokenId | 
                                    
            
                uint256  help
                
                    The type of this value is uint, which stands for unsigned integer. Integer means it's a whole number (such as 1, 12, 52) without fractions or decimals. Unsigned means it can't have a negative or positive sign, so it's always a positive number.
                
             | 
                                
                            
                        
                 
             
            
                Properties
                
                    
                        
                            Visibility
            
                help
                
                                                    Visibility determines if the function is visible to users and other contracts.
                                Only functions that are public can be used.
                
            
                                
                        internal
                     
                    
                        
                            Mutability
            
                help
                
                                                    Mutability tells you if a function can make changes on the blockchain.
                                View means the function can be called by anyone without
                                a wallet and without submitting a transaction.
                
            
                                
                        
                            transaction
                     
                 
             
                Source Code
                
                    function _beforeTokenTransfer(
  address from,
  address to,
  uint256 tokenId
) internal virtual {}
                 
         
     
 
                
    
        internal Context._msgSender
        
        keyboard_arrow_up
    
    
        
            
                
                    Parameters
            
                help
                
                                            Function parameters list what input the function expects from the user. Each
                        parameter must be given a value.
                
            
                        
                
                        This function has no parameters.
                 
             
            
                Properties
                
                    
                        
                            Visibility
            
                help
                
                                                    Visibility determines if the function is visible to users and other contracts.
                                Only functions that are public can be used.
                
            
                                
                        internal
                     
                    
                        
                            Mutability
            
                help
                
                                                    Mutability tells you if a function can make changes on the blockchain.
                                View means the function can be called by anyone without
                                a wallet and without submitting a transaction.
                
            
                                
                        view
                     
                 
             
                Source Code
                
                    function _msgSender() internal view virtual returns (address payable) {
  return msg.sender;
}
                 
         
     
 
                
    
        internal Context._msgData
        
        keyboard_arrow_up
    
    
        
            
                
                    Parameters
            
                help
                
                                            Function parameters list what input the function expects from the user. Each
                        parameter must be given a value.
                
            
                        
                
                        This function has no parameters.
                 
             
            
                Properties
                
                    
                        
                            Visibility
            
                help
                
                                                    Visibility determines if the function is visible to users and other contracts.
                                Only functions that are public can be used.
                
            
                                
                        internal
                     
                    
                        
                            Mutability
            
                help
                
                                                    Mutability tells you if a function can make changes on the blockchain.
                                View means the function can be called by anyone without
                                a wallet and without submitting a transaction.
                
            
                                
                        view
                     
                 
             
                Source Code
                
                    function _msgData() internal view virtual returns (bytes memory) {
  this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
  return msg.data;
}
                 
         
     
 
                
    
        internal ERC165.constructor
        
        keyboard_arrow_up
    
    
        
            
                
                    Parameters
            
                help
                
                                            Function parameters list what input the function expects from the user. Each
                        parameter must be given a value.
                
            
                        
                
                        This function has no parameters.
                 
             
            
                Properties
                
                    
                        
                            Visibility
            
                help
                
                                                    Visibility determines if the function is visible to users and other contracts.
                                Only functions that are public can be used.
                
            
                                
                        internal
                     
                    
                        
                            Mutability
            
                help
                
                                                    Mutability tells you if a function can make changes on the blockchain.
                                View means the function can be called by anyone without
                                a wallet and without submitting a transaction.
                
            
                                
                        
                            transaction
                     
                 
             
                
                    
                        Requirements
            
                help
                
                                                Requirements are checks that the function makes when it runs, and give you
                            insight on what conditions are required for the function to succeed.
                
            
                            
                    
                 
                Source Code
                
                    constructor() internal {
  // Derived contracts need only register support for their own interfaces,
  // we register support for ERC165 itself here
  _registerInterface(_INTERFACE_ID_ERC165);
}
                 
         
     
 
                
    
        internal ERC165._registerInterface
        
        keyboard_arrow_up
    
    
        
            
                
                    Parameters
            
                help
                
                                            Function parameters list what input the function expects from the user. Each
                        parameter must be given a value.
                
            
                        
                
                        
                            
                            
                                | Name | 
                                Type | 
                            
                            
                            
                                
                                    | interfaceId | 
                                    
            
                bytes4  help
                
                    The type of this value is byte or bytes. Byte data is usually not intended for human reading, and stores binary data.
                
             | 
                                
                            
                        
                 
             
            
                Properties
                
                    
                        
                            Visibility
            
                help
                
                                                    Visibility determines if the function is visible to users and other contracts.
                                Only functions that are public can be used.
                
            
                                
                        internal
                     
                    
                        
                            Mutability
            
                help
                
                                                    Mutability tells you if a function can make changes on the blockchain.
                                View means the function can be called by anyone without
                                a wallet and without submitting a transaction.
                
            
                                
                        
                            transaction
                     
                 
             
                
                    
                        Requirements
            
                help
                
                                                Requirements are checks that the function makes when it runs, and give you
                            insight on what conditions are required for the function to succeed.
                
            
                            
                    
                 
                Source Code
                
                    function _registerInterface(bytes4 interfaceId) internal virtual {
  require(interfaceId != 0xffffffff, "ERC165: invalid interface id");
  _supportedInterfaces[interfaceId] = true;
}
                 
         
     
 
                
    
        internal Ownable.constructor
        
        keyboard_arrow_up
    
    
        
            
                
                    Parameters
            
                help
                
                                            Function parameters list what input the function expects from the user. Each
                        parameter must be given a value.
                
            
                        
                
                        This function has no parameters.
                 
             
            
                Properties
                
                    
                        
                            Visibility
            
                help
                
                                                    Visibility determines if the function is visible to users and other contracts.
                                Only functions that are public can be used.
                
            
                                
                        internal
                     
                    
                        
                            Mutability
            
                help
                
                                                    Mutability tells you if a function can make changes on the blockchain.
                                View means the function can be called by anyone without
                                a wallet and without submitting a transaction.
                
            
                                
                        
                            transaction
                     
                 
             
                Source Code
                
                    constructor() internal {
  address msgSender = _msgSender();
  _owner = msgSender;
  emit OwnershipTransferred(address(0), msgSender);
}
                 
         
     
 
                
    
        internal Context._msgSender
        
        keyboard_arrow_up
    
    
        
            
                
                    Parameters
            
                help
                
                                            Function parameters list what input the function expects from the user. Each
                        parameter must be given a value.
                
            
                        
                
                        This function has no parameters.
                 
             
            
                Properties
                
                    
                        
                            Visibility
            
                help
                
                                                    Visibility determines if the function is visible to users and other contracts.
                                Only functions that are public can be used.
                
            
                                
                        internal
                     
                    
                        
                            Mutability
            
                help
                
                                                    Mutability tells you if a function can make changes on the blockchain.
                                View means the function can be called by anyone without
                                a wallet and without submitting a transaction.
                
            
                                
                        view
                     
                 
             
                Source Code
                
                    function _msgSender() internal view virtual returns (address payable) {
  return msg.sender;
}
                 
         
     
 
                
    
        internal Context._msgData
        
        keyboard_arrow_up
    
    
        
            
                
                    Parameters
            
                help
                
                                            Function parameters list what input the function expects from the user. Each
                        parameter must be given a value.
                
            
                        
                
                        This function has no parameters.
                 
             
            
                Properties
                
                    
                        
                            Visibility
            
                help
                
                                                    Visibility determines if the function is visible to users and other contracts.
                                Only functions that are public can be used.
                
            
                                
                        internal
                     
                    
                        
                            Mutability
            
                help
                
                                                    Mutability tells you if a function can make changes on the blockchain.
                                View means the function can be called by anyone without
                                a wallet and without submitting a transaction.
                
            
                                
                        view
                     
                 
             
                Source Code
                
                    function _msgData() internal view virtual returns (bytes memory) {
  this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
  return msg.data;
}