Service
Alchemy
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
mpp
Methods
15 methods available
GET/{chainNetwork}/nft/v3/getContractMetadata1000000 USDC
/{chainNetwork}/nft/v3/getContractMetadataGet NFT contract metadata.
GET with contractAddress query param. Include Authorization: SIWE <token> header.
{
"path": {
"chainNetwork": "string"
},
"query": {
"contractAddress": "string (required)"
}
}GET/{chainNetwork}/nft/v3/getNFTMetadata1000000 USDC
/{chainNetwork}/nft/v3/getNFTMetadataGet 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/getNFTsForContract1000000 USDC
/{chainNetwork}/nft/v3/getNFTsForContractList 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/getNFTsForOwner1000000 USDC
/{chainNetwork}/nft/v3/getNFTsForOwnerGet 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/getOwnersForContract1000000 USDC
/{chainNetwork}/nft/v3/getOwnersForContractGet 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/getOwnersForNFT1000000 USDC
/{chainNetwork}/nft/v3/getOwnersForNFTGet 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}/v21000000 USDC
/{chainNetwork}/v2Node 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-address1000000 USDC
/data/v1/assets/nfts/by-addressGet 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-address1000000 USDC
/data/v1/assets/nfts/contracts/by-addressGet 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-address1000000 USDC
/data/v1/assets/tokens/balances/by-addressGet 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-address1000000 USDC
/data/v1/assets/tokens/by-addressGet 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-address1000000 USDC
/data/v1/transactions/history/by-addressGet 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-address1000000 USDC
/prices/v1/tokens/by-addressGet 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-symbol1000000 USDC
/prices/v1/tokens/by-symbolGet 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/historical1000000 USDC
/prices/v1/tokens/historicalGet 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)"
}
}