Moralis · Agentic Access

Moralis Agentic Access

x-agentic-access generated

Moralis exposes 117 API operations that an AI agent could call, of which 10 are state-changing ‘acting’ operations. This is a recommended x-agentic-access execution contract — the scope, audience, consequence tier, short-lived token constraints, and escalation each action should carry before it is handed to an autonomous agent.

By consequence: 107 read and 10 write.

Contracts are classified heuristically from the provider’s OpenAPI and refresh on every APIs.io network build; audience is bound per deployment. The model follows Curity’s Access Intelligence (apidays Munich 2026). Browse every provider’s agent contracts at agentic-access.apis.io.

Web3BlockchainData APIStreamsIndexing
Operations: 117 Acting: 10 Human-in-the-loop: 0 Method: generated

By consequence

read 107 write 10

Source

Agentic Access

Raw ↑
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