Web3学习之ERC721
·
4min
·
Paxon Qiao
Table of Contents
Web3学习之ERC721
ERC721
加密猫
加密猫(CryptoKitties)是一个建立在以太坊区块链上的区块链游戏和收藏品平台。它是最早将区块链技术应用于非同质化代币(NFT)的项目之一,并且对区块链游戏和NFT的普及起到了重要作用。
https://etherscan.io/token/0x06012c8cf97bead5deae237070f9587f8e7a266d#code
加密猫的关键特点
-
NFT(非同质化代币):
- 每只加密猫都是一个唯一的ERC-721代币,这意味着每只猫都有独特的属性和基因,无法被复制或替代。
- NFT的特点使得每只猫在区块链上都是唯一的,这为数字收藏品提供了真正的稀缺性和所有权证明。
-
繁殖和遗传:
- 玩家可以通过繁殖两只猫来生成新的小猫,每只小猫的基因是父母基因的组合,这使得新生的小猫具有独特的属性和外观。
- 繁殖过程中的基因组合是随机的,这为游戏增加了趣味性和不确定性。
-
市场交易:
- 玩家可以在市场上买卖加密猫,价格由市场需求决定。稀有和独特的猫通常会卖出高价。
- 玩家也可以通过拍卖和直接交易等方式进行猫的买卖。
-
区块链技术:
- 加密猫是建立在以太坊区块链上的,所有交易和所有权记录都是透明和不可篡改的。
- 由于使用区块链技术,玩家可以放心地进行交易和收藏,因为他们的猫的所有权是安全和受保护的。
示例代码:创建简单的ERC-721代币
以下是一个简单的ERC-721代币合约示例,展示了如何创建一个基本的NFT合约:
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import "@openzeppelin/contracts/token/ERC721/ERC721.sol";
import "@openzeppelin/contracts/access/Ownable.sol";
contract CryptoKitty is ERC721, Ownable {
uint256 public nextTokenId;
constructor() ERC721("CryptoKitty", "CK") {}
function createKitty() external onlyOwner {
_safeMint(msg.sender, nextTokenId);
nextTokenId++;
}
function getKitty(uint256 tokenId) external view returns (address) {
return ownerOf(tokenId);
}
}
加密猫对区块链和NFT的影响
- 普及NFT概念:加密猫是最早的成功NFT项目之一,使得NFT的概念被更多人理解和接受。
- 推动以太坊网络:由于加密猫的流行,一度导致以太坊网络拥堵,这也促使开发者和社区更关注区块链的扩展性和性能问题。
- 激发更多创新:加密猫的成功激发了许多类似的区块链游戏和NFT项目的出现,如CryptoPunks、Axie Infinity等。
结论
加密猫(CryptoKitties)不仅是一个有趣的区块链游戏,更是NFT和数字收藏品领域的重要推动力。通过将区块链技术应用于游戏和收藏品,它为整个行业提供了一个新的视角和可能性。
ERC721标准
https://eips.ethereum.org/EIPS/eip-721
思考:从ERC20到ERC721的协议是怎么实现的?
转账的时候参数怎么设计
查询的时候参数怎么设计
授权批准的时候参数怎么设计
ERC1155
https://eips.ethereum.org/EIPS/eip-1155
查询
交易 transfer
授权 approve
RWA
图床