Awesome
ens-metadata-service
API
Request
- network: Name of the chain to query for. (mainnet | sepolia ...)
- contactAddress: accepts contractAddress of the NFT which represented by the tokenId
- NFT v1 - tokenId: accepts ENS name or labelhash of ENS name in both hex and int format
- NFT v2 - tokenId: accepts ENS name or namehash of ENS name in both hex and int format
/{network}/{contractAddress}/{tokenId}
Request (example)
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
Name | Description | Default value | Options |
---|---|---|---|
HOST | Host (ip/domain) address of the running service | localhost | - |
ENV | Project scope | local | local/prod |
REDIS_URL | (Optional) Redis connection if you want to enable rate limiter | - | - |
INAMEWRAPPER | InterfaceId of NameWrapper Contract | 0xe89c48dc | - |
ADDRESS_ETH_REGISTRAR | Ethereum address of ENSBaseRegistrar Contract | 0x57f1887a8BF19b14fC0dF6Fd9B2acc9Af147eA85 | - |
ADDRESS_NAME_WRAPPER | Ethereum address of NameWrapper Contract | 0x582224b8d4534F4749EFA4f22eF7241E0C56D4B8 | - |
WEB3_NODE_URL | Ethereum Node Provider API | - | - |
NODE_PROVIDER | Ethereum Node Provider | Cloudflare | Cloudflare/Google/Infura/Local |
NODE_PROVIDER_URL | Ethereum Node Provider API Endpoint | - | - |
VPC_ACCESS_CONNECTOR | (Optional) Needed if you will setup Memorystore for GAE | - | - |