movescriptions / MIPs

MIT License
3 stars 0 forks source link

[MIP-13] Tick name as a Movescription #16

Open jolestar opened 10 months ago

jolestar commented 10 months ago

Motivation

Movescription is an implementation of SFT (Semi-Fungible Token), aimed at unifying the expression of FT (Fungible Tokens) and NFT (Non-Fungible Tokens) for on-chain applications. In application scenarios, the minting method for Movescription needs to be defined by the applications themselves, a solution proposed in issue #12 with the introduction of protocol extension plugins. However, this introduces another requirement: application developers need to register the Tick name for Movescription in advance for future use. Therefore, we need to provide a mechanism for registering Tick names.

Solution

  1. A Tick name itself is a Movescription, with its own tick name being TICK.
  2. The Tick name is stored in the Movescription via the metadata field, with an amount of 1. This also serves as a case for expressing NFT through Movescription.
  3. To register a Tick name, a certain fee, for example, 10,000 MOVE, must be locked in the Movescription, which will be returned to the deployer once it's deployed. This prevents mass registration of Tick names.
  4. When a user burns the Tick name Movescription, the locked MOVE is returned, and the Tick name can be re-registered.
  5. To encourage the flow of Tick names towards application developers, the system will charge a deployment fee based on the registration time of the Tick name and the last deployment time, calculated over the duration.

Tick Name Rules

To aid in user recognition and ensure extensibility, a set of naming rules for Tick names is required:

  1. Length between 4 to 32 ASCII characters, all uppercase.
  2. Cannot contain spaces.
  3. Cannot include .. The . can be reserved for future extension of sub-Tick names. For example, under the ABCD Tick name, inscriptions like ABCD.XX could be deployed. This way, a game could use a Tick name prefix to express all assets within the game.

动机

Movescription 是一种 SFT 的实现,它的目标是让全链应用内部用它来统一表达 FT 和 NFT。而在应用场景下,Movescription 的 mint 方式需要由应用自己来定义,这是 #12 中提出的协议扩展插件来解决的。但这也同时带来另外一个需求,应用开发者需要提前注册 Movescription 的 Tick name,然后在未来的应用中使用,所以我们需要提供一种 Tick name 的注册机制。

方案

  1. Tick name 也是一种 Movescription,它自己的 tick name 叫 TICK
  2. Tick name 通过 metadata 字段保存在 Movescription 中,amount 为 1。它也是将 Movescription 表达 NFT 的一种案例。
  3. Tick name 注册时需要锁定一定的费用在 Movescription 中,比如 10000 MOVE,等它部署后返回给部署者。这样可以防止有人大量抢注 Tick name。
  4. 用户 burn 掉 Tick name Movescription 后,锁定的 MOVE 返回,Tick name 可以被重新注册。
  5. 为了鼓励 Tick name 流向应用开发者,系统会根据 Tick name 注册时间,以及最后的部署时间,按时长收取部署费用。

Tick name 规则

为了用户识别以及扩展性,需要给 Tick name 定义一个命名规则。

  1. 长度 4~32 个 ascii 字符,全部大写。
  2. 不能包含空格。
  3. 不能包含 .. 可以留做未来扩展子 Tick name 使用。通过 ABCD Tick name 可以部署 ABCD.XX 铭文。这样一个游戏可以用一个 Tick name 前缀来表达游戏内部的所有资产。