# NFT Smart Contracts and their popular features

By [Lokki](https://paragraph.com/@lokki) · 2022-11-01

---

What are smart contracts?
-------------------------

Smart contracts are computer programs or transaction protocols designed to automatically execute, control, or document binding actions or events.

These digital contracts are [trustless](https://www.gemini.com/cryptopedia/glossary#trustless), autonomous, decentralized, and transparent — and are usually irreversible and unmodifiable once deployed. 

**Smart contracts can be used for:**

*   Financial transactions;
    
*   Exchanges of digital goods and services;
    
*   Exchange of coins;
    
*   Building DAOs (Decentralized Autonomous Organization);
    
*   Legal agreements;
    
*   Real Estate (fractional ownership);
    

What is NFT smart contract?
---------------------------

A Non-Fungible Token is a unique digital identifier that cannot be copied, substituted, or subdivided, that is recorded in a blockchain, and that is used to certify authenticity and ownership.

NFTs are created via a process known as minting, which involves converting images, videos, sound bites, and other digital files into crypto assets on a blockchain. Essentially, when you mint NFTs, you’re configuring the underlying smart contract code that decides the qualities of your crypto assets.

Defining scope of NFT smart contract
------------------------------------

You will need to cover everything, starting from Art & attributes, ending with all the integrations you might require.

**What needs to be defined:**

*   Art - Attributes;
    
*   Generative Art;
    
*   Metadata & Images;
    
*   Total Supply: number of NFT that can be minted;
    
*   Price and logic of minting;
    
*   Tokenomics;
    
*   Additional Features that need to be implemented;
    
*   Additional Extensions that need to be implemented;
    
*   Integrations.
    

The most popular features of NFT smart contracts
------------------------------------------------

*   **Airdrop and whitelists -** We can generate tokens for a predefined set of addresses without any conditions and fees.
    
*   **Reveal -** When the user mints NFT, you display a placeholder and after a certain period of time (could be 1 or even 15 days), you reveal the actual image.
    
*   **Staking -** Stake your tokens to receive back rewards. 
    
*   **Voting and Governance -** Token owners can vote against proposals. Voting has different options, one can initiate a proposal that triggers a real transaction for example. And then voting passes -> the transaction is executed. More details here: [**https://docs.openzeppelin.com/contracts/4.x/governance#proposal\_lifecycle**](https://docs.openzeppelin.com/contracts/4.x/governance#proposal_lifecycle)
    
*   **Breeding** - the user can merge two NFTs and mint a new NFT;
    
*   **Burn -** One can burn tokens; It is often used in Breeding, wherein the old NFTs that were used for breeding get burned.
    
*   **Pausable -** The owner can pause all transactions;
    
*   **Freezable -** The owner can freeze their tokens on anybody’s wallet, meaning they will not be able to do transactions on it.
    
*   **Upgradeability -** We can make source codes of contracts upgradable, even more, we can separate state and logic contracts and make some parts of them upgradeable.
    

Integrations & Ecosystem
------------------------

*   **Gating —** Tokens can be used to allow/disallow certain actions on-chain and off-chain
    
*   **Payments —** We can make users/customers pay using internal (utility) tokens;
    
*   **3rd party integrations —** Tokens can be exchanged for NFTs and vice versa. In addition to that, exchange with other tokens if we find any good synergy with other projects.
    
*   **Wallets & Web2 —** TKN will be displayed inside wallets as assets and also on web pages and other web2/web3 systems where we need it.

---

*Originally published on [Lokki](https://paragraph.com/@lokki/nft-smart-contracts-and-their-popular-features)*
