openapi: 3.0.0 info: title: EVM Balance Get Metadata API version: '2.2' servers: - url: https://deep-index.moralis.io/api/v2.2 security: - ApiKeyAuth: [] tags: - name: Get Metadata paths: /nft/{address}/{token_id}: get: security: - ApiKeyAuth: [] summary: Get NFT metadata description: Fetch metadata for a specific NFT. Includes on-chain metadata as well as off-chain metadata, floor prices, rarity and more where available. tags: - Get Metadata x-tag-sdk: nft operationId: getNFTMetadata parameters: - in: query name: chain description: The chain to query required: false schema: $ref: '#/components/schemas/chainList' - in: path name: address description: The address of the NFT contract required: true schema: type: string example: '0x524cab2ec69124574082676e6f654a18df49a048' - in: path name: token_id description: The ID of the token required: true schema: type: string example: '1' - in: query name: format description: The format of the token ID required: false schema: type: string example: decimal default: decimal enum: - decimal - hex - in: query name: normalizeMetadata description: Should normalized metadata be returned? required: false schema: type: boolean default: true - in: query name: media_items description: Should preview media data be returned? required: false schema: type: boolean default: false - in: query name: include_prices description: Should NFT last sale prices be included in the result? required: false schema: type: boolean default: false responses: '200': description: Returns the specified NFT. content: application/json: schema: $ref: '#/components/schemas/nft' x-mcp-prompt: Submit the contract address and token ID to fetch the NFT’s metadata. Use this when users ask for details about a specific NFT or need its attributes for display. /nft/{address}/{token_id}/metadata/resync: get: security: - ApiKeyAuth: [] summary: Resync NFT metadata description: Update an NFT’s metadata, either from its current token URI or a new one. Choose sync for immediate results or async for background processing. tags: - Get Metadata x-tag-sdk: nft operationId: reSyncMetadata parameters: - in: query name: chain description: The chain to query required: false schema: $ref: '#/components/schemas/chainList' - in: path name: address description: The address of the NFT contract required: true schema: type: string example: '0xb47e3cd837dDF8e4c57F05d70Ab865de6e193BBB' - in: path name: token_id description: The ID of the token required: true schema: type: string example: '1' - in: query name: flag description: The type of resync to operate required: false schema: type: string example: uri default: uri enum: - uri - metadata - in: query name: mode description: To define the behaviour of the endpoint required: false schema: type: string example: sync default: async enum: - async - sync responses: '200': description: (In sync mode) Resync request executed. content: application/json: schema: $ref: '#/components/schemas/metadataResync' '202': description: The resync request was received and will be executed. content: application/json: schema: $ref: '#/components/schemas/metadataResync' '404': description: (In sync mode) Resync request executed and metadata could not be updated. content: application/json: schema: $ref: '#/components/schemas/metadataResync' x-mcp-prompt: Submit the contract address, token ID, and sync mode (sync/async). Specify metadata or token URI refresh. Use this when users report outdated NFT metadata or need refreshed token details. /erc20/metadata: get: security: - ApiKeyAuth: [] summary: Get ERC20 token metadata by contract description: Retrieve metadata (name, symbol, decimals, logo) for an ERC20 token contract, as well as off-chain metadata, total supply, categories, logos, spam status and more. tags: - Get Metadata x-tag-sdk: token operationId: getTokenMetadata parameters: - in: query name: chain description: The chain to query required: false schema: $ref: '#/components/schemas/chainList' - in: query name: addresses description: The addresses to get metadata for required: true schema: type: array maxItems: 10 items: type: string example: '0x7d1afa7b718fb893db30a3abc0cfc608aacfebb0' responses: '200': description: Get the metadata for a given ERC20 token contract address (name, symbol, decimals, logo). content: application/json: schema: type: array items: $ref: '#/components/schemas/erc20Metadata' x-mcp-prompt: Enter the token contract address to fetch its metadata. Use this when users need basic information about a token or are verifying contract details. /erc20/metadata/symbols: get: security: - ApiKeyAuth: [] summary: Get ERC20 token metadata by symbols description: Fetch metadata (name, symbol, decimals, logo) for a list of ERC20 token symbols. deprecated: true tags: - Get Metadata x-tag-sdk: token operationId: getTokenMetadataBySymbol parameters: - in: query name: chain description: The chain to query required: false schema: $ref: '#/components/schemas/chainList' - in: query name: symbols description: The symbols to get metadata for required: true schema: type: array items: type: string example: LINK responses: '200': description: Returns metadata for a given token contract address (name, symbol, decimals, logo). content: application/json: schema: type: array items: $ref: '#/components/schemas/erc20Metadata' x-mcp-prompt: Provide a list of token symbols to retrieve their metadata. Use this when users request metadata for tokens by symbol or are exploring multiple tokens. components: schemas: nft: required: - token_address - token_id - contract_type - name - symbol - possible_spam properties: token_address: type: string description: The address of the NFT contract example: '0xb47e3cd837dDF8e4c57F05d70Ab865de6e193BBB' token_id: type: string description: The token ID of the NFT example: '15' owner_of: type: string description: The wallet address of the owner of the NFT example: '0x9c83ff0f1c8924da96cb2fcb7e093f78eb2e316b' token_hash: type: string description: The token hash example: 502cee781b0fb40ea02508b21d319ced block_number: type: string description: The block number when the amount or owner changed example: '88256' block_number_minted: type: string description: The block number when the NFT was minted example: '88256' contract_type: type: string description: The type of NFT contract standard example: ERC721 token_uri: type: string description: The URI to the metadata of the token metadata: type: string description: The metadata of the token normalized_metadata: $ref: '#/components/schemas/normalizedMetadata' description: A normalized metadata version of the NFT's metadata. media: $ref: '#/components/schemas/media' description: A set of links to 'thumbnail / preview' media files minter_address: type: string description: The address that minted the NFT example: '0x9c83ff0f1c8924da96cb2fcb7e093f78eb2e316b' last_token_uri_sync: type: string description: When the token_uri was last updated last_metadata_sync: type: string description: When the metadata was last updated amount: type: string description: The quantity of this item that the user owns (used by ERC1155) example: '1' name: type: string description: The name of the NFT contract example: CryptoKitties symbol: type: string description: The symbol of the NFT contract example: RARI possible_spam: type: boolean description: Indicates if a contract is possibly a spam contract example: 'false' verified_collection: type: boolean description: Indicates if a contract is verified example: 'false' rarity_rank: type: number description: The rarity rank example: 21669 rarity_percentage: type: number description: The rarity percentage example: 98 rarity_label: type: string description: The rarity label example: Top 98% last_sale: type: object description: Details about the most recent sale involving this token. nullable: true required: - transaction_hash - block_timestamp - price - price_formatted - buyer_address - seller_address - payment_token properties: transaction_hash: type: string description: The transaction hash of the last sale example: '0x19e14f34b8f120c980f7ba05338d64c00384857fb9c561e2c56d0f575424a95c' block_timestamp: type: string description: The block timestamp of the last sale example: '2023-04-04T15:59:11.000Z' buyer_address: type: string description: The buyer address of the last sale example: '0xcb1c1fde09f811b294172696404e88e658659905' seller_address: type: string description: The seller address of the last sale example: '0x497a7dee2f13db161eb2fec060fa783cb041419f' price: type: string description: The price of the last sale example: '7300000000000000' price_formatted: type: string description: The formatted price of the last sale example: '0.0073' usd_price_at_sale: type: string description: The USD price of the last sale example: '13.61' current_usd_value: type: string description: The USD price of the last sale at the current value example: '15.53' token_address: type: string description: The token address that is sold example: '0xe8778996e096b39705c6a0a937eb587a1ebbda17' token_id: type: string description: The token ID that is sold example: '170' payment_token: type: object description: The ERC20 token that is being traded with required: - token_name - token_symbol - token_logo - token_decimals - token_address properties: token_name: type: string description: The token name example: Ether token_symbol: type: string description: The token symbol example: ETH token_logo: type: string description: The token logo example: https://cdn.moralis.io/eth/0x.png token_decimals: type: string description: The token decimals example: '18' token_address: type: string description: The token address example: '0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee' list_price: type: object properties: listed: type: boolean description: Indicates if the NFT is listed for sale example: true price: type: string description: The price of the NFT example: '27008' price_currency: type: string description: The currency of the price example: eth price_usd: type: string description: The price of the NFT in USD example: '13.61' marketplace: type: string description: The marketplace where the NFT is listed example: opensea floor_price: type: string description: The floor price of collection the NFT belongs to example: '12345' floor_price_usd: type: string description: The floor price of the contract in USD example: '12345.4899' floor_price_currency: type: string description: The currency of the floor price example: eth normalizedMetadata: properties: name: type: string description: The name or title of the NFT example: Moralis Mug description: type: string description: A detailed description of the NFT example: Moralis Coffee nug 3D Asset that can be used in 3D worldspaces. This NFT is presented as a flat PNG, a Unity3D Prefab and a standard fbx. image: type: string description: The URL of the NFT's image example: https://arw2wxg84h6b.moralishost.com:2053/server/files/tNJatzsHirx4V2VAep6sc923OYGxvkpBeJttR7Ks/de504bbadadcbe30c86278342fcf2560_moralismug.png external_link: type: string description: A link to additional information example: https://giphy.com/gifs/loop-recursion-ting-aaODAv1iuQdgI external_url: type: string description: A link to additional information example: https://giphy.com/gifs/loop-recursion-ting-aaODAv1iuQdgI animation_url: type: string description: An animated version of the NFT's image example: https://giphy.com/gifs/food-design-donuts-o9ngTPVYW4qo8 attributes: type: array items: $ref: '#/components/schemas/normalizedMetadataAttribute' normalizedMetadataAttribute: properties: trait_type: type: string description: The trait title or descriptor example: Eye Color value: type: object description: The value of the attribute example: hazel display_type: type: string description: The type the attribute value should be displayed as example: string max_value: type: number description: For numeric values, the upper range example: 100 trait_count: type: number description: The number of possible values for this trait example: 7 order: type: number description: Order the trait should appear in the attribute list. example: 1 mediaCollection: properties: low: description: Preview media file, lowest quality (for images 100px x 100px) $ref: '#/components/schemas/mediaItem' medium: description: Preview media file, medium quality (for images 250px x 250px) $ref: '#/components/schemas/mediaItem' high: description: Preview media file, highest quality (for images 500px x 500px) $ref: '#/components/schemas/mediaItem' required: - original - low - medium - high chainList: type: string example: eth default: eth enum: - eth - '0x1' - sepolia - '0xaa36a7' - polygon - '0x89' - bsc - '0x38' - bsc testnet - '0x61' - avalanche - '0xa86a' - fantom - '0xfa' - cronos - '0x19' - arbitrum - '0xa4b1' - chiliz - '0x15b38' - chiliz testnet - '0x15b32' - gnosis - '0x64' - gnosis testnet - '0x27d8' - base - '0x2105' - base sepolia - '0x14a34' - optimism - '0xa' - polygon amoy - '0x13882' - linea - '0xe708' - moonbeam - '0x504' - moonriver - '0x505' - moonbase - '0x507' - linea sepolia - '0xe705' - flow - '0x2eb' - flow-testnet - '0x221' - ronin - '0x7e4' - ronin-testnet - '0x31769' - lisk - '0x46f' - lisk-sepolia - '0x106a' - pulse - '0x171' - sei-testnet - '0x530' - sei - '0x531' - monad - '0x8f' metadataResync: required: - status properties: status: type: string description: The status of the resync request media: properties: mimetype: type: string description: The mimetype of the media file [see https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types] category: enum: - image - audio - video status: enum: - success - processing - unsupported_media - invalid_url - host_unavailable - temporarily_unavailable description:
successThe NFT Preview was created / retrieved successfully
processingThe NFT Preview was not found and has been submitted for generation.
unsupported_mediaThe mime-type of the NFT's media file indicates a type not currently supported.
invalid_urlThe 'image' URL from the NFT's metadata is not a valid URL and cannot be processed.
host_unavailableThe 'image' URL from the NFT's metadata returned an HttpCode indicating the host / file is not available.
temporarily_unavailableThe attempt to load / parse the NFT media file failed (usually due to rate limiting) and will be tried again at next request.
original_media_url: type: string description: The url of the original media file. updatedAt: type: string description: The timestamp of the last update to this NFT media record. parent_hash: type: string description: Hash value of the original media file. media_collection: description: Preview item associated with the original $ref: '#/components/schemas/mediaCollection' discoveryTokenLinks: type: object required: - bitbucket - discord - facebook - github - instagram - linkedin - medium - reddit - telegram - tiktok - twitter - website - youtube properties: bitbucket: type: string description: The link of the token on the platform discord: type: string description: The link of the token on the platform facebook: type: string description: The link of the token on the platform github: type: string description: The link of the token on the platform instagram: type: string description: The link of the token on the platform linkedin: type: string description: The link of the token on the platform medium: type: string description: The link of the token on the platform reddit: type: string description: The link of the token on the platform telegram: type: string description: The link of the token on the platform tiktok: type: string description: The link of the token on the platform twitter: type: string description: The link of the token on the platform website: type: string description: The link of the token on the platform youtube: type: string description: The link of the token on the platform erc20Metadata: type: object required: - address - name - symbol - decimals - created_at - possible_spam properties: address: type: string description: The address of the token contract example: '0x6982508145454ce325ddbe47a25d4ec3d2311933' address_label: type: string nullable: true description: The label of the address example: Binance 1 name: type: string description: The name of the token contract example: Kylin Network symbol: type: string description: The symbol of the NFT contract example: KYL decimals: type: string description: The number of decimals on the token example: '18' logo: type: string nullable: true description: The logo of the token example: https://cdn.moralis.io/eth/0x67b6d479c7bb412c54e03dca8e1bc6740ce6b99c.png logo_hash: type: string nullable: true description: The logo hash example: ee7aa2cdf100649a3521a082116258e862e6971261a39b5cd4e4354fcccbc54d thumbnail: type: string nullable: true description: The thumbnail of the logo example: https://cdn.moralis.io/eth/0x67b6d479c7bb412c54e03dca8e1bc6740ce6b99c_thumb.png total_supply: type: string nullable: false description: Total tokens created minus any that have been burned example: '420689899999994793099999999997400' total_supply_formatted: type: string nullable: false description: Total tokens created minus any that have been burned (decimal formatted) example: '420689899999994.7930999999999974' implementations: type: array items: description: The token addresses of the same symbol from another chains required: - chainId - address properties: chainId: type: string description: The chain id example: '0x1' chain: type: string description: The chain name example: eth chainName: type: string description: The chain name example: Ethereum address: type: string description: The token address example: '0x6982508145454ce325ddbe47a25d4ec3d2311933' fully_diluted_valuation: type: string nullable: false description: Fully Diluted Valuation (FDV), this represents the token's Current Price x Total Supply example: '3407271444.05' block_number: type: string validated: type: number created_at: type: string description: The timestamp of when the erc20 token was created possible_spam: type: boolean description: Indicates if a contract is possibly a spam contract example: 'false' verified_contract: type: boolean description: Indicates if a contract is verified example: false categories: type: array items: type: string nullable: true description: Categories of the token example: - stablecoin links: $ref: '#/components/schemas/discoveryTokenLinks' circulating_supply: type: string description: The circulating supply of the token example: '4206864.7489303' market_cap: type: string description: The market cap of the token example: '3407271444.05' mediaItem: properties: width: type: integer description: The width of the preview image. height: type: integer description: The height of the preview image. url: type: string description: The url of the preview file. required: - width - height - url securitySchemes: ApiKeyAuth: type: apiKey in: header name: X-API-Key x-default: test x-samples-languages: - node - javascript - csharp - curl - python x-mcp-blacklist: - getNFTTraitsByCollectionPaginate - getNFTContractMetadata - getTokenPrice - getNativeBalance - getTokenAnalytics - resyncNFTRarity - syncNFTContract - reSyncMetadata - runContractFunction - web3ApiVersion - endpointWeights - getWalletTokenBalances - getTokenMetadataBySymbol - getWalletTransactions - getWalletTransactionsVerbose - getTransaction - getPairPrice - reviewContracts - getTrendingTokens - getWalletTokenTransfers - getWalletNFTTransfers - getPairReserves - getPairAddress - getTokenStats - resolveAddressToDomain - resolveDomain - getNFTFloorPriceByToken - getBlockStats - getNewTokensByExchange - getBondingTokensByExchange - getGraduatedTokensByExchange - getTokenBondingStatus - getAggregatedTokenPairStats - getTokenCategories - getRisingLiquidityTokens - getBuyingPressureTokens - getSolidPerformersTokens - getExperiencedBuyersTokens - getRiskyBetsTokens - getBlueChipTokens - getNFTOwners - getNFTTokenIdOwners - getContractNFTs - getNFTTradesByToken - getNFTTransfers