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.
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
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: $.