Moralis · Capability
EVM API — Wallets
EVM API — Wallets. 13 operations. Lead operation: Get ERC20 approvals by wallet. Self-contained Naftiko capability covering one Moralis business surface.
What You Can Do
GET
Getwalletapprovals
— Get ERC20 approvals by wallet
/v1/wallets/{address}/approvals
GET
Getwalletactivechains
— Get active chains by wallet address
/v1/wallets/{address}/chains
GET
Getdefipositionssummary
— Get DeFi positions of a wallet
/v1/wallets/{address}/defi/positions
GET
Getdefisummary
— Get the DeFi summary of a wallet
/v1/wallets/{address}/defi/summary
GET
Getdefipositionsbyprotocol
— Get detailed DeFi positions by protocol for a wallet
/v1/wallets/{address}/defi/{protocol}/positions
GET
Getwallethistory
— Get the complete decoded transaction history of a wallet
/v1/wallets/{address}/history
GET
Getwalletinsight
— Get wallet insight metrics
/v1/wallets/{address}/insight
GET
Getwalletnetworth
— Get wallet net worth
/v1/wallets/{address}/net-worth
GET
Getwalletprofitability
— Get detailed profit and loss by wallet address
/v1/wallets/{address}/profitability
GET
Getwalletprofitabilitysummary
— Get profit and loss summary by wallet address
/v1/wallets/{address}/profitability/summary
GET
Getwalletstats
— Get summary stats by wallet address
/v1/wallets/{address}/stats
GET
Getswapsbywalletaddress
— Get swap transactions by wallet address
/v1/wallets/{address}/swaps
GET
Getwallettokenbalancesprice
— Get token balances with prices by wallet address
/v1/wallets/{address}/tokens
MCP Tools
get-erc20-approvals-wallet
Get ERC20 approvals by wallet
read-only
idempotent
get-active-chains-wallet-address
Get active chains by wallet address
read-only
idempotent
get-defi-positions-wallet
Get DeFi positions of a wallet
read-only
idempotent
get-defi-summary-wallet
Get the DeFi summary of a wallet
read-only
idempotent
get-detailed-defi-positions-protocol
Get detailed DeFi positions by protocol for a wallet
read-only
idempotent
get-complete-decoded-transaction-history
Get the complete decoded transaction history of a wallet
read-only
idempotent
get-wallet-insight-metrics
Get wallet insight metrics
read-only
idempotent
get-wallet-net-worth
Get wallet net worth
read-only
idempotent
get-detailed-profit-and-loss
Get detailed profit and loss by wallet address
read-only
idempotent
get-profit-and-loss-summary
Get profit and loss summary by wallet address
read-only
idempotent
get-summary-stats-wallet-address
Get summary stats by wallet address
read-only
idempotent
get-swap-transactions-wallet-address
Get swap transactions by wallet address
read-only
idempotent
get-token-balances-prices-wallet
Get token balances with prices by wallet address
read-only
idempotent
Capability Spec
naftiko: 1.0.0-alpha2
info:
label: EVM API — Wallets
description: 'EVM API — Wallets. 13 operations. Lead operation: Get ERC20 approvals by wallet. Self-contained Naftiko capability
covering one Moralis business surface.'
tags:
- Moralis
- Wallets
created: '2026-05-19'
modified: '2026-05-19'
binds:
- namespace: env
keys:
MORALIS_API_KEY: MORALIS_API_KEY
capability:
consumes:
- type: http
namespace: evm-wallets
baseUri: https://deep-index.moralis.io/api/v2.2
description: EVM API — Wallets business capability. Self-contained, no shared references.
resources:
- name: wallets-address-approvals
path: /wallets/{address}/approvals
operations:
- name: getwalletapprovals
method: GET
description: Get ERC20 approvals by wallet
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: chain
in: query
type: string
description: The chain to query
- 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: address
in: path
type: string
description: The wallet address from which to retrieve active ERC20 token approvals
required: true
- name: wallets-address-chains
path: /wallets/{address}/chains
operations:
- name: getwalletactivechains
method: GET
description: Get active chains by wallet address
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: address
in: path
type: string
description: Wallet address
required: true
- name: chains
in: query
type: array
description: The chains to query
- name: wallets-address-defi-positions
path: /wallets/{address}/defi/positions
operations:
- name: getdefipositionssummary
method: GET
description: Get DeFi positions of a wallet
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: Wallet address
required: true
- name: wallets-address-defi-summary
path: /wallets/{address}/defi/summary
operations:
- name: getdefisummary
method: GET
description: Get the DeFi summary of a wallet
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: Wallet address
required: true
- name: wallets-address-defi-protocol-positions
path: /wallets/{address}/defi/{protocol}/positions
operations:
- name: getdefipositionsbyprotocol
method: GET
description: Get detailed DeFi positions by protocol for a wallet
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: Wallet address
required: true
- name: protocol
in: path
type: string
description: The protocol to query
required: true
- name: wallets-address-history
path: /wallets/{address}/history
operations:
- name: getwallethistory
method: GET
description: Get the complete decoded transaction history of a wallet
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 transactions
- name: to_block
in: query
type: integer
description: The maximum block number from which to get the transactions.
- name: from_date
in: query
type: string
description: The start date from which to get the transactions (format in seconds or datestring accepted by momentjs)
- name: to_date
in: query
type: string
description: Get the transactions up to this date (format in seconds or datestring accepted by momentjs)
- name: address
in: path
type: string
description: The address of the wallet
required: true
- name: include_internal_transactions
in: query
type: boolean
description: If the result should contain the internal transactions.
- name: nft_metadata
in: query
type: boolean
description: If the result should contain the nft metadata.
- name: cursor
in: query
type: string
description: The cursor returned in the previous response (used for getting the next page).
- name: order
in: query
type: string
description: The order of the result, in ascending (ASC) or descending (DESC)
- name: limit
in: query
type: integer
description: The desired page size of the result.
- name: wallets-address-insight
path: /wallets/{address}/insight
operations:
- name: getwalletinsight
method: GET
description: Get wallet insight metrics
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: address
in: path
type: string
description: The wallet address to get insight for
required: true
- name: chains
in: query
type: array
description: The chains to query. If not provided, aggregates across all supported chains.
- name: includeChainBreakdown
in: query
type: boolean
description: When true, includes a per-chain breakdown array in the response with both native and USD values.
- name: wallets-address-net-worth
path: /wallets/{address}/net-worth
operations:
- name: getwalletnetworth
method: GET
description: Get wallet net worth
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: chains
in: query
type: array
description: The chains to query
- name: address
in: path
type: string
description: The wallet address
required: true
- name: exclude_spam
in: query
type: boolean
description: Exclude spam tokens from the result
- name: exclude_unverified_contracts
in: query
type: boolean
description: Exclude unverified contracts from the result
- 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: wallets-address-profitability
path: /wallets/{address}/profitability
operations:
- name: getwalletprofitability
method: GET
description: Get detailed profit and loss by wallet address
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: address
in: path
type: string
description: The wallet address for which profitability is to be retrieved.
required: true
- name: days
in: query
type: string
description: Timeframe in days for which profitability is calculated, Options include 'all', '7', '30', '60', '90'
default is 'all'.
- name: chain
in: query
type: string
description: The chain to query
- name: token_addresses
in: query
type: array
description: The token addresses list to filter the result with
- name: wallets-address-profitability-summary
path: /wallets/{address}/profitability/summary
operations:
- name: getwalletprofitabilitysummary
method: GET
description: Get profit and loss summary by wallet address
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: address
in: path
type: string
description: The wallet address for which profitability summary is to be retrieved.
required: true
- name: days
in: query
type: string
description: Timeframe in days for the profitability summary. Options include 'all', '7', '30', '60', '90' default
is 'all'.
- name: chain
in: query
type: string
description: The chain to query
- name: wallets-address-stats
path: /wallets/{address}/stats
operations:
- name: getwalletstats
method: GET
description: Get summary stats by wallet address
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: Wallet address
required: true
- name: wallets-address-swaps
path: /wallets/{address}/swaps
operations:
- name: getswapsbywalletaddress
method: GET
description: Get swap transactions by wallet address
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 wallet address token-transactions are to be retrieved for.
required: true
- name: tokenAddress
in: query
type: string
description: The token address to get transaction for (optional)
- 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: fromBlock
in: query
type: integer
description: The minimum block number from which to get the token transactions
- name: toBlock
in: query
type: string
description: The block number to get the token transactions from
- name: fromDate
in: query
type: string
description: The start date from which to get the token transactions (format in seconds or datestring accepted by
momentjs)
- name: toDate
in: query
type: string
description: The end date from which to get the token transactions (format in seconds or datestring accepted by
momentjs)
- name: order
in: query
type: string
description: The order of the result, in ascending (ASC) or descending (DESC)
- name: transactionTypes
in: query
type: string
description: Array of transaction types. Allowed values are 'buy', 'sell'.
- name: wallets-address-tokens
path: /wallets/{address}/tokens
operations:
- name: getwallettokenbalancesprice
method: GET
description: Get token balances with prices by wallet address
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 from which token balances will be checked
required: true
- name: to_block
in: query
type: number
description: The block number up to which the balances will be checked.
- name: token_addresses
in: query
type: array
description: The addresses to get balances for (optional)
- name: exclude_spam
in: query
type: boolean
description: Exclude spam tokens from the result
- name: exclude_unverified_contracts
in: query
type: boolean
description: Exclude unverified contracts from the result
- 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: exclude_native
in: query
type: boolean
description: Exclude native balance from the result
- 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.
authentication:
type: apikey
key: X-API-Key
value: '{{env.MORALIS_API_KEY}}'
placement: header
exposes:
- type: rest
namespace: evm-wallets-rest
port: 8080
description: REST adapter for EVM API — Wallets. One Spectral-compliant resource per consumed operation, prefixed with
/v1.
resources:
- path: /v1/wallets/{address}/approvals
name: wallets-address-approvals
description: REST surface for wallets-address-approvals.
operations:
- method: GET
name: getwalletapprovals
description: Get ERC20 approvals by wallet
call: evm-wallets.getwalletapprovals
with:
chain: rest.chain
limit: rest.limit
cursor: rest.cursor
address: rest.address
outputParameters:
- type: object
mapping: $.
- path: /v1/wallets/{address}/chains
name: wallets-address-chains
description: REST surface for wallets-address-chains.
operations:
- method: GET
name: getwalletactivechains
description: Get active chains by wallet address
call: evm-wallets.getwalletactivechains
with:
address: rest.address
chains: rest.chains
outputParameters:
- type: object
mapping: $.
- path: /v1/wallets/{address}/defi/positions
name: wallets-address-defi-positions
description: REST surface for wallets-address-defi-positions.
operations:
- method: GET
name: getdefipositionssummary
description: Get DeFi positions of a wallet
call: evm-wallets.getdefipositionssummary
with:
chain: rest.chain
address: rest.address
outputParameters:
- type: object
mapping: $.
- path: /v1/wallets/{address}/defi/summary
name: wallets-address-defi-summary
description: REST surface for wallets-address-defi-summary.
operations:
- method: GET
name: getdefisummary
description: Get the DeFi summary of a wallet
call: evm-wallets.getdefisummary
with:
chain: rest.chain
address: rest.address
outputParameters:
- type: object
mapping: $.
- path: /v1/wallets/{address}/defi/{protocol}/positions
name: wallets-address-defi-protocol-positions
description: REST surface for wallets-address-defi-protocol-positions.
operations:
- method: GET
name: getdefipositionsbyprotocol
description: Get detailed DeFi positions by protocol for a wallet
call: evm-wallets.getdefipositionsbyprotocol
with:
chain: rest.chain
address: rest.address
protocol: rest.protocol
outputParameters:
- type: object
mapping: $.
- path: /v1/wallets/{address}/history
name: wallets-address-history
description: REST surface for wallets-address-history.
operations:
- method: GET
name: getwallethistory
description: Get the complete decoded transaction history of a wallet
call: evm-wallets.getwallethistory
with:
chain: rest.chain
from_block: rest.from_block
to_block: rest.to_block
from_date: rest.from_date
to_date: rest.to_date
address: rest.address
include_internal_transactions: rest.include_internal_transactions
nft_metadata: rest.nft_metadata
cursor: rest.cursor
order: rest.order
limit: rest.limit
outputParameters:
- type: object
mapping: $.
- path: /v1/wallets/{address}/insight
name: wallets-address-insight
description: REST surface for wallets-address-insight.
operations:
- method: GET
name: getwalletinsight
description: Get wallet insight metrics
call: evm-wallets.getwalletinsight
with:
address: rest.address
chains: rest.chains
includeChainBreakdown: rest.includeChainBreakdown
outputParameters:
- type: object
mapping: $.
- path: /v1/wallets/{address}/net-worth
name: wallets-address-net-worth
description: REST surface for wallets-address-net-worth.
operations:
- method: GET
name: getwalletnetworth
description: Get wallet net worth
call: evm-wallets.getwalletnetworth
with:
chains: rest.chains
address: rest.address
exclude_spam: rest.exclude_spam
exclude_unverified_contracts: rest.exclude_unverified_contracts
max_token_inactivity: rest.max_token_inactivity
min_pair_side_liquidity_usd: rest.min_pair_side_liquidity_usd
outputParameters:
- type: object
mapping: $.
- path: /v1/wallets/{address}/profitability
name: wallets-address-profitability
description: REST surface for wallets-address-profitability.
operations:
- method: GET
name: getwalletprofitability
description: Get detailed profit and loss by wallet address
call: evm-wallets.getwalletprofitability
with:
address: rest.address
days: rest.days
chain: rest.chain
token_addresses: rest.token_addresses
outputParameters:
- type: object
mapping: $.
- path: /v1/wallets/{address}/profitability/summary
name: wallets-address-profitability-summary
description: REST surface for wallets-address-profitability-summary.
operations:
- method: GET
name: getwalletprofitabilitysummary
description: Get profit and loss summary by wallet address
call: evm-wallets.getwalletprofitabilitysummary
with:
address: rest.address
days: rest.days
chain: rest.chain
outputParameters:
- type: object
mapping: $.
- path: /v1/wallets/{address}/stats
name: wallets-address-stats
description: REST surface for wallets-address-stats.
operations:
- method: GET
name: getwalletstats
description: Get summary stats by wallet address
call: evm-wallets.getwalletstats
with:
chain: rest.chain
address: rest.address
outputParameters:
- type: object
mapping: $.
- path: /v1/wallets/{address}/swaps
name: wallets-address-swaps
description: REST surface for wallets-address-swaps.
operations:
- method: GET
name: getswapsbywalletaddress
description: Get swap transactions by wallet address
call: evm-wallets.getswapsbywalletaddress
with:
chain: rest.chain
address: rest.address
tokenAddress: rest.tokenAddress
cursor: rest.cursor
limit: rest.limit
fromBlock: rest.fromBlock
toBlock: rest.toBlock
fromDate: rest.fromDate
toDate: rest.toDate
order: rest.order
transactionTypes: rest.transactionTypes
outputParameters:
- type: object
mapping: $.
- path: /v1/wallets/{address}/tokens
name: wallets-address-tokens
description: REST surface for wallets-address-tokens.
operations:
- method: GET
name: getwallettokenbalancesprice
description: Get token balances with prices by wallet address
call: evm-wallets.getwallettokenbalancesprice
with:
chain: rest.chain
address: rest.address
to_block: rest.to_block
token_addresses: rest.token_addresses
exclude_spam: rest.exclude_spam
exclude_unverified_contracts: rest.exclude_unverified_contracts
cursor: rest.cursor
limit: rest.limit
exclude_native: rest.exclude_native
max_token_inactivity: rest.max_token_inactivity
min_pair_side_liquidity_usd: rest.min_pair_side_liquidity_usd
outputParameters:
- type: object
mapping: $.
- type: mcp
namespace: evm-wallets-mcp
port: 9090
transport: http
description: MCP adapter for EVM API — Wallets. One tool per consumed operation, routed inline through this capability's
consumes block.
tools:
- name: get-erc20-approvals-wallet
description: Get ERC20 approvals by wallet
hints:
readOnly: true
destructive: false
idempotent: true
call: evm-wallets.getwalletapprovals
with:
chain: tools.chain
limit: tools.limit
cursor: tools.cursor
address: tools.address
outputParameters:
- type: object
mapping: $.
- name: get-active-chains-wallet-address
description: Get active chains by wallet address
hints:
readOnly: true
destructive: false
idempotent: true
call: evm-wallets.getwalletactivechains
with:
address: tools.address
chains: tools.chains
outputParameters:
- type: object
mapping: $.
- name: get-defi-positions-wallet
description: Get DeFi positions of a wallet
hints:
readOnly: true
destructive: false
idempotent: true
call: evm-wallets.getdefipositionssummary
with:
chain: tools.chain
address: tools.address
outputParameters:
- type: object
mapping: $.
- name: get-defi-summary-wallet
description: Get the DeFi summary of a wallet
hints:
readOnly: true
destructive: false
idempotent: true
call: evm-wallets.getdefisummary
with:
chain: tools.chain
address: tools.address
outputParameters:
- type: object
mapping: $.
- name: get-detailed-defi-positions-protocol
description: Get detailed DeFi positions by protocol for a wallet
hints:
readOnly: true
destructive: false
idempotent: true
call: evm-wallets.getdefipositionsbyprotocol
with:
chain: tools.chain
address: tools.address
protocol: tools.protocol
outputParameters:
- type: object
mapping: $.
- name: get-complete-decoded-transaction-history
description: Get the complete decoded transaction history of a wallet
hints:
readOnly: true
destructive: false
idempotent: true
call: evm-wallets.getwallethistory
with:
chain: tools.chain
from_block: tools.from_block
to_block: tools.to_block
from_date: tools.from_date
to_date: tools.to_date
address: tools.address
include_internal_transactions: tools.include_internal_transactions
nft_metadata: tools.nft_metadata
cursor: tools.cursor
order: tools.order
limit: tools.limit
outputParameters:
- type: object
mapping: $.
- name: get-wallet-insight-metrics
description: Get wallet insight metrics
hints:
readOnly: true
destructive: false
idempotent: true
call: evm-wallets.getwalletinsight
with:
address: tools.address
chains: tools.chains
includeChainBreakdown: tools.includeChainBreakdown
outputParameters:
- type: object
mapping: $.
- name: get-wallet-net-worth
description: Get wallet net worth
hints:
readOnly: true
destructive: false
idempotent: true
call: evm-wallets.getwalletnetworth
with:
chains: tools.chains
address: tools.address
exclude_spam: tools.exclude_spam
exclude_unverified_contracts: tools.exclude_unverified_contracts
max_token_inactivity: tools.max_token_inactivity
min_pair_side_liquidity_usd: tools.min_pair_side_liquidity_usd
outputParameters:
- type: object
mapping: $.
- name: get-detailed-profit-and-loss
description: Get detailed profit and loss by wallet address
hints:
readOnly: true
destructive: false
idempotent: true
call: evm-wallets.getwalletprofitability
with:
address: tools.address
days: tools.days
chain: tools.chain
token_addresses: tools.token_addresses
outputParameters:
- type: object
mapping: $.
- name: get-profit-and-loss-summary
description: Get profit and loss summary by wallet address
hints:
readOnly: true
destructive: false
idempotent: true
call: evm-wallets.getwalletprofitabilitysummary
with:
address: tools.address
days: tools.days
chain: tools.chain
outputParameters:
- type: object
mapping: $.
- name: get-summary-stats-wallet-address
description: Get summary stats by wallet address
hints:
readOnly: true
destructive: false
idempotent: true
call: evm-wallets.getwalletstats
with:
chain: tools.chain
address: tools.address
outputParameters:
- type: object
mapping: $.
- name: get-swap-transactions-wallet-address
description: Get swap transactions by wallet address
hints:
readOnly: true
destructive: false
idempotent: true
call: evm-wallets.getswapsbywalletaddress
with:
chain: tools.chain
address: tools.address
tokenAddress: tools.tokenAddress
cursor: tools.cursor
limit: tools.limit
fromBlock: tools.fromBlock
toBlock: tools.toBlock
fromDate: tools.fromDate
toDate: tools.toDate
order: tools.order
transactionTypes: tools.transactionTypes
outputParameters:
- type: object
mapping: $.
- name: get-token-balances-prices-wallet
description: Get token balances with prices by wallet address
hints:
readOnly: true
destructive: false
idempotent: true
call: evm-wallets.getwallettokenbalancesprice
with:
chain: tools.chain
address: tools.address
to_block: tools.to_block
token_addresses: tools.token_addresses
exclude_spam: tools.exclude_spam
exclude_unverified_contracts: tools.exclude_unverified_contracts
cursor: tools.cursor
limit: tools.limit
exclude_native: tools.exclude_native
max_token_inactivity: tools.max_token_inactivity
min_pair_side_liquidity_usd: tools.min_pair_side_liquidity_usd
outputParameters:
- type: object
mapping: $.