You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardexpand all lines: docs/architecture/adr-043-nft-module.md
+7-7
Original file line number
Diff line number
Diff line change
@@ -17,9 +17,9 @@ This ADR defines the `x/nft` module which is a generic implementation of NFTs, r
17
17
18
18
*`MsgNewClass` - Receive the user's request to create a class, and call the `NewClass` of the `x/nft` module.
19
19
*`MsgUpdateClass` - Receive the user's request to update a class, and call the `UpdateClass` of the `x/nft` module.
20
-
*`MsgMintNFT` - Receive the user's request to mint a nft, and call the `MintNFT` of the `x/nft` module.
21
-
*`BurnNFT` - Receive the user's request to burn a nft, and call the `BurnNFT` of the `x/nft` module.
22
-
*`UpdateNFT` - Receive the user's request to update a nft, and call the `UpdateNFT` of the `x/nft` module.
20
+
*`MsgMintNFT` - Receive the user's request to mint an NFT, and call the `MintNFT` of the `x/nft` module.
21
+
*`BurnNFT` - Receive the user's request to burn an NFT, and call the `BurnNFT` of the `x/nft` module.
22
+
*`UpdateNFT` - Receive the user's request to update an NFT, and call the `UpdateNFT` of the `x/nft` module.
23
23
24
24
## Context
25
25
@@ -48,7 +48,7 @@ We create a `x/nft` module, which contains the following functionality:
48
48
* Expose external `Message` interface for users to transfer ownership of their NFTs.
49
49
* Query NFTs and their supply information.
50
50
51
-
The proposed module is a base module for NFT app logic. It's goal it to provide a common layer for storage, basic transfer functionality and IBC. The module should not be used as a standalone.
51
+
The proposed module is a base module for NFT app logic. Its goal is to provide a common layer for storage, basic transfer functionality and IBC. The module should not be used as a standalone.
52
52
Instead an app should create a specialized module to handle app specific logic (eg: NFT ID construction, royalty), user level minting and burning. Moreover an app specialized module should handle auxiliary data to support the app logic (eg indexes, ORM, business data).
53
53
54
54
All data carried over IBC must be part of the `NFT` or `Class` type described below. The app specific NFT data should be encoded in `NFT.data` for cross-chain integrity. Other objects related to NFT, which are not important for integrity can be part of the app specific module.
@@ -58,7 +58,7 @@ All data carried over IBC must be part of the `NFT` or `Class` type described be
58
58
We propose two main types:
59
59
60
60
*`Class` -- describes NFT class. We can think about it as a smart contract address.
61
-
*`NFT` -- object representing unique, nonfungible asset. Each NFT is associated with a Class.
61
+
*`NFT` -- object representing unique, non-fungible asset. Each NFT is associated with a class.
62
62
63
63
#### Class
64
64
@@ -81,7 +81,7 @@ message Class {
81
81
*`symbol` is the symbol usually shown on exchanges for the NFT class; _optional_
82
82
*`description` is a detailed description of the NFT class; _optional_
83
83
*`uri` is a URI for the class metadata stored off chain. It should be a JSON file that contains metadata about the NFT class and NFT data schema ([OpenSea example](https://docs.opensea.io/docs/contract-level-metadata)); _optional_
84
-
*`uri_hash` is a hash of the document pointed by uri; _optional_
84
+
*`uri_hash` is a hash of the document pointed by URI; _optional_
85
85
*`data` is app specific metadata of the class; _optional_
86
86
87
87
#### NFT
@@ -107,7 +107,7 @@ message NFT {
107
107
108
108
*`uri` is a URI for the NFT metadata stored off chain. Should point to a JSON file that contains metadata about this NFT (Ref: [ERC721 standard and OpenSea extension](https://docs.opensea.io/docs/metadata-standards)); _required_
109
109
*`uri_hash` is a hash of the document pointed by uri; _optional_
110
-
*`data` is an app specific data of the NFT. CAN be used by composing modules to specify additional properties of the NFT; _optional_
110
+
*`data` is an app specific data of the NFT. Can be used by composing modules to specify additional properties of the NFT; _optional_
111
111
112
112
This ADR doesn't specify values that `data` can take; however, best practices recommend upper-level NFT modules clearly specify their contents. Although the value of this field doesn't provide the additional context required to manage NFT records, which means that the field can technically be removed from the specification, the field's existence allows basic informational/UI functionality.
0 commit comments