> For the complete documentation index, see [llms.txt](https://sinqlarity.gitbook.io/sinqlarity-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://sinqlarity.gitbook.io/sinqlarity-docs/contract-details/erc-721.md).

# ERC-721

### DESCRIPTION

The ERC-721 NFT contract allows users to mint new ERC-721 non-fungible tokens. It inherits from ERC721URIStorage, which provides functionality for managing token ownership and metadata. The mintNFT() function is used to create a new token by assigning it to a specific user and setting its unique token URI. Each token has a unique token ID, which is generated using the \_tokenIds counter and incremented after each minting operation.

### FUNCTIONS

1. **Approve**
2. **mintNft :** This function is used to mint a new ERC721 non-fungible token (NFT). It takes the address of the user to whom the NFT will be assigned and the tokenURI, which is a unique identifier for the token's metadata. The function generates a new token ID using the \_tokenIds counter, mints the token to the user's address, sets the token's URI, increments the token ID counter, and returns the newly created token ID.
3. **safeTransferFrom**
4. **setApprovalForAll**
5. **transferFrom**
6. **balanceOf**
7. **getApproved**
8. **isApprovedForAll**
9. **Name**
10. **ownerOf**
11. **Symbol**
12. **tokenUri**

### EXTRA PARAMETERS

**Contract Level :** Easy

**Utility Tags :** ERC-721, NFT Minting, NFT

* **name (string):** The name of the ERC-721 token contract.
* **symbol (string):** The symbol or ticker of the ERC-721 token contract.

### USES

1. **Digital Art Marketplaces:** Artists can use the contract to mint their digital artworks as ERC-721 NFTs. Each artwork can have a unique token ID and associated metadata, allowing for ownership tracking and provenance verification on the blockchain.
2. **Collectibles and Trading Card Games:** The contract can be used to create and manage unique collectible items or trading cards as ERC-721 NFTs. Each item or card can have distinct properties, artwork, and metadata, enabling players to collect, trade, and interact with them in games.
3. **Virtual Real Estate:** The contract can be employed to tokenize virtual land or real estate properties in virtual worlds or decentralized applications. Each token represents a unique piece of virtual land, allowing users to buy, sell, and trade virtual properties on the blockchain.
4. **Tokenized Assets:** The contract can be utilized to tokenize real-world assets, such as real estate properties, artwork, or luxury goods. Each asset can be represented as an ERC-721 NFT, providing fractional ownership, provenance, and transparent transferability on the blockchain.
5. **Identity and Certification:** The contract can be used to issue unique digital identities or certificates as ERC-721 NFTs. Each NFT can represent an individual's identity or a specific certification, enabling secure verification and tamper-proof record-keeping.
