openapi: 3.0.0 info: title: EVM Balance NFT API version: '2.2' servers: - url: https://deep-index.moralis.io/api/v2.2 security: - ApiKeyAuth: [] tags: - name: NFT paths: /{address}/nft: get: security: - ApiKeyAuth: [] summary: Get NFTs by wallet address description: Fetch all NFTs held by a specified wallet address. Use `token_addresses` to filter by one or many specific contract(s). Each NFT returned includes on-chain metadata as well as off-chain metadata, floor prices, rarity and more where available. tags: - NFT x-mcp-prompt: Enter the wallet address to retrieve its NFTs. Optionally, include `token_addresses` query parameter to filter by specific collections. Use this when users ask for a list of NFTs owned by a wallet or want to check NFT holdings for a given wallet address. x-tag-sdk: nft operationId: getWalletNFTs 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 wallet required: true schema: type: string example: '0xcB1C1FdE09f811B294172696404e88E658659905' - 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: limit description: The desired page size of the result. required: false schema: type: integer minimum: 0 - in: query name: exclude_spam description: Should spam NFTs be excluded from the result? required: false schema: type: boolean default: false - in: query name: token_addresses description: The addresses to get balances for (optional) required: false schema: type: array maxItems: 10 items: type: string - in: query name: cursor description: The cursor returned in the previous response (used for getting the next page). schema: type: string - 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 a collection of NFT owners content: application/json: schema: $ref: '#/components/schemas/nftOwnerCollection' /nft/getMultipleNFTs: post: security: - ApiKeyAuth: [] summary: Get Metadata for NFTs description: Get NFT metadata for one or many NFTs. Accepts an array of up to 25 `tokens`, each requiring `token_address` and `token_id`. Each NFT returned includes on-chain metadata as well as off-chain metadata, floor prices, rarity and more where available. tags: - NFT x-mcp-prompt: Provide up to 25 NFT token IDs and their `token_address` to fetch details. Use this when users request metadata or details for one or many NFTs across one or more collections. x-tag-sdk: nft operationId: getMultipleNFTs requestBody: description: Body required: true content: application/json: schema: $ref: '#/components/schemas/GetMultipleNftsDto' parameters: - in: query name: chain description: The chain to query required: false schema: $ref: '#/components/schemas/chainList' responses: '200': description: Returns a collection of NFT owners content: application/json: schema: type: array items: $ref: '#/components/schemas/nftOwner' /{address}/nft/transfers: get: security: - ApiKeyAuth: [] summary: Get NFT Transfers by wallet address description: Get NFT transfers for a wallet, with filters like `contract_addresses` and other parameters. Supports ERC-721, ERC-1155 as well as custom contracts such as CryptoPunks and CryptoKitties. tags: - NFT x-mcp-prompt: Input the wallet address for NFT transfer history. Add filters like `contract_addresses` or date ranges if needed. Use this when users ask about a wallet’s NFT transaction history or want to track NFT movements. x-tag-sdk: nft operationId: getWalletNFTTransfers parameters: - in: query name: chain description: The chain to query required: false schema: $ref: '#/components/schemas/chainList' - in: path name: address description: The wallet address of the sender or recipient of the transfers required: true schema: type: string example: '0xcB1C1FdE09f811B294172696404e88E658659905' - in: query name: contract_addresses description: List of contract addresses of transfers required: false schema: type: array items: type: string - 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: from_block description: 'The minimum block number from which to get the transfers * Provide the param ''from_block'' or ''from_date'' * If ''from_date'' and ''from_block'' are provided, ''from_block'' will be used. ' required: false schema: type: integer minimum: 0 - in: query name: to_block description: To get the reserves at this block number required: false schema: type: string - in: query name: from_date description: 'The date from where to get the transfers (format in seconds or datestring accepted by momentjs) * Provide the param ''from_block'' or ''from_date'' * If ''from_date'' and ''from_block'' are provided, ''from_block'' will be used. ' required: false schema: type: string - in: query name: to_date description: 'Get transfers up until this date (format in seconds or datestring accepted by momentjs) * Provide the param ''to_block'' or ''to_date'' * If ''to_date'' and ''to_block'' are provided, ''to_block'' will be used. ' required: false schema: type: string - in: query name: include_prices description: Should NFT last sale prices be included in the result? required: false schema: type: boolean default: false - in: query name: limit description: The desired page size of the result. required: false schema: type: integer minimum: 0 - in: query name: order description: The order of the result, in ascending (ASC) or descending (DESC) required: false schema: $ref: '#/components/schemas/orderList' - in: query name: cursor description: The cursor returned in the previous response (used for getting the next page). schema: type: string responses: '200': description: Returns a collection of NFT transfers content: application/json: schema: $ref: '#/components/schemas/nftTransferCollection' /{address}/nft/collections: get: security: - ApiKeyAuth: [] summary: Get NFT collections by wallet address description: Fetch all NFT Collections held by a specified wallet address. Each Collection returned includes on-chain metadata as well as off-chain metadata, floor prices and more where available. tags: - NFT x-mcp-prompt: Submit the wallet address to view its NFT collections. Use this when users want to see all NFT collections a wallet holds or explore a wallet’s NFT portfolio. x-tag-sdk: nft operationId: getWalletNFTCollections parameters: - in: query name: chain description: The chain to query required: false schema: $ref: '#/components/schemas/chainList' - in: path name: address description: The wallet address of the owner of NFTs in the collections required: true schema: type: string example: '0xcB1C1FdE09f811B294172696404e88E658659905' - in: query name: include_prices description: Should NFT last sale prices be included in the result? required: false schema: type: boolean default: false - in: query name: limit description: The desired page size of the result. required: false schema: type: integer minimum: 0 - in: query name: exclude_spam description: Should spam NFTs be excluded from the result? required: false schema: type: boolean default: false - in: query name: cursor description: The cursor returned in the previous response (used for getting the next page). schema: type: string - in: query name: token_counts description: Should token counts per collection be included in the response? required: false schema: type: boolean default: false responses: '200': description: Returns the NFT collections owned by a wallet content: application/json: schema: $ref: '#/components/schemas/nftWalletCollections' /nft/{address}: get: security: - ApiKeyAuth: [] summary: Get NFTs by contract address description: Fetch all NFTs for a given collection. Each NFT returned includes on-chain metadata as well as off-chain metadata, floor prices, rarity and more where available. tags: - NFT x-mcp-prompt: Provide the contract address to fetch its NFTs. Include pagination settings like `limit` or `cursor` if desired. Use this when users ask for all NFTs in a specific collection or need metadata for a contract’s tokens. x-tag-sdk: nft operationId: getContractNFTs 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: '0x306b1ea3ecdf94aB739F1910bbda052Ed4A9f949' - 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: limit description: The desired page size of the result. required: false schema: type: integer minimum: 0 - in: query name: totalRanges description: The number of subranges to split the results into required: false schema: type: integer minimum: 1 - in: query name: range description: The desired subrange to query required: false schema: type: integer minimum: 1 - in: query name: cursor description: The cursor returned in the previous response (used for getting the next page). schema: type: string - 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 a collection of NFTs content: application/json: schema: $ref: '#/components/schemas/nftCollection' /nft/{address}/unique-owners: get: security: - ApiKeyAuth: [] summary: Get unique wallet addresses owning NFTs from a contract. description: Get unique wallet addresses owning NFTs from a contract. tags: - NFT x-tag-sdk: nft operationId: getUniqueOwnersByCollection 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: '0x306b1ea3ecdf94ab739f1910bbda052ed4a9f949' - in: query name: limit description: The desired page size of the result. required: false schema: type: integer minimum: 0 - in: query name: cursor description: The cursor returned in the previous response (used for getting the next page). schema: type: string responses: '200': description: Returns a collection of unique NFT owners content: application/json: schema: $ref: '#/components/schemas/uniqueOwnersByCollection' x-mcp-prompt: Enter the contract address to list its unique NFT owners. Use this when users want to know how many unique wallets own NFTs. /nft/{address}/owners: get: security: - ApiKeyAuth: [] summary: Get NFT owners by contract address description: Identify wallets owning NFTs from a specific contract. tags: - NFT x-tag-sdk: nft operationId: getNFTOwners 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: '0x306b1ea3ecdf94ab739f1910bbda052ed4a9f949' - 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: limit description: The desired page size of the result. required: false schema: type: integer minimum: 0 - in: query name: cursor description: The cursor returned in the previous response (used for getting the next page). schema: type: string - in: query name: normalizeMetadata description: Should normalized metadata be returned? required: false schema: type: boolean default: false - in: query name: media_items description: Should preview media data be returned? required: false schema: type: boolean default: false responses: '200': description: Returns a collection of NFT owners content: application/json: schema: $ref: '#/components/schemas/nftOwnerCollection' x-mcp-prompt: Enter the contract address to list its NFT owners. Use this when users want to know who owns NFTs in a collection or are analyzing ownership distribution. /nft/{address}/transfers: get: security: - ApiKeyAuth: [] summary: Get NFT transfers by contract address description: Get NFT transfers for a contract, with options to filter by date, token, or other parameters. tags: - NFT x-tag-sdk: nft operationId: getNFTContractTransfers parameters: - in: query name: chain description: The chain to query required: false schema: $ref: '#/components/schemas/chainList' - in: query name: from_block description: 'The minimum block number from where to get the transfers * Provide the param ''from_block'' or ''from_date'' * If ''from_date'' and ''from_block'' are provided, ''from_block'' will be used. ' required: false schema: type: integer minimum: 0 - in: query name: to_block description: 'The maximum block number from where to get the transfers. * Provide the param ''to_block'' or ''to_date'' * If ''to_date'' and ''to_block'' are provided, ''to_block'' will be used. ' required: false schema: type: integer minimum: 0 - in: query name: from_date description: 'The date from where to get the transfers (format in seconds or datestring accepted by momentjs) * Provide the param ''from_block'' or ''from_date'' * If ''from_date'' and ''from_block'' are provided, ''from_block'' will be used. ' required: false schema: type: string - in: query name: to_date description: 'Get transfers up until this date (format in seconds or datestring accepted by momentjs) * Provide the param ''to_block'' or ''to_date'' * If ''to_date'' and ''to_block'' are provided, ''to_block'' will be used. ' required: false schema: type: string - in: path name: address description: The address of the NFT contract required: true schema: type: string example: '0x306b1ea3ecdf94ab739f1910bbda052ed4a9f949' - 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: include_prices description: Should NFT last sale prices be included in the result? required: false schema: type: boolean default: false - in: query name: limit description: The desired page size of the result. required: false schema: type: integer minimum: 0 - in: query name: order description: The order of the result, in ascending (ASC) or descending (DESC) required: false schema: $ref: '#/components/schemas/orderList' - in: query name: cursor description: The cursor returned in the previous response (used for getting the next page). schema: type: string responses: '200': description: Returns a collection of NFT transfers content: application/json: schema: $ref: '#/components/schemas/nftTransferCollection' x-mcp-prompt: Input the contract address for NFT transfer data. Specify filters like date or token ID if needed. Use this when users request transfer history for a specific NFT collection or want to monitor trading activity. /nft/{address}/nfts-by-traits: post: security: - ApiKeyAuth: [] summary: Get NFTs by traits description: Find NFTs in a contract matching specific traits, perfect for attribute-based searches. tags: - NFT x-tag-sdk: nft operationId: getNFTByContractTraits 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: query name: limit description: The desired page size of the result. required: false schema: type: integer minimum: 1 default: 100 - in: query name: cursor description: The cursor returned in the previous response (used for getting the next page). schema: type: string - 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: false - in: query name: media_items description: Should preview media data be returned? required: false schema: type: boolean default: false requestBody: description: Body required: true content: application/json: schema: type: object properties: traits: type: object minItems: 1 maxItems: 25 example: traits: Legendary: Astronaut required: - traits responses: '200': description: Returns a collection of NFTs content: application/json: schema: $ref: '#/components/schemas/nftCollection' x-mcp-prompt: Provide the contract address and trait filters to find matching NFTs. Use this when users ask for NFTs with specific attributes (e.g., rare traits) or are searching for unique items in a collection. /nft/{address}/traits: get: security: - ApiKeyAuth: [] summary: Get NFT traits by collection description: Explore the distinct traits of NFTs in a contract, showcasing their unique attributes. tags: - NFT x-tag-sdk: nft operationId: getNFTTraitsByCollection 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' responses: '200': description: Returns the traits content: application/json: schema: $ref: '#/components/schemas/groupedTraitCollection' x-mcp-prompt: Enter the contract address to retrieve its NFT traits. Use this when users want to understand the trait distribution of a collection or analyze NFT characteristics. /nft/{address}/traits/paginate: get: security: - ApiKeyAuth: [] summary: Get NFT traits by collection paginate description: Fetch NFT traits for a contract with pagination for efficient navigation of large collections. tags: - NFT x-tag-sdk: nft operationId: getNFTTraitsByCollectionPaginate 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: query name: cursor description: The cursor returned in the previous response (used for getting the next page). required: false schema: type: string - in: query name: limit description: The desired page size of the result. required: false schema: type: integer minimum: 0 - in: query name: order description: The order of the result, in ascending (ASC) or descending (DESC) required: false schema: $ref: '#/components/schemas/orderList' responses: '200': description: Returns the traits content: application/json: schema: $ref: '#/components/schemas/traitCollection' x-mcp-prompt: Submit the contract address and pagination settings like `limit` or `cursor` for NFT traits. Use this when users need paginated trait data for large NFT collections or are building trait-based analytics. /nft/{address}/traits/resync: get: security: - ApiKeyAuth: [] summary: Resync NFT Trait description: Refresh trait and rarity data for NFTs in a contract to ensure accuracy. tags: - NFT x-tag-sdk: nft operationId: resyncNFTRarity 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' responses: '202': description: The resync request was received and will be executed. content: application/json: schema: $ref: '#/components/schemas/metadataResync' x-mcp-prompt: Provide the contract address to resync its NFT trait data. Use this when users report outdated rarity data or want to ensure the latest trait information for a collection. /nft/{address}/trades: get: security: - ApiKeyAuth: [] summary: Get NFT trades by collection description: Get NFT trades for a given contract with the ability to filter by marketplace. tags: - NFT x-tag-sdk: nft operationId: getNFTTrades parameters: - in: query name: chain description: The chain to query required: false schema: $ref: '#/components/schemas/chainList' - in: query name: from_block description: 'The minimum block number from which to get the transfers * Provide the param ''from_block'' or ''from_date'' * If ''from_date'' and ''from_block'' are provided, ''from_block'' will be used. ' required: false schema: type: integer minimum: 0 - in: query name: to_block description: The block number to get the trades from required: false schema: type: string - in: query name: from_date description: 'The start date from which to get the transfers (format in seconds or datestring accepted by momentjs) * Provide the param ''from_block'' or ''from_date'' * If ''from_date'' and ''from_block'' are provided, ''from_block'' will be used. ' required: false schema: type: string - in: query name: to_date description: 'The end date from which to get the transfers (format in seconds or datestring accepted by momentjs) * Provide the param ''to_block'' or ''to_date'' * If ''to_date'' and ''to_block'' are provided, ''to_block'' will be used. ' required: false schema: type: string - in: query name: marketplace description: Marketplace from which to get the trades. See [supported Marketplaces](https://docs.moralis.io/web3-data-api/evm/nft-marketplaces). example: opensea required: false schema: type: string example: opensea default: opensea enum: - opensea - blur - looksrare - x2y2 - 0xprotocol - in: query name: cursor description: The cursor returned in the previous response (used for getting the next page). required: false schema: type: string - in: query name: limit description: The desired page size of the result. required: false schema: type: integer minimum: 0 - in: query name: nft_metadata description: Include the NFT Metadata of the NFT Token required: false schema: type: boolean default: true - in: path name: address description: The address of the NFT contract required: true schema: type: string example: '0x524cab2ec69124574082676e6f654a18df49a048' responses: '200': description: Returns the trades content: application/json: schema: $ref: '#/components/schemas/tradeCollection' x-mcp-prompt: Enter the contract address to fetch NFT trade data. Optionally, include a marketplace filter. Use this when users ask for trading history of a collection or want to analyze marketplace activity. /nft/{address}/{token_id}/trades: get: security: - ApiKeyAuth: [] summary: Get NFT trades by token description: Get NFT trades for a specific NFT by specifying a contract addres and token ID. tags: - NFT x-tag-sdk: nft operationId: getNFTTradesByToken parameters: - in: query name: chain description: The chain to query required: false schema: $ref: '#/components/schemas/chainList' - in: query name: from_block description: 'The minimum block number from which to get the transfers * Provide the param ''from_block'' or ''from_date'' * If ''from_date'' and ''from_block'' are provided, ''from_block'' will be used. ' required: false schema: type: integer minimum: 0 - in: query name: to_block description: The block number to get the trades from required: false schema: type: string - in: query name: from_date description: 'The start date from which to get the transfers (format in seconds or datestring accepted by momentjs) * Provide the param ''from_block'' or ''from_date'' * If ''from_date'' and ''from_block'' are provided, ''from_block'' will be used. ' required: false schema: type: string - in: query name: to_date description: 'The end date from which to get the transfers (format in seconds or datestring accepted by momentjs) * Provide the param ''to_block'' or ''to_date'' * If ''to_date'' and ''to_block'' are provided, ''to_block'' will be used. ' required: false schema: type: string - in: query name: cursor description: The cursor returned in the previous response (used for getting the next page). required: false schema: type: string - in: query name: limit description: The desired page size of the result. required: false schema: type: integer minimum: 0 - in: query name: nft_metadata description: Include the NFT Metadata of the NFT Token required: false schema: type: boolean default: true - 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 token ID of the NFT contract required: true schema: type: string example: '123' responses: '200': description: Returns the trades content: application/json: schema: $ref: '#/components/schemas/tradeCollection' x-mcp-prompt: Provide the contract address and token ID to view the NFT’s trade history. Use this when users want trade details for a specific NFT or are tracking its market activity. /wallets/{address}/nfts/trades: get: security: - ApiKeyAuth: [] summary: Get NFT trades by wallet address description: Get NFT trades for a specific wallet address. tags: - NFT x-tag-sdk: nft operationId: getNFTTradesByWallet parameters: - in: query name: chain description: The chain to query required: false schema: $ref: '#/components/schemas/chainList' - in: query name: from_block description: 'The minimum block number from which to get the transfers * Provide the param ''from_block'' or ''from_date'' * If ''from_date'' and ''from_block'' are provided, ''from_block'' will be used. ' required: false schema: type: integer minimum: 0 - in: query name: to_block description: The block number to get the trades from required: false schema: type: string - in: query name: from_date description: 'The start date from which to get the transfers (format in seconds or datestring accepted by momentjs) * Provide the param ''from_block'' or ''from_date'' * If ''from_date'' and ''from_block'' are provided, ''from_block'' will be used. ' required: false schema: type: string - in: query name: to_date description: 'The end date from which to get the transfers (format in seconds or datestring accepted by momentjs) * Provide the param ''to_block'' or ''to_date'' * If ''to_date'' and ''to_block'' are provided, ''to_block'' will be used. ' required: false schema: type: string - in: query name: cursor description: The cursor returned in the previous response (used for getting the next page). required: false schema: type: string - in: query name: limit description: The desired page size of the result. required: false schema: type: integer minimum: 0 - in: query name: nft_metadata description: Include the NFT Metadata of the NFT Token required: false schema: type: boolean default: true - in: path name: address description: The owner wallet address required: true schema: type: string example: '0xcB1C1FdE09f811B294172696404e88E658659905' responses: '200': description: Returns the trades content: application/json: schema: $ref: '#/components/schemas/tradeCollection' x-mcp-prompt: Input the wallet address to retrieve its NFT trade history. Use this when users ask about a wallet’s NFT trading activity or want to review their buy/sell history. /nft/{address}/metadata: get: security: - ApiKeyAuth: [] summary: Get NFT collection metadata description: Fetch on-chain metadata like name, symbol, and base token URI for an NFT contract. Also returns off-chain metadata, floor prices and more where available. tags: - NFT x-tag-sdk: nft operationId: getNFTContractMetadata 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: 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 metadata for an NFT collection. content: application/json: schema: $ref: '#/components/schemas/nftContractMetadata' x-mcp-prompt: Enter the contract address to retrieve its collection metadata. Use this when users need basic information about an NFT collection or are verifying contract details. /nft/metadata: post: security: - ApiKeyAuth: [] summary: Get metadata for multiple NFT contracts description: Retrieve metadata (name, symbol) for up to 25 NFT contracts in one call. Also returns off-chain metadata, floor prices and more where available. tags: - NFT x-tag-sdk: nft operationId: getNFTBulkContractMetadata requestBody: description: Body required: true content: application/json: schema: type: object properties: addresses: type: array minItems: 1 maxItems: 25 items: type: string example: '0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d' required: - addresses parameters: - in: query name: chain description: The chain to query required: false schema: $ref: '#/components/schemas/chainList' - 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 metadata for the requested NFT collections. content: application/json: schema: type: array items: $ref: '#/components/schemas/nftContractMetadata' x-mcp-prompt: Provide a list of up to 25 contract addresses to fetch their metadata. Use this when users request metadata for multiple NFT collections or are comparing contract details. /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: - NFT 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}/transfers: get: security: - ApiKeyAuth: [] summary: Get NFT transfers by token ID description: Get transfers of a specific NFT given a contract address and token ID. tags: - NFT x-tag-sdk: nft operationId: getNFTTransfers 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: include_prices description: Should NFT last sale prices be included in the result? required: false schema: type: boolean default: false - in: query name: limit description: The desired page size of the result. required: false schema: type: integer minimum: 0 - in: query name: order description: The order of the result, in ascending (ASC) or descending (DESC) required: false schema: $ref: '#/components/schemas/orderList' - in: query name: cursor description: The cursor returned in the previous response (used for getting the next page). schema: type: string responses: '200': description: Returns a collection of NFT transfers content: application/json: schema: $ref: '#/components/schemas/nftTransferCollection' x-mcp-prompt: Provide the contract address and token ID to see the NFT’s transfer history. Use this when users want to track the ownership history of a specific NFT. /nft/{address}/{token_id}/owners: get: security: - ApiKeyAuth: [] summary: Get NFT owners by token ID description: List wallets owning a specific NFT, defined by its contract and token ID. tags: - NFT x-tag-sdk: nft operationId: getNFTTokenIdOwners 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: limit description: The desired page size of the result. required: false schema: type: integer minimum: 0 - in: query name: cursor description: The cursor returned in the previous response (used for getting the next page). schema: type: string - in: query name: normalizeMetadata description: Should normalized metadata be returned? required: false schema: type: boolean default: false - in: query name: media_items description: Should preview media data be returned? required: false schema: type: boolean default: false responses: '200': description: Returns a collection of NFTs with their respective owners. content: application/json: schema: $ref: '#/components/schemas/nftOwnerCollection' x-mcp-prompt: Enter the contract address and token ID to find the NFT’s owners. Use this when users ask who owns a specific NFT or are verifying ownership. /nft/{address}/sync: put: security: - ApiKeyAuth: [] summary: Resync NFT Contract description: Initiate indexing for a non-synced NFT contract to make its data available. tags: - NFT x-tag-sdk: nft operationId: syncNFTContract 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' responses: '201': description: Contract address was triggered for index. content: application/json: schema: type: object properties: message: type: string example: Request Initiated x-mcp-prompt: Provide the contract address to start syncing its NFT data. Use this when users report missing NFT data or want to index a new contract. /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: - NFT 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. /nft/{address}/price: get: security: - ApiKeyAuth: [] summary: Get NFT sale prices by collection description: Fetch sale prices for NFTs in a contract over a specified number of days. Returns the last sale, lowest sale, highest sale, average sale and total trades within the specified period. tags: - NFT x-tag-sdk: nft operationId: getNFTContractSalePrices parameters: - in: query name: chain description: The chain to query required: false schema: $ref: '#/components/schemas/chainList' - in: query name: days description: 'The number of days to look back to find the lowest price If not provided 7 days will be the default and 365 is the maximum ' required: false schema: type: integer minimum: 0 - in: path name: address description: The address of the NFT collection required: true schema: type: string example: '0xBC4CA0EdA7647A8aB7C2061c2E118A18a936f13D' responses: '200': description: Returns the sold price details content: application/json: schema: $ref: '#/components/schemas/soldPrice' x-mcp-prompt: Enter the contract address and time period to retrieve NFT sale prices. Use this when users ask for recent sale prices of a collection or are analyzing market trends. /nft/{address}/{token_id}/price: get: security: - ApiKeyAuth: [] summary: Get NFT sale prices by token description: Fetch sale prices for a specific NFT over a specified number of days. Returns the last sale, lowest sale, highest sale, average sale and total trades within the specified period. tags: - NFT x-tag-sdk: nft operationId: getNFTSalePrices parameters: - in: query name: chain description: The chain to query required: false schema: $ref: '#/components/schemas/chainList' - in: query name: days description: 'The number of days to look back to find the lowest price If not provided 7 days will be the default and 365 is the maximum ' required: false schema: type: integer minimum: 0 - in: path name: address description: The address of the NFT collection required: true schema: type: string example: '0xBC4CA0EdA7647A8aB7C2061c2E118A18a936f13D' - in: path name: token_id description: The token id of the NFT collection required: true schema: type: string example: '1' responses: '200': description: Returns the sold price details content: application/json: schema: $ref: '#/components/schemas/soldPrice' x-mcp-prompt: Provide the contract address, token ID, and time period for NFT sale prices. Use this when users want sale history for a specific NFT or are tracking its value. /nft/{address}/stats: get: security: - ApiKeyAuth: [] summary: Get summary stats by NFT collection description: Get summary stats by NFT collection including total NFT transfers, total tokens and total owners. tags: - NFT x-tag-sdk: nft operationId: getNFTCollectionStats 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 collection required: true schema: type: string example: '0x306b1ea3ecdf94aB739F1910bbda052Ed4A9f949' responses: '200': description: Returns the stats for the nft collection address. content: application/json: schema: $ref: '#/components/schemas/nftCollectionStat' x-mcp-prompt: Provide the contract address to retrieve its NFT collection stats. Use this when users ask for a collection’s performance metrics or want to evaluate its popularity. /nft/{address}/floor-price: get: security: - ApiKeyAuth: [] summary: Get NFT floor price by contract description: Get floor price for a given collection. Refreshes every 30 minutes. tags: - NFT x-tag-sdk: nft operationId: getNFTFloorPriceByContract 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: '0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d' responses: '200': description: Returns the conract's floor price content: application/json: schema: $ref: '#/components/schemas/contractFloorPrice' x-mcp-prompt: Enter the contract address to get its NFT floor price. Use this when users ask for the minimum price of a collection or are assessing its market value. /nft/{address}/{token_id}/floor-price: get: security: - ApiKeyAuth: [] summary: Get NFT floor price by token description: Get the floor price for a specific NFT, defined by its contract and token ID. Refreshes every 30 minutes. tags: - NFT x-tag-sdk: nft operationId: getNFTFloorPriceByToken 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: '0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d' - in: path name: token_id description: The token ID of the NFT required: true schema: type: string example: '2441' responses: '200': description: Returns the token's floor price content: application/json: schema: $ref: '#/components/schemas/tokenFloorPrice' x-mcp-prompt: Provide the contract address and token ID to fetch the NFT’s floor price. Use this when users want the floor price for a specific NFT or are comparing token values. /nft/{address}/floor-price/historical: get: security: - ApiKeyAuth: [] summary: Get historical NFT floor price by contract description: Get timeseries historical floor prices for a given NFT collection. Refreshes every 30 minutes. tags: - NFT x-tag-sdk: nft operationId: getNFTHistoricalFloorPriceByContract parameters: - in: query name: chain description: The chain to query required: false schema: $ref: '#/components/schemas/chainList' - in: query name: interval description: The duration to query required: true schema: $ref: '#/components/schemas/nftFloorPriceIntervalList' - in: path name: address description: The address of the NFT contract required: true schema: type: string example: '0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d' - in: query name: cursor description: The cursor returned in the previous response (used for getting the next page). schema: type: string responses: '200': description: Returns the conract's historical floor price content: application/json: schema: $ref: '#/components/schemas/historicalContractFloorResponse' x-mcp-prompt: Enter the contract address and time period to view historical floor prices. Use this when users want to analyze a collection’s price trends or need historical market data. components: schemas: nftWalletCollections: required: - result properties: status: type: string description: The syncing status of the address [SYNCING/SYNCED] example: SYNCING page: type: integer description: The current page of the result example: '2' page_size: type: integer description: The number of results per page example: '100' cursor: type: string description: The cursor to get to the next page result: type: array items: $ref: '#/components/schemas/nftCollections' traitCollection: required: - result properties: page: type: integer description: The current page of the result example: '2' page_size: type: integer description: The number of results per page example: '100' cursor: type: string description: The cursor to get to the next page result: type: array items: $ref: '#/components/schemas/trait' nftCollection: required: - result properties: page: type: integer description: The current page of the result example: '2' page_size: type: integer description: The number of results per page example: '100' cursor: type: string description: The cursor to get to the next page result: type: array items: $ref: '#/components/schemas/nft' historicalContractFloorResponse: required: - result properties: page: type: integer description: The current page of the result example: '1' page_size: type: integer description: The number of results per page example: '100' cursor: type: string description: The cursor to get to the next page result: type: array items: $ref: '#/components/schemas/historicalContractFloorPrice' description: List of historical contract floor prices at various intervals. nftOwnerCollection: required: - result properties: status: type: string description: The syncing status of the address [SYNCING/SYNCED] example: SYNCING page: type: integer description: The current page of the result example: '2' page_size: type: integer description: The number of results per page example: '100' cursor: type: string description: The cursor to get to the next page result: type: array items: $ref: '#/components/schemas/nftOwner' 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 orderList: type: string example: DESC default: DESC enum: - ASC - DESC groupedTraitCollection: required: - result properties: traits: type: array items: $ref: '#/components/schemas/groupedTrait' 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:
| success | The NFT Preview was created / retrieved successfully |
| processing | The NFT Preview was not found and has been submitted for generation. |
| unsupported_media | The mime-type of the NFT's media file indicates a type not currently supported. |
| invalid_url | The 'image' URL from the NFT's metadata is not a valid URL and cannot be processed. |
| host_unavailable | The 'image' URL from the NFT's metadata returned an HttpCode indicating the host / file is not available. |
| temporarily_unavailable | The attempt to load / parse the NFT media file failed (usually due to rate limiting) and will be tried again at next request. |