4. CCN-721

CCN-721 is a token standard that describes how to create non-fungible or unique tokens (NFTs) on the CONDOR Chain Network. Most tokens on the BCN are fungible, but CCN-721 tokens are non-fungible. Each NFT is unique and not interchangeable with other tokens. Therefore, CCN-721 tokens can be used to tokenize ownership of data and link unique identifiers.

CCN-20 allows developers to create multiple identical tokens within a single smart contract. However, with CCN-721, each token is assigned a different token ID. These unique IDs can be used to represent collectible, non-fungible items using CCN-721 tokens. Users can trade and transfer these tokens according to their rarity, utility, and market value.

Similar to CCN-20, CCN-721 tokens require CONDOR tokens to pay CONDOR gas. CCN-721 tokens can be created on CCN. CCN-721 contains a list of features that determine how a token interacts with a CCN.

• Name

Defines the name of the CCN-721 token to be identified in other contracts.

• Symbols

Shorter name of token (similar to ticker symbol)

• Balance

Displays the token balance for a particular address.

• Total supply

Defines the total number of generated tokens.

• Default Ownership Feature Set

Some can be included as options. The unique function of NFTs is a metadata function.

• Token metadata

This feature allows you to include metadata in the tokens used to connect to artwork files or other collectible aspects of NFTs.

Difference between CCN-20 and CCN-721 tokens

The CCN-20 token can be a common token issuance standard that can be traded on exchanges because it supports fungible cryptocurrencies. The meaning of 'fungible' is easy to think of when you think of money. For example, a $1 bill you have now and someone else's $1 bill are both worth the same. The same is true if you give it to someone else. All tokens issued as CCN-20 tokens have this 'fungible' characteristic. In contrast, the CCN-721 token is 'non-fungible'. All tokens issued under CCN-721 have their own value.

• Applied Technology

CCN-721 implements a standard API for NFTs within smart contracts, which will provide the basic functions for tracking and transferring NFTs. CCN-721 considers the use cases of NFTs and the entrustment of third-party brokers/wallets/auctioneers, NFTs are ownership of digital or physical assets, and NFTs are distinguishable so that ownership can be tracked separately.

• Physical property - houses, unique artwork

• Virtual collectables - unique pictures of kittens, collectable cards

• “Negative value” assets - loans, burdens and other responsibilities

The CCN-721 standard interface enables wallets, brokers, and auction applications to work seamlessly with all NFTs on the CONDOR Chain Network, providing a simple CCN-721 smart contract and a tracking contract for NFTs.

Through metadata extensions, users can examine the name of the smart contract and detailed information about the asset represented by the NFT. The enumeration extension allows the contract to expose a complete list of NFTs, making search and discovery possible.

• SOLIDITY ISSUE #3412

It includes an explicit mutability guarantee for each function. The mutability guarantees are in order from weak to strong, i.e., PAYABLE, implicit insolvency, VIEW, and PURE. You must implement this interface's variability guarantees, and you can meet stronger guarantees. For example, the PAYABLE function of an interface is implemented in the contract as insolvent.

• SOLIDITY ISSUE #3419

Contracts implemented by CCN-721 METADATA OR CCN-721 enumerable must implement CCN-721.

• SOLIDITY ISSUE #2330

If the function marks this specification as EXTERNAL, then the contract is compliant if it uses public visibility.

NFT Identifier

All NFTs are identified by a unique ID inside the smart contract, which is never changed. While it may be convenient for some CCN-721 smart contracts to start with ID 0 and increase by 1 with each new NFT, recipients should not assume that there is a specific pattern in the ID number and should treat the ID as a black box. In addition, NFTs can be destroyed.

Transfer Mechanism

BCCN-721 standardizes safe and unsafe transfer functions.

You can start a transfer by.

• The owner of an NFT

• The approved address of an NFT

• An authorized operator of the current owner of an NFT

Authorized operators can set up an authorized address for the NFT. It provides powerful tools for wallet, broker, and auction applications, and allows you to quickly use a large number of NFTs. The document in the transfer and accept function specifies conditions only when a transaction must occur and excludes failed transactions. In CCN-721, there is no allowance because every NFT is unique and there is only one.

Thus, the benefits of the original design of CCN-20 apply. When an operator sends tokens, it does not act as an operator on behalf of the token holder, but rather as an operator that operates on its own. This is why both the operator, and the previous token holder are important to token recipients.

Gas and Complexity

If your application is upgraded, you won't use a for/while loop in your code. This indicates that the contract cannot be scaled, and that the cost of gas can go up indefinitely over time. If a loop is needed, remove the asset enumeration function and revert the solidity array type in the enumeration function.

Privacy

Wallets, brokers, and auctioneers identified in the Motivation section verify that the owner owns the NFT. You might be interested in considering use cases where NFTs can't be enumerated, such as a registry of property ownership, but an attacker doesn't get privacy because they can simply call owner0f for all possible tokenIDs.

Last updated