[ETH] Metadata and token_uri null for ENS NFT

Hi,

I just found out that an ENS NFT is missing both metadata and token_uri.

token address: 0x57f1887a8bf19b14fc0df6fd9b2acc9af147ea85
token id: 2127920000458810003899342736271702203616657101742698003430585615846714349887

curl --request GET \
     --url 'https://deep-index.moralis.io/api/v2/nft/0x57f1887a8bf19b14fc0df6fd9b2acc9af147ea85/2127920000458810003899342736271702203616657101742698003430585615846714349887?chain=eth&format=decimal' \
     --header 'accept: application/json' \
     --header 'X-API-Key: YOUR_API_KEY' 
{
  "token_address": "0x57f1887a8bf19b14fc0df6fd9b2acc9af147ea85",
  "token_id": "2127920000458810003899342736271702203616657101742698003430585615846714349887",
  "amount": "1",
  "owner_of": "0xbbee5ff788adf1757714bc549a6e2a77c835e17a",
  "token_hash": "0267000adb91780d7b15a7c962b80938",
  "block_number_minted": "15382869",
  "block_number": "15382869",
  "transfer_index": [
    15382869,
    140,
    217,
    0
  ],
  "contract_type": "ERC721",
  "name": "Ethereum Name Service",
  "symbol": "ENS",
  "token_uri": null,
  "metadata": null,
  "last_token_uri_sync": "2023-01-19T08:32:07.428Z",
  "last_metadata_sync": "2022-08-21T08:20:45.187Z",
  "minter_address": "0xbbee5ff788adf1757714bc549a6e2a77c835e17a"
}

As you can see in the response, I even tried out resync metadata, which did not work as expected.
This is a well-known ENS contract address, no scam or anything.

I can fetch the metadata for the above NFT by visiting https://metadata.ens.domains/mainnet/0x57f1887a8bf19b14fc0df6fd9b2acc9af147ea85/2127920000458810003899342736271702203616657101742698003430585615846714349887/

Any help here? Thanks.

Hi, we will take a look, thanks for reporting.

Hi @cryptokid, thanks for the help.

Is there any update from you guys?
This issue is causing our service to be unreliable when fetching NFT’s and relevant metadata from Moralis.

Thanks!

ENS works different than the other nft standards. I sent your request to the team. I don’t have new updates yet.

Hello, @cryptokid,

This issue is back for the same ENS and some other ENS as well.

What is exactly different for ENS compared to other NFT’s, and how can I garuntee those fields to be populated? resync does not seem to work.

ENS WITHOUT METADATA + TOKEN_URI

https://deep-index.moralis.io/api/v2/nft/0x57f1887a8bf19b14fc0df6fd9b2acc9af147ea85/44415047609941052534402248629460717527964801322441603561123529126755821364454?chain=eth&format=decimal’ \

{
  "token_address": "0x57f1887a8bf19b14fc0df6fd9b2acc9af147ea85",
  "token_id": "44415047609941052534402248629460717527964801322441603561123529126755821364454",
  "transfer_index": [
    16724627,
    66,
    116,
    0
  ],
  "owner_of": "0xeb721591677e76ea222ac9dba481df5cef7bf622",
  "block_number": "16724627",
  "block_number_minted": "16724627",
  "token_hash": "821e5b2272bbd1e3891d50c1ddd848de",
  "amount": "1",
  "contract_type": "ERC721",
  "name": "Ethereum Name Service",
  "symbol": "ENS",
  "token_uri": null,
  "metadata": null,
  "last_token_uri_sync": "2023-03-03T05:58:17.504Z",
  "last_metadata_sync": null,
  "minter_address": "0xeb721591677e76ea222ac9dba481df5cef7bf622",
  "normalized_metadata": {
    "name": null,
    "description": null,
    "animation_url": null,
    "external_link": null,
    "image": null,
    "attributes": []
  }
}

https://deep-index.moralis.io/api/v2/nft/0x57f1887a8bf19b14fc0df6fd9b2acc9af147ea85/2127920000458810003899342736271702203616657101742698003430585615846714349887?chain=eth&format=decimal

{
  "token_address": "0x57f1887a8bf19b14fc0df6fd9b2acc9af147ea85",
  "token_id": "2127920000458810003899342736271702203616657101742698003430585615846714349887",
  "amount": "1",
  "owner_of": "0xbbee5ff788adf1757714bc549a6e2a77c835e17a",
  "token_hash": "0267000adb91780d7b15a7c962b80938",
  "block_number_minted": "15382869",
  "block_number": "15382869",
  "transfer_index": [
    15382869,
    140,
    217,
    0
  ],
  "contract_type": "ERC721",
  "name": "Ethereum Name Service",
  "symbol": "ENS",
  "token_uri": null,
  "metadata": null,
  "last_token_uri_sync": "2023-01-20T03:29:32.156Z",
  "last_metadata_sync": "2022-08-21T08:20:45.187Z",
  "minter_address": "0xbbee5ff788adf1757714bc549a6e2a77c835e17a"
}

ENS WITH METADATA AND TOKEN_URI (WORKING)

https://deep-index.moralis.io/api/v2/nft/0x57f1887a8bf19b14fc0df6fd9b2acc9af147ea85/44633363554022386034182673627900452233975907726442120165314766822370529440128?chain=eth&format=decimal

{
  "token_address": "0x57f1887a8bf19b14fc0df6fd9b2acc9af147ea85",
  "token_id": "44633363554022386034182673627900452233975907726442120165314766822370529440128",
  "transfer_index": [
    15369305,
    157,
    321,
    0
  ],
  "owner_of": "0x5a0cf7d25d3b6782042ba2c6bc408f7f1ba8d1d9",
  "block_number": "15369305",
  "block_number_minted": "15369305",
  "token_hash": "c40464280926b4da9678f7718d3fc27b",
  "amount": "1",
  "contract_type": "ERC721",
  "name": "Ethereum Name Service",
  "symbol": "ENS",
  "token_uri": "https://metadata.ens.domains/mainnet/0x57f1887a8bf19b14fc0df6fd9b2acc9af147ea85/44633363554022386034182673627900452233975907726442120165314766822370529440128",
  "metadata": "{\"is_normalized\":true,\"name\":\"chanhyeok.eth\",\"description\":\"chanhyeok.eth, an ENS name.\",\"attributes\":[{\"trait_type\":\"Created Date\",\"display_type\":\"date\",\"value\":1660883783000},{\"trait_type\":\"Length\",\"display_type\":\"number\",\"value\":9},{\"trait_type\":\"Segment Length\",\"display_type\":\"number\",\"value\":9},{\"trait_type\":\"Character Set\",\"display_type\":\"string\",\"value\":\"letter\"},{\"trait_type\":\"Registration Date\",\"display_type\":\"date\",\"value\":1660883783000},{\"trait_type\":\"Expiration Date\",\"display_type\":\"date\",\"value\":2607592343000}],\"name_length\":9,\"segment_length\":9,\"url\":\"https://app.ens.domains/name/chanhyeok.eth\",\"version\":0,\"background_image\":\"https://metadata.ens.domains/mainnet/avatar/chanhyeok.eth\",\"image\":\"https://metadata.ens.domains/mainnet/0x57f1887a8bf19b14fc0df6fd9b2acc9af147ea85/0x62ad96aa34588d65d0fee4c6a4d8d3e1f748c47d226db0c7ea21b9816f02f180/image\",\"image_url\":\"https://metadata.ens.domains/mainnet/0x57f1887a8bf19b14fc0df6fd9b2acc9af147ea85/0x62ad96aa34588d65d0fee4c6a4d8d3e1f748c47d226db0c7ea21b9816f02f180/image\"}",
  "last_token_uri_sync": "2022-11-30T00:08:32.236Z",
  "last_metadata_sync": "2022-11-30T00:09:13.316Z",
  "minter_address": "0x5a0cf7d25d3b6782042ba2c6bc408f7f1ba8d1d9"
}

The difference is that ENS is not a standard NFT contract, and it has to be handled as a custom contract

Understood,

So, I guess it takes for Moralis to handle it separately? because some ENS’s look fine and some do not.
But the first example ENS without metadata was minted a few months ago, so how do you guys handle ENS?

We have a custom processing for it. I don’t know the exact details.

So, for ENS, I cannot rely on Moralis for metadata / token_uri ?
:sob:

It looks like you can get the token uri directly from token address and token id

1 Like

Yes, but I did not want to add another dependency (rest call to another service).
But looks like this is the only viable solution now… thanks