NFT合约 从入门到精通

在《区块链杀手级应用落地畅想(上)》中我们提到,2021年被称为NFT“元年”。在短时间内,NFT已不再局限于加密世界的投机价值,其释放的潜力吸引了越来越多的国际品牌,例如耐克将鞋子作为NFT专利,允许用户“繁殖”不同的鞋子来创造属于自己的定制运动鞋;其他诸如美国国家篮球协会(NBA)、路易威登(LV)等国际知名品牌均在加速布局,可以说NFT正在为艺术收藏、音乐、游戏、体育、时尚圈等赋予新的价值加持。

NFT应用场景丰富,初学者怎么入门?本文将帮助开发小白了解NFT合约的编写。

原文链接:https://mp.weixin.qq.com/s?__biz=Mzg2MDA2NzQwNw==&mid=2247491091&idx=1&sn=0df3e490dc44bfcc2b8ce50d42c4d24f&chksm=ce2d5d33f95ad425ff3a2043729ad80133add7837b3b07d6de4affa4d4e4892c86ce76268213&token=291386684&lang=zh_CN#rd

NFT合约标准介绍

目前,NFT(Non-Fungible Tokens)最为主流有三种合约:ERC-721、ERC-1155和ERC-998。

在NFT的最初期,大家严格遵守NFT的定义规范,也就是ERC-721规范,早年非常火热的加密猫系列就是基于该规范开发的。从 ERC-721 协议标准来看,每一个基于ERC-721创建的NFT都是独一无二、不可复制的。用户可以在智能合约中编写一段代码来创建自己的NFT,该段代码遵循一个比较基础的通用模版格式,可通过该代码添加关于NFT的所有者名称、元数据或安全文件链接等细节。

ERC-721规范虽然可以很好的描述NFT,却存在着一些不足。例如,假设我想一次性铸造30个NFT,那么我就需要发起30次铸造NFT的交易,效率和用户体验并不友好。为此ERC-1155提出了“打包”的概念,可以将多个NFT封装成一个Collection,允许开发者在一个智能合约中实现无限数量的FT和NFT。正是由于“打包”的特性,相当于ERC-1155协议标准集成了ERC-20和ERC-721的能力,具有效率高、灵活性强等优势,目前已经为多款游戏提供了动力,例如游戏开发者可以在一个合约里定义多种物品(角色、武器、盔甲、药水、超能力)。

随着NFT概念的进一步火热,组合式NFT概念被提出。例如一个头像可以由眼睛、嘴巴和鼻子等元素组成,每个元素都是一个NFT或者FT,这些元素共同组成了一个独一无二的NFT头像。但是对于整个头像NFT而言,在过去传统合约中是没有所谓层级关系的,即鼻子部分并不知道自己属于哪个NFT,或者头像部分不知道自己是由哪些NFT或者FT组成的。为此,ERC-998便应运而生,也就是可组合Composable NFTs,缩写为CNFT,即一个ERC-998可以包含多个ERC-721和ERC-20形式的通证,而转移CNFT即是转移CNFT所拥有的整个层级结构和所属关系。

为帮助大家快速理解并入门,下文将先分析ERC-721和ERC-1155的合约设计理念,随后详细介绍如何编写ERC 721合约。

NFT合约设计理念

ERC-721

ERC-721作为最为基础的NFT合约,具有以下几个接口:

function balanceOf(address owner) -> uint256 balance
/// @notice Find the owner of an NFT
/// @dev NFTs assigned to zero address are considered invalid, and queries

你可能感兴趣的:(NFT合约 从入门到精通)