Moralis · Capability

EVM API — Get Market Data

EVM API — Get Market Data. 11 operations. Lead operation: Get Multiple ERC20 token prices. Self-contained Naftiko capability covering one Moralis business surface.

Run with Naftiko MoralisGet Market Data

What You Can Do

POST
Getmultipletokenprices — Get Multiple ERC20 token prices
/v1/erc20/prices
GET
Gettokenprice — Get ERC20 token price
/v1/erc20/{address}/price
POST
Getnftbycontracttraits — Get NFTs by traits
/v1/nft/{address}/nfts-by-traits
GET
Getnftcontractsaleprices — Get NFT sale prices by collection
/v1/nft/{address}/price
GET
Getnfttrades — Get NFT trades by collection
/v1/nft/{address}/trades
GET
Getnfttraitsbycollection — Get NFT traits by collection
/v1/nft/{address}/traits
GET
Getnfttraitsbycollectionpaginate — Get NFT traits by collection paginate
/v1/nft/{address}/traits/paginate
GET
Resyncnftrarity — Resync NFT Trait
/v1/nft/{address}/traits/resync
GET
Getnftsaleprices — Get NFT sale prices by token
/v1/nft/{address}/{token-id}/price
GET
Getnfttradesbytoken — Get NFT trades by token
/v1/nft/{address}/{token-id}/trades
GET
Getnfttradesbywallet — Get NFT trades by wallet address
/v1/wallets/{address}/nfts/trades

MCP Tools

get-multiple-erc20-token-prices

Get Multiple ERC20 token prices

read-only
get-erc20-token-price

Get ERC20 token price

read-only idempotent
get-nfts-traits

Get NFTs by traits

read-only
get-nft-sale-prices-collection

Get NFT sale prices by collection

read-only idempotent
get-nft-trades-collection

Get NFT trades by collection

read-only idempotent
get-nft-traits-collection

Get NFT traits by collection

read-only idempotent
get-nft-traits-collection-paginate

Get NFT traits by collection paginate

read-only idempotent
resync-nft-trait

Resync NFT Trait

read-only idempotent
get-nft-sale-prices-token

Get NFT sale prices by token

read-only idempotent
get-nft-trades-token

Get NFT trades by token

read-only idempotent
get-nft-trades-wallet-address

Get NFT trades by wallet address

read-only idempotent

Capability Spec

evm-get-market-data.yaml Raw ↑
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: $.