我尝试更改令牌基本 URL 以在 opensea.io 上显示 NFT 的新图像。但不会立即更新。
有一种方法可以通过在 Rikeby 测试网上指定force_update=true 来进行更新。
但我不知道如何在主网上更新它。有可能吗?
任何帮助将不胜感激。
const { OpenSeaPort, Network } = require("opensea-js");
const offer = await seaport.createBuyOrder({
asset: {
tokenId,
tokenAddress,
schemaName
},
accountAddress: WALLET_ADDRESS,
startAmount: newOffer / (10 ** 18),
expirationTime: Math.round(Date.now() / 1000 + 60 * 60 * 24)
});
Run Code Online (Sandbox Code Playgroud)
我将从opensea 空令牌中获取schemaName (如果是 ERC721 或 ERC1155):
在 opensea 的“详细信息”面板中,我可以看到合约模式名称,如下所示:Token Standard: ERC-1155
如何使用 node.js 或 python 从 opensea 令牌 url 获取模式名称?
希望你做得很好。我是一名开发人员,对 opensea 测试网上的 3d 模型预览有疑问。
我使用 pinanta 服务器创建了一个元数据文件https://pattirose.growwithsabrina.org/nft/1.json 来托管 glb 文件。Opensea 无法获取模型进行预览。
或者,我尝试在个人托管上托管 glb 文件,并在 json 文件中使用“animation_url”键,但这也不起作用。
所有测试交易均在rinkeby测试网上完成。
请指导如何解决此问题,非常感谢您的支持。谢谢
我已经部署了一个基于ERC-1155的合约(基于OpenZeppelin),并在此合约上成功铸造了一些 NFT。但当我想在 OpenSea 中使用这些 NFT 时,它总是显示“身份不明的合约”。
示例: https: //testnets.opensea.io/assets/0xc7d3e4a5A0c3e14ba8C68ea1b8a99a9dBf3ca76F/2
按照他们的官方教程存储库(由于过时的依赖项和其他问题,该存储库不再编译),我添加了一些(可能)OpenSea 特定的函数和数据,OpenSea 可能需要这些函数和数据才能正常工作。然而,OpenSea 能够获取显示 NFT 所需的所有数据,但只要他们说“身份不明的合约”,到目前为止这一切都毫无意义。
我的问题有:
有人已经成功部署了 ERC-1155 并将其与 OpenSea 正确使用而没有出现此问题吗?我们是否需要以某种方式“注册”不基于 ERC-721 的合约?
import "@openzeppelin/contracts/token/ERC1155/ERC1155.sol";
import "@openzeppelin/contracts/access/AccessControl.sol";
import "@openzeppelin/contracts/security/Pausable.sol";
import "@openzeppelin/contracts/token/ERC1155/extensions/ERC1155Burnable.sol";
import "@openzeppelin/contracts/utils/Counters.sol";
import "@openzeppelin/contracts/access/Ownable.sol";
contract OwnableDelegateProxy { }
contract ProxyRegistry {
mapping(address => OwnableDelegateProxy) public proxies;
}
contract MetaCoin is ERC1155, AccessControl, Pausable, ERC1155Burnable {
bytes32 public constant URI_SETTER_ROLE = keccak256("URI_SETTER_ROLE");
bytes32 public constant PAUSER_ROLE = …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 OpenSea API,我注意到我需要在检索资产之前设置限制 https://docs.opensea.io/reference/getting-assets
我想我可以使用偏移量来浏览所有项目,尽管这很乏味。但问题是offset本身是有限制的,超出最大offset的资产是不是就无法访问了呢?
我读到您说 API 在没有 API 密钥的情况下受到“速率限制”,所以我假设这与您在特定时间段内可以发出的请求数量有关,我的说法正确吗?还是解除了返还资产的限制?该文档不清楚https://docs.opensea.io/reference/api-overview
我可以做什么来浏览所有资产?
我一直在测试我的 erc-721 合约,并使用 ipfs 哈希的链接ipfs://QmeB87321i121xN88bXZzmjSUXqS46B8bU3H9ocyTb8tJf作为基本令牌 URI。合约已部署,项目已由我铸造,但 OpenSea 无法按预期读取该元数据 uri。OpenSea 的文档表明这应该足够了。
我的合同
pragma solidity ^0.5.0;
import "./ERC721Tradable.sol";
import "openzeppelin-solidity/contracts/ownership/Ownable.sol";
contract Creature is ERC721Tradable {
constructor(address _proxyRegistryAddress)
public
ERC721Tradable("StygianCoins", "STG", _proxyRegistryAddress)
{}
function baseTokenURI() public pure returns (string memory) {
return "https://ipfs.io/ipfs/QmeB87321i121xN88bXZzmjSUXqS46B8bU3H9ocyTb8tJf";
}
function contractURI() public pure returns (string memory) {
return "https://contract-abis.herokuapp.com/api/contract/stygian-coins";
}
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试从 NFT 中找到的令牌 URI 中获取元数据。令牌 URI 如下所示:
https://api.opensea.io/api/v2/metadata/matic/<contract_address>/0x{id}
我尝试使用 tokenId 的十六进制形式,但它只是在 GET 调用时{id}返回错误。{ success:false }
令牌 ID 为:
25301351943351891415725927464477484049512317528648331027932693704579263506192
对于具有不同令牌 Id 但不同基本 url 的另一个令牌也是如此:
https://api.opensea.io/api/v1/metadata/0x495f947276749Ce646f68AC8c248420045cb7b5e/0x{id}
我观察到工作 URL 的版本位于v1不同的链上。Opensea 文档似乎没有谈论任何有关v2.
请帮助我了解如何从上述 URI 中获取元数据。
我正在尝试使用资产端点从特定集合中检索资产信息。
例子:
https://api.opensea.io/api/v1/asset/0x1a92f7381b9f03921564a437210bb9396471050c/2000/?format=json
现在,如果您在浏览器上打开它,它可以完美运行,但在您的应用程序或邮递员上,它只会给出 CloudFlare 的 403 错误。这不是 401 错误,我们不需要为此提供 API 密钥。
那么这是怎么回事以及如何解决这个问题?有任何想法吗?
我在 opensea 上铸造了一些 NFT。这些位于 Polygon 孟买网络上。现在我想使用alchemy web3将这些token转移到其他地址。这是我正在使用的代码。
\n注意:这应该在 Nodejs Restful API 中运行,因此没有可用的钱包,这就是我手动签署交易的原因。
\nasync function main() {\n require('dotenv').config();\n const { API_URL,API_URL_TEST, PRIVATE_KEY } = process.env;\n const { createAlchemyWeb3 } = require("@alch/alchemy-web3");\n const web3 = createAlchemyWeb3(API_URL_TEST);\n const myAddress = '*************************'\n const nonce = await web3.eth.getTransactionCount(myAddress, 'latest');\n const transaction = { //I believe transaction object is not correct, and I dont know what to put here\n 'asset': {\n 'tokenId': '******************************',//NFT token id in opensea\n },\n 'gas': 53000,\n 'to': '***********************', //metamask …Run Code Online (Sandbox Code Playgroud) 试图了解 opensea “出价”的工作原理。每当任何有兴趣的买家想要购买 NFT 时,他们都必须创建一个报价,其中他们基本上签署一条消息(承诺)(这不花费汽油费)。我不明白这件事在幕后是如何运作的。如果,比方说,我出价 3 天,并且我赢得了出价或卖家接受了出价,而我当时没有所需的以太币(出价金额),那么会发生什么?
拍卖智能合约基本上以投标人金额作为质押,当拍卖结束时,如果用户没有赢得拍卖,则将质押的以太币转回,但在上述质押以太+支付交易费用的过程中,这些额外的开销都是存在的。
Opensea 不跟踪竞价金额的质押,因此用户无需支付交易费 + 质押以太币。但他们要求用户签名确认出价。谁能解释一下技术上发生了什么?
我也浏览了下面的链接,但这并没有回答 opensea 是如何工作的。
链接2:https ://ethereum.stackexchange.com/questions/110749/auction-data-on-chain-or-off-chain
在链接 2 中,他们提到“承诺是通过签署‘消息’创建的。这些是链下交易。但是,取消交易需要在链上发布。” 但它实际上是如何运作的呢?