Skip to content
This repository has been archived by the owner on Nov 15, 2023. It is now read-only.

Commit

Permalink
Update README.md
Browse files Browse the repository at this point in the history
  • Loading branch information
jsidorenko authored Mar 16, 2023
1 parent 42c0d43 commit a4b00a9
Showing 1 changed file with 37 additions and 33 deletions.
70 changes: 37 additions & 33 deletions frame/uniques/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,67 +4,71 @@ A simple, secure module for dealing with non-fungible assets.

## Overview

The Uniques module provides functionality for asset management of non-fungible asset collections, including:
The Uniques module provides functionality for non-fungible tokens' management, including:

* Asset Issuance
* Asset Transfer
* Asset Destruction
* Collection Creation
* Item Minting
* Item Transfers
* Item Trading methods
* Attributes Management
* Item Burning

To use it in your runtime, you need to implement the assets [`uniques::Config`](https://paritytech.github.io/substrate/master/pallet_uniques/pallet/trait.Config.html).
To use it in your runtime, you need to implement [`uniques::Config`](https://paritytech.github.io/substrate/master/pallet_uniques/pallet/trait.Config.html).

The supported dispatchable functions are documented in the [`uniques::Call`](https://paritytech.github.io/substrate/master/pallet_uniques/pallet/enum.Call.html) enum.

### Terminology

* **Asset issuance:** The creation of a new asset item.
* **Asset transfer:** The action of transferring an asset item from one account to another.
* **Asset burning:** The destruction of an asset item.
* **Non-fungible asset:** An asset for which each unit has unique characteristics. There is exactly
one item of such an asset in existence and there is exactly one owning account.
* **Collection creation:** The creation of a new collection.
* **Item minting:** The action of creating a new item within a collection.
* **Item transfer:** The action of sending an item from one account to another.
* **Item burning:** The destruction of an item.
* **Non-fungible token (NFT):** An item for which each unit has unique characteristics. There is exactly
one instance of such an item in existence and there is exactly one owning account.

### Goals

The Uniques pallet in Substrate is designed to make the following possible:

* Allow accounts to permissionlessly create asset collections.
* Allow a named (permissioned) account to mint and burn unique assets within a collection.
* Move asset items between accounts permissionlessly.
* Allow a named (permissioned) account to freeze and unfreeze unique assets within a
* Allow accounts to permissionlessly create NFT collections.
* Allow a named (permissioned) account to mint and burn unique items within a collection.
* Move items between accounts permissionlessly.
* Allow a named (permissioned) account to freeze and unfreeze unique items within a
collection or the entire collection.
* Allow the owner of an asset item to delegate the ability to transfer the asset to some
* Allow the owner of an item to delegate the ability to transfer the item to some
named third-party.

## Interface

### Permissionless dispatchables
* `create`: Create a new asset collection by placing a deposit.
* `transfer`: Transfer an asset item to a new owner.
* `redeposit`: Update the deposit amount of an asset item, potentially freeing funds.
* `create`: Create a new collection by placing a deposit.
* `transfer`: Transfer an item to a new owner.
* `redeposit`: Update the deposit amount of an item, potentially freeing funds.
* `approve_transfer`: Name a delegate who may authorise a transfer.
* `cancel_approval`: Revert the effects of a previous `approve_transfer`.

### Permissioned dispatchables
* `destroy`: Destroy an asset collection.
* `mint`: Mint a new asset item within an asset collection.
* `burn`: Burn an asset item within an asset collection.
* `freeze`: Prevent an individual asset from being transferred.
* `destroy`: Destroy a collection.
* `mint`: Mint a new item within a collection.
* `burn`: Burn an item within a collection.
* `freeze`: Prevent an individual item from being transferred.
* `thaw`: Revert the effects of a previous `freeze`.
* `freeze_collection`: Prevent all asset within a collection from being transferred.
* `freeze_collection`: Prevent all items within a collection from being transferred.
* `thaw_collection`: Revert the effects of a previous `freeze_collection`.
* `transfer_ownership`: Alter the owner of an asset collection, moving all associated deposits.
* `set_team`: Alter the permissioned accounts of an asset collection.
* `transfer_ownership`: Alter the owner of a collection, moving all associated deposits.
* `set_team`: Alter the permissioned accounts of a collection.

### Metadata (permissioned) dispatchables
* `set_attribute`: Set a metadata attribute of an asset item or collection.
* `clear_attribute`: Remove a metadata attribute of an asset item or collection.
* `set_metadata`: Set general metadata of an asset item.
* `clear_metadata`: Remove general metadata of an asset item.
* `set_collection_metadata`: Set general metadata of an asset collection.
* `clear_collection_metadata`: Remove general metadata of an asset collection.
* `set_attribute`: Set an attribute of an item or collection.
* `clear_attribute`: Remove an attribute of an item or collection.
* `set_metadata`: Set general metadata of an item.
* `clear_metadata`: Remove general metadata of an item.
* `set_collection_metadata`: Set general metadata of a collection.
* `clear_collection_metadata`: Remove general metadata of a collection.

### Force (i.e. governance) dispatchables
* `force_create`: Create a new asset collection.
* `force_asset_status`: Alter the underlying characteristics of an asset collection.
* `force_create`: Create a new collection.
* `force_asset_status`: Alter the underlying characteristics of a collection.

Please refer to the [`Call`](https://paritytech.github.io/substrate/master/pallet_uniques/pallet/enum.Call.html) enum
and its associated variants for documentation on each function.
Expand Down

0 comments on commit a4b00a9

Please sign in to comment.