教程丨一文了解如何在OpenSea上创建自己的NFT商店_区块链:ONT

随着NFT的热度越来越高,加密艺术家们用“日进斗金”来形容一点也不为过,那如何创建自己的NFT作品,并出售给他人来获利呢?本文就是关于使用OpenSea平台创建属于自己的NFT作品及商店的教程。

一、构建你自己的智能合约

利用ERC721代币标准,可以让你的NFT商品在OpenSea上立即进行交易。

由CryptoKitties率先开创的ERC721是非同质代币的最新标准,而要在OpenSea上线你的作品,最好是遵循最新的OpenZeppelinERC721实现。

注:如果你正在开发ERC1155合约,请查看这份ERC1155教程。

OpenSeaCreature样本合约

我们创建了一个非常简单的示例存储库来帮助你入门,该示例的完整代码可以在Github上找到。

这个示例代码是一个名为OpenSeaCreatures的收藏品。OpenSeaCreatures非常简单:它们各自具有独特的外观、特征和属性,虽然有一天我们可能会围绕这些creatures添加更多的游戏,但出于本示例的目的,你可以对该creature进行的主要操作就是拥有它。你可以在此处查看Rinkeby环境中所有适用于OpenSea的OpenSeacreatures。

创建ERC721合约

Text

pragmasolidity^0.5.0;

import"./TradeableERC721Token.sol";

import"openzeppelin-solidity/contracts/ownership/Ownable.sol";

/**

*

functionbaseTokenURI()publicviewreturns(stringmemory){

return"https://opensea-creatures-api.herokuapp.com/api/creature/";

}

}

pragmasolidity^0.5.0;

import"./TradeableERC721Token.sol";

import"openzeppelin-solidity/contracts/ownership/Ownable.sol";

金色晨讯 | 4月20日隔夜重要动态一览:21:00-7:00关键词:网络安全、区块链服务网络、数字代币税收指南

1.人民日报:强化区块链等技术攻关促进新兴产业培育。

2.中国证券报:数字货币推出利于货币政策工具创新。

3.区块链服务网络:预计7月底支持EOS轻节点一键式部署。

4.英国商业法庭将比特币定义为一种资产。

5.新加坡税务部门更新数字代币税收指南。

6.暗网盗卖金融信息 银行账户安全面临新挑战。

7.Real Vision创始人:所有中央银行都将拥有数字货币。

8.内蒙古自治区赤峰市司法局召开区块链技术应用专题会议。

9.莱特币基金会成员:区块奖励在BTC目前价格减半 矿工或将难以适应。[2020/4/20]

/**

*

functionbaseTokenURI()publicviewreturns(stringmemory){

return"https://opensea-creatures-api.herokuapp.com/api/creature/";

}

}

正如你看到的,合约本身是简单的,它只是继承自TradeableERC721Token,后者又是继承自OpenZeppelinERC721合约。你可能会在游戏中拥有更多的逻辑,但是对于OpenSea来说,重要的是tokenURI方法,该方法使得我们能够将Creature合约中的tokenId映射到该合约的链下元数据。我们将在下一部分中了解更多有关此内容的信息。

OpenSea白名单

此外,ERC721Tradable和ERC1155Tradable合约将OpenSea用户的代理账户列入白名单,以便他们能够自动在OpenSea上进行任何交易。在OpenSea上,每个用户都有一个他们控制的“代理”帐户,最终由交易合约调用以交易其商品。

请注意,这一添加并不意味着OpenSea本身就可以访问这些商品,只是意味着用户可以根据需要更轻松地列出它们。它们是完全可选的,但是可以为用户大大减少摩擦。你可以在覆盖的isApprovedForAll方法以及factorymint方法中找到此代码。

接下来,我们将学习如何构造该元数据,以便OpenSea可以选择它。

部署你的合约

要部署Creature合约,只需要核实存储库,获取免费的AlchemyAPI密钥,然后使用Truffle进行部署:

金色晨讯 | 韩国:没有发行央行数字货币的计划 半月谈:警惕“韭菜收割者”卷土重来:1.人民日报:中国力推区块链技术自主创新,仍面临诸多挑战。

2.韩国央行:目前没有发行央行数字货币(CBDC)的计划。

3.比特币的隔离见证使用率达58.27%,与8月底相比增长近两倍。

4.半月谈:区块链受青睐同时,要警惕“韭菜收割者”卷土重来。

5.深圳商报:虚拟货币炒作将纳入深圳地方金融重点监管。

6.人民法院报:谨防“区块链”沦为“区块”,以“区块链”之名行坑人钱之实,既为人们所不齿,也为法律所不容。

7.新华网:莫要把区块链这部经念歪,区块链不能成为炒作的“噱头”、行的“招牌”,区块链发展更不能陷入急功近利、热衷赚“快钱”的歧途。

8.海南副省长沈丹阳:将对区块链等制定有针对性的发展保障措施。

9.V神:以太坊2.0的无状态模型可以增强安全性。[2019/11/25]

yarninstall

exportALCHEMY_KEY="<your_alchemy_project_id>"

exportMNEMONIC=""

exportNETWORK="rinkeby"

truffledeploy--networkrinkeby

如果你已经在使用InfuraAPI,则还可以使用INFURA_KEY环境变量代替ALCHEMY_KEY。

“小建议:你只需在shell会话中运行上述导出行一次。我们建议你将这些行放入.env文件中,一旦使用..env就应用它,并避免在提交你的代码时检入它。

这里?有一个示例.env文件。”

请注意,为了使用Truffle和Infura进行部署,你将需要一个来自MetaMask账户的“助记词短语”,为了让ETH进入你的RinkebyMetaMask账户,你可以使用RinkebyETH水龙头,而要从Metamask中获取“助记词短语”,请单击“设置”并单击“显示助记词短语”,注意,请确保自己采用的是没有主网资产的钱包账户!

铸造你的代币

接下来,我们需要为新部署的ERC721合约铸造新的资产,我们会将这些资产放入我们控制的帐户中,以便我们可以测试商品的OpenSea拍卖流程。

部署到Rinkeby测试网络后,Rinkeby上将有一个合约,该合约将在RinkebyEtherscan上可见。你可以在Deployment命令的输出中找到已部署合约的地址,并通过以下URL在Etherscan上找到它:

金色晨讯 | 360安全大脑:国家级黑客组织APT-C-26将多家数字货币交易视为攻击目标:1. 香港证监会发布有关证券型代币发行的声明

2. 韩国民主党议员提交修订案 提议惩罚未经许可的加密货币交易所

3. 360安全大脑:国家级黑客组织APT-C-26将多家数字货币交易视为攻击目标

4. 中国数字版权唯一标识在京推出 实时完成确权登记

5. 瑞士财长倡议快速完善区块链法规

6. 阿根廷财政部副部长:阿根廷将扶植数字货币和区块链企业赋能产业生产和融资

7. 万事达卡及富国银行高管认同区块链具有长期潜力

8. 北美首个小镇将允许居民使用比特币缴纳市政税

9. 彭博社:以太坊网络正失去市场份额[2019/3/29]

https://rinkeby.etherscan.io/address/<contract_address>。

例如,这是最近部署的一个合约。运行铸造脚本时,应将此合约地址和MetaMask帐户的地址设置为环境变量:

exportOWNER_ADDRESS="<my_address>"

exportNFT_CONTRACT_ADDRESS="<deployed_contract_address>"

nodescripts/mint.js

至此,我们已经在Rinkeby网络上部署了一个智能合约,并在合约中铸造了一些新的OpenSea创作品,你应该可以访问rinkeby.opensea.io,并在钱包中以NFT的形式查看你的商品。有关更多的信息,请参见第3节。

这些creatures的默认元数据由https://opensea-creatures-api.herokuapp.com/api/creature/{token_id}提供,你可以在此处进行设置。接下来,你需要创建自定义元数据API。

二、添加元数据

一旦你部署了自己的合约,你就需要一种方法让每个单独的NFT商品在OpenSea上正确显示。这就是链外元数据的作用!

ERC721合约中的每个代币标识符都将具有相应的元数据URI,该URI返回有关该商品的其他重要信息,例如名称、图像、描述等。要查找此URI,我们使用ERC721中的tokenURI方法和ERC1155中的URI方法。此元数据的一个简单示例是:

{

"name":"HerbieStarbelly",

泰国央行计划今年制定稳定币监管规定:泰国央行有望在今年发布有关稳定币的监管法规。在宣布法规之前,央行正在收集市场监管机构和参与者的意见。这些监管规则并不涵盖比特币或以太坊等加密货币。此前消息,泰国央行已对Terra发行的与泰铢挂钩的稳定币THT发出了严厉警告。(路透社)[2021/3/19 19:00:56]

"description":"FriendlyOpenSeaCreaturethatenjoyslongswimsintheocean.",

"image":"https://storage.googleapis.com/opensea-prod.appspot.com/creature/50.png",

"attributes":

}

你可以用元数据做很多事情——包括添加排名、提升、动画、日期等等!我们认为你肯定会想全面地了解它,所以请参阅我们为本教程提供的专用元数据标准文档。

接下来是什么?

所以,你现在有了自己的元数据API。你需要将它连接到一个代币合约,因此更改这里的行以使用API的URL,然后重新部署合约并创建一些测试项。完成后,请转到下一节,以了解有关在OpenSea上查看资产的更多信息。

三、查看你在OpenSea的商品

现在,假设你已经把你的合约部署到了Rinkeby测试网络上,作为一个具体的例子,我们在Rinkeby上部署的OpenSeaCreature合约地址是:0x7dca125b1e805dc88814aed7ccc810f677d3e1db。

我们还为这个合约铸造了25件新的商品,因此目前的总商品供应量为25。在Etherscan上,我们可以查看其中一个项目的tokenURI,以查看它是否指向OpenSeaCreatureAPI端点。

现在就是激动人心的部分了!OpenSea有一个Rinkeby环境,其允许开发者测试他们与OpenSea的集成。这可以在testnets.opensea.io通过点击正确的URL找到,我们应该能够立即在OpenSea上查看到我们的其中一个商品,URL可按以下方式构造:

币信矿业CEO刘飞:今年很多进场机构是资产配置型公司他们更期待BTC长期价值:金色财经现场报道,与时共创第二届年度金色盛典12月26日在三亚举行。在圆桌对话“探2021年区块链行业发展如何走”环节,币信矿业CEO刘飞指出,2019年很多顶级基金就入场了,但他们是通过量化来赚钱的。而今年很多进场的机构是资产配置型的公司,他们选择长期持有,期待比特币的长期价值。另外还有Paypal、渣打等基础设施类企业都开始提供比特币相关服务,这对全球用户是非常重要的,因此促进了行业的上涨。对于机构入场我认为有三个原因,一是疫情原因,各国政府大量印钱,大机构买BTC来对冲通胀;另外之前BTC体量小机构无法入场,BTC体量变大后资产配置公司才能入场;当然还有一部分FOMO情绪。[2020/12/26 16:35:08]

https://testnets.opensea.io/assets/<asset_contract_address>/<token_id>

其中asset_contract_address是我们的合约地址,token_id是我们商品的代币ID之一。例如,对于OpenSeaCreature合约,这里是OpenSeaCreature#12:

https://testnets.opensea.io/assets/0x7dca125b1e805dc88814aed7ccc810f677d3e1db/12

通过使用你自己的合约地址和代币ID,你也可以查看你的商品,并再次检查所有内容是否按预期显示。注意,我们在代币元数据中包含的属性,显示为该商品的“properties”和"stats"。只要将它们作为字符串或int包含在元数据的attributes部分中,就会自动发生这种情况。而要测试集成,你只需导航到:

https://testnets.opensea.io/assets/<your_contract_address>/<token_id>

默认情况下,OpenSea将为你的资产缓存数据。需要强制更新你的商品吗?你只需要使用force_update参数更改API:

https://testnets-api.opensea.io/api/v1/asset/<your_contract_address>/<token_id>/?force_update=true

下一步是什么?

如果你在OpenSea上遇到显示商品的问题,你可以使用以下API端点调试元数据。

查看下一节了解有关调试的信息。

如果元数据按预期显示,你可以直接跳到第5节。

四、调试你的元数据

使用/validateendpoiunt

如果你遇到OpenSea显示的问题,你可以使用以下API端点调试元数据。

https://testnets-api.opensea.io/asset/<your_contract_address>/<your_token_id>/validate/

或者

https://api.opensea.io/asset/<your_contract_address>/<your_token_id>/validate/

只需使用你的合约地址和代币ID访问此URL,即可查看元数据URL是否有任何错误。如果你需要更多的帮助,请随时联系我们的Discord频道。

五、创建你的虚拟店铺

现在,我们已经测试了集成你的商品,现在是时候在OpenSea上创建你自己的虚拟商店了。

为了做到这一点,我们将使用OpenSea虚拟商店创建器,它将填充OpenSea上的所有资产,并为你的NFT商品提供一个专用的商店页面。例如,你可以在这里查看OpenSeaCreatures商店。

OpenSea虚拟商店创建器

点击此处?转到虚拟商店创建器,它将引导你完成在OpenSea上显示所有你的商品的过程。

六、竞拍商品

现在,你的NFT商品就已经上架到OpenSea上了,用户可以立即购买或出售它们。你不需要再编写任何其它的智能合约,OpenSea平台会处理剩余的所有事情。

测试拍卖流程

假设你把自己的商品放在自己的账户里,你可以立即测试商品的竞拍流程。你只需要选择一个你的商品,并点击“sell”进入竞拍流程。

在完成了竞拍流程之后,你的商品就会进入拍卖了,事实上,如果你在Rinkeby上登录另一个MetaMask帐户,你就可以立即竞拍自己的商品!

试着对一件商品出价

此外,你的所有商品,都可以立即通过任何以太坊账户出价,你只需找到任何一个商品,并为此提出报价即可。

对于报价,用户还需要进行一些额外的步骤,包括将ETH换成WETH,你可以在这里阅读更多关于OpenSea竞拍系统的信息。

七、上线到以太坊主网

在完成Rinkeby测试网的测试过程后,你准备好在以太坊主网上启动你的NFT资产了吗?是不是感到有点兴奋?过程大致相同,只是环境变量发生了一些变化。

一旦你部署了你的合约并铸造了你的商品,点击这里转到主网商店创建器。这将引导你完成将自己所有的商品显示在主网OpenSea平台的过程。

关于主网部署的说明

在主网上运行minting脚本时,需要将环境变量设置为mainnetnotlive,该环境变量影响minting脚本中节点的URL,而不是truffle。

部署时,你使用的是truffle,需要为truffle提供一个与truffle.js中的命名对应的参数(--networklive)。但是当你mint时,你依赖于你设置的环境变量来构建URL(https://github.com/ProjectOpenSea/opensea-creatures/blob/master/scripts/mint.js#L54)。

如果你启动了minting脚本,但什么都没有发生,请仔细检查你的环境变量。

八、定制你的虚拟商店

现在,你已经创建了自己的OpenSea店面,你可以根据自己的喜好进行定制了,你只需确保以智能合约所有者身份登录到Metamask,你将开始一个允许你编辑商店的按钮。或者你可以通过商店管理者页面修改你的店面情况。

单击编辑按钮,打开商店编辑器,并自定义你喜欢的商店,你自己的名字、描述和网页URL。另外,你还可以为二级市场销售设置自己的费用。

九、运行初始商品销售

你的OpenSea市场允许用户购买、出售你的相关商品,并对你的商品进行竞价,但如何让你的商品给到用户呢?

选项1:简单商品销售

你可以使用OpenSea通过“初始商品”选项分发你的作品,CryptoVoxels就是一个很好的例子,CryptoVoxels的开发者专门使用OpenSea来销售CryptoVoxels世界中的土地。

用这种方式在OpenSea上进行商品销售其实很简单。只需要把你的物品铸造到你选择的账户中,然后用标准的拍卖流程将其卖掉。它们将立即出现在你专用的OpenSea分类页面和globalOpenSeafeed上,在那里,它们可以被更广泛的OpenSea用户群发现。

选项2:定制销售合约

或者,你可以使用我们的商品工厂合约,立即插入到我们的预售基础设施,你可以在这里查看相关教程。

十、设置二级市场交易费用

每次在OpenSea上出售一件物品,你都可以获得加密货币收入。

使用OpenSea最令人兴奋的原因之一,在于创作者可从商品的二次销售中获得收入。当一件商品在OpenSea上被出售时,该商品的创建者可以获得销售额的一部分作为收入。这意味着你不仅可以通过向用户出售你的初始物品来赚钱,而且你还可以随着游戏和市场的升温而继续赚钱。

要设置二次销售费用,你只需访问店面编辑器,并调整“buyerfee”和“sellerfee”这两个字段,并指定你希望接受费用的地址。

费用类型

费用可以向卖方或买方收取,我们就来举一个例子:比如有一个用户以1ETH的价格销售一个商品,加上2%的卖方费用后,买方将为该商品支付1ETH的商品费,而其中有0.02ETH是支付给创建者的,这意味着卖方能收到0.98ETH。而加上2%的买方费用,意味着买方将为该商品支付1.02ETH,其中0.02ETH支付给开发者,1ETH支付给卖方。

你可以在商店编辑器中随意设置你想要收取的费用。

如果有成交,收入将每两周分配到你指定的地址,如果你有需要以更高的频率收取费用,可以联系OpenSea。

OpenSea提供了基础设施,因此其也会收取一部分费用作为抽成,据悉,每次销售成交额的2.5%会归OpenSea所有,而与创作者选择收取的任何费用无关。

十一、将你的虚拟商店嵌入到你自己的网站当中

一旦你为自己的商品建立的虚拟商店,你可以将其嵌入到自己的网站或应用当中。要直接嵌入你的虚拟商店,只需按照这些说明设置,示例如下:

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

金宝趣谈

[0:0ms0-6:254ms