opensea-creatures icon indicating copy to clipboard operation
opensea-creatures copied to clipboard

Please help me modify the name and banner image set in contract-level-metadata.

Open corwinzz opened this issue 4 years ago • 20 comments

I want to modify the name in contract-level-metadata, but it won’t be refreshed, and how do I set the banner image?

corwinzz avatar Jun 01 '21 15:06 corwinzz

I have a factory item in a collection i can edit (I own it)

  • users buy that, and it mints a new item to their wallet
  • those new items appear in a new collection I don't own How do i set it so that I own it?

corwinzz avatar Jun 03 '21 17:06 corwinzz

See here: https://docs.opensea.io/docs/contract-level-metadata

draghetto86 avatar Jun 12 '21 15:06 draghetto86

See here: https://docs.opensea.io/docs/contract-level-metadata

that didn't help anything please someone show me the key to set the banner image?

akantora avatar Sep 02 '21 07:09 akantora

See here: https://docs.opensea.io/docs/contract-level-metadata

that didn't help anything please someone show me the key to set the banner image?

Hi, Did you find the key to set the banner?

egorkovv avatar Sep 17 '21 09:09 egorkovv

Nope My solution is to be an owner of that collection and change it via opensea website

akantora avatar Sep 17 '21 09:09 akantora

Nope My solution is to be an owner of that collection and change it via opensea website

I'm owner of the contract, but I can't edit collection via opensea. Do you know what might be wrong? Probably, I need to add some owner info the contract? Thanks

egorkovv avatar Sep 17 '21 11:09 egorkovv

Nope My solution is to be an owner of that collection and change it via opensea website

I'm owner of the contract, but I can't edit collection via opensea. Do you know what might be wrong? Probably, I need to add some owner info the contract? Thanks

I need to know the structure of your contract first dose it got only one contract to deploy or contains FactoryERC721 and ERC721 contracts?

akantora avatar Sep 17 '21 11:09 akantora

Same problem here. It seems like I will end up with 2 collection (one for the factory and another is the minted items). But I don't own the minted item collection so I'd need to rely on the contract-level metadata 😢 @akantora How did you become the owner of the collection?

Failed attempt 1: I thought of removing these lines to own the deployed creature contract. But that would cause error when minting the factory, since the factory needs to be an owner of the Creature contract to allow transfer of ownership.

I need to know the structure of your contract first dose it got only one contract to deploy or contains FactoryERC721 and ERC721 contracts?

I followed the tutorial, which deploy the FactoryERC721 (code) and the creature ERC721Tradable (code) separately. (deployment script)

steven-steven avatar Sep 25 '21 06:09 steven-steven

Anyone have an update? I have this same need.

mrwatts88 avatar Oct 03 '21 00:10 mrwatts88

I have the same issue,I can't edit my colletion on opensea,it's so bad.

tmac2yt avatar Jan 05 '22 03:01 tmac2yt

For those landing here like me.

So it appears that, after a few hours, you will be able to edit your collection on OS as long as:

  1. You've added contractURI to your contract
  2. Your contract is Ownable as mentioned in the Help Centre but not in the docs !
  3. You're logged in OS with the same account that is owner of the contract

I don't know if 1. is optional. It might be.

But 2. is obviously not optional, it does make sense but it's never stated clearly in the docs.

Note 1: While 2. may seem obvious in hindsight, they should mention it clearly as a requirement to be able to edit your collection metadata on OS.

Note 2: Only tested above on Rinkeby.

Hope that helps.

eightyfive avatar Feb 26 '22 20:02 eightyfive

  1. Your contract is Ownable as mentioned in the Help Centre but not in the docs !

What if I use AccessControl instead?

aalmada avatar Mar 02 '22 15:03 aalmada

You just need to have a public owner() method on your contract.

eightyfive avatar Mar 03 '22 00:03 eightyfive

Hello! Has anyone a solution? Thanks.

Vasilij24 avatar Mar 17 '22 20:03 Vasilij24

You just need to have a public owner() method on your contract.

Are you sure? OpenSea doesn't seem to be respecting my public owner() view. Is there anything else?

beshup avatar Mar 22 '22 19:03 beshup

I did it in that way:

  1. I commented out these lines of the code which responsible for the ownership transfering.
  2. Then after deployment of the collection and fabric smartcontracts I minted few NFTs by my collection smartcontract for myself.
  3. I changed my collection details for the collection and fabric pages on OpenSea.
  4. Next I executed the script with the ownership transfering to the fabric smartcontract with a command: yarn truffle exec scripts/transfer-ownership.js --network live

transfer-ownership.js had folowing contents: const Project = artifacts.require("./Project.sol"); const ProjectFactory = artifacts.require("./ProjectFactory.sol");

// If you want to hardcode what deploys, comment out process.env.X and use // true/false; const DEPLOY_ALL = process.env.DEPLOY_ALL; const DEPLOY_ACCESSORIES_SALE = process.env.DEPLOY_ACCESSORIES_SALE || DEPLOY_ALL; const DEPLOY_ACCESSORIES = process.env.DEPLOY_ACCESSORIES || DEPLOY_ACCESSORIES_SALE || DEPLOY_ALL; const DEPLOY_NFTS_SALE = process.env.DEPLOY_NFTS_SALE || DEPLOY_ALL; // Note that we will default to this unless DEPLOY_ACCESSORIES is set. // This is to keep the historical behavior of this migration. const DEPLOY_NFTS = process.env.DEPLOY_NFTS || DEPLOY_NFTS_SALE || DEPLOY_ALL || (! DEPLOY_ACCESSORIES);

module.exports = async (deployer, network, addresses) => { const nft = await Project.deployed( ); await nft.transferOwnership( ProjectFactory.address ); }; 5. After that I have a stylized collection page on OpenSea which I can't modify in the future and I have a fabric page which I can modify at anytime.

Vasilij24 avatar Mar 22 '22 20:03 Vasilij24

@beshup I am not sure. I'm just guessing.

That worked for me after a few hours.

I did not use Ownable from OZ. And the only common ground I have with their implementation is public owner().

Hope this helps.

eightyfive avatar Mar 22 '22 21:03 eightyfive

So in other words. there is no way to set the banner field if your not the owner of the contract. A contract that owns an NFT contract would be unable to set the banner field because it's not present in the contract metadata model.

IanDorion avatar Jun 12 '22 14:06 IanDorion

I meet the same problem.

kasoqian avatar Jul 23 '22 06:07 kasoqian

Adopting Ownable solved the problem for me right away on the testnet.

filipepros avatar Sep 06 '22 01:09 filipepros