随着NFT的热度越来越高,加密艺术家们用“日进斗金”来形容一点也不为过,那如何创建自己的NFT作品,并出售给他人来获利呢?本文就是关于使用OpenSea平台创建属于自己的NFT作品及商店的教程。 一、 构建你自己的智能合约 利用ERC721代币标准,可以让你的NFT商品在OpenSea上立即进行交易。 由CryptoKitties率先开创的ERC721是非同质代币(NFT)的最新标准,而要在OpenSea上线你的作品,最好是遵循最新的Open Zeppelin ERC721实现。 OpenSea Creature样本合约我们创建了一个非常简单的示例存储库来帮助你入门,该示例的完整代码可以在Github上找到。 这个示例代码是一个名为OpenSea Creatures的收藏品。OpenSea Creatures非常简单:它们各自具有独特的外观、特征和属性,虽然有一天我们可能会围绕这些creatures添加更多的游戏,但出于本示例的目的,你可以对该creature进行的主要操作就是拥有它。你可以在此处查看Rinkeby环境中所有适用于OpenSea的OpenSea creatures。 创建ERC721合约Textpragma solidity ^0.5.0;import "./TradeableERC721Token.sol";import "openzeppelin-solidity/contracts/ownership/Ownable.sol";/*** @title Creature* Creature - a contract for my non-fungible creatures.*/contract Creature is TradeableERC721Token {constructor(address _proxyRegistryAddress) TradeableERC721Token("Creature", "OSC", _proxyRegistryAddress) public { }function baseTokenURI() public view returns (string memory) {return "https://opensea-creatures-api.herokuapp.com/api/creature/";}}pragma solidity ^0.5.0;import "./TradeableERC721Token.sol";import "openzeppelin-solidity/contracts/ownership/Ownable.sol";/*** @title Creature* Creature - a contract for my non-fungible creatures.*/contract Creature is TradeableERC721Token {constructor(address _proxyRegistryAddress) TradeableERC721Token("Creature", "OSC", _proxyRegistryAddress) public { }function baseTokenURI() public view returns (string memory) {return "https://opensea-creatures-api.herokuapp.com/api/creature/";}}正如你看到的,合约本身是简单的,它只是继承自TradeableERC721Token,后者又是继承自OpenZeppelin ERC721合约(该合约实现了所有必要的ERC721方法)。你可能会在游戏中拥有更多的逻辑,但是对于OpenSea来说,重要的是tokenURI方法,该方法使得我们能够将Creature合约中的tokenId映射到该合约的链下元数据。我们将在下一部分中了解更多有关此内容的信息。 OpenSea白名单(可选)此外,ERC721Tradable和ERC1155Tradable合约将OpenSea用户的代理账户列入白名单,以便他们能够自动在OpenSea上进行任何交易(无需支付额外的批准费用)。在OpenSea上,每个用户都有一个他们控制的“代理”帐户,最终由交易合约调用以交易其商品。 请注意,这一添加并不意味着OpenSea本身就可以访问这些商品,只是意味着用户可以根据需要更轻松地列出它们。它们是完全可选的,但是可以为用户大大减少摩擦。你可以在覆盖的isApprovedForAll方法以及factory mint方法中找到此代码。 (责任编辑:admin) |