1

I've deployed a few ERC721s to ethereum and polygon, but they all show as "Unidentified Contract" in the mobile metamask nft tab.

I feel dumb for not being able to figure out why - any advice. Tips, links to docs that I can't find?

Thanks in advance!

Edit:

Here's the example data that opensea puts out via it's API: can be seen directly, here

{
    "collection": {
        "banner_image_url": null,
        "chat_url": null,
        "created_date": "2021-09-15T15:41:16.155325",
        "default_to_fiat": false,
        "description": "dogs do the damndest things",
        "dev_buyer_fee_basis_points": "0",
        "dev_seller_fee_basis_points": "0",
        "discord_url": null,
        "display_data": {
            "card_display_style": "contain"
        },
        "external_url": "https://www.google.com/search?q=funny%20yorkie",
        "featured": false,
        "featured_image_url": null,
        "hidden": false,
        "safelist_request_status": "not_requested",
        "image_url": "https://lh3.googleusercontent.com/wHo6jevSo1S4r-3LrBA1FlByl9xAvFN4Os0PsZD8jqq4YyzOZjP4tl4EAs97dGXBIHlXyit-MpyAYq5HKjqUcjSmuQhtBu9i2D5ggRk=s120",
        "is_subject_to_whitelist": false,
        "large_image_url": "https://lh3.googleusercontent.com/wHo6jevSo1S4r-3LrBA1FlByl9xAvFN4Os0PsZD8jqq4YyzOZjP4tl4EAs97dGXBIHlXyit-MpyAYq5HKjqUcjSmuQhtBu9i2D5ggRk",
        "medium_username": null,
        "name": "dogzz",
        "only_proxied_transfers": false,
        "opensea_buyer_fee_basis_points": "0",
        "opensea_seller_fee_basis_points": "250",
        "payout_address": null,
        "require_email": false,
        "short_description": null,
        "slug": "dogzz",
        "telegram_url": null,
        "twitter_username": null,
        "instagram_username": null,
        "wiki_url": null
    },
    "address": "0x87268df62ac9e39bfa52139fc8fcca328ab3f01a",
    "asset_contract_type": "semi-fungible",
    "created_date": "2021-09-15T15:32:14.214654",
    "name": "Unidentified contract",
    "nft_version": null,
    "opensea_version": null,
    "owner": 2265135,
    "schema_name": "ERC1155",
    "symbol": "",
    "total_supply": null,
    "description": "dogs do the damndest things",
    "external_link": "https://www.google.com/search?q=funny%20yorkie",
    "image_url": "https://lh3.googleusercontent.com/wHo6jevSo1S4r-3LrBA1FlByl9xAvFN4Os0PsZD8jqq4YyzOZjP4tl4EAs97dGXBIHlXyit-MpyAYq5HKjqUcjSmuQhtBu9i2D5ggRk=s120",
    "default_to_fiat": false,
    "dev_buyer_fee_basis_points": 0,
    "dev_seller_fee_basis_points": 0,
    "only_proxied_transfers": false,
    "opensea_buyer_fee_basis_points": 0,
    "opensea_seller_fee_basis_points": 250,
    "buyer_fee_basis_points": 0,
    "seller_fee_basis_points": 250,
    "payout_address": null
}

The contractURI returns a URL to this JSON: here

{
"name": "dogs",
"symbol": "DOG",
"image": "https://erc1155-test.s3.us-east-1.amazonaws.com/dogz/storefront.jpg",
"external_link": "https://www.google.com/search?q=funny%20yorkie",
"description": "dogs do the damndest things"
}

Here's an example of a contract on the mainnet that does have the information populated: https://api.opensea.io/api/v1/asset_contract/0x0588a0182ee72f74d0ba3b1fc6f5109599a46a9c

{
    "collection": {
        "banner_image_url": "https://lh3.googleusercontent.com/4N6pSDOqvBNU22ZrX0VAzm3F7TS18DF58pY37XQsNMydNvPsXEZu0ta10WbiNpIG0k4eHYsbbj3Bu_4-FjaGYt5Aa2UW6K8u6sn8X2o=s2500",
        "chat_url": null,
        "created_date": "2021-08-31T07:22:39.400625",
        "default_to_fiat": false,
        "description": "Dorkis are dorks, goofballs and weirdos , created the old-fashioned way with pen and colored pencil on paper, scanned and edited to make 10,000 randomly generated Dorkis. Each Dorkis character is a colorful, unique and weird avatar, with randomly selected hair, eyes, body and more.\n\nOur small team is a bunch of NFT dorks dedicated to NFTs and the NFT community. We're building an inclusive and diverse society - celebrating what makes us all unique dorks.",
        "dev_buyer_fee_basis_points": "0",
        "dev_seller_fee_basis_points": "650",
        "discord_url": "https://discord.gg/Cbf57rsAWk",
        "display_data": {
            "card_display_style": "contain"
        },
        "external_url": "https://www.wearedorkis.com/",
        "featured": false,
        "featured_image_url": "https://lh3.googleusercontent.com/1PFD4n50Q-sMxGFuOzwyn7h1hiaPEZNXsVFO5BwgfUOwjeH4WeHRW-gwKuDvo-BtZq9qjVo54F6PCA-8UZdl-UUnsZRr6Qoqqt7m=s300",
        "hidden": false,
        "safelist_request_status": "not_requested",
        "image_url": "https://lh3.googleusercontent.com/reTSMfmblnQULDE9dKIRcklq6th2XWsgUtCF00MwJKNHsQ7Ne0VfaxWFSyfGINEtlojwJ8gw9vA_wbB-L-cxJfFiLyqOhHrvQbjy=s120",
        "is_subject_to_whitelist": false,
        "large_image_url": "https://lh3.googleusercontent.com/1PFD4n50Q-sMxGFuOzwyn7h1hiaPEZNXsVFO5BwgfUOwjeH4WeHRW-gwKuDvo-BtZq9qjVo54F6PCA-8UZdl-UUnsZRr6Qoqqt7m=s300",
        "medium_username": null,
        "name": "We are Dorkis",
        "only_proxied_transfers": false,
        "opensea_buyer_fee_basis_points": "0",
        "opensea_seller_fee_basis_points": "250",
        "payout_address": "0x5aa82fc5c14900f6e044292b3f08c4c775a13ffb",
        "require_email": false,
        "short_description": null,
        "slug": "dorkisofficial",
        "telegram_url": null,
        "twitter_username": "wearedorkis",
        "instagram_username": null,
        "wiki_url": null
    },
    "address": "0x0588a0182ee72f74d0ba3b1fc6f5109599a46a9c",
    "asset_contract_type": "non-fungible",
    "created_date": "2021-08-31T07:22:34.816829",
    "name": "Dorkis",
    "nft_version": "3.0",
    "opensea_version": null,
    "owner": 72387408,
    "schema_name": "ERC721",
    "symbol": "DRK",
    "total_supply": "3",
    "description": "Dorkis are dorks, goofballs and weirdos , created the old-fashioned way with pen and colored pencil on paper, scanned and edited to make 10,000 randomly generated Dorkis. Each Dorkis character is a colorful, unique and weird avatar, with randomly selected hair, eyes, body and more.\n\nOur small team is a bunch of NFT dorks dedicated to NFTs and the NFT community. We're building an inclusive and diverse society - celebrating what makes us all unique dorks.",
    "external_link": "https://www.wearedorkis.com/",
    "image_url": "https://lh3.googleusercontent.com/reTSMfmblnQULDE9dKIRcklq6th2XWsgUtCF00MwJKNHsQ7Ne0VfaxWFSyfGINEtlojwJ8gw9vA_wbB-L-cxJfFiLyqOhHrvQbjy=s120",
    "default_to_fiat": false,
    "dev_buyer_fee_basis_points": 0,
    "dev_seller_fee_basis_points": 650,
    "only_proxied_transfers": false,
    "opensea_buyer_fee_basis_points": 0,
    "opensea_seller_fee_basis_points": 250,
    "buyer_fee_basis_points": 0,
    "seller_fee_basis_points": 900,
    "payout_address": "0x5aa82fc5c14900f6e044292b3f08c4c775a13ffb"
}

I haven't a clue why this "name" param won't fill in. Idk if it's a bug in the testnet deployment, or if it's an issue with the mainnet store too. There's not a single lick of documentation about this that I can find. Can anyone advise?

Thanks!

5
  • Can you show an example address that display that message and another that doesn't?
    – Ismael
    Commented Sep 14, 2021 at 23:09
  • added some more details Commented Sep 15, 2021 at 16:34
  • One difference is the second is registered in opensea opensea.io/assets/0x0588a0182ee72f74d0ba3b1fc6f5109599a46a9c/…, while the first one isn't. I've no idea how that affects metamask.
    – Ismael
    Commented Sep 16, 2021 at 22:56
  • My example contract is on the testnet, which is why it doesn't load on opensea. The reason the affects metamask, is because it very much seems like metamask uses the opensea api to get info about the contract. Commented Sep 17, 2021 at 3:41
  • From their documentation they use Opensea as provider on mobile metamask.zendesk.com/hc/en-us/articles/….
    – Ismael
    Commented Sep 17, 2021 at 6:11

1 Answer 1

0

Check in the contract in the constructor you should give a name

2
  • Welcome to the Ethereum Stack Exchange! Can you give an example?
    – eth
    Commented Sep 12, 2021 at 3:18
  • I'm using an upgradeable proxy, as such, I don't really have access to the constructor. However, I do set the name in a separately called initializing method. Commented Sep 17, 2021 at 3:43

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.