naftiko: 1.0.0-alpha2 info: label: EVM API — Get Market Data description: 'EVM API — Get Market Data. 11 operations. Lead operation: Get Multiple ERC20 token prices. Self-contained Naftiko capability covering one Moralis business surface.' tags: - Moralis - Get Market Data created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: MORALIS_API_KEY: MORALIS_API_KEY capability: consumes: - type: http namespace: evm-get-market-data baseUri: https://deep-index.moralis.io/api/v2.2 description: EVM API — Get Market Data business capability. Self-contained, no shared references. resources: - name: erc20-prices path: /erc20/prices operations: - name: getmultipletokenprices method: POST description: Get Multiple ERC20 token prices outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: chain in: query type: string description: The chain to query - name: include in: query type: string description: This parameter is now deprecated as percentage change are included by default - name: max_token_inactivity in: query type: number description: Exclude tokens inactive for more than the given amount of days - name: min_pair_side_liquidity_usd in: query type: number description: Exclude tokens with liquidity less than the specified amount in USD. This parameter refers to the liquidity on a single side of the pair. - name: body in: body type: object description: Request body (JSON). required: true - name: erc20-address-price path: /erc20/{address}/price operations: - name: gettokenprice method: GET description: Get ERC20 token price outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: chain in: query type: string description: The chain to query - name: address in: path type: string description: The address of the token contract required: true - name: exchange in: query type: string description: The factory name or address of the token exchange - name: to_block in: query type: integer description: The block number from which the token price should be checked - name: include in: query type: string description: This parameter is now deprecated as percentage change are included by default - name: max_token_inactivity in: query type: number description: Exclude tokens inactive for more than the given amount of days - name: min_pair_side_liquidity_usd in: query type: number description: Exclude tokens with liquidity less than the specified amount in USD. This parameter refers to the liquidity on a single side of the pair. - name: nft-address-nfts-by-traits path: /nft/{address}/nfts-by-traits operations: - name: getnftbycontracttraits method: POST description: Get NFTs by traits outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: chain in: query type: string description: The chain to query - name: address in: path type: string description: The address of the NFT contract required: true - name: limit in: query type: integer description: The desired page size of the result. - name: cursor in: query type: string description: The cursor returned in the previous response (used for getting the next page). - name: format in: query type: string description: The format of the token ID - name: normalizeMetadata in: query type: boolean description: Should normalized metadata be returned? - name: media_items in: query type: boolean description: Should preview media data be returned? - name: body in: body type: object description: Request body (JSON). required: true - name: nft-address-price path: /nft/{address}/price operations: - name: getnftcontractsaleprices method: GET description: Get NFT sale prices by collection outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: chain in: query type: string description: The chain to query - name: days in: query type: integer description: The number of days to look back to find the lowest price - name: address in: path type: string description: The address of the NFT collection required: true - name: nft-address-trades path: /nft/{address}/trades operations: - name: getnfttrades method: GET description: Get NFT trades by collection outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: chain in: query type: string description: The chain to query - name: from_block in: query type: integer description: The minimum block number from which to get the transfers - name: to_block in: query type: string description: The block number to get the trades from - name: from_date in: query type: string description: The start date from which to get the transfers (format in seconds or datestring accepted by momentjs) - name: to_date in: query type: string description: The end date from which to get the transfers (format in seconds or datestring accepted by momentjs) - name: marketplace in: query type: string description: Marketplace from which to get the trades. See [supported Marketplaces](https://docs.moralis.io/web3-data-api/evm/nft-marketplaces). - name: cursor in: query type: string description: The cursor returned in the previous response (used for getting the next page). - name: limit in: query type: integer description: The desired page size of the result. - name: nft_metadata in: query type: boolean description: Include the NFT Metadata of the NFT Token - name: address in: path type: string description: The address of the NFT contract required: true - name: nft-address-traits path: /nft/{address}/traits operations: - name: getnfttraitsbycollection method: GET description: Get NFT traits by collection outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: chain in: query type: string description: The chain to query - name: address in: path type: string description: The address of the NFT contract required: true - name: nft-address-traits-paginate path: /nft/{address}/traits/paginate operations: - name: getnfttraitsbycollectionpaginate method: GET description: Get NFT traits by collection paginate outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: chain in: query type: string description: The chain to query - name: address in: path type: string description: The address of the NFT contract required: true - name: cursor in: query type: string description: The cursor returned in the previous response (used for getting the next page). - name: limit in: query type: integer description: The desired page size of the result. - name: order in: query type: string description: The order of the result, in ascending (ASC) or descending (DESC) - name: nft-address-traits-resync path: /nft/{address}/traits/resync operations: - name: resyncnftrarity method: GET description: Resync NFT Trait outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: chain in: query type: string description: The chain to query - name: address in: path type: string description: The address of the NFT contract required: true - name: nft-address-token_id-price path: /nft/{address}/{token_id}/price operations: - name: getnftsaleprices method: GET description: Get NFT sale prices by token outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: chain in: query type: string description: The chain to query - name: days in: query type: integer description: The number of days to look back to find the lowest price - name: address in: path type: string description: The address of the NFT collection required: true - name: token_id in: path type: string description: The token id of the NFT collection required: true - name: nft-address-token_id-trades path: /nft/{address}/{token_id}/trades operations: - name: getnfttradesbytoken method: GET description: Get NFT trades by token outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: chain in: query type: string description: The chain to query - name: from_block in: query type: integer description: The minimum block number from which to get the transfers - name: to_block in: query type: string description: The block number to get the trades from - name: from_date in: query type: string description: The start date from which to get the transfers (format in seconds or datestring accepted by momentjs) - name: to_date in: query type: string description: The end date from which to get the transfers (format in seconds or datestring accepted by momentjs) - name: cursor in: query type: string description: The cursor returned in the previous response (used for getting the next page). - name: limit in: query type: integer description: The desired page size of the result. - name: nft_metadata in: query type: boolean description: Include the NFT Metadata of the NFT Token - name: address in: path type: string description: The address of the NFT contract required: true - name: token_id in: path type: string description: The token ID of the NFT contract required: true - name: wallets-address-nfts-trades path: /wallets/{address}/nfts/trades operations: - name: getnfttradesbywallet method: GET description: Get NFT trades by wallet address outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: chain in: query type: string description: The chain to query - name: from_block in: query type: integer description: The minimum block number from which to get the transfers - name: to_block in: query type: string description: The block number to get the trades from - name: from_date in: query type: string description: The start date from which to get the transfers (format in seconds or datestring accepted by momentjs) - name: to_date in: query type: string description: The end date from which to get the transfers (format in seconds or datestring accepted by momentjs) - name: cursor in: query type: string description: The cursor returned in the previous response (used for getting the next page). - name: limit in: query type: integer description: The desired page size of the result. - name: nft_metadata in: query type: boolean description: Include the NFT Metadata of the NFT Token - name: address in: path type: string description: The owner wallet address required: true authentication: type: apikey key: X-API-Key value: '{{env.MORALIS_API_KEY}}' placement: header exposes: - type: rest namespace: evm-get-market-data-rest port: 8080 description: REST adapter for EVM API — Get Market Data. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/erc20/prices name: erc20-prices description: REST surface for erc20-prices. operations: - method: POST name: getmultipletokenprices description: Get Multiple ERC20 token prices call: evm-get-market-data.getmultipletokenprices with: chain: rest.chain include: rest.include max_token_inactivity: rest.max_token_inactivity min_pair_side_liquidity_usd: rest.min_pair_side_liquidity_usd body: rest.body outputParameters: - type: object mapping: $. - path: /v1/erc20/{address}/price name: erc20-address-price description: REST surface for erc20-address-price. operations: - method: GET name: gettokenprice description: Get ERC20 token price call: evm-get-market-data.gettokenprice with: chain: rest.chain address: rest.address exchange: rest.exchange to_block: rest.to_block include: rest.include max_token_inactivity: rest.max_token_inactivity min_pair_side_liquidity_usd: rest.min_pair_side_liquidity_usd outputParameters: - type: object mapping: $. - path: /v1/nft/{address}/nfts-by-traits name: nft-address-nfts-by-traits description: REST surface for nft-address-nfts-by-traits. operations: - method: POST name: getnftbycontracttraits description: Get NFTs by traits call: evm-get-market-data.getnftbycontracttraits with: chain: rest.chain address: rest.address limit: rest.limit cursor: rest.cursor format: rest.format normalizeMetadata: rest.normalizeMetadata media_items: rest.media_items body: rest.body outputParameters: - type: object mapping: $. - path: /v1/nft/{address}/price name: nft-address-price description: REST surface for nft-address-price. operations: - method: GET name: getnftcontractsaleprices description: Get NFT sale prices by collection call: evm-get-market-data.getnftcontractsaleprices with: chain: rest.chain days: rest.days address: rest.address outputParameters: - type: object mapping: $. - path: /v1/nft/{address}/trades name: nft-address-trades description: REST surface for nft-address-trades. operations: - method: GET name: getnfttrades description: Get NFT trades by collection call: evm-get-market-data.getnfttrades with: chain: rest.chain from_block: rest.from_block to_block: rest.to_block from_date: rest.from_date to_date: rest.to_date marketplace: rest.marketplace cursor: rest.cursor limit: rest.limit nft_metadata: rest.nft_metadata address: rest.address outputParameters: - type: object mapping: $. - path: /v1/nft/{address}/traits name: nft-address-traits description: REST surface for nft-address-traits. operations: - method: GET name: getnfttraitsbycollection description: Get NFT traits by collection call: evm-get-market-data.getnfttraitsbycollection with: chain: rest.chain address: rest.address outputParameters: - type: object mapping: $. - path: /v1/nft/{address}/traits/paginate name: nft-address-traits-paginate description: REST surface for nft-address-traits-paginate. operations: - method: GET name: getnfttraitsbycollectionpaginate description: Get NFT traits by collection paginate call: evm-get-market-data.getnfttraitsbycollectionpaginate with: chain: rest.chain address: rest.address cursor: rest.cursor limit: rest.limit order: rest.order outputParameters: - type: object mapping: $. - path: /v1/nft/{address}/traits/resync name: nft-address-traits-resync description: REST surface for nft-address-traits-resync. operations: - method: GET name: resyncnftrarity description: Resync NFT Trait call: evm-get-market-data.resyncnftrarity with: chain: rest.chain address: rest.address outputParameters: - type: object mapping: $. - path: /v1/nft/{address}/{token-id}/price name: nft-address-token-id-price description: REST surface for nft-address-token_id-price. operations: - method: GET name: getnftsaleprices description: Get NFT sale prices by token call: evm-get-market-data.getnftsaleprices with: chain: rest.chain days: rest.days address: rest.address token_id: rest.token_id outputParameters: - type: object mapping: $. - path: /v1/nft/{address}/{token-id}/trades name: nft-address-token-id-trades description: REST surface for nft-address-token_id-trades. operations: - method: GET name: getnfttradesbytoken description: Get NFT trades by token call: evm-get-market-data.getnfttradesbytoken with: chain: rest.chain from_block: rest.from_block to_block: rest.to_block from_date: rest.from_date to_date: rest.to_date cursor: rest.cursor limit: rest.limit nft_metadata: rest.nft_metadata address: rest.address token_id: rest.token_id outputParameters: - type: object mapping: $. - path: /v1/wallets/{address}/nfts/trades name: wallets-address-nfts-trades description: REST surface for wallets-address-nfts-trades. operations: - method: GET name: getnfttradesbywallet description: Get NFT trades by wallet address call: evm-get-market-data.getnfttradesbywallet with: chain: rest.chain from_block: rest.from_block to_block: rest.to_block from_date: rest.from_date to_date: rest.to_date cursor: rest.cursor limit: rest.limit nft_metadata: rest.nft_metadata address: rest.address outputParameters: - type: object mapping: $. - type: mcp namespace: evm-get-market-data-mcp port: 9090 transport: http description: MCP adapter for EVM API — Get Market Data. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: get-multiple-erc20-token-prices description: Get Multiple ERC20 token prices hints: readOnly: true destructive: false idempotent: false call: evm-get-market-data.getmultipletokenprices with: chain: tools.chain include: tools.include max_token_inactivity: tools.max_token_inactivity min_pair_side_liquidity_usd: tools.min_pair_side_liquidity_usd body: tools.body outputParameters: - type: object mapping: $. - name: get-erc20-token-price description: Get ERC20 token price hints: readOnly: true destructive: false idempotent: true call: evm-get-market-data.gettokenprice with: chain: tools.chain address: tools.address exchange: tools.exchange to_block: tools.to_block include: tools.include max_token_inactivity: tools.max_token_inactivity min_pair_side_liquidity_usd: tools.min_pair_side_liquidity_usd outputParameters: - type: object mapping: $. - name: get-nfts-traits description: Get NFTs by traits hints: readOnly: true destructive: false idempotent: false call: evm-get-market-data.getnftbycontracttraits with: chain: tools.chain address: tools.address limit: tools.limit cursor: tools.cursor format: tools.format normalizeMetadata: tools.normalizeMetadata media_items: tools.media_items body: tools.body outputParameters: - type: object mapping: $. - name: get-nft-sale-prices-collection description: Get NFT sale prices by collection hints: readOnly: true destructive: false idempotent: true call: evm-get-market-data.getnftcontractsaleprices with: chain: tools.chain days: tools.days address: tools.address outputParameters: - type: object mapping: $. - name: get-nft-trades-collection description: Get NFT trades by collection hints: readOnly: true destructive: false idempotent: true call: evm-get-market-data.getnfttrades with: chain: tools.chain from_block: tools.from_block to_block: tools.to_block from_date: tools.from_date to_date: tools.to_date marketplace: tools.marketplace cursor: tools.cursor limit: tools.limit nft_metadata: tools.nft_metadata address: tools.address outputParameters: - type: object mapping: $. - name: get-nft-traits-collection description: Get NFT traits by collection hints: readOnly: true destructive: false idempotent: true call: evm-get-market-data.getnfttraitsbycollection with: chain: tools.chain address: tools.address outputParameters: - type: object mapping: $. - name: get-nft-traits-collection-paginate description: Get NFT traits by collection paginate hints: readOnly: true destructive: false idempotent: true call: evm-get-market-data.getnfttraitsbycollectionpaginate with: chain: tools.chain address: tools.address cursor: tools.cursor limit: tools.limit order: tools.order outputParameters: - type: object mapping: $. - name: resync-nft-trait description: Resync NFT Trait hints: readOnly: true destructive: false idempotent: true call: evm-get-market-data.resyncnftrarity with: chain: tools.chain address: tools.address outputParameters: - type: object mapping: $. - name: get-nft-sale-prices-token description: Get NFT sale prices by token hints: readOnly: true destructive: false idempotent: true call: evm-get-market-data.getnftsaleprices with: chain: tools.chain days: tools.days address: tools.address token_id: tools.token_id outputParameters: - type: object mapping: $. - name: get-nft-trades-token description: Get NFT trades by token hints: readOnly: true destructive: false idempotent: true call: evm-get-market-data.getnfttradesbytoken with: chain: tools.chain from_block: tools.from_block to_block: tools.to_block from_date: tools.from_date to_date: tools.to_date cursor: tools.cursor limit: tools.limit nft_metadata: tools.nft_metadata address: tools.address token_id: tools.token_id outputParameters: - type: object mapping: $. - name: get-nft-trades-wallet-address description: Get NFT trades by wallet address hints: readOnly: true destructive: false idempotent: true call: evm-get-market-data.getnfttradesbywallet with: chain: tools.chain from_block: tools.from_block to_block: tools.to_block from_date: tools.from_date to_date: tools.to_date cursor: tools.cursor limit: tools.limit nft_metadata: tools.nft_metadata address: tools.address outputParameters: - type: object mapping: $.