# AI.tatum.io - full content index > Machine-readable Tatum layer for AI agents: MCP, Skills.md, workflows, and JSON APIs. Snapshot: 2026-06-04T07:42:00.276Z Entry manifest: https://ai.tatum.io/.well-known/tatum-agent.json This file inlines every top-level page on the site, in navigation order, followed by every capability and workflow detail. Each section is bounded by a horizontal rule (`---`) and starts with an `

` containing the page title. If you only want the curated index without the bodies, use https://ai.tatum.io/llms.txt. ## Machine-readable endpoints - /.well-known/tatum-agent.json (manifest) - Agent manifest (start here) - /api/workflows (json) - Workflows - /api/capabilities (json) - Capabilities (+ linked workflows) - /api/mcp-tools (json) - MCP tools - /api/chains (json) - Chain endpoints (flat, one row per interface) - /api/blockchain-registry (json) - Blockchain registry (nested tree) - /api/openapi-index (json) - OpenAPI index - /llms.txt (text) - LLM-friendly URL index (llmstxt.org convention) - /llms-full.txt (text) - Every page concatenated as one Markdown document --- # AI.tatum.io > The machine-readable Tatum layer for AI agents: Blockchain MCP, Skills.md code generation, task workflows, and JSON APIs for on-chain data and RPC access. - canonical: - html: ## What this is Structured documentation for AI agents using Tatum. Workflows are task guides. Capabilities map product areas to tools and APIs. MCP and Skills.md are how you run calls and generate code. ## Routing - User goal: /api/workflows and /workflows/{slug}.md - Product areas: /api/capabilities - Runtime: MCP at /mcp - Codegen: Skills.md at /integration-skill - Manifest: /.well-known/tatum-agent.json ## Counts - Chains: 68 - Networks: 140 - MCP tools: 13 - OpenAPI operations: 126 - Snapshot at: 2026-06-04T07:42:00.276Z ## Pages **Workflows** - Task guides - **MCP** - Blockchain MCP - **Skills.md** - Integration skill - **Capabilities** - Product areas - **Docs** - API reference - **Blockchain registry** - Chains and networks - ## Capabilities - RPC Gateway - - Wallet Portfolio - - Notifications - - NFT Ownership - - Exchange Rates - - Transaction Monitoring - ## Workflows - Wallet Portfolio Assistant - - Incoming Payment Monitor - - NFT Ownership Checker - - RPC Diagnostic Agent - ## JSON endpoints - `/.well-known/tatum-agent.json` - - `/api/workflows` - - `/api/capabilities` - - `/api/mcp-tools` - - `/api/chains` - - `/api/blockchain-registry` - - `/api/openapi-index` - - `/llms.txt` - - `/llms-full.txt` - --- # Blockchain MCP > Connect Cursor, Claude, or any MCP client to Tatum. Query blockchain data and call JSON-RPC across supported networks — install and configure in one command. - canonical: - html: ## Install ```bash npm install -g @tatumio/blockchain-mcp ``` ## Configure your MCP client Add to `.cursor/mcp.json`, `.claude/mcp.json`, or your runtime's equivalent: ```json { "mcpServers": { "tatumio": { "command": "npx", "args": [ "@tatumio/blockchain-mcp" ], "env": { "TATUM_API_KEY": "YOUR_API_KEY" } } } } ``` ## Available tools (13) ### Blockchain Data | tool | description | | --- | --- | | get_metadata | Fetch NFT/multitoken metadata by address and IDs | | get_wallet_balance_by_time | Get wallet balance at specific time | | get_wallet_portfolio | Get comprehensive wallet portfolio | | get_owners | Get owners of NFT/token | | check_owner | Check if address owns specific token | | get_transaction_history | Get transaction history for address | | get_block_by_time | Get block information by timestamp | | get_tokens | Get tokens for specific wallet | | check_malicous_address | Check if address is malicious | | get_exchange_rate | Get real-time exchange rates | ### RPC Gateway | tool | description | | --- | --- | | gateway_get_supported_chains | Get all supported blockchain networks | | gateway_get_supported_methods | Get supported RPC methods for chain | | gateway_execute_rpc | Execute RPC calls on any supported chain | ## References - - - --- # Skills.md > Generate Tatum integration code directly in your repo. The Skills.md skill detects your stack, adds routes and services, and wires up your API key for you. - canonical: - html: ## Install ```bash npx skills add https://github.com/tatumio/tatum-integration-skill --skill tatum ``` ## Example prompts - /tatum add balance checking for Ethereum - /tatum add a webhook for Bitcoin transactions - /tatum add NFT balance checking - /tatum add 30 day daily chart for ETH/USD ## What it does - Framework auto-detection - Service & route code generation - Automatic dependency installation - .env configuration with Tatum API key - V4 endpoints (latest, non-deprecated) - MCP-assisted parameter & response validation ## Supported stacks - JavaScript / TypeScript: Express, NestJS, Fastify, Koa - Python: FastAPI, Django, Flask - Java: Spring Boot, Quarkus, Micronaut - PHP: Laravel, Symfony, Slim - Go: Gin, Echo, Chi - Ruby: Rails, Sinatra - --- # Blockchain Registry > 68 chains and 140 networks from the Tatum registry, with chain IDs, native tokens, RPC endpoints, and gateway metadata for every supported network. - canonical: - html: ## Counts - Chains: 68 - Networks: 140 - Endpoints (chain x network x interface): 194 - Source: - Snapshot: 2026-06-04T07:42:00.276Z ## Three views, one source - Flat lookup: `/api/chains` - one row per chain x network x interface - - Nested tree: `/api/blockchain-registry` - chains contain networks contain interfaces - - Upstream snapshot: ## Endpoints | Chain | Network | Interface | Protocol | URL | | --- | --- | --- | --- | --- | | Abstract | Mainnet | JSON-RPC | json-rpc | | | Abstract | Testnet (testnet) | JSON-RPC | json-rpc | | | Algorand | Mainnet | Algod REST API | rest | | | Algorand | Mainnet | Indexer REST API | rest | | | Algorand | Testnet (testnet) | Algod REST API | rest | | | Algorand | Testnet (testnet) | Indexer REST API | rest | | | Arbitrum Nova | Mainnet | JSON-RPC | json-rpc | | | Arbitrum One | Mainnet | JSON-RPC | json-rpc | | | Arbitrum One | Sepolia (testnet) | JSON-RPC | json-rpc | | | Aurora | Mainnet | JSON-RPC | json-rpc | | | Aurora | Testnet (testnet) | JSON-RPC | json-rpc | | | Avalanche | Mainnet | JSON-RPC (C-Chain) | json-rpc | | | Avalanche | Mainnet | JSON-RPC (P-Chain) | json-rpc | | | Avalanche | Mainnet | JSON-RPC (X-Chain) | json-rpc | | | Avalanche | Testnet (testnet) | JSON-RPC (C-Chain) | json-rpc | | | Avalanche | Testnet (testnet) | JSON-RPC (P-Chain) | json-rpc | | | Avalanche | Testnet (testnet) | JSON-RPC (X-Chain) | json-rpc | | | Base | Mainnet | JSON-RPC | json-rpc | | | Base | Sepolia (testnet) | JSON-RPC | json-rpc | | | Berachain | Mainnet | JSON-RPC | json-rpc | | | Berachain | Bepolia (testnet) | JSON-RPC | json-rpc | | | Binance Smart Chain | Mainnet | JSON-RPC | json-rpc | | | Binance Smart Chain | Testnet (testnet) | JSON-RPC | json-rpc | | | Bitcoin | Mainnet | JSON-RPC | json-rpc | | | Bitcoin | Mainnet | REST API | rest | | | Bitcoin | Mainnet | Electrs JSON-RPC | json-rpc | | | Bitcoin | Testnet (testnet) | JSON-RPC | json-rpc | | | Bitcoin | Testnet (testnet) | REST API | rest | | | Bitcoin | Testnet4 (testnet) | JSON-RPC | json-rpc | | | Bitcoin | Testnet4 (testnet) | REST API | rest | | | Bitcoin | Signet (testnet) | JSON-RPC | json-rpc | | | Bitcoin Cash | Mainnet | JSON-RPC | json-rpc | | | Bitcoin Cash | Mainnet | REST API | rest | | | Bitcoin Cash | Mainnet | ROSTRUM JSON-RPC | json-rpc | | | Bitcoin Cash | Testnet (testnet) | JSON-RPC | json-rpc | | | Bitcoin Cash | Testnet (testnet) | REST API | rest | | | Bitcoin Cash | Testnet (testnet) | Rostrum JSON-RPC | json-rpc | | | Cardano | Mainnet | Rosetta API | rest | | | Cardano | Preprod (testnet) | Rosetta API | rest | | | Casper | Mainnet | JSON-RPC | json-rpc | | | Celo | Mainnet | JSON-RPC | json-rpc | | | Celo | Sepolia (testnet) | JSON-RPC | json-rpc | | | Chiliz | Mainnet | JSON-RPC | json-rpc | | | Chiliz | Testnet (testnet) | JSON-RPC | json-rpc | | | Cosmos | Mainnet | Rosetta API | rest | | | Cosmos | Mainnet | gRPC over https | rest | | | Cosmos | Mainnet | gRPC | gRPC | | | Cosmos | Mainnet | Tendermint JSON-RPC | json-rpc | | | Cosmos | Mainnet | Tendermint REST API | rest | | | Cosmos | Testnet (testnet) | gRPC over https | rest | | | Cosmos | Testnet (testnet) | gRPC | gRPC | | | Cosmos | Testnet (testnet) | Tendermint JSON-RPC | json-rpc | | | Cosmos | Testnet (testnet) | Tendermint REST API | rest | | | Cronos | Mainnet | JSON-RPC | json-rpc | | | Cronos | Testnet (testnet) | JSON-RPC | json-rpc | | | Dogecoin | Mainnet | JSON-RPC | json-rpc | | | Dogecoin | Mainnet | REST API | rest | | | Dogecoin | Testnet (testnet) | JSON-RPC | json-rpc | | | Dogecoin | Testnet (testnet) | REST API | rest | | | EOS | Mainnet | REST API | rest | | | EOS | Jungle (testnet) | REST API | rest | | | Ethereum | Mainnet | JSON-RPC | json-rpc | | | Ethereum | Mainnet | Beacon API | rest | | | Ethereum | Sepolia (testnet) | JSON-RPC | json-rpc | | | Ethereum | Sepolia (testnet) | Beacon API | rest | | | Ethereum | Hoodi (testnet) | JSON-RPC | json-rpc | | | Ethereum | Hoodi (testnet) | Beacon API | rest | | | Ethereum Classic | Mainnet | JSON-RPC | json-rpc | | | Ethereum Classic | Testnet (testnet) | JSON-RPC | json-rpc | | | Fantom | Mainnet | JSON-RPC | json-rpc | | | Fantom | Testnet (testnet) | JSON-RPC | json-rpc | | | Flare | Mainnet | JSON-RPC | json-rpc | | | Flare | Coston (testnet) | JSON-RPC | json-rpc | | | Flare | Coston2 (testnet) | JSON-RPC | json-rpc | | | Flare | Songbird (testnet) | JSON-RPC | json-rpc | | | Gnosis | Mainnet | JSON-RPC | json-rpc | | | Gnosis | Testnet (testnet) | JSON-RPC | json-rpc | | | HAQQ | Mainnet | JSON-RPC | json-rpc | | | HAQQ | Testnet (testnet) | JSON-RPC | json-rpc | | | Harmony | Mainnet S0 | JSON-RPC | json-rpc | | | Harmony | Testnet S0 (testnet) | JSON-RPC | json-rpc | | | Harmony | Devnet S0 (testnet) | JSON-RPC | json-rpc | | | HyperEVM | Mainnet | JSON-RPC | json-rpc | | | HyperEVM | Testnet (testnet) | JSON-RPC | json-rpc | | | Iota | Mainnet | JSON-RPC | json-rpc | | | Iota | Testnet (testnet) | JSON-RPC | json-rpc | | | Iota | Devnet (testnet) | JSON-RPC | json-rpc | | | Kaia | Mainnet | JSON-RPC | json-rpc | | | Kaia | Kairos (testnet) | JSON-RPC | json-rpc | | | Katana | Mainnet | JSON-RPC | json-rpc | | | Katana | Bokuto (testnet) | JSON-RPC | json-rpc | | | Kucoin | Mainnet | JSON-RPC | json-rpc | | | Kucoin | Testnet (testnet) | JSON-RPC | json-rpc | | | Kusama | Mainnet | JSON-RPC | json-rpc | | | Kusama | Mainnet | Substrate API | rest | | | Kusama | Mainnet | REST API | rest | | | Kusama Asset Hub | Mainnet | JSON-RPC | json-rpc | | | Kusama Asset Hub | Mainnet | Substrate API | rest | | | Kusama Asset Hub | Mainnet | REST API | rest | | | Lisk | Mainnet | JSON-RPC | json-rpc | | | Lisk | Sepolia (testnet) | JSON-RPC | json-rpc | | | Litecoin | Mainnet | JSON-RPC | json-rpc | | | Litecoin | Mainnet | REST API | rest | | | Litecoin | Testnet (testnet) | JSON-RPC | json-rpc | | | Litecoin | Testnet (testnet) | REST API | rest | | | Lumia | Mainnet | JSON-RPC | json-rpc | | | Lumia | Beam (testnet) | JSON-RPC | json-rpc | | | MANTRA Chain | Mainnet | JSON-RPC | json-rpc | | | MANTRA Chain | Dukong with EVM (testnet) | JSON-RPC | json-rpc | | | MegaETH | timothy (testnet) | JSON-RPC | json-rpc | | | Moca Chain | Mainnet | JSON-RPC | json-rpc | | | Moca Chain | Testnet (testnet) | JSON-RPC | json-rpc | | | Monacoin | Mainnet | JSON-RPC | json-rpc | | | MONAD | Mainnet | JSON-RPC | json-rpc | | | MONAD | Testnet (testnet) | JSON-RPC | json-rpc | | | Moonbeam | Mainnet | JSON-RPC | json-rpc | | | Moonbeam | Moonriver | JSON-RPC | json-rpc | | | Moonbeam | Moonbase Alpha (testnet) | JSON-RPC | json-rpc | | | MultiversX | Mainnet | REST API | rest | | | MultiversX | Testnet (testnet) | REST API | rest | | | MultiversX | Devnet (testnet) | REST API | rest | | | NEAR | Mainnet | JSON-RPC | json-rpc | | | NEAR | Testnet (testnet) | JSON-RPC | json-rpc | | | Oasis | Mainnet | JSON-RPC | json-rpc | | | Oasis | Emerald (testnet) | JSON-RPC | json-rpc | | | Optimism | Mainnet | JSON-RPC | json-rpc | | | Optimism | Testnet (testnet) | JSON-RPC | json-rpc | | | Plasma | Mainnet | JSON-RPC | json-rpc | | | Plasma | Testnet (testnet) | JSON-RPC | json-rpc | | | Plume | Mainnet | JSON-RPC | json-rpc | | | Plume | Testnet (testnet) | JSON-RPC | json-rpc | | | Polkadot | Mainnet | JSON-RPC | json-rpc | | | Polkadot | Mainnet | Substrate API | rest | | | Polkadot | Mainnet | REST API | rest | | | Polkadot | Westend (testnet) | JSON-RPC | json-rpc | | | Polkadot | Westend (testnet) | REST API | rest | | | Polkadot Asset Hub | Mainnet | JSON-RPC | json-rpc | | | Polkadot Asset Hub | Mainnet | Substrate API | rest | | | Polkadot Asset Hub | Mainnet | REST API | rest | | | Polygon | Mainnet | JSON-RPC | json-rpc | | | Polygon | Amoy (testnet) | JSON-RPC | json-rpc | | | Ripple | Mainnet | REST API | rest | | | Ripple | Testnet (testnet) | REST API | rest | | | Ronin | Mainnet | JSON-RPC | json-rpc | | | Ronin | Saigon (testnet) | JSON-RPC | json-rpc | | | Rootstock | Mainnet | JSON-RPC | json-rpc | | | Rootstock | Testnet (testnet) | JSON-RPC | json-rpc | | | Solana | Mainnet | JSON-RPC | json-rpc | | | Solana | Mainnet | gRPC | gRPC | | | Solana | Devnet (testnet) | JSON-RPC | json-rpc | | | Sonic | Mainnet | JSON-RPC | json-rpc | | | Sonic | Blaze (testnet) | JSON-RPC | json-rpc | | | Stellar | Mainnet | Horizon REST API | rest | | | Stellar | Mainnet | Soroban JSON-RPC | json-rpc | | | Stellar | Testnet (testnet) | Horizon REST API | rest | | | Stellar | Testnet (testnet) | Soroban JSON-RPC | json-rpc | | | Sui | Mainnet | JSON-RPC | json-rpc | | | Sui | Mainnet | gRPC | gRPC | | | Sui | Testnet (testnet) | JSON-RPC | json-rpc | | | Sui | Testnet (testnet) | gRPC | gRPC | | | Sui | Devnet (testnet) | JSON-RPC | json-rpc | | | Tezos | Mainnet | REST API | rest | | | Tezos | Shadownet (testnet) | REST API | rest | | | The Open Network | Mainnet | V3 - Indexer | rest | | | The Open Network | Mainnet | V2 - TON HTTP API | rest | | | The Open Network | Testnet (testnet) | V3 - Indexer | rest | | | The Open Network | Testnet (testnet) | V2 - TON HTTP API | rest | | | Tron | Mainnet | JSON-RPC | json-rpc | | | Tron | Mainnet | HTTP API | rest | | | Tron | Mainnet | Solidity HTTP API | rest | | | Tron | Shasta (testnet) | JSON-RPC | json-rpc | | | Tron | Shasta (testnet) | HTTP API | rest | | | Tron | Shasta (testnet) | Solidity HTTP API | rest | | | Tron | Nile (testnet) | JSON-RPC | json-rpc | | | Tron | Nile (testnet) | HTTP API | rest | | | Tron | Nile (testnet) | Solidity HTTP API | rest | | | Unichain | Mainnet | JSON-RPC | json-rpc | | | Unichain | Sepolia (testnet) | JSON-RPC | json-rpc | | | VeChain | Mainnet | REST API | rest | | | VeChain | Testnet (testnet) | REST API | rest | | | XinFin (XDC) | Mainnet | JSON-RPC | json-rpc | | | XinFin (XDC) | Testnet (testnet) | JSON-RPC | json-rpc | | | xlayer | Mainnet | JSON-RPC | json-rpc | | | xlayer | Testnet (testnet) | JSON-RPC | json-rpc | | | Zcash | Mainnet | JSON-RPC | json-rpc | | | Zcash | Mainnet | REST API | rest | | | Zcash | Mainnet | Zebrad JSON-RPC | json-rpc | | | Zcash | Testnet (testnet) | JSON-RPC | json-rpc | | | Zcash | Testnet (testnet) | REST API | rest | | | Zcash | Testnet (testnet) | Zebrad JSON-RPC | json-rpc | | | Zilliqa | Mainnet | JSON-RPC | json-rpc | | | Zilliqa | Testnet (testnet) | JSON-RPC | json-rpc | | | ZKsync | Mainnet | JSON-RPC | json-rpc | | | ZKsync | Testnet (testnet) | JSON-RPC | json-rpc | | --- # Open API > 2 mirrored Tatum OpenAPI schemas with 126 operations. Fetch the JSON locally or filter the operations table by method, path, tag, or summary. - canonical: - html: ## Schemas | id | title | version | openapi | paths | operations | tags | source | | --- | --- | --- | --- | --- | --- | --- | --- | | `blockchain-data` | Blockchain Data | 1.2 | 3.1.0 | 106 | 107 | 15 | | | `notifications` | Blockchain Notifications | 3.7.3 | 3.1.0 | 11 | 19 | 3 | | ## Blockchain Data - operations - Tags: Blockchains API, DeFi API, Exchange rate, Fee Estimation API, Malicious address, Marketplace, Mining API, NFT API, Prediction API, Staking, Storage API, Token API, Transactions API, Wallet API, Web3 Name Service - Source: | method | path | operationId | tags | summary | | --- | --- | --- | --- | --- | | GET | `/v4/data/defi/swaps/quote` | GetV4DataDefiSwapsQuote | DeFi API | Get best swap rate | | GET | `/v4/data/defi/swaps/quotes` | GetV4DataDefiSwapsQuotes | DeFi API | Get multi-protocol rates | | GET | `/v4/data/collections` | GetCollectionsV4 | NFT API | Get tokens from a collection | | GET | `/v4/data/metadata` | GetMetadataV4 | NFT API | Get token metadata | | GET | `/v4/data/wallet/portfolio` | GetWalletPortfolioV4 | Wallet API | Get wallet portfolio | | GET | `/v4/data/wallet/balance/time` | GetWalletBalanceByTimeV4 | Wallet API | Get balances by time of addresses | | GET | `/v4/data/wallet/reputation` | GetWalletReputationV4 | Wallet API | Get wallet reputation | | GET | `/v4/data/wallet/reputation/portfolio` | | Wallet API | Get wallet reputation portfolio | | GET | `/v4/data/wallet/reputation/tokens` | GetWalletReputationTokensV4 | Wallet API | Get wallet reputation by tokens | | GET | `/v4/data/ns/name` | NameToAddressV4 | Web3 Name Service | Resolve address by domain | | GET | `/v4/data/owners` | GetOwnersV4 | NFT API | Get owners of a token | | GET | `/v4/data/owners/address` | CheckOwnerV4 | NFT API | Check owner of token | | GET | `/v4/data/nft/balances` | GetNftBalancesV4 | NFT API | Get NFT balance of a wallet address | | GET | `/v4/data/multitoken/balances` | GetMultiTokenBalanceV4 | NFT API | Get Multi Token balances of a wallet address | | GET | `/v4/data/transaction/history` | GetTransactionHistoryV4 | Transactions API | Get transaction history | | GET | `/v4/data/transactions/hash` | GetTransactionsByHashV4 | Transactions API | Get transactions by hash | | GET | `/v4/data/defi/events` | GetDefiEventsV4 | DeFi API | Get specified events | | GET | `/v4/data/defi/blocks` | GetDefiBlocksV4 | DeFi API | Get specified blocks | | GET | `/v4/data/defi/blocks/latest` | GetLatestDefiBlockV4 | DeFi API | Get latest block | | GET | `/v4/data/block/time` | GetBlockByTimeV4 | DeFi API | Get block by time | | GET | `/v4/data/blockchains/block/current` | GetCurrentBlockBlockchainsApi | Blockchains API | Get current block height | | GET | `/v4/data/blockchains/block` | GetBlockBlockchainsApi | Blockchains API | Get block by hash or height | | GET | `/v4/data/blockchains/block/hash` | GetBlockHashBlockchainsApi | Blockchains API | Get block hash by block number | | GET | `/v4/data/blockchains/utxo/info` | GetUtxoInfoBlockchainsApi | Blockchains API | Get UTXO info by tx hash and index | | GET | `/v4/data/blockchains/mempool` | GetMempoolBlockchainsApi | Blockchains API | Get mempool transaction hashes | | GET | `/v4/data/blockchains/transaction` | GetTransactionBlockchainsApi | Blockchains API | Get transaction by hash | | GET | `/v4/data/blockchains/transaction/internal` | GetInternalTransactionsBlockchainsApi | Blockchains API | Get internal transactions by address | | GET | `/v4/data/blockchains/balance` | GetBalanceBlockchainsApi | Blockchains API | Get native balance | | GET | `/v4/data/blockchains/balance/batch` | GetBalanceBatchBlockchainsApi | Blockchains API | Get native balance (batch) | | GET | `/v4/data/blockchains/transaction/count` | GetTransactionCountBlockchainsApi | Blockchains API | Get outgoing transaction count | | GET | `/v4/data/blockchains/transaction/history/utxos` | GetTransactionHistoryUtxosBlockchainsApi | Blockchains API | Get transaction history (UTXO) | | POST | `/v4/data/blockchains/transaction/history/utxos/batch` | GetTransactionHistoryUtxosBatchBlockchainsApi | Blockchains API | Get transaction history (UTXO) batch | | GET | `/v4/data/tokens` | GetTokensV4 | Token API | Get information about collection or token | | GET | `/v4/data/tokens/trending` | GetTrendingTokensV4 | Token API | Get trending tokens | | GET | `/v4/data/tokens/newest` | GetNewestTokensV4 | Token API | Get newest tokens | | GET | `/v4/data/tokens/popular` | GetPopularTokensV4 | Token API | Get popular tokens | | GET | `/v4/data/tokens/popular/history` | GetPopularTokensHistoryV4 | Token API | Get popular tokens history | | GET | `/v4/data/transactions/dna` | GetTransfersDnaV4 | Token API | Get transactions DNA | | GET | `/v4/data/rate/history` | getExchangeRateHistoryBySymbol | Token API | Get Exchange Rate History by Symbol | | GET | `/v4/data/utxos` | GetUtxosByAddressV4 | Wallet API | Get unspent UTXOs for an address | | POST | `/v4/data/utxos/batch` | GetUtxosByAddressBatchV4 | Wallet API | Get unspent UTXOs for a batch of addresses | | GET | `/v3/security/address/{address}` | CheckMalicousAddress | Malicious address | Check malicous address | | GET | `/v4/data/rate/symbol` | getExchangeRateBySymbol | Exchange rate | Get Exchange Rate by Symbol | | POST | `/v4/data/rate/symbol/batch` | getExchangeRatesBySymbol | Exchange rate | Get Exchange Rate by Symbol - Batch | | GET | `/v4/data/rate/symbol/OHLCV` | getSymbolOHLCV | Exchange rate | Get OHLCV by Symbol | | GET | `/v4/data/rate/symbol/OHLCV/batch` | getSymbolOHLCVBatch | Exchange rate | Get OHLCV by Symbol - Batch | | GET | `/v4/data/rate/price-change` | getPriceChange | Exchange rate | Get Price Change by Symbol | | POST | `/v4/data/rate/price-change/batch` | getPriceChangeBatch | Exchange rate | Get Price Change by Symbol - Batch | | GET | `/v4/data/rate/contract` | getExchangeRateByContractAddress | Exchange rate | Get Exchange Rate by Contract | | POST | `/v4/data/rate/contract/batch` | getExchangeRatesByContractAddress | Exchange rate | Get Exchange Rate by Contract - Batch | | GET | `/v4/data/staking/native/current-assets` | GetCurrentStakedAssetsV4 | Staking | Get current staked assets | | GET | `/v4/data/staking/native/current-assets-by-validator` | GetCurrentStakedAssetsByValidatorV4 | Staking | Get current staked assets by validator | | GET | `/v4/data/staking/native/rewards` | GetStakedAccountRewardsV4 | Staking | Get staked account rewards | | POST | `/v4/data/staking/native/rewards/batch` | GetStakedAccountRewardsBatchV4 | Staking | Get staked account rewards - Batch | | GET | `/v4/data/staking/native/transactions` | GetStakingTransactionsV4 | Staking | Get staking transactions | | GET | `/v4/data/staking/native/pools` | GetStakingPoolsV4 | Staking | Get staking pools | | GET | `/v4/data/staking/liquid/current-assets` | GetLiquidStakingCurrentAssetsV4 | Staking | Get liquid staking current assets | | GET | `/v4/data/staking/liquid/pools` | GetLiquidStakingPoolsV4 | Staking | Get liquid staking pools | | GET | `/v4/data/mining/rewards` | GetMiningRewardsV4 | Mining API | Get mining rewards | | GET | `/v4/data/mining/totalRewards` | GetTotalMiningRewardsV4 | Mining API | Get total mining rewards | | POST | `/v4/blockchainOperations/gas` | estimateGas | Fee Estimation API | Estimate gas for a transfer | | GET | `/v3/blockchain/fee/{chain}` | getBlockchainFee | Fee Estimation API | Get recommended base fee for a chain | | POST | `/v3/blockchain/estimate` | EstimateFeeBlockchain | Fee Estimation API | Estimate gas for a transaction | | POST | `/v3/ethereum/gas/batch` | EthEstimateGasBatch | Fee Estimation API | Estimate the fee for multiple Ethereum transactions | | POST | `/v3/xdc/gas` | XdcEstimateGas | Fee Estimation API | Estimate the fee for a XinFin transaction | | POST | `/v3/vet/transaction/gas` | VetEstimateGas | Fee Estimation API | Estimate the gas needed for a VeChain transaction | | GET | `/v4/data/marketplace/cryptoslam/token/trending` | GetCryptoslamTrendingTokens | Marketplace | Get trending tokens from Cryptoslam | | GET | `/v4/data/marketplace/cryptoslam/token/price` | GetCryptoslamTokenPrice | Marketplace | Get token prices from Cryptoslam | | GET | `/v4/data/marketplace/cryptoslam/token/price/history` | GetCryptoslamTokenPriceHistory | Marketplace | Get token price history from Cryptoslam | | GET | `/v4/data/marketplace/cryptoslam/token/price/exotic` | GetCryptoslamTokenPriceExotic | Marketplace | Get exotic token prices from Cryptoslam | | GET | `/v4/data/marketplace/cryptoslam/token/price/exotic/history` | GetCryptoslamTokenPriceExoticHistory | Marketplace | Get exotic token price history from Cryptoslam | | GET | `/v4/data/marketplace/cryptoslam/token/trades` | GetCryptoslamTokenTrades | Marketplace | Get token trades from Cryptoslam | | GET | `/v4/data/marketplace/cryptoslam/token/transfers` | GetCryptoslamTokenTransfers | Marketplace | Get token transfers from Cryptoslam | | GET | `/v4/data/marketplace/cryptoslam/token/transfers/dna` | GetCryptoslamTokenTransfersDna | Marketplace | Get token transfers with DNA from Cryptoslam | | GET | `/v4/data/marketplace/cryptoslam/token/holder/reputation` | GetCryptoslamTokenHolderReputation | Marketplace | Get token holder reputation from Cryptoslam | | GET | `/v4/data/marketplace/cryptoslam/chain/trades` | GetCryptoslamChainTrades | Marketplace | Get chain trades from Cryptoslam | | GET | `/v4/data/marketplace/cryptoslam/chain/trades/dna` | GetCryptoslamChainTradesDna | Marketplace | Get chain trades DNA from Cryptoslam | | GET | `/v4/data/marketplace/cryptoslam/chain/transfers` | GetCryptoslamChainTransfers | Marketplace | Get chain transfers from Cryptoslam | | GET | `/v4/data/marketplace/cryptoslam/chain/transfers/dna` | GetCryptoslamChainTransfersDna | Marketplace | Get chain transfers DNA from Cryptoslam | | GET | `/v4/data/marketplace/cryptoslam/wallet/trades` | GetCryptoslamWalletTrades | Marketplace | Get wallet trades from Cryptoslam | | GET | `/v4/data/marketplace/cryptoslam/wallet/trades/dna` | GetCryptoslamWalletTradesDna | Marketplace | Get wallet trades DNA from Cryptoslam | | GET | `/v4/data/marketplace/cryptoslam/wallet/transfers` | GetCryptoslamWalletTransfers | Marketplace | Get wallet transfers from Cryptoslam | | GET | `/v4/data/marketplace/cryptoslam/wallet/transfers/dna` | GetCryptoslamWalletTransfersDna | Marketplace | Get wallet transfers DNA from Cryptoslam | | GET | `/v4/data/marketplace/cryptoslam/pair/trades` | GetCryptoslamPairTrades | Marketplace | Get pair trades from Cryptoslam | | GET | `/v4/data/marketplace/cryptoslam/pair/trades/dna` | GetCryptoslamPairTradesDna | Marketplace | Get pair trades DNA from Cryptoslam | | POST | `/v4/data/storage/upload` | StorageUpload | Storage API | Upload a file to Walrus storage | | GET | `/v4/data/storage/uploads` | StorageListUploads | Storage API | List Walrus storage uploads | | GET | `/v4/data/storage/upload/{jobId}` | StorageGetUploadStatus | Storage API | Get Walrus storage upload status | | DELETE | `/v4/data/storage/upload/{jobId}` | StorageCancelRenewal | Storage API | Cancel Walrus storage renewal | | GET | `/v4/data/prediction/events` | GetPredictionEventsV4 | Prediction API | List prediction-market events | | GET | `/v4/data/prediction/events/{id}` | GetPredictionEventByIdV4 | Prediction API | Get a prediction-market event by ID | | GET | `/v4/data/prediction/markets` | GetPredictionMarketsV4 | Prediction API | List prediction markets | | GET | `/v4/data/prediction/markets/{id}` | GetPredictionMarketByIdV4 | Prediction API | Get a prediction market by ID | | GET | `/v4/data/prediction/markets/{id}/price` | GetPredictionMarketPriceV4 | Prediction API | Get current market price | | GET | `/v4/data/prediction/markets/{id}/orderbook` | GetPredictionMarketOrderbookV4 | Prediction API | Get current market orderbook | | GET | `/v4/data/prediction/markets/{id}/history` | GetPredictionMarketPriceHistoryV4 | Prediction API | Get market price history | | GET | `/v4/data/prediction/markets/{id}/trades` | GetPredictionMarketTradesV4 | Prediction API | Get recent market trades | | GET | `/v4/data/prediction/markets/{id}/positions` | GetPredictionMarketPositionsV4 | Prediction API | Get top holders of a market | | GET | `/v4/data/prediction/wallets/{address}/portfolio` | GetPredictionWalletPortfolioV4 | Prediction API | Get wallet portfolio summary | | GET | `/v4/data/prediction/wallets/{address}/positions` | GetPredictionWalletPositionsV4 | Prediction API | Get wallet open positions | | GET | `/v4/data/prediction/wallets/{address}/history` | GetPredictionWalletHistoryV4 | Prediction API | Get wallet closed positions | | GET | `/v4/data/prediction/wallets/{address}/trades` | GetPredictionWalletTradesV4 | Prediction API | Get wallet trade history | | GET | `/v4/data/prediction/wallets/{address}/activity` | GetPredictionWalletActivityV4 | Prediction API | Get wallet activity feed | | GET | `/v4/data/prediction/wallets/{address}/value` | GetPredictionWalletValueV4 | Prediction API | Get wallet open-position notional | | GET | `/v4/data/prediction/wallets/{address}/markets-traded` | GetPredictionWalletMarketsTradedV4 | Prediction API | Get wallet markets-traded count | | GET | `/v4/data/prediction/top-traders` | GetPredictionTopTradersV4 | Prediction API | Get top traders leaderboard | | GET | `/v4/data/prediction/search` | GetPredictionSearchV4 | Prediction API | Unified search (events / tags / profiles) | ## Blockchain Notifications - operations - Tags: Notifications, Subscriptions, Templates - Source: | method | path | operationId | tags | summary | | --- | --- | --- | --- | --- | | GET | `/v4/subscription` | getSubscriptionsV4 | Subscriptions | List all active subscriptions | | POST | `/v4/subscription` | createSubscriptionV4 | Subscriptions | Create a subscription | | PUT | `/v4/subscription` | enableWebHookHmac | Notifications | Enable HMAC webhook digest | | DELETE | `/v4/subscription` | disableWebHookHmac | Notifications | Disable HMAC webhook digest | | GET | `/v4/subscription/count` | getSubscriptionsCount | Subscriptions | Count of subscriptions | | GET | `/v4/subscription/{id}` | getSubscriptionV4 | Subscriptions | Get subscription by ID | | PUT | `/v4/subscription/{id}` | updateSubscription | Subscriptions | Update subscription | | DELETE | `/v4/subscription/{id}` | deleteSubscription | Subscriptions | Cancel existing subscription | | PUT | `/v4/subscription/batch` | updateSubscriptionsByChain | Subscriptions | Update subscriptions by chain | | GET | `/v4/subscription/webhook` | getAllWebhooksV4 | Notifications | List all executed webhooks | | GET | `/v4/subscription/webhook/count` | getAllWebhooksCount | Notifications | Count of found entities for get webhook request | | POST | `/v4/subscription/webhook/{id}/retry` | retryWebhookV4 | Notifications | Retry a failed webhook | | GET | `/v4/subscription/template` | getNotificationTemplates | Templates | List all notification templates (V4) | | POST | `/v4/subscription/template` | createNotificationTemplate | Templates | Create a notification template (V4) | | GET | `/v4/subscription/template/default` | getDefaultNotificationTemplate | Templates | Get the default notification template | | PUT | `/v4/subscription/template/default` | updateDefaultNotificationTemplate | Templates | Update the default notification template | | PUT | `/v4/subscription/template/{id}` | updateNotificationTemplate | Templates | Update notification template (V4) | | DELETE | `/v4/subscription/template/{id}` | deleteNotificationTemplate | Templates | Delete notification template (V4) | | POST | `/v3/subscription` | createSubscription | Subscriptions | Create a subscription | ## Machine-readable - Index: `/api/openapi-index` - - Raw schema: `/openapi/blockchain-data.json` - - Raw schema: `/openapi/notifications.json` - --- # Authentication > How AI agents authenticate against Tatum: pass your API key in the x-api-key header on every request. No OAuth flow. Where to store keys for MCP, apps, and CI. - canonical: - html: ## API key Every call carries an API key in the `x-api-key` request header. Get one from the Tatum dashboard. ```http GET /v4/data/wallet/portfolio?address=0x...&chain=ethereum-mainnet Host: api.tatum.io x-api-key: tatum_xxx ``` ## Environment variables - `TATUM_API_KEY` - used by the Tatum MCP server and the Integration Skill. - Never hardcode the key. Never commit it. Never expose it client-side. ## Where to put it | Runtime | Location | | --- | --- | | Tatum MCP | `env.TATUM_API_KEY` in your MCP client config | | Backend service | `.env` consumed by your framework | | CI / CD | Secret store (GitHub Actions, GitLab CI, etc.) | ## Get an API key Sign up at . --- # Safety > Operational guidance for AI agents integrating with blockchain infrastructure: read-only APIs, no transaction signing, and human-in-the-loop for any mutations. - canonical: - html: ## Defaults - Read-only first. Reach for write/transaction methods only with explicit human approval. - Validate every address against the target chain before issuing calls. - Prefer Notifications over polling - push avoids quota drain and lag. - Retries: bounded, jittered, idempotent. Never spin on 429. - Never expose private keys, signing credentials, or API keys to the model. ## Boundaries **No transaction signing** - This site documents read APIs and gateway access only. Signing is out of scope for agentic flows here. **Human in the loop** - Any mutating action - webhook deletion, subscription rotation, gateway writes - should require human confirmation. **Per-chain validation** - EVM, Bitcoin, Solana, Cardano, and others have incompatible address formats. Always check the chain prefix. ## References - Auth guide: - MCP page: - Workflows: --- # RPC Gateway - capability > Direct JSON-RPC and chain-native protocol access to 130+ networks through a single managed gateway. - canonical: - category: rpc - risk: low ## Why agents use it Lets agents query chain state, simulate transactions, and call contracts without operating their own nodes. ## MCP tools - `gateway_get_supported_chains` - `gateway_get_supported_methods` - `gateway_execute_rpc` ## Related workflows - ## Docs - ## Notes ## Canonical recipe End-to-end procedure: [RPC Diagnostic Agent](/workflows/rpc-diagnostic-agent). Discover chains, list methods, execute a diagnostic RPC call. ## Risk Read-only by default. Write methods exist on most chains but must be gated by human approval in agentic flows. --- # Wallet Portfolio - capability > Aggregated balances, tokens, and historical positions for any wallet across supported chains. - canonical: - category: data - risk: low ## Why agents use it Lets agents answer "what does this wallet hold?" with one call, instead of crawling chains per-asset. ## MCP tools - `get_wallet_portfolio` - `get_wallet_balance_by_time` - `get_tokens` ## Related workflows - ## OpenAPI references - `/openapi/blockchain-data.json`, tag `Wallet API` ## Docs - ## Notes ## Canonical recipe End-to-end procedure: [Wallet Portfolio Assistant](/workflows/wallet-portfolio-assistant). Validate address, fetch portfolio, optional FX quote. ## Risk Read-only. No private-key material involved. --- # Notifications - capability > Webhook-based subscriptions for incoming transactions, contract events, and chain activity. - canonical: - category: notifications - risk: low ## Why agents use it Push beats polling. Agents react to chain events without burning RPC quota. ## Related workflows - ## OpenAPI references - `/openapi/notifications.json`, tag `Subscriptions` ## Docs - ## Notes ## Canonical recipe No MCP tools for subscriptions today. Use the HTTP procedure in [Incoming Payment Monitor](/workflows/incoming-payment-monitor). Create a webhook subscription, verify HMAC signatures, handle events idempotently. ## Risk Public webhook endpoints must validate the HMAC signature. Idempotency is the agent's responsibility. --- # NFT Ownership - capability > Resolve owners of a token, balances per address, and metadata for NFTs and multitokens. - canonical: - category: data - risk: low ## Why agents use it Lets agents gate access, verify drops, or audit ownership without bespoke indexers. ## MCP tools - `get_owners` - `check_owner` - `get_metadata` ## Related workflows - ## OpenAPI references - `/openapi/blockchain-data.json`, tag `NFT API` ## Docs - ## Notes ## Canonical recipe End-to-end procedure: [NFT Ownership Checker](/workflows/nft-ownership-checker). Resolve contract, check owners, optional metadata. ## Risk Read-only. --- # Exchange Rates - capability > Real-time token and fiat exchange rates across supported chains. - canonical: - category: data - risk: low ## Why agents use it Convert balances and transaction values into user-facing currencies without integrating a separate price oracle. ## MCP tools - `get_exchange_rate` ## OpenAPI references - `/openapi/blockchain-data.json`, tag `Exchange Rates` ## Docs - ## Notes ## Usage 1. Resolve the asset symbol or contract address. 2. Call `get_exchange_rate` with the target quote currency. ## Risk Read-only. Cache aggressively for UI uses; never use cached rates for settlement. --- # Transaction Monitoring - capability > Address transaction history with filtering, decoding hints, and pagination. - canonical: - category: data - risk: low ## Why agents use it Lets agents reconstruct what happened to an address without scanning blocks. ## MCP tools - `get_transaction_history` - `get_block_by_time` ## Related workflows - ## OpenAPI references - `/openapi/blockchain-data.json`, tag `Transactions API` ## Docs - ## Notes ## Canonical recipe For ongoing monitoring prefer [Incoming Payment Monitor](/workflows/incoming-payment-monitor) (webhooks). For historical reconstruction use `get_transaction_history` via MCP or the Transactions API. ## Risk Read-only. Be conservative with very wide time ranges on busy chains. --- # Wallet Portfolio Assistant - workflow > Answer "what does wallet X hold on chain Y?" in one round trip. - canonical: ## MCP tools - `get_wallet_portfolio` - `get_tokens` - `get_exchange_rate` ## API endpoints - `GET /v4/data/wallet/portfolio` - `GET /v4/data/wallet/tokens` ## Steps 1. Parse the user prompt for `address` and `chain`. 2. Validate the address shape for that chain. 3. Call `get_wallet_portfolio` (or the `Wallet API` endpoint). 4. Optionally enrich with `get_exchange_rate` to convert to a user-friendly quote currency. 5. Return a structured summary: native balance, top tokens by value, NFT count. ## Possible failures - Unsupported chain for the address - Address checksum invalid for the chain - Token contract returns malformed metadata ## Recovery guidance - Validate address against chain rules before calling - Surface the chain support list from /api/chains when the chain is unknown - Skip malformed tokens, never fail the whole portfolio call --- # Incoming Payment Monitor - workflow > Notify when an address receives a payment, and act on it. - canonical: ## MCP tools - `get_transaction_history` ## API endpoints - `POST /v4/subscription` - `GET /v4/subscription` - `DELETE /v4/subscription/{id}` ## Steps 1. Subscribe to incoming transactions for the target address via the Notifications API. 2. Configure the public webhook URL and signing secret. 3. On delivery, verify the HMAC signature, dedupe, and process. 4. Maintain subscription lifecycle (rotate secrets, delete on user opt-out). ## Possible failures - Webhook endpoint unreachable - HMAC signature mismatch - Duplicate webhook delivery ## Recovery guidance - Tatum retries failed deliveries; ensure 2xx within the retry budget - Reject unsigned/wrong-signature payloads and alert - Deduplicate by event id; treat handlers as idempotent --- # NFT Ownership Checker - workflow > Verify whether an address holds a token in a given NFT collection. - canonical: ## MCP tools - `check_owner` - `get_owners` - `get_metadata` ## API endpoints - `GET /v4/data/nft/owners` - `GET /v4/data/nft/metadata` ## Steps 1. Resolve `contract`, `tokenId`, `chain`, and `address`. 2. Call `check_owner` for the boolean answer. 3. If positive and metadata is requested, call `get_metadata`. ## Possible failures - Wrong chain for the contract - Contract not an ERC-721/1155 - Address normalization mismatch ## Recovery guidance - Validate contract on the requested chain first - Fall back to `get_owners` if `check_owner` returns ambiguous results - Always compare addresses checksummed/normalized --- # RPC Diagnostic Agent - workflow > Diagnose RPC connectivity, method support, and response health for any chain. - canonical: ## MCP tools - `gateway_get_supported_chains` - `gateway_get_supported_methods` - `gateway_execute_rpc` ## Steps 1. Confirm the chain is supported via `gateway_get_supported_chains`. 2. Confirm the method exists via `gateway_get_supported_methods`. 3. Call `gateway_execute_rpc` and report timing, response code, and any error envelope. ## Possible failures - Method not supported on the chain - Rate-limit / quota exhaustion - Network partition / endpoint downtime ## Recovery guidance - Confirm the method against `gateway_get_supported_methods` before calling - Backoff with jitter on 429; never spin - Re-route via `gateway_execute_rpc` (managed gateway handles failover)