了解 Clarity 智能合约开发语言如何支持发行代币(加密货币)
英文原文开发文档链接: https://docs.stacks.co/write-smart-contracts/tokens
区块链技术的一个基本用途是区块链用户之间价值的表示、存储和转移。加密货币是区块链技术的一种非常常见的用途,并且仍然是普及区块链技术的主要驱动力之一。加密货币可以用区块链代币来代表:是代表区块链生态系统中的单个价值单位。然而,区块链上的代币不仅可以扩展到数字货币,而且最近整个加密货币社区的发展,已经证明了可以使用区块链来代币化其他资产,代币不仅仅可以当作钱来使用,也可以用来代币化其他有形资产。
区块链上的代币是一种数字资产,它可以由区块链的一个用户验证它的所有权。区块链上发行的代币受到一组规则监管,这些规则由区块链本身(在原生代币的情况下)或区块链上的智能合约程序制定。规则可能因代币的性质和用途而产生不同的变化。
区块链上的代币可以根据其属性分为两大类:可替代的或不可替代的。以下部分讨论这两种类型的代币的属性,并提供有关这两种类型的代币如何在 stacks 区块链上实现的信息。
可替代代币
区块链上任何代币的核心属性是可替代性。可互换代币是一种可以相互互换或能够相互替代的代币。换句话说,特定数量或一部分的可替代代币可以被相同数量或部分相同的可替代代币替换。可替代代币通常用于代表现实世界的可替代资产,如货币。STX 加密货币是可替代代币的一个例子。其他示例包括稳定币、可以在 DAO 组织中投票的代币,还有通过算法跟踪股票价格的代币。
可替代代币是区块链技术最重要的价值因素之一,通过外部或者内部的交易,它可以存储价值,也可以交换价值。由于可替代代币可以分成更小的部分并重新组合成相同的价值,因此它们为区块链用户之间的价值转移提供了很大的作用。
Stacks 区块链上的主要可替代代币是原生代币 STX 。因为 Stacks 区块链允许创建智能合约,所以也可以在 Stacks 区块链上创建其他可替代的代币。 SIP-010协议规定了 Stacks 区块链上可替代代币的标准。该规范定义了 Stacks 上的可替代代币必须具有的功能和特征。通过遵守该标准,Stacks 区块链上的可替代代币可以很容易地通过 Stacks 的官方钱包来使用。
了解可替代代币的标准
SIP-010 标准是一个接口定义,允许 Stacks 区块链上的应用程序和钱包以标准方式与可替代代币进行交互。该标准降低了代币发行者将其代币纳入 stacks 区块链生态系统的复杂性。在 SIP-010 标准下,可替代代币必须具有以下特征:
能够将指定数量的代币转移给某个接收者。接收者必须是另外一个 Stacks 区块链用户(使用 transfer 函数)。
能够获得人类可读的代币名称 (get-name 方法).
可以获得一个简短的代币名称(代币符号),执行方法为 get-symbol 。
能够得到这个代币的更小的十进制小数(get-decimals 方法),可以用来构建人们所能熟悉的代币计数方式。例如,如果基本单位是美分,则美元有 2 位小数。
可以知道特定 stacks 区块链用户所拥有的代币余额(get-balance-of 方法).
能够获得代币的总供应量( get-total-supply 方法)。
一个可以绑定代币元数据的 URI (get-token-uri 方法). 这可以解析跟代币或智能合约程序相关的链下元数据,例如代币的相关图片、图标或者文字描述。
stacks 区块链上可替代代币的例子
代币 Nothing (智能合约程序地址)
不可替代的代币 (NFT 加密收藏品)
不可替代的代币 (NFT) 是一种不可以被别的东西代替的代币。NFT 具有独特的特征(通常以附加元数据的形式),限制了用相同代币替换它们的能力。NFT 是一种独特的代币,例如一件艺术品,或者对真实世界资产(例如房屋)的所有权。
NFT 本身没有内在价值,就像货币一样。NFT 的价值来源于 NFT 所代表的资产。NFT 的用途多种多样,包括数字艺术、收藏品、域名和内容版权和所有权。NFT 可用作跟踪现实世界物品真实性的数字证书,可以将财产所有权数字化。
与可替代代币一样,Stacks 区块链上的 NFT 是通过智能合约程序创建的。SIP-009 协议规定了 Stacks 区块链上 NFT 的标准。该规范定义了 NFT 必须具有的功能和特征,但大多数 NFT 附加的功能或特征比规范中描述的要多。通过遵守这个标准,在支持 Stacks 区块链的钱包里,都可以查询到 Stacks 区块链上的不可替代的代币。
理解不可替代的代币标准
SIP-009 标准是 Stacks 区块链生态系统所依据的接口定义。通过钱包和工具支持该标准,与 NFT 交互变得容易。在SIP-009标准下,NFT 合约必须具备以下特征:
能够获取最后一个代币标识符 (get-last-token-id 方法)。这个 id 代表智能合约程序发行的 NFT 的供应总量。
与特定代币标识符相关联的元数据的 URI 。 (get-token-uri 方法)。此 URI 可以解析为 JSON 文件,其中包含有关创建者、关联媒体文件、文字描述、签名等信息。
能够验证被授予的代币标识符的所有者(get-owner 方法),这个所有者解析成一个stacks 区块链用户
能够将 NFT 转移给接收者( transfer 方法),接收者必须是 Stacks 区块链用户。
stacks 区块链上的 NFT 示例
thisis#1 (智能合约程序地址)
更多阅读资料
原创翻译,转载请注明出处