All services

Service

Alchemy

crypto_data15 endpoints
Docs

Alchemy Agentic Gateway provides API-keyless access to Alchemy's Node JSON-RPC, NFT, Prices, and Portfolio APIs over x402. Gateway pricing is dynamic and usage-based: a 1 USDC prepaid credit is consumed by gateway calls until depleted, and per-endpoint costs are not itemized. Every request to the gateway must include an "Authorization" header with a SIWE token.

x402

base

mpp

tempo

Methods

15 methods available

GET/{chainNetwork}/nft/v3/getContractMetadata
1000000 USDC

Get NFT contract metadata.

GET with contractAddress query param. Include Authorization: SIWE <token> header.

{
  "path": {
    "chainNetwork": "string"
  },
  "query": {
    "contractAddress": "string (required)"
  }
}
GET/{chainNetwork}/nft/v3/getNFTMetadata
1000000 USDC

Get metadata for a single NFT.

GET with contractAddress and tokenId query params. Include Authorization: SIWE <token> header.

{
  "path": {
    "chainNetwork": "string"
  },
  "query": {
    "contractAddress": "string (required)",
    "tokenId": "string (required)",
    "tokenType": "string (optional)",
    "refreshCache": "boolean (optional)"
  }
}
GET/{chainNetwork}/nft/v3/getNFTsForContract
1000000 USDC

List NFTs for a contract collection.

GET with contractAddress and optional pagination params. Include Authorization: SIWE <token> header.

{
  "path": {
    "chainNetwork": "string"
  },
  "query": {
    "contractAddress": "string (required)",
    "withMetadata": "boolean (optional)",
    "pageKey": "string (optional)",
    "pageSize": "number (optional)"
  }
}
GET/{chainNetwork}/nft/v3/getNFTsForOwner
1000000 USDC

Get NFTs owned by an address.

GET with owner and optional filters. Include Authorization: SIWE <token> header.

{
  "path": {
    "chainNetwork": "string (for example: eth-mainnet, base-mainnet)"
  },
  "query": {
    "owner": "string (wallet address, required)",
    "contractAddresses": [
      "string (optional, filter contracts)"
    ],
    "withMetadata": "boolean (optional)",
    "pageKey": "string (optional)",
    "pageSize": "number (optional)"
  }
}
GET/{chainNetwork}/nft/v3/getOwnersForContract
1000000 USDC

Get owners for all NFTs in a contract.

GET with contractAddress and optional pagination/filter params. Include Authorization: SIWE <token> header.

{
  "path": {
    "chainNetwork": "string"
  },
  "query": {
    "contractAddress": "string (required)",
    "withTokenBalances": "boolean (optional)",
    "block": "string (optional)"
  }
}
GET/{chainNetwork}/nft/v3/getOwnersForNFT
1000000 USDC

Get owners for a specific NFT token.

GET with contractAddress and tokenId query params. Include Authorization: SIWE <token> header.

{
  "path": {
    "chainNetwork": "string"
  },
  "query": {
    "contractAddress": "string (required)",
    "tokenId": "string (required)"
  }
}
POST/{chainNetwork}/v2
1000000 USDC

Node JSON-RPC gateway route for standard eth_* methods plus Alchemy Token API, Transfers API, and Simulation API methods.

POST JSON-RPC body to /{chainNetwork}/v2 with the desired method and params. Include Authorization: SIWE <token> and Content-Type: application/json headers on every request.

{
  "path": {
    "chainNetwork": "string (for example: eth-mainnet, base-mainnet, arb-mainnet)"
  },
  "body": {
    "jsonrpc": "\"2.0\"",
    "id": "number | string",
    "method": "string (for example: eth_blockNumber, eth_getBalance, eth_call, eth_getLogs, eth_getTransactionReceipt, eth_getBlockByNumber, eth_sendRawTransaction, alchemy_getTokenBalances, alchemy_getTokenMetadata, alchemy_getTokenAllowance, alchemy_getAssetTransfers, alchemy_simulateAssetChanges, alchemy_simulateExecution, alchemy_simulateAssetChangesBundle, alchemy_simulateExecutionBundle)",
    "params": "array"
  }
}
POST/data/v1/assets/nfts/by-address
1000000 USDC

Get NFTs owned by wallets across one or more networks.

POST JSON with address/network pairs and optional filters. Include Authorization: SIWE <token> and Content-Type: application/json headers.

{
  "body": {
    "addresses": [
      {
        "address": "string (wallet address)",
        "networks": [
          "string (network slugs)"
        ]
      }
    ],
    "withMetadata": "boolean (optional)",
    "excludeFilters": [
      "string (optional, for example SPAM)"
    ],
    "includeFilters": [
      "string (optional)"
    ],
    "pageKey": "string (optional)",
    "pageSize": "number (optional)"
  }
}
POST/data/v1/assets/nfts/contracts/by-address
1000000 USDC

Get NFT contracts held by wallet addresses.

POST JSON with address/network pairs. Include Authorization: SIWE <token> and Content-Type: application/json headers.

{
  "body": {
    "addresses": [
      {
        "address": "string (wallet address)",
        "networks": [
          "string (network slugs)"
        ]
      }
    ],
    "pageKey": "string (optional)",
    "pageSize": "number (optional)"
  }
}
POST/data/v1/assets/tokens/balances/by-address
1000000 USDC

Get raw token balances (without price and metadata).

POST JSON with wallet address/network pairs. Include Authorization: SIWE <token> and Content-Type: application/json headers.

{
  "body": {
    "addresses": [
      {
        "address": "string (wallet address)",
        "networks": [
          "string (network slugs)"
        ]
      }
    ],
    "includeNativeTokens": "boolean (optional)",
    "includeErc20Tokens": "boolean (optional)",
    "pageKey": "string (optional)"
  }
}
POST/data/v1/assets/tokens/by-address
1000000 USDC

Get token balances with metadata and prices across chains.

POST JSON with wallet address/network pairs. Include Authorization: SIWE <token> and Content-Type: application/json headers.

{
  "body": {
    "addresses": [
      {
        "address": "string (wallet address)",
        "networks": [
          "string (network slugs)"
        ]
      }
    ],
    "withMetadata": "boolean (optional)",
    "withPrices": "boolean (optional)",
    "includeNativeTokens": "boolean (optional)",
    "includeErc20Tokens": "boolean (optional)",
    "pageKey": "string (optional)"
  }
}
POST/data/v1/transactions/history/by-address
1000000 USDC

Get transaction history for wallet addresses across networks (beta).

POST JSON with address/network pairs and optional filtering. Include Authorization: SIWE <token> and Content-Type: application/json headers.

{
  "body": {
    "addresses": [
      {
        "address": "string (wallet address)",
        "networks": [
          "string (network slugs)"
        ]
      }
    ],
    "category": [
      "string (optional categories)"
    ],
    "order": "string (optional: asc | desc)",
    "pageKey": "string (optional)",
    "pageSize": "number (optional)"
  }
}
POST/prices/v1/tokens/by-address
1000000 USDC

Get latest token prices by network and contract address.

POST JSON with addresses array. Include Authorization: SIWE <token> and Content-Type: application/json headers.

{
  "body": {
    "addresses": [
      {
        "network": "string (required, for example eth-mainnet)",
        "address": "string (required, token contract address)"
      }
    ]
  }
}
GET/prices/v1/tokens/by-symbol
1000000 USDC

Get latest token prices by symbol.

GET with repeated symbols query params (for example symbols=ETH&symbols=BTC). Include Authorization: SIWE <token> header.

{
  "query": {
    "symbols": [
      "string (required, repeat query param, max 25)"
    ]
  }
}
POST/prices/v1/tokens/historical
1000000 USDC

Get historical prices by symbol or by network/address.

POST JSON body with either symbol or network+address and a time window. Include Authorization: SIWE <token> and Content-Type: application/json headers.

{
  "body": {
    "symbol": "string (optional, use with startTime/endTime)",
    "network": "string (optional, required with address if symbol omitted)",
    "address": "string (optional, required with network if symbol omitted)",
    "startTime": "string | number (required)",
    "endTime": "string | number (required)",
    "interval": "string (optional: 5m | 1h | 1d)",
    "withMarketData": "boolean (optional)"
  }
}