generated: '2026-07-15' method: generated source: openapi/moralis-evm-api-openapi.json description: Recommended x-agentic-access execution contracts, classified heuristically from the OpenAPI. A governance starting point for exposing this API to AI agents — review and bind audience per deployment. See research/curity/agentic-governance/. summary: operations: 117 by_action_class: connected: 107 acting: 10 by_consequence: read: 107 write: 10 human_in_the_loop_required: 0 operations: - path: /{address}/nft method: get operationId: getWalletNFTs x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /nft/getMultipleNFTs method: post operationId: getMultipleNFTs x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /{address}/nft/transfers method: get operationId: getWalletNFTTransfers x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /{address}/nft/collections method: get operationId: getWalletNFTCollections x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /nft/{address} method: get operationId: getContractNFTs x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /nft/{address}/unique-owners method: get operationId: getUniqueOwnersByCollection x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /nft/{address}/owners method: get operationId: getNFTOwners x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /nft/{address}/transfers method: get operationId: getNFTContractTransfers x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /nft/{address}/nfts-by-traits method: post operationId: getNFTByContractTraits x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /nft/{address}/traits method: get operationId: getNFTTraitsByCollection x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /nft/{address}/traits/paginate method: get operationId: getNFTTraitsByCollectionPaginate x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /nft/{address}/traits/resync method: get operationId: resyncNFTRarity x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /nft/{address}/trades method: get operationId: getNFTTrades x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /nft/{address}/{token_id}/trades method: get operationId: getNFTTradesByToken x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /wallets/{address}/nfts/trades method: get operationId: getNFTTradesByWallet x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /nft/{address}/metadata method: get operationId: getNFTContractMetadata x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /nft/metadata method: post operationId: getNFTBulkContractMetadata x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /nft/{address}/{token_id} method: get operationId: getNFTMetadata x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /nft/{address}/{token_id}/transfers method: get operationId: getNFTTransfers x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /nft/{address}/{token_id}/owners method: get operationId: getNFTTokenIdOwners x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /nft/{address}/sync method: put operationId: syncNFTContract x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /nft/{address}/{token_id}/metadata/resync method: get operationId: reSyncMetadata x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /nft/{address}/price method: get operationId: getNFTContractSalePrices x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /nft/{address}/{token_id}/price method: get operationId: getNFTSalePrices x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /erc20/{address}/price method: get operationId: getTokenPrice x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /erc20/{address}/swaps method: get operationId: getSwapsByTokenAddress x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /erc20/{tokenAddress}/holders method: get operationId: getTokenHolders x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /erc20/{tokenAddress}/holders/historical method: get operationId: getHistoricalTokenHolders x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /erc20/prices method: post operationId: getMultipleTokenPrices x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /erc20/{token_address}/owners method: get operationId: getTokenOwners x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /{address}/erc20 method: get operationId: getWalletTokenBalances x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /{address}/erc20/transfers method: get operationId: getWalletTokenTransfers x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /erc20/metadata method: get operationId: getTokenMetadata x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /tokens/categories method: get operationId: getTokenCategories x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /erc20/metadata/symbols method: get operationId: getTokenMetadataBySymbol x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /erc20/{address}/transfers method: get operationId: getTokenTransfers x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /{address}/balance method: get operationId: getNativeBalance x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /wallets/balances method: get operationId: getNativeBalancesForAddresses x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /wallets/{address}/approvals method: get operationId: getWalletApprovals x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /wallets/{address}/history method: get operationId: getWalletHistory x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /wallets/{address}/tokens method: get operationId: getWalletTokenBalancesPrice x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /wallets/{address}/net-worth method: get operationId: getWalletNetWorth x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /{address} method: get operationId: getWalletTransactions x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /{address}/verbose method: get operationId: getWalletTransactionsVerbose x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /transaction/{transaction_hash} method: get operationId: getTransaction x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /transaction/{transaction_hash}/verbose method: get operationId: getTransactionVerbose x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /block/{block_number_or_hash} method: get operationId: getBlock x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /latestBlockNumber/{chain} method: get operationId: getLatestBlockNumber x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /dateToBlock method: get operationId: getDateToBlock x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /{address}/function method: post operationId: runContractFunction x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /web3/version method: get operationId: web3ApiVersion x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /info/endpointWeights method: get operationId: endpointWeights x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /resolve/{address}/reverse method: get operationId: resolveAddress x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /resolve/{domain} method: get operationId: resolveDomain x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /resolve/{address}/domain method: get operationId: resolveAddressToDomain x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /resolve/ens/{domain} method: get operationId: resolveENSDomain x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /{token0_address}/{token1_address}/price method: get operationId: getPairPrice x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /{pair_address}/reserves method: get operationId: getPairReserves x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /{token0_address}/{token1_address}/pairAddress method: get operationId: getPairAddress x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /market-data/erc20s/top-tokens method: get operationId: getTopERC20TokensByMarketCap x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /market-data/erc20s/top-movers method: get operationId: getTopERC20TokensByPriceMovers x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /market-data/nfts/top-collections method: get operationId: getTopNFTCollectionsByMarketCap x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /market-data/nfts/hottest-collections method: get operationId: getHottestNFTCollectionsByTradingVolume x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /market-data/global/market-cap method: get operationId: getTopCryptoCurrenciesByMarketCap x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /market-data/global/volume method: get operationId: getTopCryptoCurrenciesByTradingVolume x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /contracts-review method: post operationId: reviewContracts x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /wallets/{address}/defi/summary method: get operationId: getDefiSummary x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /wallets/{address}/defi/{protocol}/positions method: get operationId: getDefiPositionsByProtocol x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /wallets/{address}/defi/positions method: get operationId: getDefiPositionsSummary x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /wallets/{address}/chains method: get operationId: getWalletActiveChains x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /wallets/{address}/stats method: get operationId: getWalletStats x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /nft/{address}/stats method: get operationId: getNFTCollectionStats x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /nft/{address}/floor-price method: get operationId: getNFTFloorPriceByContract x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /nft/{address}/{token_id}/floor-price method: get operationId: getNFTFloorPriceByToken x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /nft/{address}/floor-price/historical method: get operationId: getNFTHistoricalFloorPriceByContract x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /erc20/{address}/stats method: get operationId: getTokenStats x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /discovery/tokens method: post operationId: getFilteredTokens x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /discovery/tokens/rising-liquidity method: get operationId: getRisingLiquidityTokens x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /discovery/tokens/buying-pressure method: get operationId: getBuyingPressureTokens x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /discovery/tokens/solid-performers method: get operationId: getSolidPerformersTokens x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /discovery/tokens/experienced-buyers method: get operationId: getExperiencedBuyersTokens x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /discovery/tokens/risky-bets method: get operationId: getRiskyBetsTokens x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /discovery/tokens/blue-chip method: get operationId: getBlueChipTokens x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /discovery/tokens/top-gainers method: get operationId: getTopGainersTokens x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /discovery/tokens/top-losers method: get operationId: getTopLosersTokens x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /discovery/tokens/trending method: get operationId: getTrendingTokens x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /discovery/token method: get operationId: getDiscoveryToken x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /wallets/{address}/profitability/summary method: get operationId: getWalletProfitabilitySummary x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /wallets/{address}/profitability method: get operationId: getWalletProfitability x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /erc20/{address}/top-gainers method: get operationId: getTopProfitableWalletPerToken x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /tokens/search method: get operationId: searchTokens x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /entities/search method: get operationId: searchEntities x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /entities/{entityId} method: get operationId: getEntity x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /entities/categories method: get operationId: getEntityCategories x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /entities/categories/{categoryId} method: get operationId: getEntitiesByCategory x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /pairs/{address}/ohlcv method: get operationId: getPairCandlesticks x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /pairs/{address}/stats method: get operationId: getPairStats x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /erc20/{token_address}/pairs method: get operationId: getTokenPairs x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /erc20/{token_address}/pairs/stats method: get operationId: getAggregatedTokenPairStats x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /erc20/exchange/{exchangeName}/new method: get operationId: getNewTokensByExchange x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /erc20/exchange/{exchangeName}/bonding method: get operationId: getBondingTokensByExchange x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /erc20/exchange/{exchangeName}/graduated method: get operationId: getGraduatedTokensByExchange x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /erc20/{tokenAddress}/bondingStatus method: get operationId: getTokenBondingStatus x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /wallets/{address}/swaps method: get operationId: getSwapsByWalletAddress x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /wallets/{address}/insight method: get operationId: getWalletInsight x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /pairs/{address}/swaps method: get operationId: getSwapsByPairAddress x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /pairs/{address}/snipers method: get operationId: getSnipersByPairAddress x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /volume/chains method: get operationId: getVolumeStatsByChain x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /volume/categories method: get operationId: getVolumeStatsByCategory x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /volume/timeseries method: get operationId: getTimeSeriesVolume x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /volume/timeseries/{categoryId} method: get operationId: getTimeSeriesVolumeByCategory x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /tokens/analytics/timeseries method: post operationId: getTimeSeriesTokenAnalytics x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /tokens/trending method: get operationId: getTrendingTokensV2 x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /tokens/{tokenAddress}/analytics method: get operationId: getTokenAnalytics x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /tokens/{tokenAddress}/score method: get operationId: getTokenScore x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /tokens/{tokenAddress}/score/historical method: get operationId: getHistoricalTokenScore x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /tokens/analytics method: post operationId: getMultipleTokenAnalytics x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required