NFT 铸造链上交易智能合约系统开发技术介绍

202 阅读2分钟

  非同质化通证(Non-Fungible Token,NFT)是一种架构【18I链上合约-259l开发系统3365】在区块链技术上的,不可复制、篡改、分割的加密数字权益证明,可以理解为一种去中心化的“虚拟资产或实物资产的数字所有权证书”。

  从技术层面来看,NFT以智能合约的形式发行,一份智能合约可以发行一种或多种NFT资产,包括实体收藏品、活动门票等实物资产和图像、音乐、游戏道具等虚拟资产。

  从物理层面来看,NFT仅仅是一串机器生成的数据,由于底层技术赋予的不可篡改性等特点,它被用于权利证明。

  理解NFT本质:简而言之——由智能合约创建、维护、执行的非同质化数字资产通证。NFT智能合约记录了每个NFT资产的token ID、资源存储地址及它们的各项信息。

  NFT储存于区块链上,但受到成本影响,其映射的实物资产或数字资产一般不上链,而是储存于其他中心化或非中心化的存储系统中,如IPFS,并通过哈希值或URL映射上链。

  我们将使用web3的合约方法,使用ABI和地址创建合约示例,在你的mint-nft.js文件中,添加以下内容:

const contractAddress = "0x81c587EB0fE773404c42c1d2666b5f557C470eED"

const nftContract = new web3.eth.Contract(contract.abi, contractAddress)

  使用ipfs为NFT配置元数据

  如果你还记得第一部分的教程,我们的mintNFT智能合约函数接收了一个tokenURI参数,这是一个描述NFT元数据的JSON文档--这才是真正给NFT带来生命的东西,可许它有可配置的属性,如名称、描述、图像和其他属性。

  星际文件系统(IPFS)是一个去中心化的协议和点对点网络,用于在分布式文件系统中存储和共享数据。

  我们将使用Pinata,一个方便的IPFS API和工具包,来存储我们的NFT资产和元数据,以确保我们的NFT是真正去中心化的。如果你没有Pinata账户,请注册一个免费账户这里,并完成账户电子邮件验证。

  在你创建完账户后:

  导航到Files页面,点击页面左上方的蓝色Upload按钮。

  上传一张图片到pinata-这将是你的NFT的图片资产。随意给资产起个你想要的名字

  上传后,你会在文件页面的表格中看到文件信息。你还会看到一个CID列。你可以通过点击旁边的复制按钮来复制CID。

  {

  "attributes":[

  {

  "trait_type":"Breed",

  "value":"Maltipoo"

  },

  {

  "trait_type":"Eye color",

  "value":"Mocha"

  }

  ],

  "description":"The world's most adorable and sensitive pup.",

  "image":"ipfs://QmWmvTJmJU3pozR9ZHFmQC2DNDwi2XJtf3QGyYiiagFSWb",

  "name":"Ramses"

  }