智能合约 之 ERC-721

ERC-721(Non-Fungible Token,NFT)标准

ERC-721是以太坊区块链上的一种代币标准,它定义了一种非同质化代币(Non-Fungible Token,NFT)的标准。NFT是一种加密数字资产,每个代币都具有独特的属性,使其在区块链上不可互换。ERC-721标准的提出为数字艺术品、游戏物品、房地产和其他实物资产数字化所有权提供了基础

基本原理

ERC-721标准建立在以太坊智能合约技术之上,它定义了一组规则,以确保非同质化代币的发行、传输和交易的一致性和互操作性。与传统的代币标准(如ERC-20)不同,ERC-721代币具有独一无二的标识符和属性,因此每个代币都是独特的

ERC-20属于同质化代币,比如 你的 1 USDT 和 `我的 1 USDT`` 本质上是一样的价值

应用场景

  1. 数字艺术品: 艺术家可以将其作品转换为ERC-721代币,并通过智能合约确保其数字版权。
  2. 游戏物品: 游戏开发者可以使用ERC-721创建游戏中的唯一道具、角色或地图,玩家可以拥有、交易或出售这些物品。比如:加密猫
  3. 房地产和虚拟现实: 开发者可以利用ERC-721创建虚拟地产,如数字土地或建筑,从而在虚拟现实世界中实现所有权和交易。

目前来看,游戏物品是最有发展潜力的。数字艺术品房地产和虚拟现实一般需要公证机构的参与,所以有其局限性。

加密猫

定义的规则

    function balanceOf(address _owner) external view returns (uint256); // 拥有几个NFTfunction ownerOf(uint256 _tokenId) external view returns (address); // 谁拥有当前NFT(_tokenId)function safeTransferFrom(address _from, address _to, uint256 _tokenId, bytes data) external payable; // 转移NFTfunction safeTransferFrom(address _from, address _to, uint256 _tokenId) external payable; // 转移NFTfunction transferFrom(address _from, address _to, uint256 _tokenId) external payable; // 转移NFTfunction approve(address _approved, uint256 _tokenId) external payable; // 将自己的NFT授权给_approved,其可以执行转移操作function setApprovalForAll(address _operator, bool _approved) external; // 授权_approved可以转移自己所有此合约的NFTfunction getApproved(uint256 _tokenId) external view returns (address); // 检查某个NFT的转移权限function isApprovedForAll(address _owner, address _operator) external view returns (bool); // 检查_operator是否有_owner的NFT的转移权限

关注我,一起进入Web3的世界

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/568488.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

npm安装了高版本如何降低npm版本

npm版本降级 因项目依赖原因把node升级到了20,npm自动安装了10.0,后又把node降级到了v16。但npm版本未降级,手动降级 1、输入以下命令,其中后面改为自己想要安装版本 npm install npm6.4.1 -g 2、输入以下命令,查看n…

C++细节

背景知识: 面向对象的编程中,类(Class)是创建对象的蓝图或模板,它包含了数据(通常称为属性或变量)和行为(通常称为方法或函数)。将数据封装为私有(private&am…

clickhouse快速入门(入门篇必看必会)

1. 启动clickhouse-client clickhouse-client --user xx --password xx 2. 再外部连接clickhouse客户端 并导出表中数据到本地 # 连接clickhouse客户端并导出db库中的test表 带表头的导出到指令目录下 ## >> 是追加, > 是覆盖 cickhouse-client --password -d …

2024年大模型面试准备(三):聊一聊大模型的幻觉问题

节前,我们组织了一场算法岗技术&面试讨论会,邀请了一些互联网大厂朋友、参加社招和校招面试的同学,针对大模型技术趋势、大模型落地项目经验分享、新手如何入门算法岗、该如何备战、面试常考点分享等热门话题进行了深入的讨论。 合集在这…

AI论文速读 | 具有时间动态的路网语义增强表示学习

论文标题: Semantic-Enhanced Representation Learning for Road Networks with Temporal Dynamics 作者: Yile Chen(陈亦乐) ; Xiucheng Li(李修成); Gao Cong(丛高) ; Zhifeng Ba…

SpringBoot3.2.0+knife4j-openapi3

1.引入项目依赖 <dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-openapi3-jakarta-spring-boot-starter</artifactId><version>4.5.0</version> </dependency> 2.新增配置文件 import io.swagger…

【双指针】Leetcode 202.快乐数

题目解析 Leetcode 202.快乐数 看完题目描述相信大家已经知晓题目的含义&#xff0c;我们通过一张图再剖析一下题目含义 快乐数或者非快乐数都是可以成环的&#xff0c;这个是数学上已经证明了的。所以这道题的最后含义就是分辨出环中全部是1或者全部没有1的 双指针 成环问…

家政服务管理平台设计与实现|SpringBoot+ Mysql+Java+ B/S结构(可运行源码+数据库+设计文档)

本项目包含可运行源码数据库LW&#xff0c;文末可获取本项目的所有资料。 推荐阅读100套最新项目 最新ssmjava项目文档视频演示可运行源码分享 最新jspjava项目文档视频演示可运行源码分享 最新Spring Boot项目文档视频演示可运行源码分享 2024年56套包含java&#xff0c;…

分享近期整理出来的5款好用软件

​ 最近陆陆续续收到好多小伙伴的咨询&#xff0c;这边也是抓紧时间整理出几个好用的软件&#xff0c;希望可以帮到大家。 1.任务管理——Todoist ​ Todoist是一款功能强大的任务管理应用&#xff0c;它帮助用户规划日常生活和工作中的各种任务。用户可以通过它创建任务清单…

7天拿下自动化测试

&#x1f345; 视频学习&#xff1a;文末有免费的配套视频可观看 &#x1f345; 关注公众号【互联网杂货铺】&#xff0c;回复 1 &#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 一、自动化测试 在软件测试中&#xff0c;自动化测试指的是使用…

Vue3 + Vite + TS + Element-Plus + Pinia创建新项目(1)

1、cmd进入命令行后&#xff0c;输入npm create vite 2、使用vs code打开文件夹 3、在VS Code的终端里面输入命令&#xff1a;npm i 安装依赖 4、安装依赖库 npm i vue-router 路由安装 npm i pinia 全局状态管理 npm i axios 请求库 npm i element-p…

蓝桥杯算法 - DP

上一篇&#xff1a;[[蓝桥杯算法-排序、递归、全排列]] 动态规划&#xff08;dp&#xff09; dp即动态规划&#xff0c;常用于&#xff1a;数学&#xff0c;计算机科学&#xff0c;管理学&#xff0c;经济和生物信息学。 dp在生活中也很常见&#xff0c;如&#xff1a;你今天…