/ERC721.sol"; import "@openzeppelin/contracts/utils/Counters.sol" contract UniqueAsset is ERC721{ constructor() public ERC721("UniqueAsset", "UNA") {} } 我们需要指定 solidity 的版本(或兼容的版本)这里使用的是^0.6.0,通过编辑 还需要从 Open Zeppelin 导入合约 ERC721 及 Counters ,Counters 用来帮助我们创建递增 id 的代币。 最后,在我们合约的构造函数中,我们定义了代币名称和符号。 你的合约现在应该是这样的: pragma solidity ^0.6.0; import "@openzeppelin/contracts/token/ERC721/ERC721.sol"; import "@openzeppelin/contracts/utils/Counters.sol"; contract UniqueAsset is ERC721 { using Counters for
什么是以太坊ERC20和ERC721 首先,ERC是什么? ERC是由Etherum开发人员为益泰坊社区编写的。 那么ERC20和ERC721代表什么,它们之间有什么区别 先简单介绍一下什么是ERC-20和ERC-721。 1、ERC-20 ERC-20是最广为人知的标准。 在这个例子中,我们可以看到ERC20令牌和ERC721令牌之间的两个区别: 1.ERC-20标准的令牌没有价值区分,可以互换;ERC-721标准中的令牌不可互换,每个令牌都有唯一的标识。
这是一个符合ERC721标准的NFT合约代码,其中包括了几个常用的标准接口和合约,下面是个合约的具体信息:IERC65.solpragma solidity ^0.8.0;/** * @dev ERC165 /IERC165.sol";/** * @dev ERC721标准接口. external view returns (bool);}IERC721Receiver.sol// SPDX-License-Identifier: MITpragma solidity ^0.8.0;// ERC721 /String.sol";contract ERC721 is IERC721, IERC721Metadata{ using Address for address; // 使用Address库 transfer(owner, from, to, tokenId); } /** * 安全转账,安全地将 tokenId 代币从 from 转移到 to,会检查合约接收者是否了解 ERC721
contract KittyOwnership is KittyBase, ERC721 { 而所有是 ERC721 通证都遵循同样的标准。下一章节分析ERC721标准。 3. 非同质化代币ERC721分析 3.1 ERC721是什么 和ERC20一样,ERC721同样是一个代币标准,ERC721官方简要解释是Non-Fungible Tokens,简写为NFTs,多翻译为非同质代币 因此谜恋猫也是第一个实现了ERC721 标准的去中心化应用。ERC721号提议已经被以太坊作为标准接受,但该标准仍处于草稿阶段。 3.2 ERC721标准 ERC721最为一个合约标准,提供了在实现ERC721代币时必须要遵守的协议,要求每个ERC721标准合约需要实现ERC721及ERC165接口,接口定义如下: pragma 标准 5) 迷恋猫智能合约和源码 6) ERC721接口文档
在解释ERC20、ERC721之前,需理出一个概念,就是同质化代币(Fungible Token, FT)和非同质化代币(Non-Fungible Token)。 ERC721 标准正是由 CryptoKitties 的CTO Dieter Shirley 所创建和发布的,Dieter Shirley 是 NFT 的奠基人之一。 另外,ERC721 还可以促进追踪、交易和管理真实资产的交易和管理等等。随着游戏虚拟资产不断流行起来,5G 和 VR 不断普及,搭载区块链技术,721 协议前景一片光明。
ERC721是什么 在创建代币一篇,我们讲到过ERC20代币, 和ERC20一样,ERC721同样是一个代币标准,ERC721官方简要解释是Non-Fungible Tokens,简写为NFTs,多翻译为非同质代币 因此谜恋猫也是第一个实现了ERC721 标准的去中心化应用。ERC721号提议已经被以太坊作为标准接受,但该标准仍处于草稿阶段。本文介绍的ERC721标准基于最新(2018/03/23官方提议。 ERC20代币是可置换的,且可细分为N份(1 = 10 * 0.1), 而ERC721的Token最小的单位为1,无法再分割。 非同质性其实广泛存在于我们的生活中,如图书馆的每一本,宠物商店的每一只宠物,歌手所演唱的歌曲,花店里不同的花等等,因此ERC721合约必定有广泛的应用场景。 ERC721标准 ERC721最为一个合约标准,提供了在实现ERC721代币时必须要遵守的协议,要求每个ERC721标准合约需要实现ERC721及ERC165接口,接口定义如下: pragma solidity
1,摘要 【本文目标】 通过本文学习,了解ERC定义及知名ERC协议标准,如ERC20以及ERC223、ERC621,ERC827协议,ERC721以及 ERC875,ERC1155,ERC998协议 4,ERC721系列 4.1 ERC721 状态: 定稿(Final) 提交记录: https://github.com/ethereum/EIPs/issues/721 标准说明: https 更深度分析的文章参考《【基于ERC721的区块链游戏】迷恋猫从玩耍到开发》。 虽然另一种协议ERC721也能实现token的不可置换性,但其存在需要交易双方支付gas费用、无法简单实现原子化交易等一些不易于用户使用的问题。 拿基于ERC721的加密猫来说,换用ERC875协议的话,能够实现。
1、学习目标理解 ERC721 与 ERC1155 的标准接口从零实现一个 最小化 ERC721(NFT)合约扩展功能:元数据管理(BaseURI)、批量铸造 / 批量转账对比 OpenZeppelin 实现使用 Foundry 测试2、知识点梳理ERC721 核心接口balanceOf(address)ownerOf(uint256)safeTransferFrom(address,address, uint256,uint256,bytes)safeBatchTransferFrom(...)事件:TransferSingle, TransferBatch, ApprovalForAll应用场景差异ERC721 → 独一无二的资产(头像、土地、艺术品)ERC1155 → 大规模批量资产(游戏道具、门票、盲盒)3、最小 ERC721 实现MyERC721.sol:// SPDX-License-Identifier 思考:如果要为 ERC721 添加 版税(Royalty) 功能,应该放在哪些函数中处理?
在本教程中,你将会学习如何使用 Alchemy 、OpenZeppelin Wizard (智能合约向导)、Remix 、goerli网络开发和部署 ERC721 的智能合约。 注:下面标题序号为了读者看的更清楚所以是自己所标注的 1.2 使用 OpenZeppelin 开发 ERC721 标准的智能合约 在之前说过,本教程中,你将会使用 OpenZeppelin 去此案一个只能合约 当你进入页面后,你将会看到以下的编辑器: 点击在左上角(往右边数第二个)的 ERC721 按钮,选择你要使用的 ERC 标准: 现在,你已经选择你合约的标准,在左侧的菜单中,你可以看到一些选项 /ERC721.sol"; import "@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol"; import " 1.4 在 REMIX 上修改和部署你的 ERC721 合约 现在你已经有了一个 ERC721 的智能合约,现在开始让我们去修改和部署它到 Goerli 测试网络上。
独有特点 无法分割:ERC-20 Token可以无限细分为10^18份,而ERC721的Token最小的单位为1,无法再分割 独一无二:每一个Token完全不同,并且每个Token对不同的用户都有不同的价值 /utils/introspection/IERC165.sol"; /** * @dev Required interface of an ERC721 compliant contract. = address(0), "ERC721: mint to the zero address"); require(! = address(0), "ERC721: mint to the zero address"); require(! /tree/master/contracts/token/ERC721
现阶段NFT主要有三种底层协议标准,分别是ERC721、ERC1155及ERC998,三种底层协议标准之间存在差异。 ERC721是第一个NFT底层协议标准,也是现阶段NFT生态系统最常运用的通证形式,由CryptoKitties的CTODieterShirley所创建和发布的。 添加描述ERC998意为可组合非同质化代币(ComposableNFTs,简称CNFT),该协议标准可以包含多个ERC721和ERC20形式的代币。 NFT三种底层协议标准的功能是逐步升级的过程,从ERC721到ERC1155能实现代币的转账交易更便捷且低成本交易;从ERC1155到ERC998能实现代币的打包交易及多场景应用。 但目前ERC721仍是NFT生态场景最常运用的通证形式。
摘要 《第三十三课 如何创建自己的ERC721非同质化资产生物商店?》 讲解了如何使用REMIX本地环境搭建ERC721非同质化资产生物商店,因为合约相对复杂,采用solidity import多级合约编辑的方式。 本文采用TRUFFLE框架的形式来发布建ERC721非同质化资产生物商店的内容,以便后续js脚本扩展和DAPP开发。 内容 2.1 环境准备 ERC721的智能合约就采用OpenZeppelin的ERC721模板合约。 具体的代码架构和分析辉哥就不展示了,有需要源码工程的同学可直接加入辉哥的知识星球下载。 Compiling openzeppelin-solidity/contracts/token/ERC721/ERC721.sol...
现阶段NFT主要有三种底层协议标准,分别是ERC721、ERC1155及ERC998,三种底层协议标准之间存在差异。 ERC721是第一个NFT底层协议标准,也是现阶段NFT生态系统最常运用的通证形式,由CryptoKitties的CTODieterShirley所创建和发布的。 图片 ERC998意为可组合非同质化代币(ComposableNFTs,简称CNFT),该协议标准可以包含多个ERC721和ERC20形式的代币。 NFT三种底层协议标准的功能是逐步升级的过程,从ERC721到ERC1155能实现代币的转账交易更便捷且低成本交易;从ERC1155到ERC998能实现代币的打包交易及多场景应用。 但目前ERC721仍是NFT生态场景最常运用的通证形式。 部署公链 以太坊是最早的NFT底层主链,它存在一个大家熟知的局限性——网络拥挤。
有了智能合约后,如果要创建NFT,通常我们遵循某个协议,现自常用的协议是ERC721,ERC1155和ERC998三种。 使用不同的协议创建NFT,一般是出于不同的使用场景,比如ERC1155的交易速度比ERC721高等,我们只需要关注其中一种协议创建nft的方法,其他的也不难。 所以这里我就以ERC721为例,简单说明下创建NFT的过程。下面的内容会展示小部分代码,这些代码的语法是solidity,这是在以太坊编写智能合约的一个语言。 ERC721协议定义了一组接口方法和事件,你写一个智能合约只要实现了这些方法和事件,它就是一个NFT的智能合约。 The URI may point to a JSON file that conforms to the "ERC721 /// Metadata JSON Schema".
简易版 NFT 合约代码pragma solidity ^0.8.4;import '@openzeppelin/contracts/token/ERC721/ERC721.sol';import '@ openzeppelin/contracts/access/Ownable.sol';// 继承ERC721, Ownablecontract SimpleMintContract is ERC721, mapping(address => uint256) public mintedWallets; // 构造函数,部署合约的时候,设置最大数量为2 constructor() payable ERC721
不过现在社区中讲概念的多,真正落地发布自己ERC721资产的文章没有看到。辉哥这篇文章就来弥补下这个空缺。 本文的内容包括: (1)采用REMIX编译本地工程的方式完成合约编译; (2)采用REMIX IDE完成合约部署; (3)创建自己的ERC721非同质化资产生物; (4)转让ERC721非同质化资产生物 ERC721的智能合约就采用OpenZeppelin的ERC721模板合约。 具体的代码架构和分析辉哥就不展示了,有需要源码工程的同学可直接加入辉哥的知识星球下载。 点击辉哥管理账号,可以看到已收到10个ERC721资产。 /1/ 可以返回由OpenSea配置的ERC721资产特性信息。
你可能听说过ERC20,ERC721或其他标准。 这些只是开发人员社区同意采用的一组基本功能。 无论你喜欢什么,都没有人会阻止你使用自己的功能,并创建一个脚本来管理虚拟货币。 在本教程中,我们将从头开始编写一个基本的,不完整的ERC20令牌,然后我们将它转换成一个与其完全不同的ERC721令牌,以便我们可以看到两者之间的差异。 ERC721 现在,ERC721与ERC20及其家族从根本上是完全不同的。 在ERC721中,令牌是独一无二的。 现在,如果我们想要将ERC20转换为ERC721,那么我们需要了解第二个提案如何跟踪令牌。 在ERC20中,每个地址都有一个令牌余额。 现在,回到我们的代码,关于ERC721提案的最初讨论到目前为止已经有点死了,原来的海报并没有在一段时间内更新这个线索,所以这里将有一个新的延续。
很多人到现在都不明白什么是NFT 为什么说万物皆可NFT 在区块链上实现NFT,有两种方式:ERC721、ERC1155 所谓的ERC721、ERC1155只是个协议 它是由专门机构提出来的 它们的区别很简单 ERC721表示的NFT,数量只能为1个 而ERC1155表示的NFT,数量有多个。 图片1.png 再比如说一个人,因为每个人的相貌、基因都不同, 所以人是属于唯一的,可以用ERC721来表示。 通过视频、音频、照片来记录这个人, 设置性别,年龄,身高等等。
它背后是基于ERC721协议的,因为ERC20标准通证大家其实说的比较多,所以这次用ERC721这个标题来说明我们这种非标通证。 「撸猫」与非标通证 下面我们就把撸猫游戏的源码做一个简单的分析,看看这个ERC721的示例实现,是怎么来用智能合约遵循ERC721的接口标准来达到这个目的。 其实这个背后的协议就是ERC721,但ERC721其实比撸猫游戏早出来很长时间,出来后其实反应热度并不高,提出ERC721的公司就推出了撸猫的游戏,这个游戏反过来又把ERC721的标准让大家熟知了,这个就是有了一个现象级的产品 KittyOwnerShip,这是一个对ERC721实现的一个合约,它里面就包括了ERC721规定的一些接口,包括Transfer等,这一系列的东西都在这个里面有体现。 我是怎样基于ERC721来「撸鱼」的 刚才看了ERC721的合约接口,也看了撸猫游戏的结构。
然后,他对 ERC20 和 ERC721 的定义进行了解释,前者是可替换的资产,后者是不可替换的资产。 那什么是 ERC721? 他通过一段英文进行了阐述:ERC721是不可替换资产的智能合约所必须要实现的最少的interface。 我今天讲的题目,是 从ERC721到去中心化的通用区块链资产平台 这里面有个关键词ERC721。有多少人用过ERC721?再倒回去一点,有多少人用过ERC20?用过ERC20的比较多一些。 ERC721的问题以及需要改进的地方 第一个我们刚才说了ERC721继承了ERC20的特点,无论是好的还是坏的。 CryptoKitties这个团队,提出ERC721这个协议之后,得到了很多的讨论。针对ERC721的不足,有人提出了ERC821这个新的协议。