Home

Awesome

ens-metadata-service

Contributors Forks Stargazers Issues License Travis

API

Request

/{network}/{contractAddress}/{tokenId}

Request (example)

https://metadata.ens.domains/mainnet/0x57f1887a8BF19b14fC0dF6Fd9B2acc9Af147eA85/42219085255511335250589442208301538195142221433306354426240614732612795430543/

Response (example)

{
  "is_normalized": true,
  "name": "nick.eth",
  "description": "nick.eth, an ENS name.",
  "attributes": [
    {
      "trait_type": "Created Date",
      "display_type": "date",
      "value": 1571924851000
    },
    {
      "trait_type": "Length",
      "display_type": "number",
      "value": 4
    },
    {
      "trait_type": "Segment Length",
      "display_type": "number",
      "value": 4
    },
    {
      "trait_type": "Character Set",
      "display_type": "string",
      "value": "letter"
    },
    {
      "trait_type": "Registration Date",
      "display_type": "date",
      "value": 1580803395000
    },
    {
      "trait_type": "Expiration Date",
      "display_type": "date",
      "value": 1699709554000
    }
  ],
  "name_length": 4,
  "segment_length": 4,
  "url": "https://app.ens.domains/name/nick.eth",
  "version": 0,
  "background_image": "https://metadata.ens.domains/mainnet/avatar/nick.eth",
  "image": "https://metadata.ens.domains/mainnet/0x57f1887a8BF19b14fC0dF6Fd9B2acc9Af147eA85/0x5d5727cb0fb76e4944eafb88ec9a3cf0b3c9025a4b2f947729137c5d7f84f68f/image",
  "image_url": "https://metadata.ens.domains/mainnet/0x57f1887a8BF19b14fC0dF6Fd9B2acc9Af147eA85/0x5d5727cb0fb76e4944eafb88ec9a3cf0b3c9025a4b2f947729137c5d7f84f68f/image"
}

More info and list of all endpoints: https://metadata.ens.domains/docs

How to setup

git clone https://github.com/ensdomains/ens-metadata-service.git
cd ens-metadata-service
cp .env.org .env // Fill in Vars
yarn
yarn dev

How to deploy (Google App Engine)

Modify the app_template.yaml according to your needs. Then run;

yarn deploy

How to test

Regular unit test;

yarn test

Unit test + coverage;

yarn test:cov

Environment Variables

NameDescriptionDefault valueOptions
HOSTHost (ip/domain) address of the running servicelocalhost-
ENVProject scopelocallocal/prod
REDIS_URL(Optional) Redis connection if you want to enable rate limiter--
INAMEWRAPPERInterfaceId of NameWrapper Contract0xe89c48dc-
ADDRESS_ETH_REGISTRAREthereum address of ENSBaseRegistrar Contract0x57f1887a8BF19b14fC0dF6Fd9B2acc9Af147eA85-
ADDRESS_NAME_WRAPPEREthereum address of NameWrapper Contract0x582224b8d4534F4749EFA4f22eF7241E0C56D4B8-
WEB3_NODE_URLEthereum Node Provider API--
NODE_PROVIDEREthereum Node ProviderCloudflareCloudflare/Google/Infura/Local
NODE_PROVIDER_URLEthereum Node Provider API Endpoint--
VPC_ACCESS_CONNECTOR(Optional) Needed if you will setup Memorystore for GAE--
<!-- MARKDOWN LINKS & IMAGES --> <!-- https://www.markdownguide.org/basic-syntax/#reference-style-links -->