
7 分钟学会创建自己的 NFT —— Solidity 教程
NFT(Non-Fungible Tokens,非同质化代币)是智能合约领域中最耀眼的星之一,是一种类似于 ERC20 的代币标准。如果说 2020 年是 DeFi 年,那么至少 2021 年的很大一部分都是属于 NFT 的。
非同质化意味着它是独一无二的,这与 ERC20 代币截然不同,后者都是同质化代币。举个同质化的例子,无论你用什么美元钞票,你的美元钞票都将价值1美元。一元纸币上的序列号可能不同,但这些纸币是可以互换的,因为它们无论如何都是价值1美元。
这些 NFT 可以通过编程来完成几乎任何你想做的事情,就像普通的智能合约一样,但它们具有链上加密的真实性,因为它们的部署历史将随着区块链的存在而得到几乎永久的保证。这解决了许多问题,特别是对于那些在艺术界摸爬滚打的人来说,NFT 所创造的数字稀缺性和真实性简直就是灵丹妙药。这也可以解决版税的问题,创造数字地位的象征,让游戏应用程序可以加强交互,等等。
NFT 的发展进度
首先要明确的是,NFT 具有无限的潜力。今年2月,Axie Infinity以888.25 ETH 的价格出售了9块地。(目前价值约 391 万美元 )
NFT是由区块链和智能合约的出现所碰撞出的全新的火花,而现在有大量的开发者和机构团队正在其上勾线各种奇思妙想。
标准
正如上文所提到的,NFT 以 ERC721 代币标准为起点,它的语法与 ERC20 相似,只是有一些调整。
为了使你的合同能被系统认定是一个 NFT ,它所要做的就是遵循这个标准。我们把这个标准导入到我们的合约中,这样我们就不必每次想做一个新的合约时都要重新造轮子。
NFT 有一个 tokenURI 变量,我们将在一分钟内讨论,他们有一个 tokenId 到其所有者的映射,每个 token 有自己的 "所有者"。这与 ERC20 不同,后者只有一个地址与余额的映射。 ERC721 仍然允许人们转让代币,在代币上设置权限等等。按照惯例,这是一个轻量级的标准,所以我们可以用它们建立任何我们想要的东西。
这里是事情开始变得真正不同的地方 —— Metadata(元数据)。当你进入 OpenSea(一个顶级 NFT 市场),你可以看到一堆图片。那么既然 NFT 是在区块链上,那么他们的所有数据都应该在链上,对吗?嗯,不尽然。
在链上存储数据可能会非常昂贵,而且艺术品的文件体积往往并不会太小。以太坊和智能合约的开发者意识到,即使是上传 1 MB的图片也会让他们迅速破产,所以他们必须创造一个不必存储大量数据,却依旧能展示他们作品的途径。
作为一种变通方法,大多数 NFT 都有一个所谓的 tokenURI 。这是一个全球唯一的标识符,用于 NFT 的可视性领域。这使得给 NFT 添加视觉效果更容易。 URI 是一个统一资源标识符,它可能是一个 HTTPS API 调用,通过 IPFS 的东西,或其他类型的唯一标识符。这个元数据看起来像这样。
它们的 JSON 文件结构是这样的:
-
name
-
description
-
image
-
attributes
这些文件通常存储在 API 或 IPFS 上。
现在,你可能会突然蹦出一个疑虑,"等等……这意味着 NFT 的可视化内容来自一个中心化存储设施?这违背了我将它部署到区块链上的最初目的!"
链上元数据 VS 链外元数据
如果你想让你的 NFT 所有你能想象到的有趣的事情,它的链上属性是必须的。举几个例子,如果你想给他们像口袋妖怪那样的战斗状态,某种类型的稀有性统计,或者让他们有链上加密的稀缺性。这些属性必须是链上的。(因为这些都需要可追溯,可证伪,公众开放)
目前 NFT 平台没有很好的方法来让链上的属性可视化,所以你只需要用你铸造的 NFT 创建一个 tokenURI 。
对于 tokenURI ,最流行的方法之一是使用 IPFS 来存储你的数据。你会把你的数据上传到那里,然后使用 pinning 服务来确保数据永远留在那里。我很期待智能合约平台和存储端之间能有更多的交互性。
提示:下面开始属于我的自说自话时间。智能合约平台在前面,Chainlink 在中间, dStorage 在后面……但这是另一个话题。
说实话,我一开始觉得 NFT 很蠢。除此以外,我曾经还认为艺术是白痴玩的东西…… 但考虑到我喜欢音乐、电影和具有良好视觉效果的游戏,我说那种话就很虚伪。 NFT 解决了艺术界在版税和真实性方面长期以来所面临的痛点。我们现在有一个去中心化的审计服务。如果你想使用某人的艺术作品,你可以在链上看到关于那件作品的一切。
Nyan 猫的原创作者以 300 ETH的价格出售了其 NFT 版本。这证明了,数字稀缺性是有价值的。
如果你创造了令人惊奇的东西,那么它就有其独特的价值。这就是为什么我认为拥有 Chainlink VRF( Chainlink 的随机数生成服务) NFT 是件非常重要的事情,因为你可以创造出非常罕见的收藏品。我很期待有人在这些平台上制作一个口袋妖怪类型的游戏。这些NFT将永远存在下去。
现在有一堆 NFT 项目的价值都在呈指数级飙升,而我们可以围绕它们做一些特别的事情。
一个简单的NFT合约
这是最简单的玩转 NFT 合约的方式。其中包含了 Truffle 、 Hardhat 和 Brownie 的语法。我喜欢使用 OpenZepplin 合约,因为结构非常完善,而且有我们通常需要的所有工具,可以直接开始工作。确保提前安装好它们:一段电脑代码 print("Hello World")
-
npm install @openzeppelin/contracts
我们创建一个带有 DOG 符号的代币,名字是 Dogie 。然后我们可以用 createCollectible 函数来铸造我们想要的 DOG ,每次都会给我们存储一个新的 tokenId 。我们需要做的就是传递一个 tokenURI ,它只是任何指向元数据 JSON 格式的东西的 URL/URI 。
进阶版本的NFT合约
在这个 NFT 合约中,我们使用 Chainlink VRF 来给我们的 NFT 提供随机状态。在这种情况下,我们正在使用随机性来给我们的狗一个随机的品种。当我们这次调用 createCollectible 时,我们实际上是向 Chainlink Oracle 发送了一个请求,以返回一个经过加密证明的随机数。这样,就不会有任何可能破坏游戏公平性的“暗箱操作”行为发生。这个请求是异步的,我们必须等待 Chainlink oracle 用随机数进行第二次交易。
一旦 Chainlink oracle 完成,它就会用它的随机数调用 fulfillRandomness 函数,这就是对 NFT 进行开采。这些映射被用来确保最初调用 createCollectible 函数的人可以成为 NFT 的所有者。这就是我们如何开始制作具有难以置信的强大功能和真正稀缺性的动态 NFT 。
总结:
创造 NFT 并非一个难于登青天的事情,只需要简单的代码,引入适当的 API 即可创造出属于自己的 NFT。但作为艺术衍生品,NFT 真正的价值依旧来源于点子、社区、风格、艺术创作品味等等,NFT 仅仅是从技术上解决了艺术品的诸多历史遗留痛点,但它并未根本改变一个艺术品的价值产生方式。大家可以尝试根据这个教程学习创作自己的 NFT。
参考文章:How To Create NFTs With Solidity
作者:Patrick Collins
编译整理:Chen Zou
本文来自比推Bitpush.News,转载须注明出处
比推快讯
更多 >>- MCN Global 将于 2025 年 6 月 14 日正式启动挖矿和开放交易
- CUDIS:第二季空投即将到来,空投总量为 CUDIS 总供应量的 5%
- 彭博社:家族办公室将目光投向加密货币与私募股权,力图突破传统股票投资
- 贝莱德:目标是 2030 年成为全球最大的加密资产管理公司
- SUN 完成第 43 期代币回购销毁
- Tether 收购黄金特许权公司 Elemental Altus 近 32% 股份
- 某鲸鱼/机构地址过去 2 日从 Binance 提币 3.35 万枚 ETH
- 一交易员因提前卖出错失百万利润,AURA 两日暴涨 128 倍
- Bitrue 黑客目前正在使用 1634.5 万 DAI 购买 ETH
- Bitrue 案黑客开始将 ETH 发送至 Tornado Cash
- HackQuest 携手 Injective 推出 Injective Learning Track
- Backpack 将第二次向徽章 holder 发放 WCT 空投
- 巴西议会考虑建立比特币战略储备,拟投入国际储备 5%
- Alchemy Pay 携手 Backed 推出全球首个法币直达 RWA 投资通道,即将上线 55 款美股与 ETF 代币化资产
- BTTC 2.0 治理体系全面升级
- 香港证监会建议进一步限制使用具误导性的名称以加强投资者保障
- Web3 天堂终结? 新加坡 DTSP 法案真实影响几何主题 Space 将于今晚 19 时开启
- 日本时尚品牌 ANAP 增持 27.5031 枚 BTC
- Lair Finance 领跑率先支持 Kaia KRW 稳定币,$LAIR 公告后持续飙升
- 彭博社:腾讯计划收购《DNF》、《冒险岛》开发商 Nexon
- Bitrue 交易所攻击者转移约 3000 万美元加密资产至新地址
- Janitor 永续合约正式登陆 Aster,用户现可在 Aster 平台直接参与 Janitor 永续合约交易
- 亿万富翁 Paul Tudor Jones:BTC、黄金和股票是对抗通胀的最佳投资组合
- B² Network 宣布将以 IDO 募资及 5 月手续费用于公开市场购买 B2
- CryptoQuant:稳定币市值创新高达 2280 亿美元
- Binance 新一期 Alpha(PUNDIAI)空投数据:26%的账户已卖出,单号收益约为 66 美元
- 特朗普将在几天内颁布美英贸易协议关键部分
- 数据:交易员 AguilaTrades 3.25 亿美元 BTC 多单转盈为亏,当前浮亏 238 万美元
- Solayer:Mega Validator 已被选为 Marinade Select 验证器
- 日本央行前委员政井贵子:特朗普关税已经刹停日本央行加息周期
- 港股蚂蚁金服概念股大幅拉升,云锋金融涨幅 98%
- 外交部:希望美方同中方一道落实两国元首通话达成的重要共识,发挥中美经贸磋商机制作用
- Tether CEO:比特币是“数学货币”
- 某鲸鱼将 1000 万枚 USDC 存入 HyperLiquid 并开设 10 倍杠杆 ETH 多单,清算价 2201 美元
- CryptoQuant 分析师:预计 BTC 将出现短期调整或在 10.8 万美元以下盘整
- H100 Group 宣布筹集 1 亿瑞典克朗以增持 BTC,股价上涨 45%
- 美国合众银行 CEO:托管业务在政策利好下回暖,正研究稳定币合作机会
- GMGN 产品更新:Solana 扫链三栏新增 3 个新协议,BSC 链新增 USD1 池子标注
- 千万粉丝 KOL Andrew Tate 在 Hyperliquid 上进行 76 笔交易,胜率仅为 35.53%
- 蚂蚁集团将在香港和新加坡申请稳定币牌照
- 欧盟加密货币监管因各国监管缺陷而受阻
- Upbit 新增 BingX 为账户验证服务支持交易所
- 法国警方在加密货币绑架案中再逮捕多名嫌疑人
- 分析师:通胀走弱与资金流入共振,比特币年底或涨至 20 万美元
- OpenSea 将于 6 月 16 日下线 OS1 版本,OS2 不再支持 Deals 功能引发争议
- 前 Galaxy 高管发文质疑以太坊基金会新组织架构混乱
- Infinex sKAITO 空投已开放申领
- TrumpMeme 官方已向参加晚宴用户发放纪念 NFT,该 NFT 由 Irys 平台提供存储内容服务
- 彭博社:如果美国失去其 AAA 信用评级,香港将抛售美国国债
- 巴西比特币储备法案在该国众议院经济发展委员会获得支持性意见
比推专栏
更多 >>观点
比推热门文章
- MCN Global 将于 2025 年 6 月 14 日正式启动挖矿和开放交易
- CUDIS:第二季空投即将到来,空投总量为 CUDIS 总供应量的 5%
- 彭博社:家族办公室将目光投向加密货币与私募股权,力图突破传统股票投资
- 当千亿美债联姻加密市场:美元 2.0 时代的诞生序幕
- 贝莱德:目标是 2030 年成为全球最大的加密资产管理公司
- SUN 完成第 43 期代币回购销毁
- Tether 收购黄金特许权公司 Elemental Altus 近 32% 股份
- 某鲸鱼/机构地址过去 2 日从 Binance 提币 3.35 万枚 ETH
- 一交易员因提前卖出错失百万利润,AURA 两日暴涨 128 倍
- 四年周期走向终章?比特币正在失去“草根灵魂”