{"openapi":"3.1.0","servers":[{"url":"https://api.tatum.io"}],"info":{"version":"1.2","title":"Blockchain Data"},"tags":[{"name":"Token API"},{"name":"NFT API"},{"name":"Wallet API"},{"name":"Transactions API"},{"name":"DeFi API"},{"name":"Fee Estimation API"},{"name":"Malicious address"},{"name":"Exchange rate"},{"name":"Web3 Name Service"},{"name":"Staking"},{"name":"Mining API"},{"name":"Marketplace"},{"name":"Blockchains API"},{"name":"Storage API"},{"name":"Prediction API"}],"paths":{"/v4/data/defi/swaps/quote":{"get":{"summary":"Get best swap rate","description":"<p style='display: none'>/v4/data/defi/swaps/quote</p>\n<p><b>20 credits per API call</b></p>\n\nGet the single best swap rate across all supported protocols.\nCompares all protocols and returns the one with the best price:\nsell orders — highest buyAmount, buy orders — lowest sellAmount.\nUse this when you just want the best deal without thinking about protocols.\nFor comparing all options, use GET /swaps/quotes instead.\n\n**Quotes are cached for up to 15 seconds** (less than one Ethereum block).\nEach response includes an `expiresAt` field (Unix timestamp) indicating\nwhen the underlying quote was originally fetched from the protocol.\nAlways check `expiresAt` against the current time before displaying or\nacting on a quote — if less than ~10 seconds remain, re-query to get a\nfresh price.","tags":["DeFi API"],"parameters":[{"name":"sellToken","in":"query","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"required":true,"description":"ERC-20 token contract address to sell."},{"name":"buyToken","in":"query","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"required":true,"description":"ERC-20 token contract address to buy."},{"name":"amount","in":"query","schema":{"type":"string","pattern":"^[0-9]+$"},"required":true,"description":"Fixed-side amount in base units.\nsell order: exact amount of sellToken to spend.\nbuy order:  exact amount of buyToken to receive."},{"name":"fromAddress","in":"query","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"required":true,"description":"Wallet address initiating the swap. Used for CoW fee estimation."},{"name":"chain","in":"query","schema":{"type":"string","enum":["ethereum-mainnet","ethereum-sepolia","bsc-mainnet","gnosis-mainnet","polygon-mainnet","base-mainnet","plasma-mainnet","arbitrum-one-mainnet","avalanche-mainnet"]},"required":true,"description":"Tatum network slug (e.g. `ethereum-mainnet`, `bsc-mainnet`,\n`polygon-mainnet`). Matches the `networks[].id` field in\nhttps://blockchains.tatum.io/blockchains2.json."},{"name":"kind","in":"query","schema":{"type":"string","enum":["sell","buy"]},"required":false,"description":"Whether this is exact-input (sell) or exact-output (buy)."},{"name":"slippageBps","in":"query","schema":{"type":"number","minimum":0,"maximum":10000},"required":false,"description":"Slippage tolerance in basis points (1 bps = 0.01%).\nApplied to the quoted amount to compute limitAmount."}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BestQuoteResult"}}}},"400":{"description":"Bad request — invalid or missing query parameters.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpExceptionDto"}}}},"401":{"description":"Missing or invalid Tatum API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpExceptionDto"}}}},"402":{"description":"Insufficient credits or expired account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpExceptionDto"}}}},"403":{"description":"API key blocked or expired.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpExceptionDto"}}}},"5XX":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpExceptionDto"}}}}},"security":[{"X-API-Key":[]}],"operationId":"GetV4DataDefiSwapsQuote"}},"/v4/data/defi/swaps/quotes":{"get":{"summary":"Get multi-protocol rates","description":"<p style='display: none'>/v4/data/defi/swaps/quotes</p>\n<p><b>20 credits per API call</b></p>\n\nCompare swap rates across all supported protocols.\nResults are sorted by best price: highest buyAmount for sell orders,\nlowest sellAmount for buy orders.\n\n**Quotes are cached for up to 15 seconds** (less than one Ethereum block).\nEach result includes an `expiresAt` field (Unix timestamp) indicating\nwhen the underlying quote was originally fetched from the protocol.\nAlways check `expiresAt` against the current time before displaying or\nacting on a quote — if less than ~10 seconds remain, re-query to get a\nfresh price.","tags":["DeFi API"],"parameters":[{"name":"sellToken","in":"query","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"required":true,"description":"ERC-20 token contract address to sell."},{"name":"buyToken","in":"query","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"required":true,"description":"ERC-20 token contract address to buy."},{"name":"amount","in":"query","schema":{"type":"string","pattern":"^[0-9]+$"},"required":true,"description":"Fixed-side amount in base units.\nsell order (kind='sell'): exact amount of sellToken to spend.\nbuy order  (kind='buy'):  exact amount of buyToken to receive."},{"name":"fromAddress","in":"query","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"required":true,"description":"Wallet address initiating the swap. Used for CoW fee estimation and quote context."},{"name":"chain","in":"query","schema":{"type":"string","enum":["ethereum-mainnet","ethereum-sepolia","bsc-mainnet","gnosis-mainnet","polygon-mainnet","base-mainnet","plasma-mainnet","arbitrum-one-mainnet","avalanche-mainnet"]},"required":true,"description":"Tatum network slug (e.g. `ethereum-mainnet`, `bsc-mainnet`,\n`polygon-mainnet`). Matches the `networks[].id` field in\nhttps://blockchains.tatum.io/blockchains2.json."},{"name":"kind","in":"query","schema":{"type":"string","enum":["sell","buy"]},"required":false,"description":"Whether this is exact-input (sell) or exact-output (buy)."},{"name":"slippageBps","in":"query","schema":{"type":"number","minimum":0,"maximum":10000},"required":false,"description":"Slippage tolerance in basis points (1 bps = 0.01%).\nApplied to the quoted amount to compute limitAmount."},{"name":"mevFilter","in":"query","schema":{"type":"string","enum":["protected","unprotected"]},"required":false,"description":"Filter quotes by MEV protection status.\n\nprotected   — only MEV-safe protocols (CoW Protocol).\nunprotected — only non-MEV protocols (Uniswap, PancakeSwap).\nomitted     — all protocols, no filter."}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SwapRate"}}}}},"400":{"description":"Bad request — invalid or missing query parameters.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpExceptionDto"}}}},"401":{"description":"Missing or invalid Tatum API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpExceptionDto"}}}},"402":{"description":"Insufficient credits or expired account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpExceptionDto"}}}},"403":{"description":"API key blocked or expired.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpExceptionDto"}}}},"5XX":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpExceptionDto"}}}}},"security":[{"X-API-Key":[]}],"operationId":"GetV4DataDefiSwapsQuotes"}},"/v4/data/collections":{"get":{"description":"<p style='display: none'>/v4/data/collections</p>\n<p><b>20 credits per API call</b></p>\n\n> 📘 **Note for v3 API users:**\n>\n> As part of our documentation consolidation, we removed the dedicated page for GET /v3/data/collections. Users can refer to GET /v4/data/collections for the latest documentation, as both endpoints function the same—simply replace v4 with v3 in the API URL if using the v3 version.\n\n<p>Get all NFTs (ERC-721 and ERC-1155) and multitokens (ERC-1155 only) of your favorite collections! Our API lets you search for all tokens on:</p>\n<ul>\n<li>Ethereum - ethereum-mainnet / ethereum-sepolia / ethereum-holesky</li>\n<li>Base - base-mainnet / base-sepolia</li>\n<li>Arbitrum - arb-one-mainnet / arb-testnet</li>\n<li>BNB (Binance) Smart Chain - bsc-mainnet / bsc-testnet</li>\n<li>Polygon - polygon-mainnet / polygon-amoy</li>\n<li>Optimism - optimism-mainnet / optimism-testnet</li>\n<li>Berachain - berachain-mainnet</li>\n<li>Unichain - unichain-mainnet / unichain-sepolia</li>\n<li>Monad - monad-testnet</li>\n<li>Celo - celo-mainnet / celo-testnet</li>\n<li>Chiliz - chiliz-mainnet</li>\n<li>Tezos - tezos-mainnet</li>\n</ul>\n<p>To get started:</p>\n<ul>\n<li>Provide a chain name and comma-separated list of collection addresses. Our API will return relevant information about each token, including its name, description, image, and more.</li>\n<li>Aside from relevant information about each token, the response also contains metadata (they can, however, be excluded by setting <code>excludeMetadata</code> to <code>true</code>).</li>\n<li>If not specified, the API returns results for all supported types of tokens (nft, multitokens), but you can also choose to filter only one <code>tokenType</code>.</li>\n<li>For Tezos blockchain query parameters <code>excludeMetadata</code> and <code>tokenType</code> won't have any effect on filtering data.</li>\n</ul>\n","operationId":"GetCollectionsV4","parameters":[{"description":"The blockchain to work with.","in":"query","name":"chain","required":true,"schema":{"$ref":"#/components/schemas/ChainEnumForCollections"}},{"description":"The blockchain addresses of the collections.\nIt is possible to enter list of up to 10 addresses as a comma separated string.\n","in":"query","name":"collectionAddresses","required":true,"schema":{"$ref":"#/components/schemas/TokenAddress"}},{"description":"The option to select only specific token types.\nIt is possible to enter list of multiple types as a comma separated string.\nUse nft (includes ERC-721 and ERC-1155) or multitoken (ERC-1155 only).\n","in":"query","name":"tokenTypes","schema":{"type":"string","example":"nft","enum":["nft","multitoken"]}},{"description":"The option to exclude metadata from the response.","in":"query","name":"excludeMetadata","schema":{"$ref":"#/components/schemas/ExcludeMetadata"}},{"description":"The number of items per page (default is 50).","in":"query","name":"pageSize","schema":{"$ref":"#/components/schemas/PageSize"}},{"description":"The offset to obtain next page of the data.","in":"query","name":"offset","schema":{"$ref":"#/components/schemas/Offset"}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/Token"},{"$ref":"#/components/schemas/TokenTezos"}]}}}},"description":"OK"},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"403":{"$ref":"#/components/responses/Error403"},"500":{"$ref":"#/components/responses/Error500"}},"security":[{"X-API-Key":[]}],"x-codeSamples":[],"summary":"Get tokens from a collection","tags":["NFT API"]}},"/v4/data/metadata":{"get":{"description":"<p style='display: none'>/v4/data/metadata</p>\n<p><b>10 credits per API call</b></p>\n\n> 📘 **Note for v3 API users:** \n>\n> As part of our documentation consolidation, we removed the dedicated page for GET /v3/data/metadata. Users can refer to GET /v4/data/metadata for the latest documentation, as both endpoints function the same—simply replace v4 with v3 in the API URL if using the v3 version.\n\n<p>Get metadata of NFTs (ERC-721 and ERC-1155) or multitokens (ERC-1155 only) by IDs for a given token address! Our API lets you search for all tokens on:</p>\n<ul>\n<li>Ethereum - ethereum-mainnet / ethereum-sepolia / ethereum-holesky</li>\n<li>Base - base-mainnet / base-sepolia</li>\n<li>Arbitrum - arb-one-mainnet / arb-testnet</li>\n<li>BNB (Binance) Smart Chain - bsc-mainnet / bsc-testnet</li>\n<li>Polygon - polygon-mainnet</li>\n<li>Optimism - optimism-mainnet / optimism-testnet</li>\n<li>Berachain - berachain-mainnet</li>\n<li>Unichain - unichain-mainnet / unichain-sepolia</li>\n<li>Monad - monad-testnet</li>\n<li>Celo - celo-mainnet / celo-testnet</li>\n<li>Chiliz - chiliz-mainnet</li>  \n</ul>\n<p>To get started:</p>\n<ul>\n<li>Provide a chain name, token address and comma-separated list of IDs. Our API will return relevant metadata about each specified token, including its name, description, image, and more.</li>\n<li>Aside from the metadata information, the response also contains token types and metadata url minted in each token.</li>\n</ul>\n","operationId":"GetMetadataV4","parameters":[{"description":"The blockchain to work with.","in":"query","name":"chain","required":true,"schema":{"$ref":"#/components/schemas/ChainEnumForMetadata"}},{"description":"The blockchain address of the NFT to get metadata for.","in":"query","name":"tokenAddress","required":true,"schema":{"$ref":"#/components/schemas/TokenAddress"}},{"description":"The IDs of the tokens to get metadata for.\nIt is possible to enter list of multiple IDs as a comma separated string.\n","in":"query","name":"tokenIds","required":true,"schema":{"$ref":"#/components/schemas/TokenIds"}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"chain":{"$ref":"#/components/schemas/Chain"},"tokenId":{"$ref":"#/components/schemas/TokenId"},"tokenAddress":{"$ref":"#/components/schemas/TokenAddress"},"tokenType":{"$ref":"#/components/schemas/TokenType"},"metadataURI":{"$ref":"#/components/schemas/NftMetadataURI"},"metadata":{"$ref":"#/components/schemas/NftMetadata"}}}}}},"description":"OK"},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"403":{"$ref":"#/components/responses/Error403"},"500":{"$ref":"#/components/responses/Error500"}},"security":[{"X-API-Key":[]}],"x-codeSamples":[],"summary":"Get token metadata","tags":["NFT API"]}},"/v4/data/wallet/portfolio":{"get":{"description":"<p style='display: none'>/v4/data/wallet/portfolio</p>\n<p><b>50 credits per API call</b></p>\n<p>Get portfolio balances of native, fungible tokens (ERC-20) or NFTs (ERC-721 and ERC-1155) for a specific wallet address on the following blockchains:</p>\n<ul>\n<li>Ethereum - ethereum-mainnet / ethereum-sepolia / ethereum-holesky</li>\n<li>Solana - solana-mainnet / solana-devnet</li>\n<li>Base - base-mainnet / base-sepolia</li>\n<li>Arbitrum - arb-one-mainnet / arb-testnet</li>\n<li>BNB (Binance) Smart Chain - bsc-mainnet / bsc-testnet</li>\n<li>Polygon - polygon-mainnet / polygon-amoy</li>\n<li>Optimism - optimism-mainnet / optimism-testnet</li>\n<li>Berachain - berachain-mainnet</li>\n<li>Unichain - unichain-mainnet / unichain-sepolia</li>\n<li>Monad - monad-mainnet / monad-testnet</li>\n<li>Celo - celo-mainnet / celo-testnet</li>\n<li>Chiliz - chiliz-mainnet</li>\n<li>Tezos - tezos-mainnet</li>\n<li>Moca Chain - mocachain-devnet</li>\n</ul>\n<p>To get started:</p>\n<ul>\n<li>Provide a chain name and and an address of that chain. Our API will return balances of each token along with further information such as its type, id, and more.</li>\n<li>Aside from relevant information about each token and its balance, the response also contains metadata (they can, however, be excluded by setting <code>excludeMetadata</code> to <code>true</code>).</li>\n<li>The API requires specifying the <code>tokenTypes</code> parameter to indicate which types of tokens to fetch balances for. Supported values include [native], [fungible] and [nft,multitoken].</li>\n<li>For Tezos blockchain, the API returns balance of any tokens including native token (XTZ) for specified wallet addresses. Following query parameters won't have any effect on filtering data <code>excludeMetadata</code>.</li>\n</ul>\n","operationId":"GetWalletPortfolioV4","parameters":[{"description":"The blockchain to work with.","in":"query","name":"chain","required":true,"schema":{"$ref":"#/components/schemas/ChainEnumForWalletPortfolio"}},{"description":"The blockchain public wallet addresses.\nOnly one address is allowed.\n","in":"query","name":"addresses","required":true,"schema":{"type":"string","description":"Wallet address","example":"0x80d8bac9a6901698b3749fe336bbd1385c1f98f2"}},{"description":"The option to select only specific token types.\nUse [native], [fungible] (ERC-20), [nft,multitoken] (includes ERC-721 and ERC-1155)\n","in":"query","name":"tokenTypes","required":true,"schema":{"type":"string","example":"fungible","enum":["native","fungible","nft,multitoken"]}},{"description":"The option to exclude metadata from the response.","in":"query","name":"excludeMetadata","schema":{"$ref":"#/components/schemas/ExcludeMetadata"}},{"description":"The number of items per page (default is 50).","in":"query","name":"pageSize","schema":{"$ref":"#/components/schemas/PageSize"}},{"description":"The offset to obtain next page of the data.","in":"query","name":"offset","schema":{"$ref":"#/components/schemas/Offset"}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"array","items":{"$ref":"#/components/schemas/PortfolioItem"},"description":"List of portfolio balance for selected tokens.","example":[{"chain":"ethereum-mainnet","address":"0xae680ed83baf08a8028118bd19859f8a0e744cc6","balance":"2.881012674896012762","denominatedBalance":"2881012674896012762","decimals":18,"type":"native"},{"chain":"ethereum-mainnet","address":"0xae680ed83baf08a8028118bd19859f8a0e744cc6","balance":"283.333333333333333333","denominatedBalance":"283333333333333333333","decimals":18,"tokenAddress":"0x45dd18c5e0fa701abff449f6542aa53e258710b4","type":"fungible"},{"chain":"ethereum-mainnet","address":"0xae680ed83baf08a8028118bd19859f8a0e744cc6","balance":"8.69","denominatedBalance":"8690000000000000000","decimals":18,"tokenAddress":"0x090f21a84a0e9674c1828aca1db69ec8ae1454e8","type":"fungible"},{"chain":"ethereum-mainnet","address":"0xae680ed83baf08a8028118bd19859f8a0e744cc6","balance":"1","tokenAddress":"0xa58b5224e2fd94020cb2837231b2b0e4247301a6","type":"multitoken","tokenId":"2605","metadataURI":"https://www.cryptovoxels.com/c/1/2605","metadata":{"url":"https://www.cryptovoxels.com/c/1/2605","name":"Link Marine Helmet","description":"Chainlink Marine Helmet, give Sergey Nazarov your love."}}]},"prevPage":{"type":"string","description":"Cursor pagination, used to get previous page of results (work in progress, not used right now).","example":""},"nextPage":{"type":"string","description":"Cursor pagination, used to get next page of results (work in progress, not used right now).","example":""}}}}},"description":"OK"},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"403":{"$ref":"#/components/responses/Error403"},"500":{"$ref":"#/components/responses/Error500"}},"security":[{"X-API-Key":[]}],"x-codeSamples":[],"summary":"Get wallet portfolio","tags":["Wallet API"]}},"/v4/data/wallet/balance/time":{"get":{"description":"<p style='display: none'>/v4/data/wallet/balance/time</p>\n<p><b>100 credits per API call</b></p>\n<p>Get native balances for a specific wallet addresses by time on the following blockchains:</p>\n<ul>\n<li>Ethereum - ethereum-mainnet</li>\n<li>Bitcoin - bitcoin-mainnet</li>\n<li>Base - base-mainnet</li>\n<li>Arbitrum - arb-one-mainnet</li>\n<li>BSC - bsc-mainnet</li>\n<li>Polygon - polygon-mainnet</li>\n<li>Optimism - optimism-mainnet</li>\n<li>Berachain - berachain-mainnet</li>\n<li>Unichain - unichain-mainnet</li>\n<li>Celo - celo-mainnet</li>\n</ul>\n<p>To get started, provide a chain name, comma-separated list of addresses and specify one of the filters listed below (combination of the filters is not allowed):</p>\n<ul>\n<li>block number</li>\n<li>time</li>\n<li>unix</li>\n</ul>\n<p>If you pass a block number that is in the future (beyond the current latest block), the system will return the balance for the latest block.</p>\n<p>If you pass a time or Unix timestamp that is in the future, the system will also return the balance for the latest block.</p>\n<p>If you pass a time or Unix timestamp in the past (dating back to or earlier than the blockchain's genesis block), the system will return the balance for the first block (genesis block).</p>\n","operationId":"GetWalletBalanceByTimeV4","parameters":[{"description":"The blockchain to work with.","in":"query","name":"chain","required":true,"schema":{"$ref":"#/components/schemas/ChainEnumForBalanceByTime"}},{"description":"The blockchain public wallet addresses.\nIt is possible to enter list of up to 10 addresses as a comma separated string.\n","in":"query","name":"addresses","required":true,"schema":{"type":"string","description":"Wallet address","example":"0x80d8bac9a6901698b3749fe336bbd1385c1f98f2,0xAe680Ed83baF08a8028118Bd19859F8a0E744cc6"}},{"description":"Block number. You must either use \"blockNumber\" or \"time\" or \"unix\" params in your requests.","in":"query","name":"blockNumber","schema":{"$ref":"#/components/schemas/BlockNumber"}},{"description":"Time when block is processed. You must either use \"blockNumber\" or \"time\" or \"unix\" params in your requests.","in":"query","name":"time","schema":{"type":"string","example":"2022-12-24T00:20"}},{"description":"Unix timestamp when block is processed. You must either use \"blockNumber\" or \"time\" or \"unix\" params in your requests.","in":"query","name":"unix","schema":{"type":"number","example":1587390414}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"array","items":{"$ref":"#/components/schemas/NativeTokenBalance"},"description":"List of all balances for all selected tokens.","example":[{"chain":"ethereum-mainnet","address":"0xae680ed83baf08a8028118bd19859f8a0e744cc6","balance":"2.881012674896012762","denominatedBalance":"2881012674896012762","decimals":18,"type":"native"}]},"prevPage":{"type":"string","description":"Cursor pagination, used to get previous page of results (work in progress, not used right now).","example":""},"nextPage":{"type":"string","description":"Cursor pagination, used to get next page of results (work in progress, not used right now).","example":""}}}}},"description":"OK"},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"403":{"$ref":"#/components/responses/Error403"},"500":{"$ref":"#/components/responses/Error500"}},"security":[{"X-API-Key":[]}],"x-codeSamples":[],"summary":"Get balances by time of addresses","tags":["Wallet API"]}},"/v4/data/wallet/reputation":{"get":{"description":"<p style='display: none'>/v4/data/wallet/reputation</p>\n<p><b>5000 credits per API call per address</b></p>\n\n<p>Returns reputation scores for one or more wallets using on-chain behavioral analysis across their token portfolio.</p>\n<p>Supported blockchains:</p>\n<ul>\n<li>Ethereum - ethereum-mainnet</li>\n<li>Base - base-mainnet</li>\n</ul>\n\n> 📘 Note for Free Users\n>\n> 500 credits per API call per address\n>\n> As a free user, your data is cached on a 1-day refresh cycle, and wallet queries run through tatumio.eth. This setup helps lower costs so you can easily try out the API. For real-time data, faster syncs, and the full capability of our platform, we recommend upgrading to a paid plan.\n","operationId":"GetWalletReputationV4","parameters":[{"name":"chain","description":"The blockchain to work with.","in":"query","required":true,"schema":{"$ref":"#/components/schemas/ChainEnumTrending"}},{"name":"addresses","description":"The list of wallets, comma separated.","in":"query","required":true,"schema":{"type":"string","example":"0xdef1c0ded9bec7f1a1670819833240f027b25eff,0xdef1c0ded9bec7f1a1670819833240f027b25eff"}},{"name":"blockNumber","in":"query","required":false,"schema":{"$ref":"#/components/schemas/BlockNumber"}},{"name":"timestamp","description":"Date-time UTC timestamp in format YYYY-MM-DDTHH:mm:ssZ (ignored if blockNumber is present)","in":"query","required":false,"schema":{"type":"number","example":"2025-09-25T16:00:01Z"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseArrayReputation"}}}}},"summary":"Get wallet reputation","security":[{"X-API-Key":[]}],"tags":["Wallet API"]}},"/v4/data/wallet/reputation/portfolio":{"get":{"description":"<p style='display: none'>/v4/data/wallet/reputation/portfolio</p>\n<p><b>10000 credits per API call per address</b></p>\n\n> 📘 Note for Free Users\n>\n> 1000 credits per API call per address\n>\n> As a free user, your data is cached on a 1-day refresh cycle, and wallet queries run through tatumio.eth. This setup helps lower costs so you can easily try out the API. For real-time data, faster syncs, and the full capability of our platform, we recommend upgrading to a paid plan.\n\n<p>Returns composite reputation scores along with per-token scores for all tokens held in each wallet.</p>\n<p>Supported blockchains:</p>\n<ul>\n<li>Ethereum - ethereum-mainnet</li>\n<li>Base - base-mainnet</li>\n</ul>\n","parameters":[{"name":"chain","description":"The blockchain to work with.","in":"query","required":true,"schema":{"$ref":"#/components/schemas/ChainEnumTrending"}},{"name":"addresses","description":"The list of wallets, comma separated.","in":"query","required":true,"schema":{"type":"string","example":"0xdef1c0ded9bec7f1a1670819833240f027b25eff,0xdef1c0ded9bec7f1a1670819833240f027b25eff"}},{"name":"blockNumber","in":"query","required":false,"schema":{"$ref":"#/components/schemas/BlockNumber"}},{"name":"timestamp","description":"Date-time UTC timestamp in format YYYY-MM-DDTHH:mm:ssZ (ignored if blockNumber is present)","in":"query","required":false,"schema":{"type":"number","example":"2025-09-25T16:00:01Z"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseArrayReputationPortfolio"}}}}},"summary":"Get wallet reputation portfolio","security":[{"X-API-Key":[]}],"tags":["Wallet API"]}},"/v4/data/wallet/reputation/tokens":{"get":{"description":"<p style='display: none'>/v4/data/wallet/reputation/tokens</p>\n<p><b>1500 credits per API call per address</b></p>\n\n<p>Returns reputation scores for a wallet across one or more specific tokens.</p>\n<p>Supported blockchains:</p>\n<ul>\n<li>Ethereum - ethereum-mainnet</li>\n<li>Base - base-mainnet</li>\n</ul>\n\n> 📘 Note for Free Users\n>\n> 150 credits per API call per address\n>\n> As a free user, your data is cached on a 1-day refresh cycle, and wallet queries run through tatumio.eth. This setup helps lower costs so you can easily try out the API. For real-time data, faster syncs, and the full capability of our platform, we recommend upgrading to a paid plan.\n","operationId":"GetWalletReputationTokensV4","parameters":[{"name":"chain","in":"query","required":true,"schema":{"$ref":"#/components/schemas/ChainEnumTrending"}},{"name":"walletAddress","description":"Wallet address to be analysed.","in":"query","required":true,"schema":{"type":"string","example":"0x80d8bac9a6901698b3749fe336bbd1385c1f98f2"}},{"name":"tokenAddresses","description":"The list of tokens, comma separated. (Either tokenAddresses or tokenSymbols should be present)","in":"query","required":true,"schema":{"type":"string","example":"0xdef1c0ded9bec7f1a1670819833240f027b25eff,0xdef1c0ded9bec7f1a1670819833240f027b25eff"}},{"name":"tokenSymbols","description":"The list of symbols, comma separated. (Either tokenAddresses or tokenSymbols should be present)","in":"query","required":false,"schema":{"type":"string","example":"USDC,DAI"}},{"name":"blockNumber","in":"query","required":false,"schema":{"type":"number","example":16499510}},{"name":"timestamp","description":"Date-time UTC timestamp in format YYYY-MM-DDTHH:mm:ssZ (ignored if blockNumber is present)","in":"query","required":false,"schema":{"type":"number","example":"2025-09-25T16:00:01Z"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseArrayReputationByHolder"}}}}},"summary":"Get wallet reputation by tokens","security":[{"X-API-Key":[]}],"tags":["Wallet API"]}},"/v4/data/ns/name":{"get":{"description":"<p style='display: none'>/v4/data/ns/name</p>\n<p><b>20 credits per API call</b></p>\n<p>Resolve a human-readable blockchain domain name into its corresponding wallet address for supported blockchains:</p>\n<ul>\n<li>Ethereum - ethereum-mainnet</li>\n<li>Base - base-mainnet</li>\n<li>Arbitrum - arb-one-mainnet</li>\n<li>BSC - bsc-mainnet</li>\n<li>Solana - solana-mainnet</li>\n</ul>\n<p>To get started:</p>\n<ul>\n<li>Provide a chain name and domain name. Our API will return wallet address.</li>\n</ul>\n","operationId":"NameToAddressV4","parameters":[{"description":"The blockchain to work with.","in":"query","name":"chain","required":true,"schema":{"$ref":"#/components/schemas/ChainEnumForWalletResolve"}},{"description":"Domain name.\n","in":"query","name":"name","required":true,"schema":{"type":"string","description":"Name","example":"vitalik.eth"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NameResolutionItem","description":"Name Resolution Result.","example":{"address":"0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045","chain":"ethereum-mainnet","name":"vitalik.eth","resolved":true}}}},"description":"OK"},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"403":{"$ref":"#/components/responses/Error403"},"500":{"$ref":"#/components/responses/Error500"}},"security":[{"X-API-Key":[]}],"x-codeSamples":[],"summary":"Resolve address by domain","tags":["Web3 Name Service"]}},"/v4/data/owners":{"get":{"description":"<p style='display: none'>/v4/data/owners</p>\n<p><b>50 credits per API call</b></p>\n\n> 📘 **Note for v3 API users:** \n>\n> As part of our documentation consolidation, we removed the dedicated page for GET /v3/data/owners. Users can refer to GET /v4/data/owners for the latest documentation, as both endpoints function the same—simply replace v4 with v3 in the API URL if using the v3 version.\n\n<p>Get all addresses that own your favorite token (ERC-20, ERC-721 or ERC-1155)! Our API lets you search for all token owners on:</p>\n<ul>\n<li>Ethereum - ethereum-mainnet / ethereum-sepolia / ethereum-holesky</li>\n<li>Base - base-mainnet / base-sepolia</li>\n<li>Arbitrum - arb-one-mainnet / arb-testnet</li>\n<li>BNB (Binance) Smart Chain - bsc-mainnet</li>\n<li>Polygon - polygon-mainnet</li>\n<li>Optimism - optimism-mainnet / optimism-testnet</li>\n<li>Berachain - berachain-mainnet</li>\n<li>Unichain - unichain-mainnet / unichain-sepolia</li>\n<li>Monad - monad-testnet</li>\n<li>Celo - celo-mainnet / celo-testnet</li>\n</ul>\n<p>To get started:</p>\n<ul>\n<li>Provide a chain name and address of any fungible token, NFT or multitoken collection. Our API will return a list of addresses of all of their owners.</li>\n<li>You can also get an owner of a specific NFT by specifying <code>tokenId</code>. In case of multitoken, result is an array of addresses.</li>\n</ul>\n","operationId":"GetOwnersV4","parameters":[{"description":"The blockchain to work with.","in":"query","name":"chain","required":true,"schema":{"$ref":"#/components/schemas/ChainEnumForOwners"}},{"description":"The blockchain address of the token (NFT collection or any fungible token).","in":"query","name":"tokenAddress","required":true,"schema":{"$ref":"#/components/schemas/TokenAddress"}},{"description":"The ID of a specific NFT token.","in":"query","name":"tokenId","schema":{"$ref":"#/components/schemas/TokenId"}},{"description":"The number of items per page (default is 50).","in":"query","name":"pageSize","schema":{"$ref":"#/components/schemas/PageSize"}},{"description":"The offset to obtain next page of the data.","in":"query","name":"offset","schema":{"$ref":"#/components/schemas/Offset"}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"array","items":{"type":"string"},"description":"List of all addresses that own a token in a specified collection.","example":["0x0bbf9f25c863fdf19e645c96280004d24f43cb38","0x0bd1b3b12db943f2310a4e53481ae97f8b6c2a75","0x281f4727081ab4a066f321fd6fc8dd0dc063e9fd","0x681cbae1c41e5eec8411dd8e009fa71f81d03f7f","0x7b49a05c15702bbe1db534058ebcc9e950c474ca"]}}},"description":"OK"},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"403":{"$ref":"#/components/responses/Error403"},"500":{"$ref":"#/components/responses/Error500"}},"security":[{"X-API-Key":[]}],"x-codeSamples":[],"summary":"Get owners of a token","tags":["NFT API"]}},"/v4/data/owners/address":{"get":{"description":"<p style='display: none'>/v4/data/owners/address</p>\n<p><b>50 credit per API call</b></p>\n\n> 📘 **Note for v3 API users:** \n>\n> As part of our documentation consolidation, we removed the dedicated page for GET /v3/data/owners/address. Users can refer to GET /v4/data/owners/address for the latest documentation, as both endpoints function the same—simply replace v4 with v3 in the API URL if using the v3 version.\n\n<p>Check if wallet address owns any specified token (ERC-20, ERC-721 or ERC-1155) on the following blockchains:</p>\n<ul>\n<li>Ethereum - ethereum-mainnet / ethereum-sepolia / ethereum-holesky</li>\n<li>Base - base-mainnet / base-sepolia</li>\n<li>Arbitrum - arb-one-mainnet / arb-testnet</li>\n<li>BNB (Binance) Smart Chain - bsc-mainnet / bsc-testnet</li>\n<li>Polygon - polygon-mainnet</li>\n<li>Optimism - optimism-mainnet / optimism-testnet</li>\n<li>Berachain - berachain-mainnet</li>\n<li>Unichain - unichain-mainnet / unichain-sepolia</li>\n<li>Monad - monad-mainnet / monad-testnet</li>\n<li>Celo - celo-mainnet / celo-testnet</li>\n<li>Chiliz - chiliz-mainnet</li>\n</ul>\n<p>To get started:</p>\n<ul>\n<li>Provide a chain name, wallet address and address of any fungible token, NFT or multitoken collection. Our API will return <code>true</code> if provided wallet address owns them.</li>\n<li>If wallet address does not own the specific token, response body is <code>false</code> and status code is <code>200</code>.</li>\n<li>It is also possible to check if wallet address owns a specific NFT by specifying a <code>tokenId</code>.</li>\n</ul>\n","operationId":"CheckOwnerV4","parameters":[{"description":"The blockchain to work with.","in":"query","name":"chain","required":true,"schema":{"$ref":"#/components/schemas/ChainEnumForOwnersAddress"}},{"description":"The blockchain address of the wallet.","in":"query","name":"address","required":true,"schema":{"type":"string","example":"0x2474a7227877f2b65185f09468af7c6577fa207c"}},{"description":"The blockchain address of the token (NFT collection or any fungible token).","in":"query","name":"tokenAddress","required":true,"schema":{"$ref":"#/components/schemas/TokenAddress"}},{"description":"The ID of a specific NFT token.","in":"query","name":"tokenId","schema":{"$ref":"#/components/schemas/TokenId"}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"boolean","example":true}}},"description":"OK"},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"403":{"$ref":"#/components/responses/Error403"},"500":{"$ref":"#/components/responses/Error500"}},"security":[{"X-API-Key":[]}],"x-codeSamples":[],"summary":"Check owner of token","tags":["NFT API"]}},"/v4/data/nft/balances":{"get":{"description":"<p style=\"display: none\">/v4/data/nft/balances</p>\n<p><b>50 credits per API call</b></p>\n<p>Get all NFTs that a blockchain address holds. The NFTs are returned grouped by the smart contracts they were minted on.</p>\n<p>This API is supported for the following blockchains:</p>\n<ul>\n<li>Ethereum - ethereum-mainnet / ethereum-sepolia / ethereum-holesky</li>\n<li>Solana - solana-mainnet / solana-devnet</li>\n<li>Base - base-mainnet / base-sepolia</li>\n<li>Arbitrum - arb-one-mainnet / arb-testnet</li>\n<li>BNB (Binance) Smart Chain - bsc-mainnet / bsc-testnet</li>\n<li>Polygon - polygon-mainnet / polygon-amoy</li>\n<li>Optimism - optimism-mainnet / optimism-testnet</li>\n<li>Berachain - berachain-mainnet</li>\n<li>Unichain - unichain-mainnet / unichain-sepolia</li>\n<li>Monad - monad-testnet</li>\n<li>Celo - celo-mainnet / celo-testnet</li>\n<li>Algorand - algorand-mainnet-algod / algorand-testnet-algod</li>\n</ul>\n<p>On Solana and Algorand, if a blockchain address holds fewer than 50 NFTs, the API also returns each NFT's metadata. If the metadata is not returned, you can obtain it using the <a href=\"https://apidoc.tatum.io/tag/NFT-(ERC-721-or-compatible)/#operation/NftGetMetadataErc721\">API for getting NFT metadata</a>.</p>\n","operationId":"GetNftBalancesV4","parameters":[{"description":"The blockchain to work with.","in":"query","name":"chain","required":true,"schema":{"$ref":"#/components/schemas/ChainEnumForNftBalances"}},{"description":"The blockchain address that you want to get the token balance of","in":"query","name":"address","required":true,"schema":{"type":"string","example":"0x2474a7227877f2b65185f09468af7c6577fa207c"}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/NftBalanceByAddressErc721"}}}},"description":"OK"},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"403":{"$ref":"#/components/responses/Error403"},"500":{"$ref":"#/components/responses/Error500"}},"security":[{"X-API-Key":[]}],"x-codeSamples":[],"summary":"Get NFT balance of a wallet address","tags":["NFT API"]}},"/v4/data/multitoken/balances":{"get":{"description":"<p style=\"display: none\">/v4/data/multitoken/balances</p>\n<p><b>50 credits per API call</b></p>\n<p>Get Multi Token balances of a wallet address. The Multi Tokens are returned grouped by the smart contracts they were minted on.</p>\n<p>This API is supported for the following blockchains:</p>\n<ul>\n<li>Ethereum - ethereum-mainnet / ethereum-sepolia / ethereum-holesky</li>\n<li>Base - base-mainnet / base-sepolia</li>\n<li>Arbitrum - arb-one-mainnet / arb-testnet</li>\n<li>Polygon - polygon-mainnet / polygon-amoy</li>\n<li>Optimism - optimism-mainnet / optimism-testnet</li>\n<li>Berachain - berachain-mainnet</li>\n<li>Unichain - unichain-mainnet / unichain-sepolia</li>\n<li>Monad - monad-testnet</li>\n<li>Celo - celo-mainnet / celo-testnet</li>\n<li>Algorand - algorand-mainnet-algod / algorand-testnet-algod</li>\n</ul>\n","operationId":"GetMultiTokenBalanceV4","parameters":[{"description":"Blockchain to work with","in":"query","name":"chain","required":true,"schema":{"type":"string","enum":["ethereum-mainnet","ethereum-sepolia","ethereum-holesky","base-mainnet","base-sepolia","arb-one-mainnet","arb-testnet","polygon-mainnet","polygon-amoy","optimism-mainnet","optimism-testnet","berachain-mainnet","unichain-mainnet","unichain-sepolia","monad-testnet","celo-mainnet","celo-testnet","algorand-mainnet-algod","algorand-testnet-algod"],"example":"ethereum-mainnet"}},{"description":"The blockchain address that you want to get the multitoken balance of","in":"query","name":"address","required":true,"schema":{"type":"string","example":"0x3223AEB8404C7525FcAA6C512f91e287AE9FfE7B"}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"contractAddress":{"type":"string","example":"0x771987a5add0ef1ce303aa069df82dd7f8fbb33b","description":"Contract address of the Multi Token"},"balances":{"type":"array","required":["tokenId","amount"],"items":{"type":"object","properties":{"tokenId":{"type":"string","description":"Token ID.","example":"10"},"amount":{"type":"string","description":"Number of tokens held by the address.","example":"17"}}}},"metadata":{"type":"array","items":{"type":"object","properties":{"tokenId":{"description":"The ID of the Multi Token owned by this address","example":"1","type":"string"},"url":{"description":"The URL pointing to the Multi Token metadata; the URL may not be present, and if it is not returned, you can get it by calling the Multi Token Contract.uri() method","example":"ipfs://QmXFpaS3S7CkLZvihLFA9JbawKdqhjg8dJeDkPntmkD2Pc","type":"string"},"metadata":{"type":"object","description":"The metadata scheme obtained from the metadata URL; the scheme may not be present, and if it is not returned, you can get it using the <a href=\"#operation/MultiTokenGetMetadata\">Multi Token metadata API</a>","example":{"name":"Example NFT name","description":"Example NFT description","image":"ipfs://QmP4R7ACZ7JRQ6sLdmnPHqjWEXxzdnPvhAV2f6RnQ8uxJ6"}}}}}}}}}},"description":"OK"},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"403":{"$ref":"#/components/responses/Error403"},"500":{"$ref":"#/components/responses/Error500"}},"security":[{"X-API-Key":[]}],"x-codeSamples":[],"summary":"Get Multi Token balances of a wallet address","tags":["NFT API"]}},"/v4/data/transaction/history":{"get":{"description":"<p style='display: none'>/v4/data/transaction/history</p>\n<p><b>20 credits per API call</b></p>\n\n<p>Get transaction history on the following blockchains:</p>\n<ul>\n<li>Ethereum - ethereum-mainnet / ethereum-sepolia</li>\n<li>Base - base-mainnet / base-sepolia</li>\n<li>Arbitrum - arb-one-mainnet / arb-testnet</li>\n<li>BNB (Binance) Smart Chain - bsc-mainnet / bsc-testnet</li>\n<li>Polygon - polygon-mainnet / polygon-amoy</li>\n<li>Optimism - optimism-mainnet / optimism-testnet</li>\n<li>Berachain - berachain-mainnet</li>\n<li>Unichain - unichain-mainnet / unichain-sepolia</li>\n<li>Monad - monad-mainnet / monad-testnet</li>\n<li>Celo - celo-mainnet</li>\n<li>Chiliz - chiliz-mainnet</li>\n<li>Tezos - tezos-mainnet</li>\n<li>Moca Chain - mocachain-devnet</li>\n</ul>\n<p>To get started:</p>\n<ul>\n<li>Provide a chain name and an address of that chain. Our API will return all of their transactions along with further information such as their block number, ID of involved token, and more.</li>\n<li>If not specified, the API returns transactions of various types (fungible, nft, multitoken, native), but you can also choose to filter specific <code>transactionTypes</code> and even <code>transactionSubtype</code> (incoming, outgoing, zero-transfer).</li>\n<li>On top of that, you can add further filters such as specifying block range where the transactions should have occurred, or address and ID of involved tokens.</li>\n<li><b>When you are filtering data using blockFrom and not using blockTo, blockTo is automatically added as blockFrom + 1000. The same applies when blockTo is present and blockFrom is not. In that case blockFrom is automatically added as blockTo - 1000.</b></li>\n<li>For Tezos blockchain, the API accepts only one wallet address in <code>addresses</code> query parameter. Following query parameters won't have any effect on filtering data: <code>transactionTypes</code>, <code>transactionSubtype</code>, <code>tokenId</code>, <code>blockTo</code>.</li>\n<li>When querying Tezos transactions for a specified wallet or contract address, pagination is supported via <code>pageSize</code> and <code>offset</code> query parameters. \n<li>When querying Tezos transactions for a specified block, pagination is supported via <code>cursor</code> query parameter, by filling in the value from <code>prevPage</code> or <code>nextPage</code> field in the response body.</li>\n<li>If a wallet has more than 250 transactions, we strongly recommend using the transactionTypes filter with <b>only one value at a time.</b> This is mandatory to ensure reliable, accurate, and high-quality responses.</li>\n</ul>\n","operationId":"GetTransactionHistoryV4","parameters":[{"description":"The blockchain to work with.","in":"query","name":"chain","required":true,"schema":{"$ref":"#/components/schemas/ChainEnumForTransactionHistory"}},{"description":"The blockchain public wallet addresses.\nOnly one address is allowed.\n","in":"query","name":"addresses","required":true,"schema":{"type":"string","example":"0x2474a7227877f2b65185f09468af7c6577fa207c"}},{"description":"The option to filter transaction based on types.\nIt is possible to enter list of multiple types as a comma separated string.\nUse fungible (ERC-20), nft (ERC-721 and ERC-1155), multitoken (ERC-1155) or native.\n","in":"query","name":"transactionTypes","schema":{"type":"string","example":"fungible,nft","enum":["fungible","nft","multitoken","native"]}},{"description":"The option to filter transaction based on subtype.","in":"query","name":"transactionSubtype","schema":{"type":"string","example":"incoming","enum":["incoming","outgoing","zero-transfer"]}},{"description":"Address of a token (smart contract).","in":"query","name":"tokenAddress","schema":{"$ref":"#/components/schemas/TokenAddress"}},{"description":"ID of a token.","in":"query","name":"tokenId","required":false,"schema":{"$ref":"#/components/schemas/TokenId"}},{"description":"Transactions from this block onwards will be included. If blockTo is not specified, it is automatically calculated as blockFrom + 1000.","in":"query","name":"blockFrom","required":false,"schema":{"$ref":"#/components/schemas/BlockNumber"}},{"description":"Transactions up to this block will be included. If blockFrom is not specified, it is automatically calculated as blockTo - 1000.","in":"query","name":"blockTo","required":false,"schema":{"$ref":"#/components/schemas/BlockNumberTo"}},{"description":"The number of items per page (default is 50).","in":"query","name":"pageSize","schema":{"$ref":"#/components/schemas/PageSize"}},{"description":"The offset to obtain next page of the data.","in":"query","name":"offset","schema":{"$ref":"#/components/schemas/Offset"}},{"description":"The cursor to obtain previous page or next page of the data. Available only for Tezos blockchain.","in":"query","name":"cursor","schema":{"$ref":"#/components/schemas/Cursor"}},{"description":"Sorting of the transactions. ASC - oldest first, DESC - newest first.","in":"query","name":"sort","schema":{"type":"string","default":"DESC","example":"ASC","enum":["ASC","DESC"]}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"array","description":"List of all selected transactions.","items":{"$ref":"#/components/schemas/TxDataWithoutIndex"},"example":[{"chain":"ethereum-mainnet","hash":"0x549447710026cef714da21fb29cbfae1f689bd3246f2fa0a5081149c4aeb3bb3","address":"0xdef1c0ded9bec7f1a1670819833240f027b25eff","blockNumber":16819465,"transactionType":"fungible","transactionSubtype":"incoming","amount":"0.990923706372082143","timestamp":1678715303000,"tokenAddress":"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2","counterAddress":"0x0d4a11d5eeaac28ec3f61d100daf4d40471f1852"},{"chain":"ethereum-mainnet","hash":"0x549447710026cef714da21fb29cbfae1f689bd3246f2fa0a5081149c4aeb3bb3","address":"0xdef1c0ded9bec7f1a1670819833240f027b25eff","blockNumber":16819465,"transactionType":"native","transactionSubtype":"zero-transfer","amount":"0","timestamp":1678715303000,"counterAddress":"0xd841e3d110cbe4aedb04c9dcc3572ec306bda2f9"},{"chain":"ethereum-mainnet","hash":"0x4e0268c1e67575fd09047e006dd5ad26df402d85fa159e10639e9ea7c2d428f7","address":"0x0000000000000000000000000000000000000000","blockNumber":16819465,"transactionType":"nft","transactionSubtype":"outgoing","amount":"-1","timestamp":1678715303000,"tokenId":"33","tokenAddress":"0x3bcad8a734e923133d2c8c3fd4747d47e12d4f79","counterAddress":"0x84300dcc7ca9cf447e886fa17c11fa22557d1af0"}]},"prevPage":{"type":"string","description":"Cursor pagination, used to get previous page of results (only relevant for Tezos).","example":"KtYxNTQ3MHwyNDV8cHJldgs="},"nextPage":{"type":"string","description":"Cursor pagination, used to get next page of results (only relevant for Tezos).","example":"MzYxNTQ3MHwyNDV8cHJldg=="}}}}},"description":"OK"},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"403":{"$ref":"#/components/responses/Error403"},"500":{"$ref":"#/components/responses/Error500"}},"security":[{"X-API-Key":[]}],"x-codeSamples":[],"summary":"Get transaction history","tags":["Transactions API"]}},"/v4/data/transactions/hash":{"get":{"description":"<p style='display: none'>/v4/data/transactions/hash</p>\n<p><b>10 credits per API call</b></p>\n\n> 📘 **Note for v3 API users:** \n>\n> As part of our documentation consolidation, we deprecated the endpoint for GET /v3/data/transactions/hash. Users can refer to GET /v4/data/transactions/hash for the latest documentation, as both endpoints function the same.\n\n<p>Get transactions by hash on the following blockchains:</p>\n<ul>\n<li>Ethereum - ethereum-mainnet / ethereum-sepolia / ethereum-holesky</li>\n<li>Base - base-mainnet / base-sepolia</li>\n<li>Arbitrum - arb-one-mainnet / arb-testnet</li>\n<li>BNB (Binance) Smart Chain - bsc-mainnet / bsc-testnet</li>\n<li>Polygon - polygon-mainnet</li>\n<li>Optimism - optimism-mainnet / optimism-testnet</li>\n<li>Berachain - berachain-mainnet</li>\n<li>Unichain - unichain-mainnet / unichain-sepolia</li>\n<li>Monad - monad-mainnet / monad-testnet</li>\n<li>Celo - celo-mainnet / celo-testnet</li>\n<li>Chiliz - chiliz-mainnet</li>\n<li>Tezos - tezos-mainnet</li>\n</ul>\n<p>To get started:</p>\n<ul>\n<li>Provide a chain name and transaction hash, and our API will return a list of transactions with that hash.</li>\n<li>The response will contain all the relevant information about specified transactions such as their block number, IDs of involved token, and more.</li>\n</ul>\n","operationId":"GetTransactionsByHashV4","parameters":[{"description":"The blockchain to work with.","in":"query","name":"chain","required":true,"schema":{"$ref":"#/components/schemas/ChainEnumForTxnByHash"}},{"description":"Hash of the transaction.","in":"query","name":"hash","required":true,"schema":{"type":"string","example":"0xd49f8d6544f2822522886a02f4787a56ea93bbd636bfdf81d6795a10553d7118"}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"array","description":"Selected transaction.","items":{"$ref":"#/components/schemas/TxData"},"example":[{"chain":"ethereum-mainnet","hash":"0xd49f8d6544f2822522886a02f4787a56ea93bbd636bfdf81d6795a10553d7118","address":"0x9757f2d2b135150bbeb65308d4a91804107cd8d6","blockNumber":16410533,"transactionIndex":139,"transactionType":"native","transactionSubtype":"incoming","amount":"0.000000000000000039","timestamp":1673765531000,"counterAddress":"0x47405b78a7f381842c4f3d6b2d630dc390f3de9f"},{"chain":"ethereum-mainnet","hash":"0xd49f8d6544f2822522886a02f4787a56ea93bbd636bfdf81d6795a10553d7118","address":"0x47405b78a7f381842c4f3d6b2d630dc390f3de9f","blockNumber":16410533,"transactionIndex":139,"transactionType":"native","transactionSubtype":"outgoing","amount":"-0.000000000000000039","timestamp":1673765531000,"counterAddress":"0x9757f2d2b135150bbeb65308d4a91804107cd8d6"}]}}},"description":"OK"},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"403":{"$ref":"#/components/responses/Error403"},"500":{"$ref":"#/components/responses/Error500"}},"security":[{"X-API-Key":[]}],"x-codeSamples":[],"summary":"Get transactions by hash","tags":["Transactions API"]}},"/v4/data/defi/events":{"get":{"description":"<p style='display: none'>/v4/data/defi/events</p>\n<p><b>50 credits per API call</b></p>\n\n<p>Get all events on given addresses and / or in the requested block range on the following blockchains:</p>\n<ul>\n<li>Ethereum - ethereum-mainnet / ethereum-sepolia / ethereum-holesky</li>\n<li>Base - base-mainnet / base-sepolia</li>\n<li>Arbitrum - arb-one-mainnet / arb-testnet</li>\n<li>BNB (Binance) Smart Chain - bsc-mainnet / bsc-testnet</li>\n<li>Polygon - polygon-mainnet</li>\n<li>Optimism - optimism-mainnet / optimism-testnet</li>\n<li>Berachain - berachain-mainnet</li>\n<li>Unichain - unichain-mainnet / unichain-sepolia</li>\n<li>Monad - monad-mainnet / monad-testnet</li>\n<li>Celo - celo-mainnet / celo-testnet</li>\n<li>Chiliz - chiliz-mainnet</li>\n</ul>\n<p>To get started:</p>\n<ul>\n<li>To improve response times and obtain specific data, it is recommended to use proper filtering techniques. Please provide a chain name and a combination of filters that will accomplish this (at least block range or contract addresses must be specified).</li>\n<li>It is possible to specify multiple contract addresses at once by passing them as a comma separated string.</li>\n<li>If block range is not specified, the API attempts to go through all available blocks, which may result in a timeout error.</li>\n<li>When you are filtering data using blockFrom and not using blockTo, blockTo is automatically added as blockFrom + 500. The same applies when blockTo is present and blockFrom is not. In that case blockFrom is automatically added as blockTo - 500.</li>\n<li>Block range filter is limited to maximum 500</li>\n<li>It is recommended to filter only one specific type of events, which comes with built-in decoding for all the supported types.</li>\n<li>It is, however, also possible to filter by signature hashes, which can be passed together as a comma separated string.</li>\n<li>For Chiliz, only the first signature will be considered; additional signatures in the array will be ignored.</li>\n</ul>\n<p>As noted above, aside from general info and hashed event data, the API also decodes them for you in case you filter by one of the following supported event types:</p>\n<ul>\n<li><code>tokenTransfer</code>: All transfers of fungible tokens (including stablecoins) and NFTs as per ERC-20 and ERC-721 standard.</li>\n<li><code>multitokenTransfer</code>: All transfers of multitokens (both single transfers and batch transfers) as per ERC-1155 standard.</li>\n<li><code>stablecoinTransfer</code>: Refers to the transfer of specific stablecoins on the mainnet. Typically, the top 10 to 16 stablecoins on each chain according to CoinMarketCap are included. If the <code>contractAddresses</code> parameter is also used in the filter combination, any tokens specified in it will also be included in the list.</li>\n<li><code>uniswapTrade</code>: Provides all swap events that occur on both Uniswap V2 and V3. In some cases, it may not be possible to map the swapped amounts to specific tokens. As a result, certain decoded data such as token amounts might be missing or in the original big number format. This will be indicated by the response parameter <code>partiallyRaw: true</code>.</li>\n</ul>\n","operationId":"GetDefiEventsV4","parameters":[{"description":"The blockchain to work with.","in":"query","name":"chain","required":true,"schema":{"$ref":"#/components/schemas/ChainEnumForBlocksAndEvents"}},{"description":"The blockchain addresses of the contracts where requested events were emitted.\nIt is possible to enter list of up to 10 addresses as a comma separated string.\n","in":"query","name":"contractAddresses","required":true,"schema":{"type":"string","example":"0x95ad61b0a150d79219dcf64e1e6cc01f0b64c4ce"}},{"description":"First block to start from (including this one).","in":"query","name":"blockFrom","required":true,"schema":{"$ref":"#/components/schemas/BlockNumber"}},{"description":"Last block to finish on (including this one).","in":"query","name":"blockTo","required":true,"schema":{"$ref":"#/components/schemas/BlockNumberTo"}},{"description":"The type of events that should be returned, which comes with decoded data in the response\n(cannot be used together with signatures).\n","in":"query","name":"eventType","required":true,"schema":{"type":"string","example":"tokenTransfer","enum":["tokenTransfer","multitokenTransfer","stablecoinTransfer","uniswapTrade"]}},{"description":"The types of events that should be returned, specified by hashed signature\n(cannot be used together with eventType).\nIt is possible to enter list of multiple signatures as a comma separated string.\nFor Chiliz, only the first signature will be considered.\n","in":"query","name":"signatures","schema":{"type":"string","example":"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"}},{"description":"The number of items per page (default is 50).","in":"query","name":"pageSize","schema":{"$ref":"#/components/schemas/PageSize"}},{"description":"The offset to obtain next page of the data.","in":"query","name":"offset","schema":{"$ref":"#/components/schemas/Offset"}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Event"},"description":"List of all event data.","example":{"tokenTransfer":{"value":[{"chain":"ethereum-mainnet","address":"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2","blockNumber":16719956,"timestamp":1677506087000,"decoded":{"label":"Transfer(address,address,uint256)","type":"fungible","subtype":"transfer","from":"0xb4e16d0168e52d35cacd2c6185b44281ec28c9dc","to":"0xb3d994978d2bc50d2ce74c45fcd923e7c9c06730","decimals":18,"value":"0.030041143652018106"},"raw":{"topic_0":"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","topic_1":"0x000000000000000000000000b4e16d0168e52d35cacd2c6185b44281ec28c9dc","topic_2":"0x000000000000000000000000b3d994978d2bc50d2ce74c45fcd923e7c9c06730","data":"0x000000000000000000000000000000000000000000000000006aba42d00667ba"},"txHash":"0x0ca14958f40d348bef24cd259a185c16867479b5f506e329063c4bb0b195a643","txIndex":144,"logIndex":231},{"chain":"ethereum-mainnet","address":"0xd4307e0acd12cf46fd6cf93bc264f5d5d1598792","blockNumber":16719955,"timestamp":1677506075000,"decoded":{"label":"Transfer(address,address,uint256)","type":"nft","subtype":"mint","from":"0x0000000000000000000000000000000000000000","to":"0x192038b97fc5a926367f84743533ad63250be09b","tokenId":"370349"},"raw":{"topic_0":"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","topic_1":"0x0000000000000000000000000000000000000000000000000000000000000000","topic_2":"0x000000000000000000000000192038b97fc5a926367f84743533ad63250be09b","topic_3":"0x000000000000000000000000000000000000000000000000000000000005a6ad"},"txHash":"0x52249e144a905e4e84f185ce4895dbd1c7b53fb9068461869e2c6dc7e2487296","txIndex":99,"logIndex":177}]},"stablecoinTransfer":{"value":[{"chain":"ethereum-mainnet","address":"0xdac17f958d2ee523a2206206994597c13d831ec7","blockNumber":16719958,"timestamp":1677506111000,"decoded":{"label":"Transfer(address,address,uint256)","type":"stablecoin","subtype":"transfer","from":"0x99de7724196070b9ff266adbac8c7abf56890207","to":"0xa9d1e08c7793af67e9d92fe308d5697fb81d3e43","decimals":6,"stablecoin":"USDT","value":"699.981164"},"raw":{"topic_0":"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","topic_1":"0x00000000000000000000000099de7724196070b9ff266adbac8c7abf56890207","topic_2":"0x000000000000000000000000a9d1e08c7793af67e9d92fe308d5697fb81d3e43","data":"0x0000000000000000000000000000000000000000000000000000000029b8dd6c"},"txHash":"0xd77eaf324742498451aeafcfe4b2b9f07d817f6f6b0b1ae13fab5121b7bb32af","txIndex":91,"logIndex":184},{"chain":"ethereum-mainnet","address":"0xdac17f958d2ee523a2206206994597c13d831ec7","blockNumber":16719947,"timestamp":1677505979000,"decoded":{"label":"Transfer(address,address,uint256)","type":"stablecoin","subtype":"transfer","from":"0x366cbca2412c2829fb80bfc844ed124938dd66c7","to":"0x28c6c06298d514db089934071355e5743bf21d60","decimals":6,"stablecoin":"USDT","value":"467727"},"raw":{"topic_0":"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","topic_1":"0x000000000000000000000000366cbca2412c2829fb80bfc844ed124938dd66c7","topic_2":"0x00000000000000000000000028c6c06298d514db089934071355e5743bf21d60","data":"0x0000000000000000000000000000000000000000000000000000006ce6b3a1c0"},"txHash":"0xb3aa57159446049acb1878b285452deb7fdcd798191472a3bae026006fc41fc7","txIndex":66,"logIndex":69}]},"multitokenTransfer":{"value":[{"chain":"ethereum-mainnet","address":"0xd955e7bd8ca9f2aad391760f849cfa4ee2d80d57","blockNumber":16719956,"timestamp":1677506087000,"decoded":{"label":"TransferSingle(address,address,address,uint256,uint256)","type":"multitoken","subtype":"transfer","from":"0x3dacc060c993ae03a7f956a4f8ff81a33fa75ea4","to":"0x5f8e0020c3164fb7eb170d7345672f6948ca0ff4","operator":"0x1e0049783f008a0085193e00003d00cd54003c71","multitokenId":"15","multitokenValue":"1"},"raw":{"topic_0":"0xc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62","topic_1":"0x0000000000000000000000001e0049783f008a0085193e00003d00cd54003c71","topic_2":"0x0000000000000000000000003dacc060c993ae03a7f956a4f8ff81a33fa75ea4","topic_3":"0x0000000000000000000000005f8e0020c3164fb7eb170d7345672f6948ca0ff4","data":"0x000000000000000000000000000000000000000000000000000000000000000f0000000000000000000000000000000000000000000000000000000000000001"},"txHash":"0xd134d76b8a38a031bfad4bd7e1ee390ba610fa71cd66c338f1055260569ab643","txIndex":180,"logIndex":349},{"chain":"ethereum-mainnet","address":"0xd955e7bd8ca9f2aad391760f849cfa4ee2d80d57","blockNumber":16719785,"timestamp":1677504011000,"decoded":{"label":"TransferBatch(address,address,address,uint256[],uint256[])","type":"multitoken","subtype":"mint","from":"0x0000000000000000000000000000000000000000","to":"0x1eb97e5c30c209e95913467fcc42c43274b0fe83","operator":"0x1eb97e5c30c209e95913467fcc42c43274b0fe83","multitokenIds":["26","21"],"multitokenValues":["1","1"]},"raw":{"topic_0":"0x4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb","topic_1":"0x0000000000000000000000001eb97e5c30c209e95913467fcc42c43274b0fe83","topic_2":"0x0000000000000000000000000000000000000000000000000000000000000000","topic_3":"0x0000000000000000000000001eb97e5c30c209e95913467fcc42c43274b0fe83","data":"0x000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000001a0000000000000000000000000000000000000000000000000000000000000015000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001"},"txHash":"0x2c4d5fa08d0d78cd08e3b2df66031f157d47d09dc931f0a0c967a086bd7dc593","txIndex":135,"logIndex":395}]},"uniswapTrade":{"value":[{"chain":"ethereum-mainnet","address":"0x939da43b6987a1012a19db7bb971c9d88d409e2e","blockNumber":16716951,"timestamp":1677469631000,"decoded":{"label":"Swap(address,uint256,uint256,uint256,uint256,address)","type":"uniswap","subtype":"v2","from":"0x68b3465833fb72a70ecdf485e0e4c7bd8665fc45","to":"0x29847b89f58cbf4749ab609c623cf4dadd703d68","token0":"0x80941467df667bfdad333d4dc3527713a620df3c","token1":"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2","amount0In":"0","amount1In":"0.02","amount0Out":"16.310991135231436277","amount1Out":"0"},"raw":{"topic_0":"0xd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822","topic_1":"0x00000000000000000000000068b3465833fb72a70ecdf485e0e4c7bd8665fc45","topic_2":"0x00000000000000000000000029847b89f58cbf4749ab609c623cf4dadd703d68","data":"0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000470de4df820000000000000000000000000000000000000000000000000000e25c4804a603e5f50000000000000000000000000000000000000000000000000000000000000000"},"txHash":"0xd07727fa56151ed6813010859eaeaecb731a3da35b42583a720e60441e760dfb","txIndex":105,"logIndex":316},{"chain":"ethereum-mainnet","address":"0x939da43b6987a1012a19db7bb971c9d88d409e2e","blockNumber":16716945,"timestamp":1677469520000,"decoded":{"label":"Swap(address,uint256,uint256,uint256,uint256,address)","type":"uniswap","subtype":"v2","from":"0x7a250d5630b4cf539739df2c5dacb4c659f2488d","to":"0xb90dd95cc9a8b603fa5b1ebf1fc54de792d51e44","token1":"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2","partiallyRaw":true,"amount0In":"0","amount1In":"38582795937639190","amount0Out":"19346934115717712","amount1Out":"0"},"raw":{"topic_0":"0xd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822","topic_1":"0x00000000000000000000000068b3465833fb72a70ecdf485e0e4c7bd8665fc45","topic_2":"0x00000000000000000000000029847b89f58cbf4749ab609c623cf4dadd703d68","data":"0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000470de4df820000000000000000000000000000000000000000000000000000e25c4804a603e5f50000000000000000000000000000000000000000000000000000000000000000"},"txHash":"0xd07727fa56151ed6813010859eaeaecb731a3da35b42583a720e60441e760dfb","txIndex":77,"logIndex":421},{"chain":"ethereum-mainnet","address":"0x8ad599c3a0ff1de082011efddc58f1908eb6e6d8","blockNumber":16715826,"timestamp":1677455963000,"decoded":{"label":"Swap(address,address,int256,int256,uint160,uint128,int24)","type":"uniswap","subtype":"v3","from":"0xef1c6e67703c7bd7107eed8303fbe6ec2554bf6b","to":"0x2e8daf55f212be91d3fa882cceab193a08fddeb2","token0":"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48","token1":"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2","amount0":"2539.314198","amount1":"-1.545466196980525897","sqrtPriceX96":"1957504157831843308092484471058274","liquidity":"16050202700964797693","tick":202307},"raw":{"topic_0":"0xc42079f94a6350d7e6235f29174924f928cc2ac818eb64fed8004e115fbcca67","topic_1":"0x000000000000000000000000ef1c6e67703c7bd7107eed8303fbe6ec2554bf6b","topic_2":"0x0000000000000000000000002e8daf55f212be91d3fa882cceab193a08fddeb2","data":"0x00000000000000000000000000000000000000000000000000000000975adc16ffffffffffffffffffffffffffffffffffffffffffffffffea8d66ae9c9a14b700000000000000000000000000000000000060832d1059b69d1a2cc113896f62000000000000000000000000000000000000000000000000debdc651a4059cfd0000000000000000000000000000000000000000000000000000000000031643"},"txHash":"0x3cb892c1f046f8467a7e081aedbbf90eeca93fa96a892ebf6f3c5db191dc29f5","txIndex":4,"logIndex":32}]}}}}},"description":"OK"},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"403":{"$ref":"#/components/responses/Error403"},"500":{"$ref":"#/components/responses/Error500"}},"security":[{"X-API-Key":[]}],"x-codeSamples":[],"summary":"Get specified events","tags":["DeFi API"]}},"/v4/data/defi/blocks":{"get":{"description":"<p style='display: none'>/v4/data/defi/blocks</p>\n<p><b>10 credits per API call</b></p>\n\n<p>Get information about blocks (when they were added, block hashes and list of transaction hashes that were processed within them) on the following blockchains:</p>\n<ul>\n<li>Ethereum - ethereum-mainnet / ethereum-sepolia / ethereum-holesky</li>\n<li>Base - base-mainnet / base-sepolia</li>\n<li>Arbitrum - arb-one-mainnet / arb-testnet</li>\n<li>BNB (Binance) Smart Chain - bsc-mainnet / bsc-testnet</li>\n<li>Polygon - polygon-mainnet</li>\n<li>Optimism - optimism-mainnet / optimism-testnet</li>\n<li>Berachain - berachain-mainnet</li>\n<li>Unichain - unichain-mainnet / unichain-sepolia</li>\n<li>Monad - monad-mainnet / monad-testnet</li>\n<li>Celo - celo-mainnet / celo-testnet</li>\n<li>Chiliz - chiliz-mainnet</li>\n</ul>\n<p>To get started, provide a chain and specify one of the filters listed below (combination of these filters is not allowed):</p>\n<ul>\n<li>List of block numbers separated by comma</li>\n<li>Range of block numbers</li>\n<li>Date range when blocks were processed</li>\n<li>When you are filtering data using blockFrom and not using blockTo, blockTo is automatically added as blockFrom + 1000. The same applies when blockTo is present and blockFrom is not. In that case blockFrom is automatically added as blockTo - 1000.</li>\n</ul>\n","operationId":"GetDefiBlocksV4","parameters":[{"description":"The blockchain to work with.","in":"query","name":"chain","required":true,"schema":{"$ref":"#/components/schemas/ChainEnumForBlocksAndEvents"}},{"description":"List of block numbers, separated by comma.","in":"query","name":"blockIds","schema":{"type":"array","items":{"type":"integer"},"example":"1,2,4,400","minimum":0}},{"description":"Range of block numbers. Both blockFrom and blockTo need to be specified.","in":"query","name":"blockFrom","schema":{"$ref":"#/components/schemas/BlockNumber"}},{"description":"Range of block numbers. Both blockFrom and blockTo need to be specified.","in":"query","name":"blockTo","schema":{"$ref":"#/components/schemas/BlockNumber"}},{"description":"Date range when blocks were processed. Both timeFrom and timeTo need to be specified.","in":"query","name":"timeFrom","schema":{"type":"string","example":"2022-12-24T00:10"}},{"description":"Date range when blocks were processed. Both timeFrom and timeTo need to be specified.","in":"query","name":"timeTo","schema":{"type":"string","example":"2022-12-24T00:20"}},{"description":"The number of items per page (default is 50).","in":"query","name":"pageSize","schema":{"$ref":"#/components/schemas/PageSize"}},{"description":"The offset to obtain next page of the data.","in":"query","name":"offset","schema":{"$ref":"#/components/schemas/Offset"}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DefiBlockItem"},"description":"List of blocks added to a blockchain.","example":[{"blockNumber":10,"blockTimestamp":1598671520000,"hash":"0xec1a2d906f34e1981b2b1a15dbe5e10cf640e8b4b27dc056ebb65c0409b5a9af"},{"blockNumber":11,"blockTimestamp":1598671540000,"hash":"0xa78e7a9c6910fea66a981389735e0c652f1625905c6e0dca08d3f5c1694b7cc4","txHashes":["0x19eaae1f7bdd28605f4175d7e87c9de68431bf76e85a262e268252a84bfc3984"]}]}}},"description":"OK"},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"403":{"$ref":"#/components/responses/Error403"},"500":{"$ref":"#/components/responses/Error500"}},"security":[{"X-API-Key":[]}],"x-codeSamples":[],"summary":"Get specified blocks","tags":["DeFi API"]}},"/v4/data/defi/blocks/latest":{"get":{"description":"<p style='display: none'>/v4/data/defi/blocks/latest</p>\n<p><b>10 credit per API call</b></p>\n\n<p>Get information about latest added block on the following blockchains:</p>\n<ul>\n<li>Ethereum - ethereum-mainnet / ethereum-sepolia / ethereum-holesky</li>\n<li>Base - base-mainnet / base-sepolia</li>\n<li>Arbitrum - arb-one-mainnet / arb-testnet</li>\n<li>BNB (Binance) Smart Chain - bsc-mainnet / bsc-testnet</li>\n<li>Polygon - polygon-mainnet</li>\n<li>Optimism - optimism-mainnet / optimism-testnet</li>\n<li>Berachain - berachain-mainnet</li>\n<li>Unichain - unichain-mainnet / unichain-sepolia</li>\n<li>Monad - monad-mainnet / monad-testnet</li>\n<li>Celo - celo-mainnet / celo-testnet</li>\n<li>Chiliz - chiliz-mainnet</li>\n</ul>\n<p>To get started, you can just provide a chain.</p>\n","operationId":"GetLatestDefiBlockV4","parameters":[{"description":"The blockchain to work with.","in":"query","name":"chain","required":true,"schema":{"$ref":"#/components/schemas/ChainEnumForBlocksAndEvents"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DefiBlockItem","description":"Latest block added to a blockchain.","example":{"blockNumber":25987956,"blockTimestamp":1677372871000,"hash":"0x047a6ab09f86c760c145dc09b7a43b74d6ad957133ba4462a5530c642d4d9f17","txHashes":["0x01a7983d1391b74305840e4960ba6c61417a9398cb938c3522d0a4a9cedf488f","0x0478fdae7e5e6f1eb522e6f43ba760c924b1f72d16e4dadc332f150829d09cbe","0x05d00f08ae523e445c3b1e7bbabec1896091234643d50e8bcdb76ddd3ff3827a","0x0b644c19257cf34ab98c509c7901af5a4ad8c6f537b625b46ee771a45f1940dc","0x0c1016bf317946d9997588ee3b932bc8ba6033cfcb83eca4b5ebcc4f5eaa076d"]}}}},"description":"OK"},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"403":{"$ref":"#/components/responses/Error403"},"500":{"$ref":"#/components/responses/Error500"}},"security":[{"X-API-Key":[]}],"x-codeSamples":[],"summary":"Get latest block","tags":["DeFi API"]}},"/v4/data/block/time":{"get":{"description":"<p style='display: none'>/v4/data/block/time</p>\n<p><b>20 credits per API call</b></p>\n<p>Get block number by time on the following blockchains:</p>\n<ul>\n<li>Ethereum - ethereum-mainnet / ethereum-sepolia / ethereum-holesky</li>\n<li>Bitcoin - bitcoin-mainnet</li>\n<li>Base - base-mainnet / base-sepolia</li>\n<li>Arbitrum - arb-one-mainnet / arb-testnet</li>\n<li>BNB (Binance) Smart Chain - bsc-mainnet / bsc-testnet</li>\n<li>Polygon - polygon-mainnet</li>\n<li>Optimism - optimism-mainnet / optimism-testnet</li>\n<li>Berachain - berachain-mainnet</li>\n<li>Unichain - unichain-mainnet / unichain-sepolia</li>\n<li>Monad - monad-testnet</li>\n<li>Celo - celo-mainnet / celo-testnet</li>\n</ul>\n<p>To get started, provide a chain name and specify one of the filters listed below (combination of the filters is not allowed):</p>\n<ul>\n<li>time</li>\n<li>unix</li>\n</ul>\n<p>If you pass a time or Unix timestamp that is in the future, the system will return the number for the latest block.</p>\n<p>If you pass a time or Unix timestamp in the past (dating back to or earlier than the blockchain's genesis block), the system will return 0.</p>\n","operationId":"GetBlockByTimeV4","parameters":[{"description":"The blockchain to work with.","in":"query","name":"chain","required":true,"schema":{"$ref":"#/components/schemas/ChainEnumForBlockByTime"}},{"description":"Time when block is processed.","in":"query","name":"time","schema":{"type":"string","example":"2022-12-24T00:20"}},{"description":"Unix timestamp when block is processed.","in":"query","name":"unix","schema":{"type":"number","example":1587390414}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"number","example":22838895}}},"description":"OK"},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"403":{"$ref":"#/components/responses/Error403"},"500":{"$ref":"#/components/responses/Error500"}},"security":[{"X-API-Key":[]}],"x-codeSamples":[],"summary":"Get block by time","tags":["DeFi API"]}},"/v4/data/blockchains/block/current":{"get":{"description":"<p style='display: none'>/v4/data/blockchains/block/current</p>\n<p><b>10 credits per API call</b></p>\n\n<p>Get the latest block height for supported blockchains. The response is a block number (height) for most chains.</p>\n","operationId":"GetCurrentBlockBlockchainsApi","parameters":[{"description":"Blockchain to query.","in":"query","name":"chain","required":true,"schema":{"$ref":"#/components/schemas/ChainEnumBlockchainsApiBlock"}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"number","example":52034123}}},"description":"OK"},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"403":{"$ref":"#/components/responses/Error403"},"500":{"$ref":"#/components/responses/Error500"}},"security":[{"X-API-Key":[]}],"x-codeSamples":[],"summary":"Get current block height","tags":["Blockchains API"]}},"/v4/data/blockchains/block":{"get":{"description":"<p style='display: none'>/v4/data/blockchains/block</p>\n<p><b>50 credits per API call</b></p>\n\n<p>Get block details by hash or height for supported blockchains. Response shape differs by chain (EVM-style vs UTXO-style). Bitcoin Cash (bch-mainnet, bch-testnet) returns the raw node block format (see UtxoRawBlock).</p>\n","operationId":"GetBlockBlockchainsApi","parameters":[{"description":"Blockchain to query.","in":"query","name":"chain","required":true,"schema":{"$ref":"#/components/schemas/ChainEnumBlockchainsApiBlock"}},{"description":"Block hash or height (depending on chain).","in":"query","name":"hashOrHeight","required":true,"schema":{"type":"string","example":"0x1049095"}}],"responses":{"200":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/EVMBlock"},{"$ref":"#/components/schemas/UtxoBlock"},{"$ref":"#/components/schemas/UtxoRawBlock"}]}}},"description":"OK"},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"403":{"$ref":"#/components/responses/Error403"},"500":{"$ref":"#/components/responses/Error500"}},"security":[{"X-API-Key":[]}],"x-codeSamples":[],"summary":"Get block by hash or height","tags":["Blockchains API"]}},"/v4/data/blockchains/block/hash":{"get":{"description":"<p style='display: none'>/v4/data/blockchains/block/hash</p>\n<p><b>10 credits per API call</b></p>\n\n<p>Get the block hash for a given block height (block number) for supported blockchains. Use block number only (e.g. ledger index for Ripple, sequence for Stellar).</p>\n","operationId":"GetBlockHashBlockchainsApi","parameters":[{"description":"Blockchain to query.","in":"query","name":"chain","required":true,"schema":{"$ref":"#/components/schemas/ChainEnumBlockchainsApiBlock"}},{"description":"Block height (block number). For Ripple use ledger index; for Stellar use sequence.","in":"query","name":"blockNumber","required":true,"schema":{"type":"integer","minimum":0,"example":481863047}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["hash"],"properties":{"hash":{"type":"string","description":"Block hash (hex or chain-specific format)."}}}}},"description":"OK"},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"403":{"$ref":"#/components/responses/Error403"},"500":{"$ref":"#/components/responses/Error500"}},"security":[{"X-API-Key":[]}],"x-codeSamples":[],"summary":"Get block hash by block number","tags":["Blockchains API"]}},"/v4/data/blockchains/utxo/info":{"get":{"description":"<p style='display: none'>/v4/data/blockchains/utxo/info</p>\n<p><b>10 credits per API call</b></p>\n\n<p>Get information about a transaction output (UTXO) by transaction hash and output index. Supported for Bitcoin, Litecoin, Dogecoin, and Bitcoin Cash. Response is normalized: <code>value</code> in smallest unit (satoshis), <code>address</code>, <code>script</code>, <code>hash</code>, <code>index</code>, and <code>height</code> (block height; for mempool/unconfirmed UTXOs, <code>height</code> is <code>-1</code>). If the output is spent, the API returns 403.</p>\n","operationId":"GetUtxoInfoBlockchainsApi","parameters":[{"description":"UTXO blockchain (bitcoin-mainnet, bitcoin-testnet, litecoin-mainnet, litecoin-testnet, dogecoin-mainnet, dogecoin-testnet, bch-mainnet, bch-testnet).","in":"query","name":"chain","required":true,"schema":{"$ref":"#/components/schemas/ChainEnumBlockchainsApiUtxoInfo"}},{"description":"Transaction hash.","in":"query","name":"hash","required":true,"schema":{"type":"string","example":"cfe764afba737c7b1e8838c8e0f66ad2ad0b96b3d80b49561faad59f072eb11e"}},{"description":"Output index (vout) in the transaction.","in":"query","name":"index","required":true,"schema":{"type":"integer","minimum":0,"example":1}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UtxoInfoResponse"}}},"description":"OK"},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"403":{"$ref":"#/components/responses/Error403"},"500":{"$ref":"#/components/responses/Error500"}},"security":[{"X-API-Key":[]}],"x-codeSamples":[],"summary":"Get UTXO info by tx hash and index","tags":["Blockchains API"]}},"/v4/data/blockchains/mempool":{"get":{"description":"<p style='display: none'>/v4/data/blockchains/mempool</p>\n<p><b>20 credits per API call</b></p>\n\n<p>Get mempool (unconfirmed) transaction hashes for a UTXO chain. Supported chains: Bitcoin, Litecoin, Dogecoin, BCH (mainnet and testnet). Response is an array of transaction hashes (strings).</p>\n","operationId":"GetMempoolBlockchainsApi","parameters":[{"description":"UTXO blockchain (bitcoin-mainnet, bitcoin-testnet, litecoin-mainnet, litecoin-testnet, dogecoin-mainnet, dogecoin-testnet, bch-mainnet, bch-testnet).","in":"query","name":"chain","required":true,"schema":{"$ref":"#/components/schemas/ChainEnumBlockchainsApiMempool"}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"array","items":{"type":"string"},"description":"Mempool transaction hashes."}}},"description":"OK"},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"403":{"$ref":"#/components/responses/Error403"},"500":{"$ref":"#/components/responses/Error500"}},"security":[{"X-API-Key":[]}],"x-codeSamples":[],"summary":"Get mempool transaction hashes","tags":["Blockchains API"]}},"/v4/data/blockchains/transaction":{"get":{"description":"<p style='display: none'>/v4/data/blockchains/transaction</p>\n<p><b>10 credits per API call</b></p>\n\n<p>Get a transaction by hash. Response shape differs by chain (EVM-style vs UTXO-style). Bitcoin Cash (bch-mainnet, bch-testnet) returns the raw node transaction format (see UtxoRawTransaction).</p>\n","operationId":"GetTransactionBlockchainsApi","parameters":[{"description":"Blockchain to query.","in":"query","name":"chain","required":true,"schema":{"$ref":"#/components/schemas/ChainEnumBlockchainsApiTxByHash"}},{"description":"Transaction hash.","in":"query","name":"hash","required":true,"schema":{"type":"string","example":"0x7b3b0b..."}}],"responses":{"200":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/EVMTransaction"},{"$ref":"#/components/schemas/UTXOTransaction"},{"$ref":"#/components/schemas/UtxoRawTransaction"}]}}},"description":"OK"},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"403":{"$ref":"#/components/responses/Error403"},"500":{"$ref":"#/components/responses/Error500"}},"security":[{"X-API-Key":[]}],"x-codeSamples":[],"summary":"Get transaction by hash","tags":["Blockchains API"]}},"/v4/data/blockchains/transaction/internal":{"get":{"description":"<p style='display: none'>/v4/data/blockchains/transaction/internal</p>\n<p><b>20 credits per API call</b></p>\n\n<p>Get internal transactions by address for EVM chains (Ethereum, BSC, Polygon, Celo, Base, Arbitrum, Optimism, Bera, Unichain, Monad).</p>\n","operationId":"GetInternalTransactionsBlockchainsApi","parameters":[{"description":"EVM chain to query (ethereum, bsc, polygon, celo, base, arb-one, optimism, bera, uni, monad and their testnets).","in":"query","name":"chain","required":true,"schema":{"$ref":"#/components/schemas/ChainEnumBlockchainsApiInternalTx"}},{"description":"Address to get internal transactions for.","in":"query","name":"address","required":true,"schema":{"type":"string","example":"0x278d858f05b94576C1E6f73285886876ff6eF8D2"}},{"description":"Number of items per page (1-100).","in":"query","name":"pageSize","required":true,"schema":{"type":"integer","minimum":1,"maximum":100,"example":20}},{"description":"Offset for pagination (0-based).","in":"query","name":"offset","schema":{"type":"integer","minimum":0,"example":0}},{"description":"Optional block height to start from (inclusive).","in":"query","name":"blockFrom","schema":{"type":"integer","minimum":0}},{"description":"Optional block height to end at (inclusive); must be >= blockFrom if set.","in":"query","name":"blockTo","schema":{"type":"integer","minimum":0}},{"description":"Sort order - desc for latest first, asc for oldest first.","in":"query","name":"sort","schema":{"type":"string","enum":["asc","desc"],"default":"desc"}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/InternalTransaction"}}}},"description":"OK"},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"403":{"$ref":"#/components/responses/Error403"},"500":{"$ref":"#/components/responses/Error500"}},"security":[{"X-API-Key":[]}],"x-codeSamples":[],"summary":"Get internal transactions by address","tags":["Blockchains API"]}},"/v4/data/blockchains/balance":{"get":{"description":"<p style='display: none'>/v4/data/blockchains/balance</p>\n<p><b>10 credits per API call</b></p>\n\n<p>Get native balance for an address. UTXO chains return additional aggregated fields.</p>\n","operationId":"GetBalanceBlockchainsApi","parameters":[{"description":"Blockchain to query.","in":"query","name":"chain","required":true,"schema":{"$ref":"#/components/schemas/ChainEnumBlockchainsApiBalance"}},{"description":"Address to check.","in":"query","name":"address","required":true,"schema":{"type":"string","example":"0x8ba1f109551bd432803012645ac136ddd64dba72"}}],"responses":{"200":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/BalanceSimple"},{"$ref":"#/components/schemas/BalanceUtxo"}]}}},"description":"OK"},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"403":{"$ref":"#/components/responses/Error403"},"500":{"$ref":"#/components/responses/Error500"}},"security":[{"X-API-Key":[]}],"x-codeSamples":[],"summary":"Get native balance","tags":["Blockchains API"]}},"/v4/data/blockchains/balance/batch":{"get":{"description":"<p style='display: none'>/v4/data/blockchains/balance/batch</p>\n<p><b>10 credits per address (e.g. 3 addresses = 30 credits)</b></p>\n\n<p>Get native balance for multiple addresses in one request. Supports up to 30 comma-separated addresses (up to 10 for Tron). UTXO chains (Bitcoin, Litecoin, Dogecoin) return additional aggregated fields per address.</p>\n","operationId":"GetBalanceBatchBlockchainsApi","parameters":[{"description":"Blockchain to query.","in":"query","name":"chain","required":true,"schema":{"$ref":"#/components/schemas/ChainEnumBlockchainsApiBalance"}},{"description":"Comma-separated list of addresses (max 30, max 10 for Tron).","in":"query","name":"addresses","required":true,"schema":{"type":"string","example":"0x8ba1f109551bd432803012645ac136ddd64dba72,0xd6A7AC86DF3017A164d7d3991Fe76c9fdc8a4A61"}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/BalanceBatchItemSimple"},{"$ref":"#/components/schemas/BalanceBatchItemUtxo"}]}}}},"description":"OK"},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"403":{"$ref":"#/components/responses/Error403"},"500":{"$ref":"#/components/responses/Error500"}},"security":[{"X-API-Key":[]}],"x-codeSamples":[],"summary":"Get native balance (batch)","tags":["Blockchains API"]}},"/v4/data/blockchains/transaction/count":{"get":{"description":"<p style='display: none'>/v4/data/blockchains/transaction/count</p>\n<p><b>10 credits per API call</b></p>\n\n<p>Get the count of outgoing transactions (including pending) for the given address.</p>\n","operationId":"GetTransactionCountBlockchainsApi","parameters":[{"description":"Blockchain to query.","in":"query","name":"chain","required":true,"schema":{"$ref":"#/components/schemas/ChainEnumBlockchainsApiTxCount"}},{"description":"Address to inspect.","in":"query","name":"address","required":true,"schema":{"type":"string","example":"0x8ba1f109551bd432803012645ac136ddd64dba72"}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"integer","example":42}}},"description":"OK"},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"403":{"$ref":"#/components/responses/Error403"},"500":{"$ref":"#/components/responses/Error500"}},"security":[{"X-API-Key":[]}],"x-codeSamples":[],"summary":"Get outgoing transaction count","tags":["Blockchains API"]}},"/v4/data/blockchains/transaction/history/utxos":{"get":{"description":"<p style='display: none'>/v4/data/blockchains/transaction/history/utxos</p>\n<p><b>20 credits per API call</b></p>\n\n<p>Get transaction history by address for UTXO chains (Bitcoin, Litecoin, Dogecoin, Cardano) with pagination and optional block range and tx type filter.</p>\n\n<p><b>Cardano (ADA):</b> Only <code>address</code>, <code>pageSize</code>, and <code>offset</code> are supported. Filters <code>blockFrom</code>, <code>blockTo</code>, and <code>txType</code> are not available for Cardano.</p>\n","operationId":"GetTransactionHistoryUtxosBlockchainsApi","parameters":[{"description":"Blockchain to query (Bitcoin, Litecoin, Dogecoin, or Cardano mainnet/testnet).","in":"query","name":"chain","required":true,"schema":{"$ref":"#/components/schemas/ChainEnumBlockchainsApiTransactionHistoryUtxos"}},{"description":"Address to get transaction history for.","in":"query","name":"address","required":true,"schema":{"type":"string","example":"n1XxR8s3E2n3F4G5H6I7J8K9L0M1N2O3P4Q5R"}},{"description":"Number of items per page (1-50).","in":"query","name":"pageSize","required":true,"schema":{"type":"integer","minimum":1,"maximum":50,"example":20}},{"description":"Offset for pagination (0-based).","in":"query","name":"offset","schema":{"type":"integer","minimum":0,"example":0}},{"description":"Optional block height to start from (inclusive). Not supported for Cardano.","in":"query","name":"blockFrom","schema":{"type":"integer","minimum":0}},{"description":"Optional block height to end at (inclusive); must be >= blockFrom if set. Not supported for Cardano.","in":"query","name":"blockTo","schema":{"type":"integer","minimum":0}},{"description":"Filter by transaction direction (incoming/outgoing). Not supported for Cardano.","in":"query","name":"txType","schema":{"type":"string","enum":["incoming","outgoing"]}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/UTXOTransaction"},{"$ref":"#/components/schemas/AdaTransactionHistoryItem"}]}},"example":[{"block":{"hash":"cef055873866ac0f77bae20da2b80ac0ffa5c6df3c15e6144b7e313d88b56f66","number":13050937},"hash":"121c14f0758b8f3465407a2bf893f9afcf75e7396850bc3390571a9c5255c6a9","inputs":[{"address":"addr1qywlx4v9sa7jplgdrjr2vjjdsjx509zenr4zt9w7gmn4cwga7d2ctpmayr7s68yx5e9ympydg729nx82yk2au3h8tsusqtczws","symbol":"ADA","value":"1456780","txHash":"121c14f0758b8f3465407a2bf893f9afcf75e7396850bc3390571a9c5255c6a9"}],"outputs":[{"address":"addr1qywlx4v9sa7jplgdrjr2vjjdsjx509zenr4zt9w7gmn4cwga7d2ctpmayr7s68yx5e9ympydg729nx82yk2au3h8tsusqtczws","symbol":"ADA","value":"1456780","index":2,"txHash":"121c14f0758b8f3465407a2bf893f9afcf75e7396850bc3390571a9c5255c6a9"}],"withdrawals":[{"address":"stake1uywlx4v9sa7jplgdrjr2vjjdsjx509zenr4zt9w7gmn4cwgtgtz6h","symbol":"ADA","value":"5323949","txHash":"121c14f0758b8f3465407a2bf893f9afcf75e7396850bc3390571a9c5255c6a9"}],"fee":"209479"}]}},"description":"OK"},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"403":{"$ref":"#/components/responses/Error403"},"500":{"$ref":"#/components/responses/Error500"}},"security":[{"X-API-Key":[]}],"x-codeSamples":[],"summary":"Get transaction history (UTXO)","tags":["Blockchains API"]}},"/v4/data/blockchains/transaction/history/utxos/batch":{"post":{"description":"<p style='display: none'>/v4/data/blockchains/transaction/history/utxos/batch</p>\n<p><b>20 credits per address (e.g. 5 addresses = 100 credits)</b></p>\n\n<p>Get transaction history by address for multiple addresses in one request (UTXO chains: Bitcoin, Litecoin, Dogecoin, Cardano). Max 30 addresses. Optional <code>txType</code> filter (incoming/outgoing) for BTC/LTC/DOGE.</p>\n\n<p><b>Cardano (ADA):</b> Only <code>addresses</code> are used. Filter <code>txType</code> is not available for Cardano. Returns ADA format (see example).</p>\n","operationId":"GetTransactionHistoryUtxosBatchBlockchainsApi","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["chain","addresses"],"properties":{"chain":{"$ref":"#/components/schemas/ChainEnumBlockchainsApiTransactionHistoryUtxos"},"addresses":{"type":"array","minItems":1,"maxItems":30,"items":{"type":"string"},"description":"Comma-separated or array of addresses (max 30)."},"txType":{"type":"string","enum":["incoming","outgoing"],"description":"Optional filter by transaction direction. Not supported for Cardano."}}}}}},"responses":{"200":{"content":{"application/json":{"schema":{"type":"array","items":{"type":"object","required":["address","transactions"],"properties":{"address":{"type":"string","description":"The requested address."},"transactions":{"type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/UTXOTransaction"},{"$ref":"#/components/schemas/AdaTransactionHistoryItem"}]}}}}},"examples":{"ada":{"summary":"Cardano (ADA) response","value":[{"address":"addr1qywlx4v9sa7jplgdrjr2vjjdsjx509zenr4zt9w7gmn4cwga7d2ctpmayr7s68yx5e9ympydg729nx82yk2au3h8tsusqtczws","transactions":[{"block":{"hash":"cef055873866ac0f77bae20da2b80ac0ffa5c6df3c15e6144b7e313d88b56f66","number":13050937},"hash":"121c14f0758b8f3465407a2bf893f9afcf75e7396850bc3390571a9c5255c6a9","inputs":[{"address":"addr1qywlx4v9sa7jplgdrjr2vjjdsjx509zenr4zt9w7gmn4cwga7d2ctpmayr7s68yx5e9ympydg729nx82yk2au3h8tsusqtczws","symbol":"ADA","value":"1456780","txHash":"121c14f0758b8f3465407a2bf893f9afcf75e7396850bc3390571a9c5255c6a9"}],"outputs":[{"address":"addr1qywlx4v9sa7jplgdrjr2vjjdsjx509zenr4zt9w7gmn4cwga7d2ctpmayr7s68yx5e9ympydg729nx82yk2au3h8tsusqtczws","symbol":"ADA","value":"1456780","index":2,"txHash":"121c14f0758b8f3465407a2bf893f9afcf75e7396850bc3390571a9c5255c6a9"}],"withdrawals":[{"address":"stake1uywlx4v9sa7jplgdrjr2vjjdsjx509zenr4zt9w7gmn4cwgtgtz6h","symbol":"ADA","value":"5323949","txHash":"121c14f0758b8f3465407a2bf893f9afcf75e7396850bc3390571a9c5255c6a9"}],"fee":"209479"}]}]}}}},"description":"OK"},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"403":{"$ref":"#/components/responses/Error403"},"500":{"$ref":"#/components/responses/Error500"}},"security":[{"X-API-Key":[]}],"x-codeSamples":[],"summary":"Get transaction history (UTXO) batch","tags":["Blockchains API"]}},"/v4/data/tokens":{"get":{"description":"<p style='display: none'>/v4/data/tokens</p>\n<p><b>20 credit per API call</b></p>\n\n> 📘 **Note for v3 API users:** \n>\n> As part of our documentation consolidation, we removed the dedicated page for GET /v3/data/tokens. Users can refer to GET /v4/data/tokens for the latest documentation, as both endpoints function the same—simply replace v4 with v3 in the API URL if using the v3 version.\n\n<p>Get information about your favorite token! Our API lets you search for all tokens on:</p>\n<ul>\n<li>Ethereum - ethereum-mainnet / ethereum-sepolia / ethereum-holesky</li>\n<li>Solana - solana-mainnet / solana-devnet</li>\n<li>Base - base-mainnet / base-sepolia</li>\n<li>Arbitrum - arb-one-mainnet / arb-testnet</li>\n<li>BNB (Binance) Smart Chain - bsc-mainnet / bsc-testnet</li>\n<li>Polygon - polygon-mainnet</li>\n<li>Optimism - optimism-mainnet / optimism-testnet</li>\n<li>Berachain - berachain-mainnet</li>\n<li>Unichain - unichain-mainnet / unichain-sepolia</li>\n<li>Monad - monad-mainnet / monad-testnet</li>\n<li>Celo - celo-mainnet / celo-testnet</li>\n<li>Chiliz - chiliz-mainnet</li>\n<li>Tezos - tezos-mainnet</li>\n</ul>\n<p>To get started:</p>\n<ul>\n<li>Provide a chain and address of any fungible token, NFT or multitoken collection. If available, our API will return information about them such as their name, symbol, supply, and more.</li>\n<li>You can also get extra information (such as metadata) of a specific NFT or multitoken by passing <code>tokenId</code> as a query parameter.</li>\n<li>You can also get information (such as supply, decimals) about the native currency by passing <code>'native'</code> keyword in the <code>tokenAddress</code> parameter. It is supported only for the mainnet of the following chains:\n  <ul>\n  <li>Ethereum</li>\n  <li>Polygon</li>\n  <li>Berachain</li>\n  <li>Celo</li>\n  <li>Tezos</li>\n  <li>Solana</li>\n  </ul>\n</li>\n</ul>\n","operationId":"GetTokensV4","parameters":[{"description":"The blockchain to work with.","in":"query","name":"chain","required":true,"schema":{"$ref":"#/components/schemas/ChainEnumForTokens"}},{"description":"The blockchain address of the token (NFT collection or any fungible token) or 'native' keyword to get information about the native currency of the chain.","in":"query","name":"tokenAddress","required":true,"schema":{"$ref":"#/components/schemas/TokenAddress"}},{"description":"The ID of a specific NFT token.","in":"query","name":"tokenId","schema":{"$ref":"#/components/schemas/TokenId"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/FungibleInfo"},{"$ref":"#/components/schemas/NativeInfo"},{"$ref":"#/components/schemas/NftInfo"},{"$ref":"#/components/schemas/MultitokenInfo"},{"$ref":"#/components/schemas/NftTokenInfo"},{"$ref":"#/components/schemas/NftInfoTezos"},{"$ref":"#/components/schemas/FungibleInfoTezos"}],"description":"Information about specific collection or token\n(not all fields are available for every token, e.g. some multitokens do not have name and symbol).\n","example":{"name":"BeefyCollectibles","symbol":"RareItem","tokenType":"nft","metadataURI":"QmYrUYv3kCXsrbs8YGguwZkyyMgGkgdQpbse8dZrDaruy5","metadata":{"name":"Cowmmunity Ambassador","description":"Represents one of the most important roles in any civilization, as on him depends the molding of the community.","image":"QmbNsFNDCRYnswu5rtjTPNPkkn8y23DCXVkebrsx2b9fjg"},"supply":"13"}}}}},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"403":{"$ref":"#/components/responses/Error403"},"404":{"description":"Collection or token not found.","content":{"application/json":{"schema":{"properties":{"errorCode":{"description":"data-api.token","example":"data-api.token","type":"string"},"message":{"description":"Collection or token not found on chain ${chain}.","example":"Collection or token not found on chain bsc-mainnet.","type":"string"},"statusCode":{"description":"404","example":404,"type":"number"}},"required":["errorCode","message","statusCode"],"type":"object"}}}},"500":{"$ref":"#/components/responses/Error500"}},"security":[{"X-API-Key":[]}],"x-codeSamples":[],"summary":"Get information about collection or token","tags":["Token API"]}},"/v4/data/tokens/trending":{"get":{"description":"<p style='display: none'>/v4/data/tokens/trending</p>\n<p><b>250 credits per API call</b></p>\n\n<p>Returns the top trending tokens on the specified blockchain, ranked by recent trading activity, volume, liquidity, and holder growth. Each entry includes price, market cap, liquidity, holder count, and per-timeframe (1h/4h/12h/24h) statistics for price change, volume, transactions, buyers, and sellers.</p>\n<p>Supported blockchains:</p>\n<ul>\n<li>Ethereum - ethereum-mainnet</li>\n<li>BNB Smart Chain - bsc-mainnet</li>\n<li>Polygon - polygon-mainnet</li>\n<li>Avalanche - avax-mainnet</li>\n<li>Arbitrum - arb-one-mainnet</li>\n<li>Optimism - optimism-mainnet</li>\n<li>Base - base-mainnet</li>\n<li>Monad - monad-mainnet</li>\n<li>Solana - solana-mainnet</li>\n</ul>\n","operationId":"GetTrendingTokensV4","parameters":[{"name":"chain","description":"The blockchain to work with.","in":"query","required":true,"schema":{"$ref":"#/components/schemas/TrendingTokensSupportedChain"}},{"name":"limit","description":"Maximum number of trending tokens to return (1-200).","in":"query","required":false,"schema":{"type":"number","minimum":1,"maximum":200,"default":100,"example":100}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/TrendingTokenStats"}}}}},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"403":{"$ref":"#/components/responses/Error403"},"500":{"$ref":"#/components/responses/Error500"}},"summary":"Get trending tokens","security":[{"X-API-Key":[]}],"tags":["Token API"]}},"/v4/data/tokens/newest":{"get":{"description":"<p style='display: none'>/v4/data/tokens/newest</p>\n<p><b>400 credits per API call</b></p>\n\n<p>Returns the newest tokens minted on the blockchain based on mint timestamp, filtered by an activity window and optional category.</p>\n<p>Supported blockchains:</p>\n<ul>\n<li>Ethereum - ethereum-mainnet</li>\n<li>Base - base-mainnet</li>\n</ul>\n\n> 📘 Note for Free Users\n>\n> As a free user, your data is cached on a 1-day refresh cycle, and wallet queries run through tatumio.eth. This setup helps lower costs so you can easily try out the API. For real-time data, faster syncs, and the full capability of our platform, we recommend upgrading to a paid plan.\n","operationId":"GetNewestTokensV4","parameters":[{"name":"chain","description":"The blockchain to work with.","in":"query","required":true,"schema":{"$ref":"#/components/schemas/ChainEnumForTrendingTokens"}},{"name":"timeframe","description":"Timeframe of analysis.","in":"query","required":false,"schema":{"$ref":"#/components/schemas/TimeframeEnum"}},{"name":"pagesize","in":"query","required":false,"schema":{"type":"number","example":10}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseArrayTrendingToken"}}}},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"403":{"$ref":"#/components/responses/Error403"},"500":{"$ref":"#/components/responses/Error500"}},"summary":"Get newest tokens","security":[{"X-API-Key":[]}],"tags":["Token API"]}},"/v4/data/tokens/popular":{"get":{"description":"<p style='display: none'>/v4/data/tokens/popular</p>\n<p><b>150 credits per API call</b></p>\n\n<p>Returns the most popular tokens across the entire blockchain for a specified activity window and optional category. Popularity is determined by the token's number of active wallets during the activity window.</p>\n<p>Supported blockchains:</p>\n<ul>\n<li>Ethereum - ethereum-mainnet</li>\n<li>Base - base-mainnet</li>\n</ul>\n\n> 📘 Note for Free Users\n>\n> As a free user, your data is cached on a 1-day refresh cycle, and wallet queries run through tatumio.eth. This setup helps lower costs so you can easily try out the API. For real-time data, faster syncs, and the full capability of our platform, we recommend upgrading to a paid plan.\n","operationId":"GetPopularTokensV4","parameters":[{"name":"chain","description":"The blockchain to work with.","in":"query","required":true,"schema":{"$ref":"#/components/schemas/ChainEnumForTrendingTokens"}},{"name":"timeframe","description":"Timeframe of analysis.","in":"query","required":false,"schema":{"$ref":"#/components/schemas/TimeframeEnum"}},{"name":"pagesize","in":"query","required":false,"schema":{"type":"number","example":10}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseArrayTrendingToken"}}}},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"403":{"$ref":"#/components/responses/Error403"},"500":{"$ref":"#/components/responses/Error500"}},"summary":"Get popular tokens","security":[{"X-API-Key":[]}],"tags":["Token API"]}},"/v4/data/tokens/popular/history":{"get":{"description":"<p style='display: none'>/v4/data/tokens/popular/history</p>\n<p><b>150 credits per API call</b></p>\n\n<p>Returns the most popular tokens across the entire blockchain for a specified date in time and optional category. Popularity is determined by the token's number of active wallets during the specified calendar date.</p>\n<p>Supported blockchains:</p>\n<ul>\n<li>Ethereum - ethereum-mainnet</li>\n<li>Base - base-mainnet</li>\n</ul>\n\n> 📘 Note for Free Users\n>\n> As a free user, your data is cached on a 1-day refresh cycle, and wallet queries run through tatumio.eth. This setup helps lower costs so you can easily try out the API. For real-time data, faster syncs, and the full capability of our platform, we recommend upgrading to a paid plan.\n","operationId":"GetPopularTokensHistoryV4","parameters":[{"name":"chain","description":"The blockchain to work with.","in":"query","required":true,"schema":{"$ref":"#/components/schemas/ChainEnumForTrendingTokens"}},{"name":"date","description":"Date of analysis, in format YYYY-MM-DD.","in":"query","required":true,"schema":{"type":"string","example":"2024-06-25"}},{"name":"pagesize","in":"query","required":false,"schema":{"type":"number","example":10}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseArrayTrendingToken"}}}},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"403":{"$ref":"#/components/responses/Error403"},"500":{"$ref":"#/components/responses/Error500"}},"summary":"Get popular tokens history","security":[{"X-API-Key":[]}],"tags":["Token API"]}},"/v4/data/transactions/dna":{"get":{"description":"<p style='display: none'>/v4/data/transactions/dna</p>\n<p><b>5000 credits per API call</b></p>\n\n<p>This endpoint retrieves trade data across the entire blockchain enriched with WalletDNA metrics. Developers can filter trades by size, side, or wallet behavior (IQ, Reputation, Flow, Mass, Epoch, Maker Presence). Responses include detailed trade, token, and wallet profiles, enabling advanced segmentation, smart-money tracking, and high-signal on-chain analytics in real time.</p>\n<p>Supported blockchains:</p>\n<ul>\n<li>Ethereum - ethereum-mainnet</li>\n<li>Base - base-mainnet</li>\n</ul>\n\n> 📘 Note for Free Users\n>\n> As a free user, your data is cached on a 1-day refresh cycle, and wallet queries run through tatumio.eth. This setup helps lower costs so you can easily try out the API. For real-time data, faster syncs, and the full capability of our platform, we recommend upgrading to a paid plan.\n","operationId":"GetTransfersDnaV4","parameters":[{"name":"chain","description":"The blockchain to work with.","in":"query","required":true,"schema":{"$ref":"#/components/schemas/ChainEnumTrending"}},{"name":"walletAddress","description":"The wallet address to fetch transactions for.","in":"query","required":true,"schema":{"type":"string","example":"0xdef1c0ded9bec7f1a1670819833240f027b25eff"}},{"name":"tokenAddress","description":"Optional filter transactions for this ERC-20 token contract address.","in":"query","required":false,"schema":{"type":"string","example":"0xdef1c0ded9bec7f1a1670819833240f027b25eff"}},{"name":"address","description":"Optional filter to only include transactions involving this address.","in":"query","required":false,"schema":{"type":"string","example":"0xdef1c0ded9bec7f1a1670819833240f027b25eff"}},{"name":"blockNumber","in":"query","required":false,"schema":{"$ref":"#/components/schemas/BlockNumber"}},{"name":"order","description":"Sort order, asc (oldest first) or desc (newest first).","in":"query","required":false,"schema":{"type":"string","example":"desc","enum":["asc","desc"]}},{"name":"direction","description":"Transaction direction relative to the address.","in":"query","required":false,"schema":{"type":"string","example":"sent","enum":["sent","received","all"]}},{"name":"pageSize","description":"Max number of transaction records to return (max 100)","in":"query","required":false,"schema":{"type":"number","example":10,"minimum":1,"maximum":100}},{"name":"startTimestamp","description":"Start from this UTC timestamp in format YYYY-MM-DDTHH:mm:ssZ (overrides blockNumber)","in":"query","required":false,"schema":{"type":"number","example":"2025-09-25T16:00:01Z"}},{"name":"cursor","description":"Optional cursor for pagination, obtained from the response","in":"query","required":false,"schema":{"type":"string","example":"eyJwYWdlIjoyfQ=="}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseArrayTransferDNA"}}}},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"403":{"$ref":"#/components/responses/Error403"},"500":{"$ref":"#/components/responses/Error500"}},"summary":"Get transactions DNA","security":[{"X-API-Key":[]}],"tags":["Token API"]}},"/v4/data/rate/history":{"get":{"description":"<p style=\"display: none\">/v4/data/rate/history</p>\n<p><b>50 credits per API call</b></p>\n<p>Retrieves token prices, FDV, and liquidity at any block or timestamp, including percentage change for specified lookback periods.</p>\n<p>Supported blockchains:</p>\n<ul>\n<li>Ethereum - ethereum-mainnet</li>\n<li>Base - base-mainnet</li>\n</ul>\n","operationId":"getExchangeRateHistoryBySymbol","parameters":[{"name":"chain","description":"The blockchain to work with.","in":"query","required":true,"schema":{"$ref":"#/components/schemas/ChainEnumForTrendingTokens"}},{"name":"contractAddress","description":"Contract address of token.","in":"query","required":true,"schema":{"type":"string","example":"0xdef1c0ded9bec7f1a1670819833240f027b25eff"}},{"name":"blockNumber","in":"query","required":false,"schema":{"$ref":"#/components/schemas/BlockNumber"}},{"name":"timestamp","description":"Date-time UTC timestamp in format YYYY-MM-DDTHH:mm:ssZ (ignored if blockNumber is present)","in":"query","required":false,"schema":{"type":"number","example":"2025-09-25T16:00:01Z"}},{"name":"symbol","description":"The fiat or crypto asset to exchange","in":"query","required":true,"schema":{"$ref":"#/components/schemas/CurrencySymbol","example":"WBTC"}},{"name":"basePair","description":"The target asset to get the exchange rate for","in":"query","required":true,"schema":{"type":"string","example":"USD","enum":["USD","BTC","ETH"]}},{"name":"lookbackMinutes","description":"Minutes to calculate price change over time, comparing to defined point of time in blockNumber or timestamp, comma separated","in":"query","schema":{"type":"string","example":"15,30"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExchangeRateBySymbol"}}},"description":"OK"},"401":{"$ref":"#/components/responses/Error401"},"403":{"description":"Forbidden. The request is authenticated, but it is not possible to required perform operation due to logical error or invalid permissions."},"500":{"$ref":"#/components/responses/Error500"}},"security":[{"X-API-Key":[]}],"x-codeSamples":[],"summary":"Get Exchange Rate History by Symbol","tags":["Token API"]}},"/v4/data/utxos":{"get":{"description":"<p style='display: none'>/v4/data/utxos</p>\n<p><b>100 credits per API call</b></p>\n\n> 📘 **Note for v3 API users:** \n>\n> As part of our documentation consolidation, we removed the dedicated page for GET /v3/data/utxos. Users can refer to GET /v4/data/utxos for the latest documentation, as both endpoints function the same—simply replace v4 with v3 in the API URL if using the v3 version.\n\n<p>Get unspent UTXOs for a specific address up to a specific total amount.\nIf you want to prepare a transaction on UTXO-based chains like Bitcoin, you need to enter unspent UTXOs to be able to perform a transaction. By providing ```totalValue``` as a total, our API will return a list of UTXOs that will be enough to cover the transaction.</p>\nOur API lets you get the unpenst UTXOs for a specific address on:</p>\n<ul>\n<li>Bitcoin - bitcoin / bitcoin-testnet</li>\n<li>Litecoin - litecoin / litecoin-testnet</li>\n<li>Dogecoin - doge / doge-testnet</li>\n<li>Cardano - cardano / cardano-preprod</li>\n</ul>\n<p>To get started:</p>\n<ul>\n<li>Provide a chain and address you want to list unspent UTXOs for. If available, our API will return information about the unspent UTXOs for a specific address.</li>\n<li>Note: Bitcoin mainnet, Bitcoin testnet, Litecoin mainnet, Litecoin testnet, Dogecoin mainnet, Dogecoin testnet are now supported for any amount of utxo's on address with our latest update. This functionality will be extended to other chains soon.</li>\n</ul>\n","operationId":"GetUtxosByAddressV4","parameters":[{"description":"The blockchain to work with.","in":"query","name":"chain","required":true,"schema":{"$ref":"#/components/schemas/ChainUtxoEnum"}},{"description":"The blockchain address.","in":"query","name":"address","required":true,"schema":{"type":"string","example":"bc1qmfp2r68cde646jv5ns7x2qvah8v5qtfw8gznj2"}},{"description":"The total amount of transaction you want to send. Only UTXOs up to this amount will be returned, so you will not spend more than you need.","in":"query","name":"totalValue","required":true,"schema":{"type":"number","example":0.0001,"minimum":0}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"array","description":"Information about specific collection or token\n(not all fields are available for every token, e.g. some multitokens do not have name and symbol).\n","items":{"$ref":"#/components/schemas/Utxo"}}}},"description":"OK"},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"403":{"$ref":"#/components/responses/Error403"},"500":{"$ref":"#/components/responses/Error500"}},"security":[{"X-API-Key":[]}],"x-codeSamples":[],"summary":"Get unspent UTXOs for an address","tags":["Wallet API"]}},"/v4/data/utxos/batch":{"post":{"description":"<p style='display: none'>/v4/data/utxos/batch</p>\n<p><b>100 credits per address for each API call.</b></p>\n\n> 📘 **Note for v3 API users:** \n>\n> As part of our documentation consolidation, we removed the dedicated page for POST /v3/data/utxos/batch. Users can refer to POST /v4/data/utxos/batch for the latest documentation, as both endpoints function the same—simply replace v4 with v3 in the API URL if using the v3 version.\n\n<p>Retrieve unspent UTXOs for each provided address, up to a specified total amount.\nIf you want to prepare a transaction on UTXO-based chains like Bitcoin, you need to enter unspent UTXOs to be able to perform a transaction. By providing ```totalValue``` as a total, our API will return a list of UTXOs that will be enough to cover the transaction.</p>\nOur API lets you get the unpenst UTXOs for a specific address on:</p>\n<ul>\n<li>Bitcoin - bitcoin / bitcoin-testnet</li>\n<li>Litecoin - litecoin / litecoin-testnet</li>\n<li>Dogecoin - doge / doge-testnet</li>\n<li>Cardano - cardano / cardano-preprod</li>\n</ul>\n<p>To get started:</p>\n<ul>\n<li>Provide a chain and addresses you want to list unspent UTXOs for. If available, our API will return information about the unspent UTXOs for each address.</li>\n<li>Note: Bitcoin mainnet, Bitcoin testnet, Litecoin mainnet, Litecoin testnet, Dogecoin mainnet, Dogecoin testnet are now supported for any amount of utxo's on address with our latest update. This functionality will be extended to other chains soon.</li>\n</ul>\n","operationId":"GetUtxosByAddressBatchV4","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["addresses","totalValue"],"properties":{"chain":{"$ref":"#/components/schemas/ChainUtxoEnum"},"addresses":{"description":"Addresses","type":"array","items":{"type":"string"},"maxItems":50,"minItems":1},"totalValue":{"description":"The total amount of transaction you want to send. Only UTXOs up to this amount will be returned, so you will not spend more than you need.","type":"number","example":0.0001,"minimum":0}}}}}},"responses":{"200":{"content":{"application/json":{"schema":{"type":"array","description":"Information about specific collection or token\n(not all fields are available for every token, e.g. some multitokens do not have name and symbol).\n","items":{"type":"object","properties":{"address":{"type":"string","description":"The blockchain address.","example":"bc1qdj8dxppx6gyukpemsqx06a39877rt8kcc08uqs"},"utxos":{"type":"array","description":"UTXOs up to amount for address.","items":{"$ref":"#/components/schemas/Utxo"}},"transactionPossible":{"type":"boolean","description":"Indicate whether the total value of UTXOs is sufficient for the transaction.","example":true}}}}}},"description":"OK"},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"403":{"$ref":"#/components/responses/Error403"},"500":{"$ref":"#/components/responses/Error500"}},"security":[{"X-API-Key":[]}],"x-codeSamples":[],"summary":"Get unspent UTXOs for a batch of addresses","tags":["Wallet API"]}},"/v3/security/address/{address}":{"get":{"description":"<p style=\"display: none\">/v3/security/address/{address}</p>\n<h4>1 credit per API call.</h4><br/>\n<p>Check, if the blockchain address is malicous. Malicous address can contain assets from the DarkWeb, is connected to the scam projects or contains stolen funds.</p><br/>\n<p>We use malicious address data from standard on-chain analytics providers for this endpoint. The API response includes the sources used.</p><br/>\n<p>Supported Chains: ETH, BTC, LTC, SOLANA, TRON</p>\n","operationId":"CheckMalicousAddress","parameters":[{"description":"Blockchain Address to check","in":"path","name":"address","required":true,"schema":{"example":"0x002Bf459dC58584D58886169EA0E80f3Ca95FFAF","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","description":"Whether address is malicous or not","example":"valid","enum":["valid","invalid"]},"address":{"type":"string","description":"Wallet address","example":"0x002Bf459dC58584D58886169EA0E80f3Ca95FFAF"},"source":{"type":"string","description":"Source of the data","example":"CryptoScamDB"},"description":{"type":"string","description":"Why this address is malicious","example":"Trust trading scam site"}}}}},"description":"OK"},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"403":{"$ref":"#/components/responses/Error403"},"500":{"$ref":"#/components/responses/Error500"}},"security":[{"X-API-Key":[]}],"x-codeSamples":[],"summary":"Check malicous address","tags":["Malicious address"]}},"/v4/data/rate/symbol":{"get":{"description":"<p style=\"display: none\">/v4/data/rate/symbol</p>\n<p><b>Credit cost:</b> 20 credits when <code>basePair</code> is a fiat currency or <code>USDT</code> / <code>USDC</code>; 50 credits when <code>basePair</code> is any other crypto symbol.</p>\n<p>Get the current exchange rate for exchanging fiat/crypto assets.</p>\n<p>We support the top 1000+ token symbols by market cap.</p>\n<p>Tokens are made available as soon as they’re published to CEXes or DEXes.</p>\n<p>We pull from 10+ CEXes & 100+ DEXes.</p>\n<p>By default, the base pair (the target asset) is EUR. When obtaining the exchange rate for an asset (for example, BTC), the value returned by the API expresses the amount of EUR that can be currently exchanged into 1 BTC.</p>\n<p><b>Accepted base pairs depend on the plan:</b></p>\n<ul>\n  <li><b>Free plan:</b> any supported fiat currency as well as the stablecoins <code>USDT</code> and <code>USDC</code>.</li>\n  <li><b>Paid plans:</b> any supported fiat or crypto symbol.</li>\n</ul>\n","operationId":"getExchangeRateBySymbol","parameters":[{"description":"The fiat or crypto asset to exchange","in":"query","name":"symbol","required":true,"schema":{"$ref":"#/components/schemas/CurrencySymbol","example":"BTC"}},{"description":"The target asset to get the exchange rate for.\nFree plan accepts only fiat currencies, USDT or USDC.\nPaid plans accept any supported fiat or crypto symbol.\n","in":"query","name":"basePair","schema":{"type":"string","default":"EUR","example":"USD"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExchangeRateBySymbol"}}},"description":"OK"},"401":{"$ref":"#/components/responses/Error401"},"403":{"description":"Forbidden. The request is authenticated, but it is not possible to required perform operation due to logical error or invalid permissions."},"500":{"$ref":"#/components/responses/Error500"}},"security":[{"X-API-Key":[]}],"x-codeSamples":[],"summary":"Get Exchange Rate by Symbol","tags":["Exchange rate"]}},"/v4/data/rate/symbol/batch":{"post":{"description":"<p style=\"display: none\">/v4/data/rate/symbol/batch</p>\n<p><b>Credit cost (per pair):</b> 20 credits when <code>basePair</code> is a fiat currency or <code>USDT</code> / <code>USDC</code>; 50 credits when <code>basePair</code> is any other crypto symbol. The total cost is the sum across all pairs in the batch.</p>\n<p>Get the current exchange rates for exchanging fiat/crypto assets.</p>\n<p>We support the top 1000+ token symbols by market cap.</p>\n<p>Tokens are made available as soon as they’re published to CEXes or DEXes.</p>\n<p>We pull from 10+ CEXes & 100+ DEXes.</p>\n<p>When obtaining the exchange rate for an asset (for example, BTC), the value returned by the API expresses the amount of EUR that can be currently exchanged into 1 BTC.</p>\n<p><b>Accepted base pairs depend on the plan:</b></p>\n<ul>\n  <li><b>Free plan:</b> any supported fiat currency as well as the stablecoins <code>USDT</code> and <code>USDC</code>.</li>\n  <li><b>Paid plans:</b> any supported fiat or crypto symbol.</li>\n</ul>\n","operationId":"getExchangeRatesBySymbol","requestBody":{"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/RateBySymbolQuery"}}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ExchangeRateBySymbol"}}}},"description":"OK"},"401":{"$ref":"#/components/responses/Error401"},"403":{"description":"Forbidden. The request is authenticated, but it is not possible to required perform operation due to logical error or invalid permissions."},"500":{"$ref":"#/components/responses/Error500"}},"security":[{"X-API-Key":[]}],"x-codeSamples":[],"summary":"Get Exchange Rate by Symbol - Batch","tags":["Exchange rate"]}},"/v4/data/rate/symbol/OHLCV":{"get":{"description":"<p style=\"display: none\">/v4/data/rate/symbol/OHLCV</p>\n<p><b>50 credits per API call</b></p>\n<p>Get historical exchange rate in USD for a symbol at a specific point in time.</p>\n<p>This endpoint retrieves the closest available price record for a given symbol and timestamp. The data includes OHLCV (Open, High, Low, Close, Volume). By default returns 1-minute candles; use the <code>interval</code> parameter to aggregate into 5m, 15m, 1h, 1d, etc.</p>\n<p><b>Supported symbols:</b> We support 439+ trading pairs. The symbol parameter accepts the base currency (e.g., \"BTC\", \"ETH\").</p>\n<p><b>Time handling:</b></p>\n<ul>\n<li>If you provide a time, we return the OHLCV record where the time falls within its interval (<code>openTime</code> &le; time &lt; <code>closeTime</code>), or the closest available record if no exact match is found.</li>\n<li>If you provide a time that is later than any available data, we return the most recent OHLCV record we have.</li>\n<li>If you provide a time that is earlier than any available data, we return the earliest available OHLCV record.</li>\n</ul>\n<p><b>Time format:</b> You can provide time either as a Unix timestamp in milliseconds (using the <code>unix</code> parameter) or as a Date object (using the <code>time</code> parameter). You must provide exactly one of these parameters.</p>\n<p><b>Interval:</b> Candle interval. Supported values: 1m, 5m, 15m, 30m, 45m, 1h, 2h, 4h, 1d, 1w, 1M. Defaults to 1m.</p>\n","operationId":"getSymbolOHLCV","parameters":[{"description":"The base symbol of the trading pair (e.g., \"BTC\", \"ETH\").","in":"query","name":"symbol","required":true,"schema":{"$ref":"#/components/schemas/HistoricalPriceSymbol"},"example":"BTC"},{"description":"Unix timestamp in milliseconds. Either <code>unix</code> or <code>time</code> must be provided, but not both.","in":"query","name":"unix","required":false,"schema":{"type":"integer","minimum":0,"example":1609459200000}},{"description":"Date object in ISO 8601 format. Either <code>unix</code> or <code>time</code> must be provided, but not both.","in":"query","name":"time","required":false,"schema":{"type":"string","format":"date-time","example":"2021-01-01T00:00:00Z"}},{"description":"Candle interval. Supported values: 1m, 5m, 15m, 30m, 45m, 1h, 2h, 4h, 1d, 1w, 1M. Defaults to 1m.","in":"query","name":"interval","required":false,"schema":{"type":"string","enum":["1m","5m","15m","30m","45m","1h","2h","4h","1d","1w","1M"]}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HistoricalPrice"}}},"description":"OK - Returns the closest available historical price record for the requested symbol and time."},"400":{"description":"Bad Request - Invalid parameters (e.g., both unix and time provided, or neither provided, or invalid symbol)."},"401":{"$ref":"#/components/responses/Error401"},"403":{"description":"Forbidden. The request is authenticated, but it is not possible to required perform operation due to logical error or invalid permissions."},"404":{"description":"Not Found - No historical price data found for the requested symbol."},"500":{"$ref":"#/components/responses/Error500"}},"security":[{"X-API-Key":[]}],"x-codeSamples":[],"summary":"Get OHLCV by Symbol","tags":["Exchange rate"]}},"/v4/data/rate/symbol/OHLCV/batch":{"get":{"description":"<p style=\"display: none\">/v4/data/rate/symbol/OHLCV/batch</p>\n<p><b>500 credits per API call</b></p>\n<p>Get multiple historical OHLCV (Open, High, Low, Close, Volume) candles for a symbol starting from a given time.</p>\n<p>Returns up to <code>numberOfCandles</code> (max 50) OHLCV candles with <code>openTime</code> &ge; the provided start time, ordered by <code>openTime</code> ascending. The optional <code>interval</code> query parameter sets the candle size (same values as <code>GET /v4/data/rate/symbol/OHLCV</code>); it defaults to <code>1m</code>.</p>\n<p><b>Supported symbols:</b> We support 439+ trading pairs. The symbol parameter accepts the base currency (e.g., \"BTC\", \"ETH\").</p>\n<p><b>Time format:</b> Provide the start of the range either as a Unix timestamp in milliseconds (<code>unixFrom</code>) or as a Date in ISO 8601 format (<code>timeFrom</code>). You must provide exactly one of these parameters.</p>\n","operationId":"getSymbolOHLCVBatch","parameters":[{"description":"The base symbol of the trading pair (e.g., \"BTC\", \"ETH\").","in":"query","name":"symbol","required":true,"schema":{"$ref":"#/components/schemas/HistoricalPriceSymbol"},"example":"BTC"},{"description":"Start time as Unix timestamp in milliseconds. Either <code>unixFrom</code> or <code>timeFrom</code> must be provided, but not both.","in":"query","name":"unixFrom","required":false,"schema":{"type":"integer","minimum":0,"example":1609459200000}},{"description":"Start time in ISO 8601 format. Either <code>unixFrom</code> or <code>timeFrom</code> must be provided, but not both.","in":"query","name":"timeFrom","required":false,"schema":{"type":"string","format":"date-time","example":"2021-01-01T00:00:00Z"}},{"description":"Number of candles to return (1 to 50).","in":"query","name":"numberOfCandles","required":true,"schema":{"type":"integer","minimum":1,"maximum":50,"example":10}},{"description":"Candle interval. Supported values: 1m, 5m, 15m, 30m, 45m, 1h, 2h, 4h, 1d, 1w, 1M. Defaults to 1m.","in":"query","name":"interval","required":false,"schema":{"type":"string","enum":["1m","5m","15m","30m","45m","1h","2h","4h","1d","1w","1M"]}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/HistoricalPrice"}}}},"description":"OK - Returns up to numberOfCandles OHLCV records starting from the given time."},"400":{"description":"Bad Request - Invalid parameters (e.g., both unixFrom and timeFrom provided, or neither provided, or invalid symbol, or numberOfCandles out of range)."},"401":{"$ref":"#/components/responses/Error401"},"403":{"description":"Forbidden. The request is authenticated, but it is not possible to required perform operation due to logical error or invalid permissions."},"500":{"$ref":"#/components/responses/Error500"}},"security":[{"X-API-Key":[]}],"x-codeSamples":[],"summary":"Get OHLCV by Symbol - Batch","tags":["Exchange rate"]}},"/v4/data/rate/price-change":{"get":{"description":"<p style=\"display: none\">/v4/data/rate/price-change</p>\n<p><b>200 credits per API call</b></p>\n<p>Get price change data for a symbol over a specified time range or interval.</p>\n<p>This endpoint calculates the price change (both absolute and percentage) for a given symbol between two points in time. You can either specify an explicit time range using <code>timeFrom</code> and <code>timeTo</code>, or use a predefined interval that computes the change from the last fully closed candle.</p>\n<p><b>Supported symbols:</b> We support 439+ trading pairs. The symbol parameter accepts the base currency (e.g., \"BTC\", \"ETH\").</p>\n<p><b>Base pair:</b> By default, the base pair is \"USDT\". You can specify a different quote asset (e.g., \"ETH\", \"USDC\") using the <code>basePair</code> parameter.</p>\n<p><b>Time range options:</b></p>\n<ul>\n<li><b>Explicit time range:</b> Provide both <code>timeFrom</code> and <code>timeTo</code> to calculate price change over a specific period. Both parameters must be in ISO 8601 date-time format.</li>\n<li><b>Interval-based:</b> Provide an <code>interval</code> parameter (e.g., \"1h\", \"1d\", \"1w\", \"1M\") to calculate price change from the last fully closed candle of that interval. Supported intervals: 1m, 5m, 15m, 30m, 45m, 1h, 2h, 4h, 1d, 1w, 1M, 1y.</li>\n</ul>\n<p><b>Important:</b> You must provide either (<code>timeFrom</code> + <code>timeTo</code>) OR <code>interval</code>, but not both.</p>\n","operationId":"getPriceChange","parameters":[{"description":"The base symbol of the trading pair (e.g., \"BTC\", \"ETH\").","in":"query","name":"symbol","required":true,"schema":{"$ref":"#/components/schemas/HistoricalPriceSymbol"},"example":"BTC"},{"description":"Quote asset (e.g., \"USDT\", \"ETH\"). Defaults to \"USDT\" when not provided.","in":"query","name":"basePair","required":false,"schema":{"$ref":"#/components/schemas/HistoricalPriceSymbol"},"example":"USDT"},{"description":"Range start (ISO 8601 date-time). Must be provided together with <code>timeTo</code> if not using <code>interval</code>.","in":"query","name":"timeFrom","required":false,"schema":{"type":"string","format":"date-time"},"example":"2024-01-01T00:00:00Z"},{"description":"Range end (ISO 8601 date-time). Must be provided together with <code>timeFrom</code> if not using <code>interval</code>. Must be greater than <code>timeFrom</code>.","in":"query","name":"timeTo","required":false,"schema":{"type":"string","format":"date-time"},"example":"2024-01-02T00:00:00Z"},{"description":"Interval computed from the last fully closed candle (e.g. \"1h\", \"1d\", \"1w\", \"1M\"). Must be provided if not using <code>timeFrom</code> and <code>timeTo</code>.","in":"query","name":"interval","required":false,"schema":{"type":"string","enum":["1m","5m","15m","30m","45m","1h","2h","4h","1d","1w","1M","1y"]},"example":"1d"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PriceChangeResponse"}}},"description":"OK - Returns price change data for the requested symbol and time range/interval."},"400":{"description":"Bad Request - Invalid parameters (e.g., both time range and interval provided, or neither provided, or invalid symbol, or timeTo not greater than timeFrom)."},"401":{"$ref":"#/components/responses/Error401"},"403":{"description":"Forbidden. The request is authenticated, but it is not possible to required perform operation due to logical error or invalid permissions."},"404":{"description":"Not Found - No price data found for the requested symbol and time range/interval."},"500":{"$ref":"#/components/responses/Error500"}},"security":[{"X-API-Key":[]}],"x-codeSamples":[],"summary":"Get Price Change by Symbol","tags":["Exchange rate"]}},"/v4/data/rate/price-change/batch":{"post":{"description":"<p style=\"display: none\">/v4/data/rate/price-change/batch</p>\n<p><b>200 credits per API call</b></p>\n<p>Get price change data for multiple symbols in a single request. Each item may specify a time range (<code>timeFrom</code> + <code>timeTo</code>) or an <code>interval</code>. Maximum 10 items per request.</p>\n<p>Request body must be an array of objects (or <code>{ \"body\": [ ... ] }</code>). Each object must include <code>symbol</code>, <code>batchId</code>, and either (<code>timeFrom</code> + <code>timeTo</code>) or <code>interval</code>.</p>\n","operationId":"getPriceChangeBatch","requestBody":{"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PriceChangeBatchQuery"},"maxItems":10}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PriceChangeResponse"}}}},"description":"OK - Returns price change data for each requested item; each result includes the corresponding <code>batchId</code>."},"400":{"description":"Bad Request - Invalid parameters (e.g., invalid time range/interval, or more than 10 items)."},"401":{"$ref":"#/components/responses/Error401"},"403":{"description":"Forbidden."},"500":{"$ref":"#/components/responses/Error500"}},"security":[{"X-API-Key":[]}],"x-codeSamples":[],"summary":"Get Price Change by Symbol - Batch","tags":["Exchange rate"]}},"/v4/data/rate/contract":{"get":{"description":"<p style=\"display: none\">/v4/data/rate/contract</p>\n<p><b>20 credit per API call</b></p>\n<p>Get the current exchange rate by chain & contract address.</p>\n<p>By default, the base pair (the target asset) is EUR. When obtaining the exchange rate for an contract address for chain (for example, 0xdAC17F958D2ee523a2206206994597C13D831ec7 on ethereum-mainnet), the value returned by the API expresses the amount of EUR that can be currently exchanged into 1 0xdAC17F958D2ee523a2206206994597C13D831ec7 (USDT).</p>\n","operationId":"getExchangeRateByContractAddress","parameters":[{"description":"The blockchain to work with.","in":"query","name":"chain","required":true,"schema":{"$ref":"#/components/schemas/ChainEnumForExchangeRateByContract"}},{"description":"The blockchain contract address of the smart contract.","in":"query","name":"contractAddress","required":true,"schema":{"type":"string","example":"0xdac17f958d2ee523a2206206994597c13d831ec7"}},{"description":"The target fiat asset to get the exchange rate for","in":"query","name":"basePair","schema":{"$ref":"#/components/schemas/FiatCurrency","default":"EUR","example":"USD"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExchangeRateByContract"}}},"description":"OK"},"401":{"$ref":"#/components/responses/Error401"},"403":{"description":"Forbidden. The request is authenticated, but it is not possible to required perform operation due to logical error or invalid permissions."},"500":{"$ref":"#/components/responses/Error500"}},"security":[{"X-API-Key":[]}],"x-codeSamples":[],"summary":"Get Exchange Rate by Contract","tags":["Exchange rate"]}},"/v4/data/rate/contract/batch":{"post":{"description":"<p style=\"display: none\">/v4/data/rate/contract/batch</p>\n<p><b>20 credits per pair per API call</b></p>\n<p>Get the current exchange rates by chain and contract address for multiple pairs in one request.</p>\n<p>By default, the base pair (the target asset) is EUR. When obtaining the exchange rate for a contract address on a chain, the value returned expresses the amount of the base pair that can be currently exchanged into 1 unit of the token.</p>\n<p><b>Limits:</b> Maximum 25 pairs per request. Maximum 3 different chains per request. Duplicate (chain, contractAddress) pairs are allowed and return the same price for each occurrence.</p>\n<p>When a token price is not available, the response item includes value and timestamp as null and an error object with message \"Token not found\". Successful and failed items are returned together in the same response.</p>\n","operationId":"getExchangeRatesByContractAddress","requestBody":{"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/RateByContractAddressQuery"},"maxItems":25}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ExchangeRateByContractBatchItem"}}}},"description":"OK"},"400":{"description":"Bad Request - Invalid parameters (e.g. more than 25 pairs, more than 3 different chains, or unsupported chain)."},"401":{"$ref":"#/components/responses/Error401"},"403":{"description":"Forbidden. The request is authenticated, but it is not possible to required perform operation due to logical error or invalid permissions."},"500":{"$ref":"#/components/responses/Error500"}},"security":[{"X-API-Key":[]}],"x-codeSamples":[],"summary":"Get Exchange Rate by Contract - Batch","tags":["Exchange rate"]}},"/v4/data/staking/native/current-assets":{"get":{"description":"<p style='display: none'>/v4/data/staking/native/current-assets</p>\n<p><b>100 credits per API call</b></p>\n\n<p>Get current staked assets for a wallet address. This endpoint returns information about all stake accounts/validators owned by the address, including their state, delegated amount, active amount, and associated validators.</p>\n<p>Supported blockchains:</p>\n<ul>\n<li>Solana - solana-mainnet</li>\n<li>Ethereum - ethereum-mainnet</li>\n</ul>\n<p>To get started:</p>\n<ul>\n<li>Provide a chain and wallet address.</li>\n<li>For Solana, response contains <code>stakeAddresses</code> with stake account data.</li>\n<li>For Ethereum, response contains <code>validators</code> with validator index and validator pubkey.</li>\n<li>Results are sorted by active amount in descending order (highest active stake first).</li>\n</ul>\n","operationId":"GetCurrentStakedAssetsV4","parameters":[{"description":"The blockchain to work with.","in":"query","name":"chain","required":true,"schema":{"type":"string","enum":["solana-mainnet","ethereum-mainnet"],"example":"solana-mainnet"}},{"description":"The blockchain wallet address (Solana base58 or Ethereum 0x-prefixed).","in":"query","name":"address","required":true,"schema":{"type":"string","example":"EcH12jxhrbhF6qHqRzWpZ8rZU3TjG3sX6F67zP61oDJG"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CurrentStakedAssetsResponse"},"examples":{"solana":{"summary":"Solana response shape","value":{"address":"EcH12jxhrbhF6qHqRzWpZ8rZU3TjG3sX6F67zP61oDJG","totalStaked":"129196.00456576","totalActive":"129196.00456576","stakeAddresses":[{"stakeAddress":"8JMUtSoHS3h28tL7AJHP1SbXfhfeZSnpJ1hWZNCMSw9G","validatorAddress":"RuBYsjLeJYtWXbabcxPbNcbbFXQvMLrJGutpcqVRomz","delegated":"64598.00228288","active":"64598.00228288","state":"active"}]}},"ethereum":{"summary":"Ethereum response shape","value":{"address":"0x9f8f72aa9304c8b593d555f12ef6589cc3a579a2","totalStaked":"96","totalActive":"64","validators":[{"validatorIndex":"12345","validatorPubKey":"0x94f0c6c1f4f25afc71f4d4dbe6efc5cbf56b9ed8e5b6292a09a4ab8ef143f063f4be261f9325f6db39c4f65fcefa2ad8","delegated":"32","active":"32","state":"active"}]}}}}},"description":"OK"},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"403":{"$ref":"#/components/responses/Error403"},"500":{"$ref":"#/components/responses/Error500"}},"security":[{"X-API-Key":[]}],"x-codeSamples":[],"summary":"Get current staked assets","tags":["Staking"]}},"/v4/data/staking/native/current-assets-by-validator":{"get":{"description":"<p style='display: none'>/v4/data/staking/native/current-assets-by-validator</p>\n<p><b>100 credits per API call</b></p>\n\n<p>Get current staked assets grouped by validator for a wallet address.</p>\n<p>Supported blockchains:</p>\n<ul>\n<li>Solana - solana-mainnet</li>\n<li>Ethereum - ethereum-mainnet</li>\n</ul>\n<p>To get started:</p>\n<ul>\n<li>Provide a chain and wallet address.</li>\n<li>For Solana, response contains <code>validatorAddresses</code> grouped by validator with arrays of stake accounts.</li>\n<li>For Ethereum, response is the same validator-level shape as <code>/staking/native/current-assets</code> and contains <code>validators</code>.</li>\n<li>Results are sorted by delegated amount in descending order (highest delegated stake first).</li>\n</ul>\n","operationId":"GetCurrentStakedAssetsByValidatorV4","parameters":[{"description":"The blockchain to work with.","in":"query","name":"chain","required":true,"schema":{"type":"string","enum":["solana-mainnet","ethereum-mainnet"],"example":"solana-mainnet"}},{"description":"The blockchain wallet address (Solana base58 or Ethereum 0x-prefixed withdrawal address).","in":"query","name":"address","required":true,"schema":{"type":"string","example":"EcH12jxhrbhF6qHqRzWpZ8rZU3TjG3sX6F67zP61oDJG"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CurrentStakedAssetsByValidatorResponse"},"examples":{"solana":{"summary":"Solana grouped-by-validator response shape","value":{"address":"9qmcie2ZR8V9Z3zQqYfa4bvMVXmhLLMT6PfLiAEmVTTU","totalStaked":"49620.467550299","totalActive":"47443.183800488","validatorAddresses":[{"validatorAddress":"CertusDeBmqN8ZawdkxK5kFGMwBXdudvWHYwtNgNhvLu","stakeAddresses":["6NnT7hjUrUBnyATgmz2Nvu9hj9QMTTfE91EPD2kEtRUM","99eGTHVhTx1hBE3Rm7Dh6d3Bu2N3ZWz76z4kEPK9nFcr"],"delegated":"25814.633304521","active":"25814.633304521"}]}},"ethereum":{"summary":"Ethereum response shape (same as current-assets)","value":{"address":"0xAC665A44D46194EB9826D6F93FB5CC93BC2654B4","totalStaked":"45730.168649396","totalActive":"45730.168649396","validators":[{"validatorIndex":"576923","validatorPubKey":"0x8ee04e33bfea49062221a384b71e5f8851f92fa5d737b6e80a1b6b019536bf213f14bb1e25c4748ca0a9d49adc080f66","delegated":"32.102748132","active":"32.102748132","state":"active"}]}}}}},"description":"OK"},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"403":{"$ref":"#/components/responses/Error403"},"500":{"$ref":"#/components/responses/Error500"}},"security":[{"X-API-Key":[]}],"x-codeSamples":[],"summary":"Get current staked assets by validator","tags":["Staking"]}},"/v4/data/staking/native/rewards":{"get":{"description":"<p style='display: none'>/v4/data/staking/native/rewards</p>\n<p><b>100 credits per API call</b></p>\n\n<p>Get historical staking rewards for a stake account. Returns detailed reward information including epoch, block number, reward amount, and post-balance for each reward period.</p>\n<p>Supported blockchains:</p>\n<ul>\n<li>Solana - solana-mainnet (optional epoch/block/time filters)</li>\n<li>Ethereum - ethereum-mainnet (epochFrom/epochTo, blockFrom/blockTo, timeFrom/timeTo, unixFrom/unixTo; block/time/unix are converted to consensus epochs; omit all for last 10 finalized epochs; max range 10 epochs ≈320 blocks or ≈3840 seconds; epoch and blockNumber are consensus-layer values)</li>\n</ul>\n<p>To get started:</p>\n<ul>\n<li>Provide a chain and stake address. The API will return all historical rewards for the stake account.</li>\n<li>For Ethereum, omitting all filters returns the last 10 finalized epochs. <b>Partial filters auto-complete:</b> ...From only → ...To = ...From + 10 epochs (capped at finalized); ...To only → ...From = ...To − 10 epochs. Applies to epoch, block, time, unix.</li>\n<li>You can filter rewards by epoch range using <code>epochFrom</code> and <code>epochTo</code> parameters.</li>\n<li>You can filter rewards by block range using <code>blockFrom</code> and <code>blockTo</code> parameters.</li>\n<li>You can filter rewards by time range using <code>timeFrom</code> and <code>timeTo</code> parameters (ISO 8601 format).</li>\n<li>You can filter rewards by unix timestamp range using <code>unixFrom</code> and <code>unixTo</code> parameters.</li>\n<li><b>Important:</b> You can only use one filter type at a time. Valid combinations: (epochFrom/epochTo), (blockFrom/blockTo), (timeFrom/timeTo), (unixFrom/unixTo). You cannot mix different types like epochFrom with blockTo.</li>\n<li>Rewards are sorted by epoch in descending order (newest first).</li>\n</ul>\n","operationId":"GetStakedAccountRewardsV4","parameters":[{"description":"The blockchain to work with.","in":"query","name":"chain","required":true,"schema":{"type":"string","enum":["solana-mainnet","ethereum-mainnet"],"example":"solana-mainnet"}},{"description":"The blockchain address of the stake account (Solana) or withdrawal address (Ethereum).","in":"query","name":"stakeAddress","required":true,"schema":{"type":"string","example":"8JMUtSoHS3h28tL7AJHP1SbXfhfeZSnpJ1hWZNCMSw9G"}},{"description":"Filter rewards from this epoch (inclusive). Ethereum: ...From only auto-sets epochTo = epochFrom + 9 (capped at finalized). Max range 10 epochs.","in":"query","name":"epochFrom","schema":{"type":"number","example":870}},{"description":"Filter rewards to this epoch (inclusive). Ethereum: ...To only auto-sets epochFrom = epochTo - 9. Max range 10 epochs.","in":"query","name":"epochTo","schema":{"type":"number","example":872}},{"description":"Filter rewards from this block number (inclusive). Ethereum: blockFrom only auto-sets blockTo; blocks converted to consensus epochs. Max range 320 blocks.","in":"query","name":"blockFrom","schema":{"type":"number","example":376272225}},{"description":"Filter rewards to this block number (inclusive). Ethereum: blockTo only auto-sets blockFrom; blocks converted to consensus epochs. Max range 320 blocks.","in":"query","name":"blockTo","schema":{"type":"number","example":377136045}},{"description":"Filter rewards from this date (inclusive). ISO 8601 format. Ethereum: timeFrom only auto-sets timeTo; timestamps converted to consensus epochs. Max range 3840 seconds.","in":"query","name":"timeFrom","schema":{"type":"string","format":"date-time","example":"2024-01-01T00:00:00Z"}},{"description":"Filter rewards to this date (inclusive). ISO 8601 format. Ethereum: timeTo only auto-sets timeFrom; timestamps converted to consensus epochs. Max range 3840 seconds.","in":"query","name":"timeTo","schema":{"type":"string","format":"date-time","example":"2024-12-31T23:59:59Z"}},{"description":"Filter rewards from this unix timestamp (inclusive). Ethereum: unixFrom only auto-sets unixTo; timestamps converted to consensus epochs. Max range 3840 seconds.","in":"query","name":"unixFrom","schema":{"type":"number","example":1704067200}},{"description":"Filter rewards to this unix timestamp (inclusive). Ethereum: unixTo only auto-sets unixFrom; timestamps converted to consensus epochs. Max range 3840 seconds.","in":"query","name":"unixTo","schema":{"type":"number","example":1735689599}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StakedAccountRewardsResponse"}}},"description":"OK"},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"403":{"$ref":"#/components/responses/Error403"},"500":{"$ref":"#/components/responses/Error500"}},"security":[{"X-API-Key":[]}],"x-codeSamples":[],"summary":"Get staked account rewards","tags":["Staking"]}},"/v4/data/staking/native/rewards/batch":{"post":{"description":"<p style='display: none'>/v4/data/staking/native/rewards/batch</p>\n<p><b>100 credits per stake address per API call</b></p>\n\n<p>Get historical staking rewards for up to 50 stake accounts in a single request. Returns the same per-address shape as <code>/staking/native/rewards</code>, one entry per input address, in input order.</p>\n<p>Supported blockchains:</p>\n<ul>\n<li>Solana - solana-mainnet (optional epoch/block/time filters)</li>\n</ul>\n<p>To get started:</p>\n<ul>\n<li>POST a JSON body with <code>chain</code>, an array of 1–50 unique <code>stakeAddresses</code>, and (optionally) shared filters.</li>\n<li>All filters are shared across all addresses in the request. Filter semantics match the single endpoint (epoch/block/time/unix; only one filter type at a time).</li>\n<li>The response is an array preserving input order; duplicate input addresses are rejected by validation.</li>\n<li>Each item has the same shape as the single endpoint response (<code>stakeAddress</code>, <code>totalAmount</code>, <code>rewards[]</code>). Rewards inside each item are sorted by epoch descending.</li>\n</ul>\n","operationId":"GetStakedAccountRewardsBatchV4","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StakedAccountRewardsBatchRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"array","description":"One entry per input stake address, preserving input order.","items":{"$ref":"#/components/schemas/StakedAccountRewardsResponse"}}}},"description":"OK"},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"403":{"$ref":"#/components/responses/Error403"},"500":{"$ref":"#/components/responses/Error500"}},"security":[{"X-API-Key":[]}],"x-codeSamples":[],"summary":"Get staked account rewards - Batch","tags":["Staking"]}},"/v4/data/staking/native/transactions":{"get":{"description":"<p style='display: none'>/v4/data/staking/native/transactions</p>\n<p><b>100 credits per API call</b></p>\n\n<p>Get staking-related transactions for a Solana stake account or Ethereum withdrawal address. Returns deposits, topups, withdrawals, and credential changes.</p>\n<p><b>Response shape differs by chain:</b> Solana returns <code>stakeAddress</code> and transactions with <code>stakeAddress</code>/<code>validatorAddress</code>; Ethereum returns <code>withdrawalAddress</code> and transactions with <code>withdrawalAddress</code>/<code>validatorIndex</code>/<code>validatorPubkey</code>.</p>\n<p>Supported blockchains:</p>\n<ul>\n<li>Solana - solana-mainnet (create, stake, unstake, withdraw, split)</li>\n<li>Ethereum - ethereum-mainnet (create=deposit, stake=topup, withdraw=withdrawal, credential_change=BLS→execution change)</li>\n</ul>\n<p><b>Ethereum-specific:</b> For beacon-only events (withdrawals, credential_change), <code>txHash</code> is a synthetic reference ID, not an on-chain execution transaction hash. <code>blockNumber</code> for credential_change is the consensus slot. <code>amount</code> is in ETH. Results are limited to 100,000 transactions per request; use <code>type</code>, <code>timeFrom</code>/<code>timeTo</code>, or <code>epochFrom</code>/<code>epochTo</code> filters for addresses with more history.</p>\n<p>To get started:</p>\n<ul>\n<li>Provide a chain and stake address (Solana stake account or Ethereum withdrawal address). The API will return all staking-related transactions.</li>\n<li>You can filter transactions by type using the <code>type</code> parameter. Chain-specific: Solana supports <code>create</code>, <code>stake</code>, <code>unstake</code>, <code>withdraw</code>, <code>split</code> (not credential_change); Ethereum supports <code>create</code>, <code>stake</code>, <code>withdraw</code>, <code>credential_change</code> (not unstake, split). Using an unsupported type for a chain returns 400.</li>\n<li>You can filter transactions by epoch range using <code>epochFrom</code> and <code>epochTo</code> parameters.</li>\n<li>You can filter transactions by block range using <code>blockFrom</code> and <code>blockTo</code> parameters.</li>\n<li>You can filter transactions by time range using <code>timeFrom</code> and <code>timeTo</code> parameters (ISO 8601 format).</li>\n<li>You can filter transactions by unix timestamp range using <code>unixFrom</code> and <code>unixTo</code> parameters.</li>\n<li><b>Important:</b> You can only use one filter type at a time. Valid combinations: (epochFrom/epochTo), (blockFrom/blockTo), (timeFrom/timeTo), (unixFrom/unixTo). You cannot mix different types like epochFrom with blockTo.</li>\n<li>Transactions are sorted by epoch in descending order (newest first).</li>\n</ul>\n","operationId":"GetStakingTransactionsV4","parameters":[{"description":"The blockchain to work with.","in":"query","name":"chain","required":true,"schema":{"type":"string","enum":["solana-mainnet","ethereum-mainnet"],"example":"solana-mainnet"}},{"description":"The blockchain address of the stake account (Solana) or withdrawal address (Ethereum).","in":"query","name":"stakeAddress","required":true,"schema":{"type":"string","example":"8JMUtSoHS3h28tL7AJHP1SbXfhfeZSnpJ1hWZNCMSw9G"}},{"description":"Filter transactions by type. credential_change (Ethereum only) = BLS→execution credential change.","in":"query","name":"type","schema":{"type":"string","enum":["create","stake","unstake","withdraw","split","credential_change"],"example":"stake"}},{"description":"Filter transactions from this epoch (inclusive).","in":"query","name":"epochFrom","schema":{"type":"number","example":847}},{"description":"Filter transactions to this epoch (inclusive).","in":"query","name":"epochTo","schema":{"type":"number","example":850}},{"description":"Filter transactions from this block number (inclusive).","in":"query","name":"blockFrom","schema":{"type":"number","example":365957848}},{"description":"Filter transactions to this block number (inclusive).","in":"query","name":"blockTo","schema":{"type":"number","example":366007894}},{"description":"Filter transactions from this date (inclusive). ISO 8601 format.","in":"query","name":"timeFrom","schema":{"type":"string","format":"date-time","example":"2024-01-01T00:00:00Z"}},{"description":"Filter transactions to this date (inclusive). ISO 8601 format.","in":"query","name":"timeTo","schema":{"type":"string","format":"date-time","example":"2024-12-31T23:59:59Z"}},{"description":"Filter transactions from this unix timestamp (inclusive).","in":"query","name":"unixFrom","schema":{"type":"number","example":1704067200}},{"description":"Filter transactions to this unix timestamp (inclusive).","in":"query","name":"unixTo","schema":{"type":"number","example":1735689599}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StakingTransactionsResponse"},"examples":{"solana":{"summary":"Solana response shape","value":{"stakeAddress":"8JMUtSoHS3h28tL7AJHP1SbXfhfeZSnpJ1hWZNCMSw9G","transactions":[{"txHash":"5JFC47k33cDR6cwAJXnusHiBmf2mSDwQ3WGUicv1vPXBzyWzXNg4r6SZS7sRk8o2q7m9","blockNumber":366007894,"timestamp":1757552548,"epoch":847,"type":"stake","amount":"64598.00228288","stakeAddress":"8JMUtSoHS3h28tL7AJHP1SbXfhfeZSnpJ1hWZNCMSw9G","validatorAddress":"RuBYsjLeJYtWXbabcxPbNcbbFXQvMLrJGutpcqVRomz","by":"EcH12jxhrbhF6qHqRzWpZ8rZU3TjG3sX6F67zP61oDJG"}]}},"ethereum":{"summary":"Ethereum response shape","value":{"withdrawalAddress":"0x742d35Cc6634C0532925a3b844Bc9e7595f2EE05","transactions":[{"txHash":"0xabc123def456...","blockNumber":21000000,"timestamp":1757552548,"epoch":847,"type":"create","amount":"32.0","withdrawalAddress":"0x742d35Cc6634C0532925a3b844Bc9e7595f2EE05","validatorIndex":123456,"validatorPubkey":"0x8d41e4bb3f1f6da0c9986c9cf0f36eb5c3e4c5e6a7b8c9d0e1f2a3b4c5d6e7f8"}]}}}}},"description":"OK"},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"403":{"$ref":"#/components/responses/Error403"},"500":{"$ref":"#/components/responses/Error500"}},"security":[{"X-API-Key":[]}],"x-codeSamples":[],"summary":"Get staking transactions","tags":["Staking"]}},"/v4/data/staking/native/pools":{"get":{"description":"<p style='display: none'>/v4/data/staking/native/pools</p>\n<p><b>50 credits per API call</b></p>\n\n<p>Get all available staking pools (validators) on Solana. This endpoint returns comprehensive information about all validators including their address, identity, commission, stake amounts, APY, and additional metadata such as name, website, and location.</p>\n<p>Supported blockchains:</p>\n<ul>\n<li>Solana - solana-mainnet</li>\n</ul>\n<p>To get started:</p>\n<ul>\n<li>Provide a chain. The API will return all available staking pools (validators) on the Solana network.</li>\n<li>Pools are sorted by activated stake in descending order (highest stake first).</li>\n<li>Each pool includes comprehensive information such as validator identity, commission rate, activated stake, APY (staking, Jito, and total), name, website, location (IP city/country), uptime, vote success rate, and more.</li>\n</ul>\n","operationId":"GetStakingPoolsV4","parameters":[{"description":"The blockchain to work with.","in":"query","name":"chain","required":true,"schema":{"type":"string","enum":["solana-mainnet"],"example":"solana-mainnet"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StakingPoolsResponse"}}},"description":"OK"},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"403":{"$ref":"#/components/responses/Error403"},"500":{"$ref":"#/components/responses/Error500"}},"security":[{"X-API-Key":[]}],"x-codeSamples":[],"summary":"Get staking pools","tags":["Staking"]}},"/v4/data/staking/liquid/current-assets":{"get":{"description":"<p style='display: none'>/v4/data/staking/liquid/current-assets</p>\n<p><b>100 credits per API call</b></p>\n\n<p>Get liquid staked assets for a wallet address. Returns all liquid staking token balances held by the address from top pools (Lido, Rocket Pool, Marinade, Jito, etc.).</p>\n<p>Supported blockchains:</p>\n<ul>\n<li>Ethereum - ethereum-mainnet (stETH, wstETH, rETH, cbETH, WBETH, frxETH, sfrxETH, ankrETH, osETH, eETH, weETH, swETH, ETHx, rsETH, ezETH, uniETH, OETH, LsETH, mETH)</li>\n<li>Solana - solana-mainnet (mSOL, JitoSOL, JSOL, bSOL, stSOL, JupSOL)</li>\n</ul>\n<p>To get started:</p>\n<ul>\n<li>Provide a chain and wallet address.</li>\n<li>Response contains an array of liquid staking tokens with balance &gt; 0.</li>\n<li>Balance is human-readable for both chains (formatted by decimals).</li>\n</ul>\n","operationId":"GetLiquidStakingCurrentAssetsV4","parameters":[{"description":"The blockchain to work with.","in":"query","name":"chain","required":true,"schema":{"type":"string","enum":["solana-mainnet","ethereum-mainnet"],"example":"ethereum-mainnet"}},{"description":"The blockchain wallet address (Solana base58 or Ethereum 0x-prefixed).","in":"query","name":"address","required":true,"schema":{"type":"string","example":"0x9f8f72aa9304c8b593d555f12ef6589cc3a579a2"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LiquidStakingCurrentAssetsResponse"}}},"description":"OK"},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"403":{"$ref":"#/components/responses/Error403"},"500":{"$ref":"#/components/responses/Error500"}},"security":[{"X-API-Key":[]}],"x-codeSamples":[],"summary":"Get liquid staking current assets","tags":["Staking"]}},"/v4/data/staking/liquid/pools":{"get":{"description":"<p style='display: none'>/v4/data/staking/liquid/pools</p>\n<p><b>50 credits per API call</b></p>\n\n<p>Get the top liquid staking pools for a blockchain. Returns all supported liquid staking tokens (protocol, symbol, token address) that can be used with <code>/staking/liquid/current-assets</code>.</p>\n<p>Supported blockchains:</p>\n<ul>\n<li>Ethereum - ethereum-mainnet</li>\n<li>Solana - solana-mainnet</li>\n</ul>\n<p>To get started:</p>\n<ul>\n<li>Provide a chain. The API returns all liquid staking pools (Lido, Rocket Pool, Marinade, Jito, etc.) for that chain.</li>\n<li>Ethereum pools include contractAddress; Solana pools include mintAddress.</li>\n</ul>\n","operationId":"GetLiquidStakingPoolsV4","parameters":[{"description":"The blockchain to work with.","in":"query","name":"chain","required":true,"schema":{"type":"string","enum":["solana-mainnet","ethereum-mainnet"],"example":"ethereum-mainnet"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LiquidStakingPoolsResponse"}}},"description":"OK"},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"403":{"$ref":"#/components/responses/Error403"},"500":{"$ref":"#/components/responses/Error500"}},"security":[{"X-API-Key":[]}],"x-codeSamples":[],"summary":"Get liquid staking pools","tags":["Staking"]}},"/v4/data/mining/rewards":{"get":{"description":"<p style='display: none'>/v4/data/mining/rewards</p>\n<p><b>50 credits per API call</b></p>\n\n<p>Get mining rewards (coinbase outputs) for a UTXO address. This endpoint returns all coinbase rewards received by the address when it successfully mined blocks.</p>\n<p>Supported blockchains:</p>\n<ul>\n<li>Bitcoin - bitcoin-mainnet / bitcoin-testnet</li>\n<li>Litecoin - litecoin-mainnet / litecoin-testnet</li>\n<li>Dogecoin - dogecoin-mainnet / dogecoin-testnet</li>\n</ul>\n<p>To get started:</p>\n<ul>\n<li>Provide a chain and miner address. The API will return all coinbase rewards for the address.</li>\n<li>Omit filters for full history, or use one filter type: (blockFrom and/or blockTo), (timeFrom and/or timeTo), or (unixFrom and/or unixTo). You cannot mix filter types.</li>\n<li>You can use from-only (e.g. blockFrom) or to-only (e.g. blockTo) or both.</li>\n<li>Rewards are sorted by block number in descending order (newest first).</li>\n<li>Pagination is supported via <code>pageSize</code> (max 500) and <code>offset</code> parameters.</li>\n</ul>\n","operationId":"GetMiningRewardsV4","parameters":[{"description":"The blockchain to work with.","in":"query","name":"chain","required":true,"schema":{"$ref":"#/components/schemas/ChainEnumMiningRewards"}},{"description":"The miner blockchain address.","in":"query","name":"address","required":true,"schema":{"type":"string","example":"bc1qwzrryqr3ja8w7hnja2spmkgfdcgvqwp5swz4af4ngsjecfz0w0pqud7k38"}},{"description":"Start block number (inclusive). Use with blockTo for block range.","in":"query","name":"blockFrom","required":false,"schema":{"type":"integer","minimum":0,"example":900000}},{"description":"End block number (inclusive). Use with blockFrom for block range.","in":"query","name":"blockTo","required":false,"schema":{"type":"integer","minimum":0,"example":901000}},{"description":"Start unix timestamp (seconds). Use with unixTo for time range.","in":"query","name":"unixFrom","required":false,"schema":{"type":"integer","minimum":0}},{"description":"End unix timestamp (seconds). Use with unixFrom for time range.","in":"query","name":"unixTo","required":false,"schema":{"type":"integer","minimum":0}},{"description":"Start time (ISO 8601). Use with timeTo for time range.","in":"query","name":"timeFrom","required":false,"schema":{"type":"string","format":"date-time"}},{"description":"End time (ISO 8601). Use with timeFrom for time range.","in":"query","name":"timeTo","required":false,"schema":{"type":"string","format":"date-time"}},{"description":"Number of items to return per page (required, max 500).","in":"query","name":"pageSize","required":true,"schema":{"type":"integer","minimum":1,"maximum":500,"default":500}},{"description":"The offset to obtain next page of the data.","in":"query","name":"offset","required":false,"schema":{"type":"integer","minimum":0,"default":0}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/MiningRewardEntry"}}}},"description":"OK"},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"403":{"$ref":"#/components/responses/Error403"},"500":{"$ref":"#/components/responses/Error500"}},"security":[{"X-API-Key":[]}],"x-codeSamples":[],"summary":"Get mining rewards","tags":["Mining API"]}},"/v4/data/mining/totalRewards":{"get":{"description":"<p style='display: none'>/v4/data/mining/totalRewards</p>\n<p><b>100 credits per API call</b></p>\n\n<p>Get total mining rewards (sum of all coinbase outputs) earned by a UTXO address till date.</p>\n<p>Supported blockchains:</p>\n<ul>\n<li>Bitcoin - bitcoin-mainnet / bitcoin-testnet</li>\n<li>Litecoin - litecoin-mainnet / litecoin-testnet</li>\n<li>Dogecoin - dogecoin-mainnet / dogecoin-testnet</li>\n</ul>\n","operationId":"GetTotalMiningRewardsV4","parameters":[{"description":"The blockchain to work with.","in":"query","name":"chain","required":true,"schema":{"$ref":"#/components/schemas/ChainEnumMiningRewards"}},{"description":"The miner blockchain address.","in":"query","name":"address","required":true,"schema":{"type":"string","example":"bc1qwzrryqr3ja8w7hnja2spmkgfdcgvqwp5swz4af4ngsjecfz0w0pqud7k38"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MiningTotalRewardsResponse"}}},"description":"OK"},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"403":{"$ref":"#/components/responses/Error403"},"500":{"$ref":"#/components/responses/Error500"}},"security":[{"X-API-Key":[]}],"x-codeSamples":[],"summary":"Get total mining rewards","tags":["Mining API"]}},"/v4/blockchainOperations/gas":{"post":{"description":"<p><b>10 credits per API call</b></p>\n<p>Get an estimated gas price (wei) and the number of gas units needed for a transaction.</p>\n<p>New endpoint which is unifying all supported chains for gas estimation into the one. List of supported chains is bellow.</p>\n<ul>\n<li>BNB Smart Chain (BSC)</li>\n<li>Celo (CELO)</li>\n<li>Elrond (EGLD)</li>\n<li>Ethereum (ETH)</li>\n<li>Harmony (ONE)</li>\n<li>Klaytn (KLAY)</li>\n<li>KuCoin Community Chain (KCS)</li>\n<li>Flare (FLR)</li>\n<li>Cronos (CRO)</li>\n<li>Avalanche (AVAX)</li>\n<li>Base (BASE)</li>\n<li>Polygon (POL_ETH)</li>\n<li>Optimism (OPTIMISM)</li>\n<li>Fantom (FTM)</li>\n<li>Sonic (S)</li>\n</ul>\n","operationId":"estimateGas","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EstimateGas"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EstimateGasResult"}}},"description":"OK"},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"403":{"description":"Forbidden. The request is authenticated, but it is not possible to required perform operation due to logical error or invalid permissions."},"500":{"$ref":"#/components/responses/Error500"}},"security":[{"X-API-Key":[]}],"x-codeSamples":[],"summary":"Estimate gas for a transfer","tags":["Fee Estimation API"]}},"/v3/blockchain/fee/{chain}":{"get":{"description":"<p><b>1 credit per API call</b></p>\n<p>Get the recommended fee/gas price for a blockchain.</p>\n<p>Fee is in satoshis(meaning currency(BTC, DOGE,... / 100 000 000) per byte\n<p>This API is supported for the following blockchains:</p>\n<ul>\n<li>Bitcoin</li>\n<li>Dogecoin</li>\n<li>Ethereum</li>\n<li>Litecoin</li>\n</ul>\n","operationId":"getBlockchainFee","parameters":[{"description":"Chain","in":"path","name":"chain","required":true,"schema":{"type":"string","example":"BTC","enum":["ETH","BTC","LTC","DOGE"]}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BlockchainFee"}}},"description":"OK"},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"403":{"description":"Forbidden. The request is authenticated, but it is not possible to required perform operation due to logical error or invalid permissions."},"500":{"$ref":"#/components/responses/Error500"}},"security":[{"X-API-Key":[]}],"x-codeSamples":[],"summary":"Get recommended base fee for a chain","tags":["Fee Estimation API"]}},"/v3/blockchain/estimate":{"post":{"description":"<p><b>10 credits per API call</b></p>\n<p>Estimate the current fee for different types of transactions.</p>\n<p>This API is supported for the following blockchains:</p>\n<ul>\n<li>Bitcoin</li>\n<li>BNB Smart Chain</li>\n<li>Celo</li>\n<li>Dogecoin</li>\n<li>Ethereum</li>\n<li>Harmony</li>\n<li>Klaytn</li>\n<li>Litecoin</li>\n<li>Polygon</li>\n<li>XinFin</li>\n</ul>\n","operationId":"EstimateFeeBlockchain","requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/EstimateFee"},{"$ref":"#/components/schemas/EstimateFeeBatchMintNft"},{"$ref":"#/components/schemas/EstimateFeeDeployCustodialWallet"},{"$ref":"#/components/schemas/EstimateFeeTransferFromCustodial"},{"$ref":"#/components/schemas/EstimateFeeFromAddress"},{"$ref":"#/components/schemas/EstimateFeeFromUTXO"}]}}},"required":true},"responses":{"200":{"headers":{"x-current-block":{"schema":{"type":"number","example":15632152},"description":"Current block of the blockchain."},"x-current-block-time":{"schema":{"type":"string","format":"date-time","example":"2021-11-11T11:54:49.000Z"},"description":"Current block time."}},"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/FeeBtcBased"},{"$ref":"#/components/schemas/FeeEvmBased"}]}}},"description":"OK"},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"403":{"$ref":"#/components/responses/Error403"},"500":{"$ref":"#/components/responses/Error500"}},"security":[{"X-API-Key":[]}],"x-codeSamples":[],"summary":"Estimate gas for a transaction","tags":["Fee Estimation API"]}},"/v3/ethereum/gas/batch":{"post":{"description":"<p><b>10 credits per API call + 10 credits per each gas estimation</b></p>\n<p>Get an estimated gas price and the number of gas units needed for multiple Ethereum transactions. The gas price is obtained from multiple sources and calculated based on the latest N blocks and the current mempool state.</p>\n<p>The estimations are returned in the same order as the transactions were submitted in the request.</p>\n<p>The <code>fast</code> gas price is used by default.</p>\n<p style=\"border:4px solid DeepSkyBlue;\"><b>NOTE:</b> The estimated gas price is returned in <b>wei</b>. However, when <a href=\"https://apidoc.tatum.io/tag/Ethereum#operation/EthBlockchainTransfer\" target=\"_blank\">making a transaction itself</a> and providing the custom fee, you have to provide the gas price in <b>Gwei</b>. Make sure to convert the estimated gas price from wei to Gwei before submitting your transaction.</p>\n</p>\n","operationId":"EthEstimateGasBatch","parameters":[{"description":"Type of Ethereum testnet. Defaults to ethereum-sepolia.","in":"header","name":"x-testnet-type","required":false,"schema":{"default":"ethereum-sepolia","type":"string","enum":["ethereum-sepolia"]}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EthEstimateGasArray"}}},"required":true},"responses":{"200":{"headers":{"x-current-block":{"schema":{"type":"number"},"description":"Current block of the blockchain."},"x-current-block-time":{"schema":{"type":"string","format":"date-time","example":"2021-11-11T11:54:49.000Z"},"description":"Current block time."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EthGasEstimationBatch"}}},"description":"OK"},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"403":{"description":"Forbidden. The request is authenticated, but it is not possible to required perform operation due to logical error or invalid permissions.","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/Error403EthTxBody"},{"$ref":"#/components/schemas/Error403EthGasCalculation"}]}}}},"500":{"$ref":"#/components/responses/Error500"}},"security":[{"X-API-Key":[]}],"x-codeSamples":[],"summary":"Estimate the fee for multiple Ethereum transactions","tags":["Fee Estimation API"]}},"/v3/xdc/gas":{"post":{"description":"<p><b>2 credits per API call</b></p>\n<p>Get an estimated gas price and the number of gas units needed for a XinFin transaction. The gas price is obtained from <a href=\"https://rpc.xinfin.network/gasPrice\" target=\"_blank\">https://rpc.xinfin.network/gasPrice</a>.</p>\n<p style=\"border:4px solid DeepSkyBlue;\"><b>NOTE:</b> The estimated gas price is returned in <b>wei</b>. However, when <a href=\"https://apidoc.tatum.io/tag/XinFin#operation/XdcBlockchainTransfer\" target=\"_blank\">making the transaction itself</a> and providing the custom fee, you have to provide the gas price in <b>Gwei</b>. Make sure to convert the estimated gas price from wei to Gwei before submitting your transaction.</p>\n","operationId":"XdcEstimateGas","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/XdcEstimateGas"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GasEstimated"}}},"description":"OK"},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"403":{"description":"Forbidden. The request is authenticated, but it is not possible to required perform operation due to logical error or invalid permissions.","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/Error403XdcGasCalculation"}]}}}},"500":{"$ref":"#/components/responses/Error500"}},"security":[{"X-API-Key":[]}],"x-codeSamples":[],"summary":"Estimate the fee for a XinFin transaction","tags":["Fee Estimation API"]}},"/v3/vet/transaction/gas":{"post":{"description":"<p><b>5 credits per API call</b></p>\n<p>Get an estimated amount of gas needed for a VeChain transaction.</p>\n","operationId":"VetEstimateGas","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VetEstimateGas"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"number","example":21000}}},"description":"OK"},"403":{"description":"Forbidden. The request is authenticated, but it is not possible to required perform operation due to logical error or invalid permissions.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error403VetFailed"}}}},"500":{"$ref":"#/components/responses/Error500"}},"security":[{"X-API-Key":[]}],"x-codeSamples":[],"summary":"Estimate the gas needed for a VeChain transaction","tags":["Fee Estimation API"]}},"/v4/data/marketplace/cryptoslam/token/trending":{"get":{"description":"<p style='display: none'>/v4/data/marketplace/cryptoslam/token/trending</p>\n<p><b>250 credits per API call per address</b></p>\n\n<p>Returns trending tokens across the entire blockchain for a specified activity window and optional category. The size of the increase in active wallets over the activity window determines the token's trending rank.</p>\n<p>Supported blockchains:</p>\n<ul>\n<li>Ethereum - ethereum-mainnet</li>\n<li>Base - base-mainnet</li>\n</ul>\n\n> 📘 Note for Free Users\n>\n> As a free user, your data is cached on a 1-day refresh cycle, and wallet queries run through tatumio.eth. This setup helps lower costs so you can easily try out the API. For real-time data, faster syncs, and the full capability of our platform, we recommend upgrading to a paid plan.\n","operationId":"GetCryptoslamTrendingTokens","parameters":[{"name":"chain","description":"The blockchain to work with.","in":"query","required":true,"schema":{"$ref":"#/components/schemas/ChainEnumForTrendingTokens"}},{"name":"timeframe","description":"Timeframe of analysis.","in":"query","required":true,"schema":{"$ref":"#/components/schemas/TimeframeEnum"}},{"name":"pageSize","in":"query","required":false,"schema":{"type":"number","example":10}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseArrayTrendingToken"}}}},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"403":{"$ref":"#/components/responses/Error403"},"500":{"$ref":"#/components/responses/Error500"}},"summary":"Get trending tokens from Cryptoslam","security":[{"X-API-Key":[]}],"tags":["Marketplace"]}},"/v4/data/marketplace/cryptoslam/token/price":{"get":{"description":"<p style='display: none'>/v4/data/marketplace/cryptoslam/token/price</p>\n<p><b>40 credits per API call</b></p>\n\n<p>Returns current token prices with FDV, liquidity, and 24h price change, quoted in USD, ETH, or BTC.</p>\n\n<p><b>Rules:</b></p>\n<ul>\n<li>Provide either symbols or addresses, not both.</li>\n<li>Max 30 entries for either parameter (pipe-delimited or comma separated).</li>\n<li>quote_symbol must be one of: USD, ETH, BTC.</li>\n</ul>\n\n<p>Supported blockchains:</p>\n<ul>\n<li>Ethereum - ethereum-mainnet</li>\n<li>Base - base-mainnet</li>\n</ul>\n","operationId":"GetCryptoslamTokenPrice","parameters":[{"description":"The blockchain to work with.","in":"query","name":"chain","required":true,"schema":{"$ref":"#/components/schemas/ChainEnumForTrendingTokens"}},{"description":"Comma-separated or pipe-delimited list of token symbols (e.g., \"BTC,ETH\" or \"BTC|ETH\").\nMaximum 30 symbols. Mutually exclusive with addresses.\n","in":"query","name":"symbols","required":false,"schema":{"type":"string","example":"BTC,ETH"}},{"description":"Comma-separated or pipe-delimited list of token contract addresses (e.g., \"0x123...,0x456...\" or \"0x123...|0x456...\").\nMaximum 30 addresses. Mutually exclusive with symbols.\n","in":"query","name":"addresses","required":false,"schema":{"type":"string","example":"0x4200000000000000000000000000000000000006"}},{"description":"Quote symbol for price (USD, ETH, or BTC).","in":"query","name":"quoteSymbol","required":false,"schema":{"type":"string","enum":["USD","ETH","BTC"],"example":"USD"}},{"description":"When true, returns only the SLAM token cost for this query without performing the actual query.","in":"query","name":"estimateCost","required":false,"schema":{"type":"boolean","default":false}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"slam":{"type":"number","description":"The SLAM token cost for this API call","example":0.033},"chain":{"type":"string","description":"The blockchain network name","example":"base"},"block":{"type":"number","description":"Block number","example":33244773},"utc":{"type":"string","format":"date-time","description":"UTC timestamp","example":"2025-07-23T13:54:53Z"},"quote":{"type":"string","description":"Quote currency symbol","example":"USD"},"tokens":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"The SWARM (by SLAMai) by Virtuals"},"symbol":{"type":"string","example":"SWARM"},"address":{"type":"string","example":"0xea87169699dabd028a78d4b91544b4298086baf6"},"price":{"type":"number","example":0.004873},"prev":{"type":"array","items":{"type":"object","properties":{"minutes":{"type":"number","example":1440},"change":{"type":"string","example":"-17.00%"}}}},"fdv":{"type":"number","example":4873223},"liquidity":{"type":"number","example":458831}}}}},"example":{"slam":0.033,"chain":"base","block":33244773,"utc":"2025-07-23T13:54:53Z","quote":"USD","tokens":[{"name":"The SWARM (by SLAMai) by Virtuals","symbol":"SWARM","address":"0xea87169699dabd028a78d4b91544b4298086baf6","price":0.004873,"prev":[{"minutes":1440,"change":"-17.00%"}],"fdv":4873223,"liquidity":458831}]}}}}},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"403":{"$ref":"#/components/responses/Error403"},"500":{"$ref":"#/components/responses/Error500"}},"security":[{"X-API-Key":[]}],"x-codeSamples":[],"summary":"Get token prices from Cryptoslam","tags":["Marketplace"]}},"/v4/data/marketplace/cryptoslam/token/price/history":{"get":{"description":"<p style='display: none'>/v4/data/marketplace/cryptoslam/token/price/history</p>\n<p><b>45 credits per API call</b></p>\n\n<p>Retrieves token prices, FDV, and liquidity at any block or timestamp, including percentage change for specified lookback periods.</p>\n\n<p><b>Rules:</b></p>\n<ul>\n<li>Provide either symbols or addresses, not both.</li>\n<li>Max 30 entries for either parameter (pipe-delimited or comma separated).</li>\n<li>quote_symbol must be one of: USD, ETH, BTC.</li>\n<li>Max 30 lookback periods (comma-separated or pipe-delimited minutes).</li>\n</ul>\n\n<p>Supported blockchains:</p>\n<ul>\n<li>Ethereum - ethereum-mainnet</li>\n<li>Base - base-mainnet</li>\n</ul>\n","operationId":"GetCryptoslamTokenPriceHistory","parameters":[{"description":"The blockchain to work with.","in":"query","name":"chain","required":true,"schema":{"$ref":"#/components/schemas/ChainEnumForTrendingTokens"}},{"description":"Comma-separated or pipe-delimited list of token symbols (e.g., \"BTC,ETH\" or \"BTC|ETH\").\nMaximum 30 symbols. Mutually exclusive with addresses.\n","in":"query","name":"symbols","required":false,"schema":{"type":"string","example":"BTC,ETH"}},{"description":"Comma-separated or pipe-delimited list of token contract addresses (e.g., \"0x123...,0x456...\" or \"0x123...|0x456...\").\nMaximum 30 addresses. Mutually exclusive with symbols.\n","in":"query","name":"addresses","required":false,"schema":{"type":"string","example":"0x4200000000000000000000000000000000000006"}},{"description":"Quote symbol for price (USD, ETH, or BTC).","in":"query","name":"quoteSymbol","required":false,"schema":{"type":"string","enum":["USD","ETH","BTC"],"example":"USD"}},{"description":"Block number to retrieve prices at (inclusive).","in":"query","name":"atBlockNumber","required":false,"schema":{"type":"integer","example":33244773}},{"description":"UTC timestamp to retrieve prices at (inclusive). Overrides atBlockNumber if provided.","in":"query","name":"atTimestamp","required":false,"schema":{"type":"string","format":"date-time","example":"2025-07-23T13:54:53Z"}},{"description":"Comma-separated or pipe-delimited list of lookback periods in minutes (e.g., \"60,1440\" or \"60|1440\").\nMaximum 30 periods. Returns percentage change for each specified period.\n","in":"query","name":"lookbackMinutes","required":false,"schema":{"type":"string","example":"60,1440"}},{"description":"When true, returns only the SLAM token cost for this query without performing the actual query.","in":"query","name":"estimateCost","required":false,"schema":{"type":"boolean","default":false}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"slam":{"type":"number","description":"The SLAM token cost for this API call","example":0.033},"chain":{"type":"string","description":"The blockchain network name","example":"base"},"block":{"type":"number","description":"Block number","example":33244773},"utc":{"type":"string","format":"date-time","description":"UTC timestamp","example":"2025-07-23T13:54:53Z"},"quote":{"type":"string","description":"Quote currency symbol","example":"USD"},"tokens":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"The SWARM (by SLAMai) by Virtuals"},"symbol":{"type":"string","example":"SWARM"},"address":{"type":"string","example":"0xea87169699dabd028a78d4b91544b4298086baf6"},"price":{"type":"number","example":0.004873},"prev":{"type":"array","items":{"type":"object","properties":{"minutes":{"type":"number","example":1440},"change":{"type":"string","example":"-17.00%"}}}},"fdv":{"type":"number","example":4873223},"liquidity":{"type":"number","example":458831}}}}},"example":{"slam":0.033,"chain":"base","block":33244773,"utc":"2025-07-23T13:54:53Z","quote":"USD","tokens":[{"name":"The SWARM (by SLAMai) by Virtuals","symbol":"SWARM","address":"0xea87169699dabd028a78d4b91544b4298086baf6","price":0.004873,"prev":[{"minutes":1440,"change":"-17.00%"}],"fdv":4873223,"liquidity":458831}]}}}}},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"403":{"$ref":"#/components/responses/Error403"},"500":{"$ref":"#/components/responses/Error500"}},"security":[{"X-API-Key":[]}],"x-codeSamples":[],"summary":"Get token price history from Cryptoslam","tags":["Marketplace"]}},"/v4/data/marketplace/cryptoslam/token/price/exotic":{"get":{"description":"<p style='display: none'>/v4/data/marketplace/cryptoslam/token/price/exotic</p>\n<p><b>50 credits per API call</b></p>\n\n<p>Retrieves token price details including FDV, liquidity, and 24-hour change, quoted in any ERC20 or major blockchain token.</p>\n\n<p><b>Rules:</b></p>\n<ul>\n<li>Provide either symbols or addresses, not both.</li>\n<li>Max 30 entries for either parameter (pipe-delimited or comma separated).</li>\n<li>Provide either quoteSymbol or quoteAddress for the quote token, not both.</li>\n</ul>\n\n<p>Supported blockchains:</p>\n<ul>\n<li>Ethereum - ethereum-mainnet</li>\n<li>Base - base-mainnet</li>\n</ul>\n","operationId":"GetCryptoslamTokenPriceExotic","parameters":[{"description":"The blockchain to work with.","in":"query","name":"chain","required":true,"schema":{"$ref":"#/components/schemas/ChainEnumForTrendingTokens"}},{"description":"Comma-separated or pipe-delimited list of token symbols (e.g., \"BTC,ETH\" or \"BTC|ETH\").\nMaximum 30 symbols. Mutually exclusive with addresses.\n","in":"query","name":"symbols","required":false,"schema":{"type":"string","example":"SWARM,Billy"}},{"description":"Comma-separated or pipe-delimited list of token contract addresses (e.g., \"0x123...,0x456...\" or \"0x123...|0x456...\").\nMaximum 30 addresses. Mutually exclusive with symbols.\n","in":"query","name":"addresses","required":false,"schema":{"type":"string","example":"0xea87169699dabd028a78d4b91544b4298086baf6"}},{"description":"Quote token symbol (e.g., \"VADER\", \"USDC\", \"WETH\").","in":"query","name":"quoteSymbol","required":false,"schema":{"type":"string","example":"VADER"}},{"description":"Quote token contract address.","in":"query","name":"quoteAddress","required":false,"schema":{"type":"string","example":"0x731814e491571a2e9ee3c5b1f7f3b962ee8f4870"}},{"description":"When true, returns only the SLAM token cost for this query without performing the actual query.","in":"query","name":"estimateCost","required":false,"schema":{"type":"boolean","default":false}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"slam":{"type":"number","description":"The SLAM token cost for this API call","example":0.06616184281050543},"chain":{"type":"string","description":"The blockchain network name","example":"base"},"block":{"type":"number","description":"Block number","example":33511657},"utc":{"type":"string","format":"date-time","description":"UTC timestamp","example":"2025-07-29T18:11:01Z"},"quote":{"type":"string","description":"Quote currency symbol","example":"VADER"},"tokens":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"The SWARM (by SLAMai) by Virtuals"},"symbol":{"type":"string","example":"SWARM"},"address":{"type":"string","example":"0xea87169699dabd028a78d4b91544b4298086baf6"},"price":{"type":"number","example":0.3463756663327276},"prev":{"type":"array","items":{"type":"object","properties":{"minutes":{"type":"number","example":1440},"change":{"type":"string","example":"14.86%"}}}}}}}},"example":{"slam":0.06616184281050543,"chain":"base","block":33511657,"utc":"2025-07-29T18:11:01Z","quote":"VADER","tokens":[{"name":"The SWARM (by SLAMai) by Virtuals","symbol":"SWARM","address":"0xea87169699dabd028a78d4b91544b4298086baf6","price":0.3463756663327276,"prev":[{"minutes":1440,"change":"14.86%"}]},{"name":"Base Mascot","symbol":"Billy","address":"0xeb560289067c375e4897552dcda7e3d203bffbe2","price":0.3177054091971223,"prev":[{"minutes":1440,"change":"19.21%"}]}]}}}}},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"403":{"$ref":"#/components/responses/Error403"},"500":{"$ref":"#/components/responses/Error500"}},"security":[{"X-API-Key":[]}],"x-codeSamples":[],"summary":"Get exotic token prices from Cryptoslam","tags":["Marketplace"]}},"/v4/data/marketplace/cryptoslam/token/price/exotic/history":{"get":{"description":"<p style='display: none'>/v4/data/marketplace/cryptoslam/token/price/exotic/history</p>\n<p><b>50 credits per API call</b></p>\n\n<p>Returns token prices, FDV, liquidity and lookback percentage change quoted in any token at a historical block or timestamp.</p>\n\n<p><b>Rules:</b></p>\n<ul>\n<li>Provide either symbols or addresses, not both.</li>\n<li>Max 30 entries for either parameter (pipe-delimited or comma separated).</li>\n<li>Provide either quoteSymbol or quoteAddress for the quote token, not both.</li>\n<li>Max 30 lookback periods (comma-separated or pipe-delimited minutes).</li>\n</ul>\n\n<p>Supported blockchains:</p>\n<ul>\n<li>Ethereum - ethereum-mainnet</li>\n<li>Base - base-mainnet</li>\n</ul>\n","operationId":"GetCryptoslamTokenPriceExoticHistory","parameters":[{"description":"The blockchain to work with.","in":"query","name":"chain","required":true,"schema":{"$ref":"#/components/schemas/ChainEnumForTrendingTokens"}},{"description":"Comma-separated or pipe-delimited list of token symbols (e.g., \"BTC,ETH\" or \"BTC|ETH\").\nMaximum 30 symbols. Mutually exclusive with addresses.\n","in":"query","name":"symbols","required":false,"schema":{"type":"string","example":"SWARM,Billy"}},{"description":"Comma-separated or pipe-delimited list of token contract addresses (e.g., \"0x123...,0x456...\" or \"0x123...|0x456...\").\nMaximum 30 addresses. Mutually exclusive with symbols.\n","in":"query","name":"addresses","required":false,"schema":{"type":"string","example":"0xea87169699dabd028a78d4b91544b4298086baf6"}},{"description":"Quote token symbol (e.g., \"VADER\", \"USDC\", \"WETH\").","in":"query","name":"quoteSymbol","required":false,"schema":{"type":"string","example":"VADER"}},{"description":"Quote token contract address.","in":"query","name":"quoteAddress","required":false,"schema":{"type":"string","example":"0x731814e491571a2e9ee3c5b1f7f3b962ee8f4870"}},{"description":"Block number to retrieve prices at (inclusive).","in":"query","name":"atBlockNumber","required":false,"schema":{"type":"integer","example":33511850}},{"description":"UTC timestamp to retrieve prices at (inclusive). Overrides atBlockNumber if provided.","in":"query","name":"atTimestamp","required":false,"schema":{"type":"string","format":"date-time","example":"2025-07-29T18:17:27Z"}},{"description":"Comma-separated or pipe-delimited list of lookback periods in minutes (e.g., \"30,45,60\" or \"30|45|60\").\nMaximum 30 periods. Returns percentage change for each specified period.\n","in":"query","name":"lookbackMinutes","required":false,"schema":{"type":"string","example":"30,45,60"}},{"description":"When true, returns only the SLAM token cost for this query without performing the actual query.","in":"query","name":"estimateCost","required":false,"schema":{"type":"boolean","default":false}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"slam":{"type":"number","description":"The SLAM token cost for this API call","example":0.2111212657236631},"chain":{"type":"string","description":"The blockchain network name","example":"base"},"block":{"type":"number","description":"Block number","example":33511850},"utc":{"type":"string","format":"date-time","description":"UTC timestamp","example":"2025-07-29T18:17:27Z"},"quote":{"type":"string","description":"Quote currency symbol","example":"VADER"},"tokens":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"The SWARM (by SLAMai) by Virtuals"},"symbol":{"type":"string","example":"SWARM"},"address":{"type":"string","example":"0xea87169699dabd028a78d4b91544b4298086baf6"},"price":{"type":"number","example":0.3427829542148172},"prev":{"type":"array","items":{"type":"object","properties":{"minutes":{"type":"number","example":30},"change":{"type":"string","example":"1.94%"}}}}}}}},"example":{"slam":0.2111212657236631,"chain":"base","block":33511850,"utc":"2025-07-29T18:17:27Z","quote":"VADER","tokens":[{"name":"The SWARM (by SLAMai) by Virtuals","symbol":"SWARM","address":"0xea87169699dabd028a78d4b91544b4298086baf6","price":0.3427829542148172,"prev":[{"minutes":30,"change":"1.94%"},{"minutes":45,"change":"2.58%"},{"minutes":60,"change":"2.78%"}]},{"name":"Base Mascot","symbol":"Billy","address":"0xeb560289067c375e4897552dcda7e3d203bffbe2","price":0.3449084968980174,"prev":[{"minutes":30,"change":"16.22%"},{"minutes":45,"change":"22.30%"},{"minutes":60,"change":"23.20%"}]}]}}}}},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"403":{"$ref":"#/components/responses/Error403"},"500":{"$ref":"#/components/responses/Error500"}},"security":[{"X-API-Key":[]}],"x-codeSamples":[],"summary":"Get exotic token price history from Cryptoslam","tags":["Marketplace"]}},"/v4/data/marketplace/cryptoslam/token/trades":{"get":{"description":"<p style='display: none'>/v4/data/marketplace/cryptoslam/token/trades</p>\n<p><b>80 credits per API call</b></p>\n\n<p>Returns trades for a specified token address, with optional filtering by side, trader, maker, paired token, block range, or timestamp range.</p>\n\n<p>Supported blockchains:</p>\n<ul>\n<li>Ethereum - ethereum-mainnet</li>\n<li>Base - base-mainnet</li>\n</ul>\n","operationId":"GetCryptoslamTokenTrades","parameters":[{"description":"The blockchain to work with.","in":"query","name":"chain","required":true,"schema":{"$ref":"#/components/schemas/ChainEnumForTrendingTokens"}},{"description":"The ERC-20 token contract address to fetch trades for.","in":"query","name":"tokenAddress","required":true,"schema":{"type":"string","example":"0x4200000000000000000000000000000000000006"}},{"description":"Filter trades where this address sent or received the specified token, regardless of whether they initiated the swap transaction.","in":"query","name":"traderAddress","required":false,"schema":{"type":"string","example":"0x6Cc3E709499c5E91F65391a017a37f4dEB876142"}},{"description":"Filter trades where this address initiated the swap transaction.","in":"query","name":"makerAddress","required":false,"schema":{"type":"string","example":"0x6cc3e709499c5e91f65391a017a37f4deb876142"}},{"description":"Filter trades where the specified token was swapped against this paired token address, regardless of pool.","in":"query","name":"pairedTokenAddress","required":false,"schema":{"type":"string","example":"0x731814e491571a2e9ee3c5b1f7f3b962ee8f4870"}},{"description":"Specifies trade side for the implied quote token address.","in":"query","name":"side","required":false,"schema":{"type":"string","enum":["buy","sell","all"],"default":"all","example":"sell"}},{"description":"Minimum trade size in USD. Filters out trades with an estimated USD value below this threshold.\nNote: Adds additional SLAM cost to the query.\n","in":"query","name":"minUsd","required":false,"schema":{"type":"number","example":100}},{"description":"Maximum trade size in USD. Filters out trades with an estimated USD value above this threshold.\nNote: Adds additional SLAM cost to the query.\n","in":"query","name":"maxUsd","required":false,"schema":{"type":"number","example":10000}},{"description":"The maximum number of records to return (1-1000).","in":"query","name":"num","required":false,"schema":{"type":"integer","minimum":1,"maximum":1000,"default":25,"example":25}},{"description":"Sort order: asc (oldest first) or desc (newest first).","in":"query","name":"order","required":false,"schema":{"type":"string","enum":["asc","desc"],"default":"desc","example":"desc"}},{"description":"Start searching from this UTC timestamp (inclusive). If provided, overrides start_block as the starting point.","in":"query","name":"startTimestamp","required":false,"schema":{"type":"string","format":"date-time","example":"2025-08-19T23:34:41Z"}},{"description":"Block number to start the search from (inclusive). Defaults to the latest block in desc order, or the genesis block in asc order.","in":"query","name":"startBlock","required":false,"schema":{"type":"integer","example":34428567}},{"description":"Log index within the starting block to resume pagination or refine the starting point.","in":"query","name":"startLogIndex","required":false,"schema":{"type":"integer","example":582}},{"description":"When true, returns only the SLAM token cost for this query without performing the actual query.","in":"query","name":"estimateCost","required":false,"schema":{"type":"boolean","default":false}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"slam":{"type":"number","description":"The SLAM token cost for this API call","example":0.156534604543245},"chain":{"type":"string","description":"The blockchain network name","example":"base"},"cursor":{"type":"object","properties":{"start_block":{"type":"integer","description":"Block number for pagination","example":34354914},"start_log_index":{"type":"integer","description":"Log index for pagination","example":951}}},"trades":{"type":"array","items":{"type":"object","properties":{"transaction":{"type":"object","properties":{"utc":{"type":"string","format":"date-time","example":"2025-08-19T23:34:41Z"},"block":{"type":"integer","example":34428567},"hash":{"type":"string","example":"0x5810b16784e796f5ea1c895bc02e83b60af0a72cfaf2ba4db4b06223bc69fe21"},"log_index":{"type":"integer","example":582}}},"side":{"type":"string","enum":["buy","sell"],"example":"sell"},"usd":{"type":"number","description":"Trade size in USD","example":221.269089},"quote_token":{"type":"object","properties":{"address":{"type":"string","example":"0x731814e491571a2e9ee3c5b1f7f3b962ee8f4870"},"symbol":{"type":"string","example":"VADER"},"name":{"type":"string","example":"VaderAI by Virtuals"},"amount":{"type":"number","example":13391.6083401086}}},"base_token":{"type":"object","properties":{"address":{"type":"string","example":"0x4200000000000000000000000000000000000006"},"symbol":{"type":"string","example":"WETH"},"name":{"type":"string","example":"Wrapped Ether"},"amount":{"type":"number","example":0.0538745247259804}}},"price":{"type":"number","example":0.00000398083682421022},"pair":{"type":"object","properties":{"address":{"type":"string","example":"0xebab2be57727f0165f4bb35d765377b951100b5f"},"name":{"type":"string","example":"WETH/VADER"},"labels":{"type":"string","example":"Uniswap V3 Pool"}}},"trader":{"type":"object","properties":{"address":{"type":"string","example":"0x6Cc3E709499c5E91F65391a017a37f4dEB876142"}}},"maker":{"type":"object","properties":{"address":{"type":"string","example":"0x6cc3e709499c5e91f65391a017a37f4deb876142"}}},"sender":{"type":"object","properties":{"address":{"type":"string","example":"0xf525fF21C370Beb8D9F5C12DC0DA2B583f4b949F"},"name":{"type":"string","example":"Base Settler"}}},"recipient":{"type":"object","properties":{"address":{"type":"string","example":"0xf525fF21C370Beb8D9F5C12DC0DA2B583f4b949F"},"name":{"type":"string","example":"Base Settler"}}}}}}},"example":{"slam":0.156534604543245,"chain":"base","cursor":{"start_block":34354914,"start_log_index":951},"trades":[{"transaction":{"utc":"2025-08-19T23:34:41Z","block":34428567,"hash":"0x5810b16784e796f5ea1c895bc02e83b60af0a72cfaf2ba4db4b06223bc69fe21","log_index":582},"side":"sell","usd":221.269089,"quote_token":{"address":"0x731814e491571a2e9ee3c5b1f7f3b962ee8f4870","symbol":"VADER","name":"VaderAI by Virtuals","amount":13391.6083401086},"base_token":{"address":"0x4200000000000000000000000000000000000006","symbol":"WETH","name":"Wrapped Ether","amount":0.0538745247259804},"price":0.00000398083682421022,"pair":{"address":"0xebab2be57727f0165f4bb35d765377b951100b5f","name":"WETH/VADER","labels":"Uniswap V3 Pool"},"trader":{"address":"0x6Cc3E709499c5E91F65391a017a37f4dEB876142"},"maker":{"address":"0x6cc3e709499c5e91f65391a017a37f4deb876142"},"sender":{"address":"0xf525fF21C370Beb8D9F5C12DC0DA2B583f4b949F","name":"Base Settler"},"recipient":{"address":"0xf525fF21C370Beb8D9F5C12DC0DA2B583f4b949F","name":"Base Settler"}}]}}}}},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"403":{"$ref":"#/components/responses/Error403"},"500":{"$ref":"#/components/responses/Error500"}},"security":[{"X-API-Key":[]}],"x-codeSamples":[],"summary":"Get token trades from Cryptoslam","tags":["Marketplace"]}},"/v4/data/marketplace/cryptoslam/token/transfers":{"get":{"description":"<p style='display: none'>/v4/data/marketplace/cryptoslam/token/transfers</p>\n<p><b>25 credits per API call</b></p>\n\n<p>Returns token transfers for a specific token address, with optional filters by participant address, direction, block/timestamp range, and pagination.</p>\n\n<p>Supported blockchains:</p>\n<ul>\n<li>Ethereum - ethereum-mainnet</li>\n<li>Base - base-mainnet</li>\n</ul>\n","operationId":"GetCryptoslamTokenTransfers","parameters":[{"description":"The blockchain to work with.","in":"query","name":"chain","required":true,"schema":{"$ref":"#/components/schemas/ChainEnumForTrendingTokens"}},{"description":"The ERC-20 token contract address to fetch transfers for.","in":"query","name":"tokenAddress","required":true,"schema":{"type":"string","example":"0x98d0baa52b2d063e780de12f615f963fe8537553"}},{"description":"Filter transfers where this address is either the sender or the receiver.","in":"query","name":"address","required":false,"schema":{"type":"string","example":"0x6a0a87ec975DF3D2A4d6159Db55B034D4313ED66"}},{"description":"Transfer direction relative to the address.","in":"query","name":"direction","required":false,"schema":{"type":"string","enum":["sent","received","all"],"default":"all","example":"all"}},{"description":"The maximum number of transfer records to return (1-1000).","in":"query","name":"num","required":false,"schema":{"type":"integer","minimum":1,"maximum":1000,"default":25,"example":25}},{"description":"Sort order: asc (oldest first) or desc (newest first).","in":"query","name":"order","required":false,"schema":{"type":"string","enum":["asc","desc"],"default":"desc","example":"desc"}},{"description":"Start searching from this UTC timestamp (inclusive). Overrides start_block when provided.","in":"query","name":"startTimestamp","required":false,"schema":{"type":"string","format":"date-time","example":"2025-07-24T19:01:47Z"}},{"description":"Block number to start the search from (inclusive). Defaults to the latest block in desc order, or the genesis block in asc order.","in":"query","name":"startBlock","required":false,"schema":{"type":"integer","example":33297180}},{"description":"Log index within the starting block to resume pagination or refine the starting point.","in":"query","name":"startLogIndex","required":false,"schema":{"type":"integer","example":403}},{"description":"When true, returns only the SLAM token cost for this query without performing the actual query.","in":"query","name":"estimateCost","required":false,"schema":{"type":"boolean","default":false}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"slam":{"type":"number","description":"The SLAM token cost for this API call","example":0.00960899547185145},"chain":{"type":"string","description":"The blockchain network name","example":"base"},"cursor":{"type":"object","properties":{"start_block":{"type":"integer","description":"Block number for pagination","example":33297128},"start_log_index":{"type":"integer","description":"Log index for pagination","example":995}}},"transfers":{"type":"array","items":{"type":"object","properties":{"transaction":{"type":"object","properties":{"utc":{"type":"string","format":"date-time","example":"2025-07-24T19:01:47Z"},"block":{"type":"integer","example":33297180},"hash":{"type":"string","example":"0xec1765d57f51a6a7274c33991b42e1c1bff6f760462c0409b13a2632a8ed4934"},"method":{"type":"string","example":"execute"},"log_index":{"type":"integer","example":403}}},"token":{"type":"object","properties":{"address":{"type":"string","example":"0x98d0baa52b2d063e780de12f615f963fe8537553"},"symbol":{"type":"string","example":"KAITO"},"name":{"type":"string","example":"KAITO"}}},"from":{"type":"object","properties":{"address":{"type":"string","example":"0x6a0a87ec975DF3D2A4d6159Db55B034D4313ED66"}}},"to":{"type":"object","properties":{"address":{"type":"string","example":"0x37bb450b17721c6720040a150029e504766e9777"},"name":{"type":"string","example":"WETH/KAITO"},"labels":{"type":"string","example":"Uniswap V3 Pool"}}},"amount":{"type":"object","properties":{"raw":{"type":"number","description":"Raw token amount","example":293120070211072300},"decimals":{"type":"number","description":"Token amount in decimals","example":0.2931200702110723}}}}}}},"example":{"slam":0.00960899547185145,"chain":"base","cursor":{"start_block":33297128,"start_log_index":995},"transfers":[{"transaction":{"utc":"2025-07-24T19:01:47Z","block":33297180,"hash":"0xec1765d57f51a6a7274c33991b42e1c1bff6f760462c0409b13a2632a8ed4934","method":"execute","log_index":403},"token":{"address":"0x98d0baa52b2d063e780de12f615f963fe8537553","symbol":"KAITO","name":"KAITO"},"from":{"address":"0x6a0a87ec975DF3D2A4d6159Db55B034D4313ED66"},"to":{"address":"0x37bb450b17721c6720040a150029e504766e9777","name":"WETH/KAITO","labels":"Uniswap V3 Pool"},"amount":{"raw":293120070211072300,"decimals":0.2931200702110723}}]}}}}},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"403":{"$ref":"#/components/responses/Error403"},"500":{"$ref":"#/components/responses/Error500"}},"security":[{"X-API-Key":[]}],"x-codeSamples":[],"summary":"Get token transfers from Cryptoslam","tags":["Marketplace"]}},"/v4/data/marketplace/cryptoslam/token/transfers/dna":{"get":{"description":"<p style='display: none'>/v4/data/marketplace/cryptoslam/token/transfers/dna</p>\n<p><b>100 credits per API call</b></p>\n\n<p>Returns token transfer records for a given token address, enriched with WalletDNA analytics—including sender and receiver wallet tiers (\"size\"), labels, current balances (token & USD), and each address's share of supply. Each record includes FDV and live token pricing. Supports filtering by participant address, direction, block range, or timestamp. Longer response times should be expected due to the richness of the data.</p>\n\n<p>Supported blockchains:</p>\n<ul>\n<li>Ethereum - ethereum-mainnet</li>\n<li>Base - base-mainnet</li>\n</ul>\n","operationId":"GetCryptoslamTokenTransfersDna","parameters":[{"description":"The blockchain to work with.","in":"query","name":"chain","required":true,"schema":{"$ref":"#/components/schemas/ChainEnumForTrendingTokens"}},{"description":"The ERC-20 token contract address to fetch transfers for.","in":"query","name":"tokenAddress","required":true,"schema":{"type":"string","example":"0x98d0baa52b2d063e780de12f615f963fe8537553"}},{"description":"Filter transfers where this address is either the sender or the receiver.","in":"query","name":"address","required":false,"schema":{"type":"string","example":"0x6a0a87ec975DF3D2A4d6159Db55B034D4313ED66"}},{"description":"Transfer direction relative to the address.","in":"query","name":"direction","required":false,"schema":{"type":"string","enum":["sent","received","all"],"default":"all","example":"all"}},{"description":"The maximum number of transfer records to return (1-100).","in":"query","name":"num","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"default":25,"example":25}},{"description":"Sort order: asc (oldest first) or desc (newest first).","in":"query","name":"order","required":false,"schema":{"type":"string","enum":["asc","desc"],"default":"desc","example":"desc"}},{"description":"Start searching from this UTC timestamp (inclusive). Overrides start_block when provided.","in":"query","name":"startTimestamp","required":false,"schema":{"type":"string","format":"date-time","example":"2025-07-24T19:01:47Z"}},{"description":"Block number to start the search from (inclusive). Defaults to the latest block in desc order, or the genesis block in asc order.","in":"query","name":"startBlock","required":false,"schema":{"type":"integer","example":33297180}},{"description":"Log index within the starting block to resume pagination or refine the starting point.","in":"query","name":"startLogIndex","required":false,"schema":{"type":"integer","example":403}},{"description":"When true, returns only the SLAM token cost for this query without performing the actual query.","in":"query","name":"estimateCost","required":false,"schema":{"type":"boolean","default":false}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"slam":{"type":"number","description":"The SLAM token cost for this API call","example":0.0096},"chain":{"type":"string","description":"The blockchain network name","example":"base"},"cursor":{"type":"object","properties":{"start_block":{"type":"integer","description":"Block number for pagination","example":33297128},"start_log_index":{"type":"integer","description":"Log index for pagination","example":995}}},"transfers":{"type":"array","items":{"type":"object","properties":{"transaction":{"type":"object","properties":{"utc":{"type":"string","format":"date-time","example":"2025-07-24T19:01:47Z"},"block":{"type":"integer","example":33297180},"hash":{"type":"string","example":"0xec17..."},"method":{"type":"string","example":"execute"},"log_index":{"type":"integer","example":403}}},"token":{"type":"object","properties":{"address":{"type":"string","example":"0x98d0..."},"symbol":{"type":"string","example":"KAITO"},"name":{"type":"string","example":"KAITO"},"usd":{"type":"number","description":"Token price in USD","example":0.45},"fdv":{"type":"number","description":"Fully diluted valuation","example":40000000}}},"from":{"type":"object","properties":{"address":{"type":"string","example":"0x6a0a..."},"balance":{"type":"object","properties":{"decimals":{"type":"number","example":1.23},"usd":{"type":"number","example":0.56},"supply_share":{"type":"number","example":0.0001}}},"mass":{"type":"object","properties":{"tier":{"type":"string","example":"Fish"},"raw":{"type":"number","example":100}}}}},"to":{"type":"object","properties":{"address":{"type":"string","example":"0x37bb..."},"name":{"type":"string","example":"WETH/KAITO"},"labels":{"type":"string","example":"Uniswap V3 Pool"},"balance":{"type":"object","properties":{"decimals":{"type":"number","example":99.1},"usd":{"type":"number","example":50.3},"supply_share":{"type":"number","example":0.0501}}},"mass":{"type":"object","properties":{"tier":{"type":"string","example":"Whale"},"raw":{"type":"number","example":1500}}}}},"amount":{"type":"object","properties":{"raw":{"type":"number","description":"Raw token amount","example":293120000000000000},"decimals":{"type":"number","description":"Token amount in decimals","example":0.2931},"usd":{"type":"number","description":"Amount value in USD","example":0.12}}}}}}},"example":{"slam":0.0096,"chain":"base","cursor":{"start_block":33297128,"start_log_index":995},"transfers":[{"transaction":{"utc":"2025-07-24T19:01:47Z","block":33297180,"hash":"0xec17...","method":"execute","log_index":403},"token":{"address":"0x98d0...","symbol":"KAITO","name":"KAITO","usd":0.45,"fdv":40000000},"from":{"address":"0x6a0a...","balance":{"decimals":1.23,"usd":0.56,"supply_share":0.0001},"mass":{"tier":"Fish","raw":100}},"to":{"address":"0x37bb...","name":"WETH/KAITO","labels":"Uniswap V3 Pool","balance":{"decimals":99.1,"usd":50.3,"supply_share":0.0501},"mass":{"tier":"Whale","raw":1500}},"amount":{"raw":293120000000000000,"decimals":0.2931,"usd":0.12}}]}}}}},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"403":{"$ref":"#/components/responses/Error403"},"500":{"$ref":"#/components/responses/Error500"}},"security":[{"X-API-Key":[]}],"x-codeSamples":[],"summary":"Get token transfers with DNA from Cryptoslam","tags":["Marketplace"]}},"/v4/data/marketplace/cryptoslam/token/holder/reputation":{"get":{"description":"<p style='display: none'>/v4/data/marketplace/cryptoslam/token/holder/reputation</p>\n<p><b>1500 credits per API call</b></p>\n\n<p>Returns reputation scores for one or more wallets holding a token, at the current or historical block/timestamp.</p>\n\n<p><b>Rules:</b></p>\n<ul>\n<li>Provide either tokenAddress or tokenSymbol, not both.</li>\n<li>walletAddresses must be comma-separated or pipe-delimited (e.g., \"0x123...,0x456...\" or \"0x123...|0x456...\").</li>\n</ul>\n\n<p>Supported blockchains:</p>\n<ul>\n<li>Ethereum - ethereum-mainnet</li>\n<li>Base - base-mainnet</li>\n</ul>\n","operationId":"GetCryptoslamTokenHolderReputation","parameters":[{"description":"The blockchain to work with.","in":"query","name":"chain","required":true,"schema":{"$ref":"#/components/schemas/ChainEnumForTrendingTokens"}},{"description":"Comma-separated or pipe-delimited list of wallet addresses (e.g., \"0x123...,0x456...\" or \"0x123...|0x456...\").\nMaximum 30 addresses.\n","in":"query","name":"walletAddresses","required":true,"schema":{"type":"string","example":"0x31B5aBcF044049daa96cDC387a44747a48a0ac62"}},{"description":"The ERC-20 token contract address. Mutually exclusive with tokenSymbol.","in":"query","name":"tokenAddress","required":false,"schema":{"type":"string","example":"0x731814e491571a2e9ee3c5b1f7f3b962ee8f4870"}},{"description":"The token symbol. Mutually exclusive with tokenAddress.","in":"query","name":"tokenSymbol","required":false,"schema":{"type":"string","example":"VADER"}},{"description":"Block number to retrieve reputation at (inclusive).","in":"query","name":"atBlockNumber","required":false,"schema":{"type":"integer","example":33258490}},{"description":"UTC timestamp to retrieve reputation at (inclusive). Overrides atBlockNumber if provided.","in":"query","name":"atTimestamp","required":false,"schema":{"type":"string","format":"date-time","example":"2025-07-23T21:32:07Z"}},{"description":"When true, returns only the SLAM token cost for this query without performing the actual query.","in":"query","name":"estimateCost","required":false,"schema":{"type":"boolean","default":false}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"slam":{"type":"number","description":"The SLAM token cost for this API call","example":1.32},"chain":{"type":"string","description":"The blockchain network name","example":"base"},"block":{"type":"number","description":"Block number","example":33258490},"utc":{"type":"string","format":"date-time","description":"UTC timestamp","example":"2025-07-23T21:32:07Z"},"holders":{"type":"array","items":{"type":"object","properties":{"wallet":{"type":"object","properties":{"address":{"type":"string","example":"0x31B5aBcF044049daa96cDC387a44747a48a0ac62"},"name":{"type":"string","nullable":true,"example":null},"labels":{"type":"string","nullable":true,"example":null}}},"token":{"type":"object","properties":{"address":{"type":"string","example":"0x731814e491571a2e9ee3c5b1f7f3b962ee8f4870"},"symbol":{"type":"string","example":"VADER"},"name":{"type":"string","example":"VaderAI by Virtuals"}}},"reputation":{"type":"object","properties":{"tier":{"type":"string","example":"B"},"raw":{"type":"number","description":"Raw reputation score","example":86.01},"weight":{"type":"number","description":"Reputation weight","example":0.09659}}}}}}},"example":{"slam":1.32,"chain":"base","block":33258490,"utc":"2025-07-23T21:32:07Z","holders":[{"wallet":{"address":"0x31B5aBcF044049daa96cDC387a44747a48a0ac62","name":null,"labels":null},"token":{"address":"0x731814e491571a2e9ee3c5b1f7f3b962ee8f4870","symbol":"VADER","name":"VaderAI by Virtuals"},"reputation":{"tier":"B","raw":86.01,"weight":0.09659}}]}}}}},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"403":{"$ref":"#/components/responses/Error403"},"500":{"$ref":"#/components/responses/Error500"}},"security":[{"X-API-Key":[]}],"x-codeSamples":[],"summary":"Get token holder reputation from Cryptoslam","tags":["Marketplace"]}},"/v4/data/marketplace/cryptoslam/chain/trades":{"get":{"description":"<p style='display: none'>/v4/data/marketplace/cryptoslam/chain/trades</p>\n<p><b>100 credits per API call</b></p>\n\n<p>Returns trades across the entire blockchain, with optional filtering by block range or timestamp range.</p>\n\n<p>Supported blockchains:</p>\n<ul>\n<li>Ethereum - ethereum-mainnet</li>\n<li>Base - base-mainnet</li>\n</ul>\n","operationId":"GetCryptoslamChainTrades","parameters":[{"description":"The blockchain to work with.","in":"query","name":"chain","required":true,"schema":{"$ref":"#/components/schemas/ChainEnumForTrendingTokens"}},{"description":"Specifies trade side for the implied quote token address.","in":"query","name":"side","required":false,"schema":{"type":"string","enum":["buy","sell","all"],"default":"all","example":"sell"}},{"description":"Minimum trade size in USD. Filters out trades with an estimated USD value below this threshold.\nNote: Adds additional SLAM cost to the query.\n","in":"query","name":"minUsd","required":false,"schema":{"type":"number","example":100}},{"description":"Maximum trade size in USD. Filters out trades with an estimated USD value above this threshold.\nNote: Adds additional SLAM cost to the query.\n","in":"query","name":"maxUsd","required":false,"schema":{"type":"number","example":10000}},{"description":"The maximum number of records to return (1-1000).","in":"query","name":"num","required":false,"schema":{"type":"integer","minimum":1,"maximum":1000,"default":25,"example":25}},{"description":"Sort order: asc (oldest first) or desc (newest first).","in":"query","name":"order","required":false,"schema":{"type":"string","enum":["asc","desc"],"default":"desc","example":"desc"}},{"description":"Start searching from this UTC timestamp (inclusive). If provided, overrides start_block as the starting point.","in":"query","name":"startTimestamp","required":false,"schema":{"type":"string","format":"date-time","example":"2025-08-21T18:35:37Z"}},{"description":"Block number to start the search from (inclusive). Defaults to the latest block in desc order, or the genesis block in asc order.","in":"query","name":"startBlock","required":false,"schema":{"type":"integer","example":34505995}},{"description":"Log index within the starting block to resume pagination or refine the starting point.","in":"query","name":"startLogIndex","required":false,"schema":{"type":"integer","example":438}},{"description":"When true, returns only the SLAM token cost for this query without performing the actual query.","in":"query","name":"estimateCost","required":false,"schema":{"type":"boolean","default":false}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"slam":{"type":"number","description":"The SLAM token cost for this API call","example":0.113171573228496},"chain":{"type":"string","description":"The blockchain network name","example":"base"},"cursor":{"type":"object","properties":{"start_block":{"type":"integer","description":"Block number for pagination","example":34505995},"start_log_index":{"type":"integer","description":"Log index for pagination","example":438}}},"trades":{"type":"array","items":{"type":"object","properties":{"transaction":{"type":"object","properties":{"utc":{"type":"string","format":"date-time","example":"2025-08-21T18:35:37Z"},"block":{"type":"integer","example":34505995},"hash":{"type":"string","example":"0x4af340f1994cd6e6ee128ee9a60b69dbb8a35e138807664b558ba8d6cf3261fa"},"log_index":{"type":"integer","example":438}}},"side":{"type":"string","enum":["buy","sell"],"example":"sell"},"usd":{"type":"number","description":"Trade size in USD","example":11900.433149},"quote_token":{"type":"object","properties":{"address":{"type":"string","example":"0xcbb7c0000ab88b473b1f5afd9ef808440eed33bf"},"symbol":{"type":"string","example":"cbBTC"},"name":{"type":"string","example":"Coinbase Wrapped BTC"},"amount":{"type":"number","example":0.10587953}}},"base_token":{"type":"object","properties":{"address":{"type":"string","example":"0x4200000000000000000000000000000000000006"},"symbol":{"type":"string","example":"WETH"},"name":{"type":"string","example":"Wrapped Ether"},"amount":{"type":"number","example":2.80266221234474}}},"price":{"type":"number","example":26.4809954693264},"pair":{"type":"object","properties":{"address":{"type":"string","example":"0x70acdf2ad0bf2402c957154f944c19ef4e1cbae1"},"name":{"type":"string","example":"CLPool"}}},"trader":{"type":"object","properties":{"address":{"type":"string","example":"0x233F27a4e8cacd9a07E6066c017d996d5909bD46"}}},"maker":{"type":"object","properties":{"address":{"type":"string","example":"0x15255dc24c2a8b7c82384c4a966364033b6c3146"}}},"sender":{"type":"object","properties":{"address":{"type":"string","example":"0x6Cb442acF35158D5eDa88fe602221b67B400Be3E"},"name":{"type":"string","example":"Universal Router"},"labels":{"type":"string","example":"DEX"}}},"recipient":{"type":"object","properties":{"address":{"type":"string","example":"0x233F27a4e8cacd9a07E6066c017d996d5909bD46"}}}}}}},"example":{"slam":0.113171573228496,"chain":"base","cursor":{"start_block":34505995,"start_log_index":438},"trades":[{"transaction":{"utc":"2025-08-21T18:35:37Z","block":34505995,"hash":"0x4af340f1994cd6e6ee128ee9a60b69dbb8a35e138807664b558ba8d6cf3261fa","log_index":438},"side":"sell","usd":11900.433149,"quote_token":{"address":"0xcbb7c0000ab88b473b1f5afd9ef808440eed33bf","symbol":"cbBTC","name":"Coinbase Wrapped BTC","amount":0.10587953},"base_token":{"address":"0x4200000000000000000000000000000000000006","symbol":"WETH","name":"Wrapped Ether","amount":2.80266221234474},"price":26.4809954693264,"pair":{"address":"0x70acdf2ad0bf2402c957154f944c19ef4e1cbae1","name":"CLPool"},"trader":{"address":"0x233F27a4e8cacd9a07E6066c017d996d5909bD46"},"maker":{"address":"0x15255dc24c2a8b7c82384c4a966364033b6c3146"},"sender":{"address":"0x6Cb442acF35158D5eDa88fe602221b67B400Be3E","name":"Universal Router","labels":"DEX"},"recipient":{"address":"0x233F27a4e8cacd9a07E6066c017d996d5909bD46"}}]}}}}},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"403":{"$ref":"#/components/responses/Error403"},"500":{"$ref":"#/components/responses/Error500"}},"security":[{"X-API-Key":[]}],"x-codeSamples":[],"summary":"Get chain trades from Cryptoslam","tags":["Marketplace"]}},"/v4/data/marketplace/cryptoslam/chain/trades/dna":{"get":{"description":"<p style='display: none'>/v4/data/marketplace/cryptoslam/chain/trades/dna</p>\n<p><b>5000 credits per API call</b></p>\n\n<p>This endpoint retrieves trade data across the entire blockchain enriched with WalletDNA metrics. Developers can filter trades by size, side, or wallet behavior (IQ, Reputation, Flow, Mass, Epoch, Maker Presence). Responses include detailed trade, token, and wallet profiles, enabling advanced segmentation, smart-money tracking, and high-signal on-chain analytics in real time.</p>\n\n<p>Supported blockchains:</p>\n<ul>\n<li>Ethereum - ethereum-mainnet</li>\n<li>Base - base-mainnet</li>\n</ul>\n","operationId":"GetCryptoslamChainTradesDna","parameters":[{"description":"The blockchain to work with.","in":"query","name":"chain","required":true,"schema":{"$ref":"#/components/schemas/ChainEnumForTrendingTokens"}},{"description":"Specifies trade side for the given token_address.","in":"query","name":"side","required":false,"schema":{"type":"string","enum":["buy","sell","all"],"default":"all","example":"buy"}},{"description":"Pipe-delimited list of walletDNA metrics to return in the response. Use 'all' to display every metric.\nValid options include: tokens, intelligence, reputation, flow, mass, epoch, makerPresence, entry, all.\n","in":"query","name":"dna","required":false,"schema":{"type":"string","default":"all","example":"intelligence|flow|mass|tokens"}},{"description":"Minimum trade size in USD. Filters out trades with an estimated USD value below this threshold.\nNote: Adds additional SLAM cost to the query.\n","in":"query","name":"minUsd","required":false,"schema":{"type":"number","example":100}},{"description":"Maximum trade size in USD. Filters out trades with an estimated USD value above this threshold.\nNote: Adds additional SLAM cost to the query.\n","in":"query","name":"maxUsd","required":false,"schema":{"type":"number","example":10000}},{"description":"Minimum holder IQ (raw score). Filters out wallets with IQ scores below this threshold. Average IQ for all wallets trading a given token is 100.","in":"query","name":"minIq","required":false,"schema":{"type":"number","example":120}},{"description":"Maximum holder IQ (raw score). Filters out wallets with IQ scores above this threshold. Average IQ for all wallets trading a given token is 100. Max: Although possible, it is uncommon for wallets to have IQ scores above 200.","in":"query","name":"maxIq","required":false,"schema":{"type":"number","example":180}},{"description":"Minimum holder Intelligence tier. Filters out wallets ranked below this tier.","in":"query","name":"minIntelligence","required":false,"schema":{"type":"string","enum":["idiot","dumb","below avg","avg","avg++","gifted","gifted++","genius","einstein"],"example":"gifted"}},{"description":"Maximum holder Intelligence tier. Filters out wallets ranked above this tier.","in":"query","name":"maxIntelligence","required":false,"schema":{"type":"string","enum":["idiot","dumb","below avg","avg","avg++","gifted","gifted++","genius","einstein"],"example":"genius"}},{"description":"Minimum raw holder Reputation. Filters out wallets with Reputation scores below this threshold.","in":"query","name":"minReputation","required":false,"schema":{"type":"number","example":80}},{"description":"Maximum raw holder Reputation. Filters out wallets with Reputation scores above this threshold. Max: 100.","in":"query","name":"maxReputation","required":false,"schema":{"type":"number","maximum":100,"example":95}},{"description":"Minimum holder Reputation tier. Filters out wallets ranked below this tier.","in":"query","name":"minReputationTier","required":false,"schema":{"type":"string","enum":["a+","a","a−","b+","b","b−","c+","c","c−","d","f"],"example":"b+"}},{"description":"Maximum holder Reputation tier. Filters out wallets ranked above this tier.","in":"query","name":"maxReputationTier","required":false,"schema":{"type":"string","enum":["a+","a","a−","b+","b","b−","c+","c","c−","d","f"],"example":"a+"}},{"description":"Minimum raw holder Mass. Filters out wallets with Mass scores below this threshold.","in":"query","name":"minMass","required":false,"schema":{"type":"number","example":50}},{"description":"Maximum raw holder Mass. Filters out wallets with Mass scores above this threshold. Max: Scores above 250 are rare but possible.","in":"query","name":"maxMass","required":false,"schema":{"type":"number","example":200}},{"description":"Minimum holder Mass tier. Filters out wallets ranked below this tier.","in":"query","name":"minMassTier","required":false,"schema":{"type":"string","enum":["ghost","dust","plankton","shrimp","minnow","fish","dolphin","orca","whale","moby"],"example":"fish"}},{"description":"Maximum holder Mass tier. Filters out wallets ranked above this tier.","in":"query","name":"maxMassTier","required":false,"schema":{"type":"string","enum":["ghost","dust","plankton","shrimp","minnow","fish","dolphin","orca","whale","moby"],"example":"whale"}},{"description":"Minimum raw holder Epoch. Filters out wallets with Epoch scores below this threshold.","in":"query","name":"minEpoch","required":false,"schema":{"type":"number","example":30}},{"description":"Maximum raw holder Epoch. Filters out wallets with Epoch scores above this threshold. Max: 200.","in":"query","name":"maxEpoch","required":false,"schema":{"type":"number","maximum":200,"example":150}},{"description":"Minimum holder Epoch tier. Filters out wallets ranked below this tier.","in":"query","name":"minEpochTier","required":false,"schema":{"type":"string","enum":["newbie","rookie","core","veteran","early adopter","genesis","og","ultra og"],"example":"core"}},{"description":"Maximum holder Epoch tier. Filters out wallets ranked above this tier.","in":"query","name":"maxEpochTier","required":false,"schema":{"type":"string","enum":["newbie","rookie","core","veteran","early adopter","genesis","og","ultra og"],"example":"ultra og"}},{"description":"Minimum raw holder maker_presence. Filters out wallets with maker_presence scores below this threshold.","in":"query","name":"minMakerPresence","required":false,"schema":{"type":"number","example":50}},{"description":"Maximum raw holder maker_presence. Filters out wallets with maker_presence scores above this threshold. Max: Scores above 200 are rare but possible.","in":"query","name":"maxMakerPresence","required":false,"schema":{"type":"number","example":180}},{"description":"Minimum holder maker_presence tier. Filters out wallets ranked below this tier.","in":"query","name":"minMakerPresenceTier","required":false,"schema":{"type":"string","enum":["hyperactive","highly active","active","engaged","occasional","minimal","micro","zero"],"example":"active"}},{"description":"Maximum holder maker_presence tier. Filters out wallets ranked above this tier.","in":"query","name":"maxMakerPresenceTier","required":false,"schema":{"type":"string","enum":["hyperactive","highly active","active","engaged","occasional","minimal","micro","zero"],"example":"hyperactive"}},{"description":"Minimum raw holder Flow. Filters out wallets with Flow scores below this threshold.","in":"query","name":"minFlow","required":false,"schema":{"type":"number","example":50}},{"description":"Maximum raw holder Flow. Filters out wallets with Flow scores above this threshold. Max: Scores above 250 are rare but possible.","in":"query","name":"maxFlow","required":false,"schema":{"type":"number","example":200}},{"description":"Minimum holder Flow tier. Filters out wallets ranked below this tier.","in":"query","name":"minFlowTier","required":false,"schema":{"type":"string","enum":["dry","drip","trickle","stream","current","flood","torrent","tsunami"],"example":"current"}},{"description":"Maximum holder Flow tier. Filters out wallets ranked above this tier.","in":"query","name":"maxFlowTier","required":false,"schema":{"type":"string","enum":["dry","drip","trickle","stream","current","flood","torrent","tsunami"],"example":"tsunami"}},{"description":"Minimum raw holder buy_flow. Filters out wallets with buy_flow scores below this threshold.","in":"query","name":"minBuyFlow","required":false,"schema":{"type":"number","example":50}},{"description":"Maximum raw holder buy_flow. Filters out wallets with buy_flow scores above this threshold. Max: Scores above 250 are rare but possible.","in":"query","name":"maxBuyFlow","required":false,"schema":{"type":"number","example":200}},{"description":"Minimum holder buy_flow tier. Filters out wallets ranked below this tier.","in":"query","name":"minBuyFlowTier","required":false,"schema":{"type":"string","enum":["dry","drip","trickle","stream","current","flood","torrent","tsunami"],"example":"current"}},{"description":"Maximum holder buy_flow tier. Filters out wallets ranked above this tier.","in":"query","name":"maxBuyFlowTier","required":false,"schema":{"type":"string","enum":["dry","drip","trickle","stream","current","flood","torrent","tsunami"],"example":"tsunami"}},{"description":"Minimum raw holder sell_flow. Filters out wallets with sell_flow scores below this threshold.","in":"query","name":"minSellFlow","required":false,"schema":{"type":"number","example":50}},{"description":"Maximum raw holder sell_flow. Filters out wallets with sell_flow scores above this threshold. Max: Scores above 250 are rare but possible.","in":"query","name":"maxSellFlow","required":false,"schema":{"type":"number","example":200}},{"description":"Minimum holder sell_flow tier. Filters out wallets ranked below this tier.","in":"query","name":"minSellFlowTier","required":false,"schema":{"type":"string","enum":["dry","drip","trickle","stream","current","flood","torrent","tsunami"],"example":"current"}},{"description":"Maximum holder sell_flow tier. Filters out wallets ranked above this tier.","in":"query","name":"maxSellFlowTier","required":false,"schema":{"type":"string","enum":["dry","drip","trickle","stream","current","flood","torrent","tsunami"],"example":"tsunami"}},{"description":"The maximum number of trade records to return (1-1000).","in":"query","name":"num","required":false,"schema":{"type":"integer","minimum":1,"maximum":1000,"default":25,"example":25}},{"description":"Sort order for results: asc (oldest first) or desc (newest first).","in":"query","name":"order","required":false,"schema":{"type":"string","enum":["asc","desc"],"default":"desc","example":"desc"}},{"description":"Start searching from this UTC timestamp (inclusive). If provided, overrides start_block as the starting point.","in":"query","name":"startTimestamp","required":false,"schema":{"type":"string","format":"date-time","example":"2025-08-26T13:33:45Z"}},{"description":"Block number to start the search from (inclusive). Defaults to the latest block in desc order, or the genesis block in asc order.","in":"query","name":"startBlock","required":false,"schema":{"type":"integer","example":34712886}},{"description":"Log index within the starting block to resume pagination or refine the starting point.","in":"query","name":"startLogIndex","required":false,"schema":{"type":"integer","example":1515}},{"description":"When true, returns only the SLAM token cost for this query without performing the actual query.","in":"query","name":"estimateCost","required":false,"schema":{"type":"boolean","default":false}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"slam":{"type":"number","description":"The SLAM token cost for this API call","example":45.5902625472039},"chain":{"type":"string","description":"The blockchain network name","example":"base"},"cursor":{"type":"object","properties":{"start_block":{"type":"integer","description":"Block number for pagination","example":34712886},"start_log_index":{"type":"integer","description":"Log index for pagination","example":1515}}},"trades":{"type":"array","items":{"type":"object","properties":{"transaction":{"type":"object","properties":{"utc":{"type":"string","format":"date-time","example":"2025-08-26T13:33:45Z"},"block":{"type":"integer","example":34712939},"hash":{"type":"string","example":"0xcb9c1c6dfbbda0fba49a58870b4e5729332c1e0d3c7daed983e5a24874f15cdd"},"method":{"type":"string","example":"swap exact ethfor tokens supporting fee on transfer tokens"},"log_index":{"type":"integer","example":472}}},"side":{"type":"string","enum":["buy","sell"],"example":"buy"},"usd":{"type":"number","description":"Trade size in USD","example":22.539911},"quote_token":{"type":"object","properties":{"address":{"type":"string","example":"0xd767f4d417f0973f60b8ea31e9b0908c521d4894"},"symbol":{"type":"string","example":"Pythia"},"name":{"type":"string","example":"Pythia"},"amount":{"type":"number","example":200.679232451407}}},"base_token":{"type":"object","properties":{"address":{"type":"string","example":"0x4200000000000000000000000000000000000006"},"symbol":{"type":"string","example":"WETH"},"name":{"type":"string","example":"Wrapped Ether"},"amount":{"type":"number","example":0.005}}},"price":{"type":"number","example":0.0000248712427180742},"pair":{"type":"object","properties":{"address":{"type":"string","example":"0xe02a06abe98fa312bc12fdd575689a513390dc32"},"name":{"type":"string","example":"WETH/Pythia"},"labels":{"type":"string","example":"Uniswap V2 Pool"}}},"trader":{"type":"object","properties":{"address":{"type":"string","example":"0x39dc4F774ABD6b6053C2E4bbE89A81a78BeF3D85"},"quote_token_holding":{"type":"object","properties":{"balance":{"type":"number","example":223561.945721182},"staked_pct":{"type":"number","example":0.245384},"value_usd":{"type":"number","example":25065.5682}}},"intelligence":{"type":"object","properties":{"tier":{"type":"string","example":"Genius"},"iq":{"type":"number","example":156.87}}},"reputation":{"type":"object","properties":{"tier":{"type":"string","example":"A+"},"raw":{"type":"number","example":98.69}}},"mass":{"type":"object","properties":{"tier":{"type":"string","example":"Dolphin"},"raw":{"type":"number","example":105.89}}},"epoch":{"type":"object","properties":{"tier":{"type":"string","example":"Ultra OG"},"raw":{"type":"number","example":180.92}}},"maker_presence":{"type":"object","properties":{"tier":{"type":"string","example":"Hyperactive"},"raw":{"type":"number","example":200}}},"flow":{"type":"object","properties":{"buy":{"type":"object","properties":{"tier":{"type":"string","example":"Torrent"},"raw":{"type":"number","example":185.58}}},"sell":{"type":"object","properties":{"tier":{"type":"string","example":"Torrent"},"raw":{"type":"number","example":160.25}}},"total":{"type":"object","properties":{"tier":{"type":"string","example":"Torrent"},"raw":{"type":"number","example":186.24}}}}},"entry":{"type":"object","properties":{"method":{"type":"string","example":"AirDrop"},"token_amount":{"type":"number","example":200000},"block":{"type":"integer","example":32376272},"utc":{"type":"string","format":"date-time","example":"2025-07-03T11:24:51"},"parent":{"type":"string","example":"0xeB4F1685aadcF4075d03602C5F24Fb4bF781305D"}}}}},"maker":{"type":"object","properties":{"address":{"type":"string","example":"0x39dc4f774abd6b6053c2e4bbe89a81a78bef3d85"}}},"sender":{"type":"object","properties":{"address":{"type":"string","example":"0x4752ba5DBc23f44D87826276BF6Fd6b1C372aD24"},"name":{"type":"string","example":"Uniswap V2"},"labels":{"type":"string","example":"DeFi|Uniswap V2 Router 02"}}},"recipient":{"type":"object","properties":{"address":{"type":"string","example":"0x39dc4F774ABD6b6053C2E4bbE89A81a78BeF3D85"}}}}}}},"example":{"slam":45.5902625472039,"chain":"base","cursor":{"start_block":34712886,"start_log_index":1515},"trades":[{"transaction":{"utc":"2025-08-26T13:33:45Z","block":34712939,"hash":"0xcb9c1c6dfbbda0fba49a58870b4e5729332c1e0d3c7daed983e5a24874f15cdd","method":"swap exact ethfor tokens supporting fee on transfer tokens","log_index":472},"side":"buy","usd":22.539911,"quote_token":{"address":"0xd767f4d417f0973f60b8ea31e9b0908c521d4894","symbol":"Pythia","name":"Pythia","amount":200.679232451407},"base_token":{"address":"0x4200000000000000000000000000000000000006","symbol":"WETH","name":"Wrapped Ether","amount":0.005},"price":0.0000248712427180742,"pair":{"address":"0xe02a06abe98fa312bc12fdd575689a513390dc32","name":"WETH/Pythia","labels":"Uniswap V2 Pool"},"trader":{"address":"0x39dc4F774ABD6b6053C2E4bbE89A81a78BeF3D85","quote_token_holding":{"balance":223561.945721182,"staked_pct":0.245384,"value_usd":25065.5682},"intelligence":{"tier":"Genius","iq":156.87},"reputation":{"tier":"A+","raw":98.69},"mass":{"tier":"Dolphin","raw":105.89},"epoch":{"tier":"Ultra OG","raw":180.92},"maker_presence":{"tier":"Hyperactive","raw":200},"flow":{"buy":{"tier":"Torrent","raw":185.58},"sell":{"tier":"Torrent","raw":160.25},"total":{"tier":"Torrent","raw":186.24}},"entry":{"method":"AirDrop","token_amount":200000,"block":32376272,"utc":"2025-07-03T11:24:51","parent":"0xeB4F1685aadcF4075d03602C5F24Fb4bF781305D"}},"maker":{"address":"0x39dc4f774abd6b6053c2e4bbe89a81a78bef3d85"},"sender":{"address":"0x4752ba5DBc23f44D87826276BF6Fd6b1C372aD24","name":"Uniswap V2","labels":"DeFi|Uniswap V2 Router 02"},"recipient":{"address":"0x39dc4F774ABD6b6053C2E4bbE89A81a78BeF3D85"}}]}}}}},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"403":{"$ref":"#/components/responses/Error403"},"500":{"$ref":"#/components/responses/Error500"}},"security":[{"X-API-Key":[]}],"x-codeSamples":[],"summary":"Get chain trades DNA from Cryptoslam","tags":["Marketplace"]}},"/v4/data/marketplace/cryptoslam/chain/transfers":{"get":{"description":"<p style='display: none'>/v4/data/marketplace/cryptoslam/chain/transfers</p>\n<p><b>30 credits per API call</b></p>\n\n<p>Returns token transfers across the entire blockchain, with optional filtering by block range or timestamp range.</p>\n\n<p>Supported blockchains:</p>\n<ul>\n<li>Ethereum - ethereum-mainnet</li>\n<li>Base - base-mainnet</li>\n</ul>\n","operationId":"GetCryptoslamChainTransfers","parameters":[{"description":"The blockchain to work with.","in":"query","name":"chain","required":true,"schema":{"$ref":"#/components/schemas/ChainEnumForTrendingTokens"}},{"description":"The maximum number of transfer records to return (1-1000).","in":"query","name":"num","required":false,"schema":{"type":"integer","minimum":1,"maximum":1000,"default":25,"example":25}},{"description":"Sort order for results: asc (oldest first) or desc (newest first).","in":"query","name":"order","required":false,"schema":{"type":"string","enum":["asc","desc"],"default":"desc","example":"desc"}},{"description":"Start searching from this UTC timestamp (inclusive). Overrides start_block when provided.","in":"query","name":"startTimestamp","required":false,"schema":{"type":"string","format":"date-time","example":"2025-07-24T19:01:47Z"}},{"description":"Block number to start the search from (inclusive). Defaults to the latest block in desc order, or the genesis block in asc order.","in":"query","name":"startBlock","required":false,"schema":{"type":"integer","example":33297128}},{"description":"Log index within the starting block to resume pagination or refine the starting point.","in":"query","name":"startLogIndex","required":false,"schema":{"type":"integer","example":995}},{"description":"When true, returns only the SLAM token cost for this query without performing the actual query.","in":"query","name":"estimateCost","required":false,"schema":{"type":"boolean","default":false}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"slam":{"type":"number","description":"The SLAM token cost for this API call","example":0.00960899547185145},"chain":{"type":"string","description":"The blockchain network name","example":"base"},"cursor":{"type":"object","properties":{"start_block":{"type":"integer","description":"Block number for pagination","example":33297128},"start_log_index":{"type":"integer","description":"Log index for pagination","example":995}}},"transfers":{"type":"array","items":{"type":"object","properties":{"transaction":{"type":"object","properties":{"utc":{"type":"string","format":"date-time","example":"2025-07-24T19:01:47Z"},"block":{"type":"integer","example":33297180},"hash":{"type":"string","example":"0xec1765d57f51a6a7274c33991b42e1c1bff6f760462c0409b13a2632a8ed4934"},"method":{"type":"string","example":"execute"},"log_index":{"type":"integer","example":403}}},"token":{"type":"object","properties":{"address":{"type":"string","example":"0x98d0baa52b2d063e780de12f615f963fe8537553"},"symbol":{"type":"string","example":"KAITO"},"name":{"type":"string","example":"KAITO"}}},"from":{"type":"object","properties":{"address":{"type":"string","example":"0x6a0a87ec975DF3D2A4d6159Db55B034D4313ED66"}}},"to":{"type":"object","properties":{"address":{"type":"string","example":"0x37bb450b17721c6720040a150029e504766e9777"},"name":{"type":"string","example":"WETH/KAITO"},"labels":{"type":"string","example":"Uniswap V3 Pool"}}},"amount":{"type":"object","properties":{"raw":{"type":"integer","description":"Raw token amount","example":293120070211072300},"decimals":{"type":"number","description":"Token amount in decimals","example":0.2931200702110723}}}}}}},"example":{"slam":0.00960899547185145,"chain":"base","cursor":{"start_block":33297128,"start_log_index":995},"transfers":[{"transaction":{"utc":"2025-07-24T19:01:47Z","block":33297180,"hash":"0xec1765d57f51a6a7274c33991b42e1c1bff6f760462c0409b13a2632a8ed4934","method":"execute","log_index":403},"token":{"address":"0x98d0baa52b2d063e780de12f615f963fe8537553","symbol":"KAITO","name":"KAITO"},"from":{"address":"0x6a0a87ec975DF3D2A4d6159Db55B034D4313ED66"},"to":{"address":"0x37bb450b17721c6720040a150029e504766e9777","name":"WETH/KAITO","labels":"Uniswap V3 Pool"},"amount":{"raw":293120070211072300,"decimals":0.2931200702110723}}]}}}}},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"403":{"$ref":"#/components/responses/Error403"},"500":{"$ref":"#/components/responses/Error500"}},"security":[{"X-API-Key":[]}],"x-codeSamples":[],"summary":"Get chain transfers from Cryptoslam","tags":["Marketplace"]}},"/v4/data/marketplace/cryptoslam/chain/transfers/dna":{"get":{"description":"<p style='display: none'>/v4/data/marketplace/cryptoslam/chain/transfers/dna</p>\n<p><b>100 credits per API call</b></p>\n\n<p>Returns token transfers across the entire blockchain, enriched with WalletDNA analytics—including sender and receiver wallet tiers (\"size\"), labels, current balances (token & USD), and each address's share of supply. Each record includes FDV and live token pricing. Supports filtering by block range or timestamp. Longer response times should be expected due to the richness of the data.</p>\n\n<p>Supported blockchains:</p>\n<ul>\n<li>Ethereum - ethereum-mainnet</li>\n<li>Base - base-mainnet</li>\n</ul>\n","operationId":"GetCryptoslamChainTransfersDna","parameters":[{"description":"The blockchain to work with.","in":"query","name":"chain","required":true,"schema":{"$ref":"#/components/schemas/ChainEnumForTrendingTokens"}},{"description":"The maximum number of transfer records to return (1-100).","in":"query","name":"num","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"default":10,"example":10}},{"description":"Sort order for results: asc (oldest first) or desc (newest first).","in":"query","name":"order","required":false,"schema":{"type":"string","enum":["asc","desc"],"default":"desc","example":"desc"}},{"description":"Start searching from this UTC timestamp (inclusive). Overrides start_block when provided.","in":"query","name":"startTimestamp","required":false,"schema":{"type":"string","format":"date-time","example":"2025-07-24T19:01:47Z"}},{"description":"Block number to start the search from (inclusive). Defaults to the latest block in desc order, or the genesis block in asc order.","in":"query","name":"startBlock","required":false,"schema":{"type":"integer","example":33297128}},{"description":"Log index within the starting block to resume pagination or refine the starting point.","in":"query","name":"startLogIndex","required":false,"schema":{"type":"integer","example":995}},{"description":"When true, returns only the SLAM token cost for this query without performing the actual query.","in":"query","name":"estimateCost","required":false,"schema":{"type":"boolean","default":false}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"slam":{"type":"number","description":"The SLAM token cost for this API call","example":0.0096},"chain":{"type":"string","description":"The blockchain network name","example":"base"},"cursor":{"type":"object","properties":{"start_block":{"type":"integer","description":"Block number for pagination","example":33297128},"start_log_index":{"type":"integer","description":"Log index for pagination","example":995}}},"transfers":{"type":"array","items":{"type":"object","properties":{"transaction":{"type":"object","properties":{"utc":{"type":"string","format":"date-time","example":"2025-07-24T19:01:47Z"},"block":{"type":"integer","example":33297180},"hash":{"type":"string","example":"0xec17..."},"method":{"type":"string","example":"execute"},"log_index":{"type":"integer","example":403}}},"token":{"type":"object","properties":{"address":{"type":"string","example":"0x98d0..."},"symbol":{"type":"string","example":"KAITO"},"name":{"type":"string","example":"KAITO"},"usd":{"type":"number","description":"Token price in USD","example":0.45},"fdv":{"type":"number","description":"Fully diluted valuation","example":40000000}}},"from":{"type":"object","properties":{"address":{"type":"string","example":"0x6a0a..."},"balance":{"type":"object","properties":{"decimals":{"type":"number","description":"Token balance in decimals","example":1.23},"usd":{"type":"number","description":"Balance value in USD","example":0.56},"supply_share":{"type":"number","description":"Share of token supply","example":0.0001}}},"mass":{"type":"object","properties":{"tier":{"type":"string","example":"Fish"},"raw":{"type":"number","example":100}}}}},"to":{"type":"object","properties":{"address":{"type":"string","example":"0x37bb..."},"name":{"type":"string","example":"WETH/KAITO"},"labels":{"type":"string","example":"Uniswap V3 Pool"},"balance":{"type":"object","properties":{"decimals":{"type":"number","description":"Token balance in decimals","example":99.1},"usd":{"type":"number","description":"Balance value in USD","example":50.3},"supply_share":{"type":"number","description":"Share of token supply","example":0.0501}}},"mass":{"type":"object","properties":{"tier":{"type":"string","example":"Whale"},"raw":{"type":"number","example":1500}}}}},"amount":{"type":"object","properties":{"raw":{"type":"integer","description":"Raw token amount","example":293120000000000000},"decimals":{"type":"number","description":"Token amount in decimals","example":0.2931},"usd":{"type":"number","description":"Amount value in USD","example":0.12}}}}}}},"example":{"slam":0.0096,"chain":"base","cursor":{"start_block":33297128,"start_log_index":995},"transfers":[{"transaction":{"utc":"2025-07-24T19:01:47Z","block":33297180,"hash":"0xec17...","method":"execute","log_index":403},"token":{"address":"0x98d0...","symbol":"KAITO","name":"KAITO","usd":0.45,"fdv":40000000},"from":{"address":"0x6a0a...","balance":{"decimals":1.23,"usd":0.56,"supply_share":0.0001},"mass":{"tier":"Fish","raw":100}},"to":{"address":"0x37bb...","name":"WETH/KAITO","labels":"Uniswap V3 Pool","balance":{"decimals":99.1,"usd":50.3,"supply_share":0.0501},"mass":{"tier":"Whale","raw":1500}},"amount":{"raw":293120000000000000,"decimals":0.2931,"usd":0.12}}]}}}}},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"403":{"$ref":"#/components/responses/Error403"},"500":{"$ref":"#/components/responses/Error500"}},"security":[{"X-API-Key":[]}],"x-codeSamples":[],"summary":"Get chain transfers DNA from Cryptoslam","tags":["Marketplace"]}},"/v4/data/marketplace/cryptoslam/wallet/trades":{"get":{"description":"<p style='display: none'>/v4/data/marketplace/cryptoslam/wallet/trades</p>\n<p><b>80 credits per API call</b></p>\n\n<p>Returns trades for a specified wallet address as the trader (default) or maker, with optional filtering by token, paired token, pair, side, block range, or timestamp range.</p>\n\n<p>Supported blockchains:</p>\n<ul>\n<li>Ethereum - ethereum-mainnet</li>\n<li>Base - base-mainnet</li>\n</ul>\n","operationId":"GetCryptoslamWalletTrades","parameters":[{"description":"The blockchain to work with.","in":"query","name":"chain","required":true,"schema":{"$ref":"#/components/schemas/ChainEnumForTrendingTokens"}},{"description":"The wallet address to fetch trades for.","in":"query","name":"walletAddress","required":true,"schema":{"type":"string","example":"0x45D964A0E60e45a5144Dc2d2273503B01f83D388"}},{"description":"Filter trades where the specified wallet_address acted in the given role. Trader (default) where the wallet sent or received the token, regardless of initiating the swap transaction, or maker where the wallet initiated the swap transaction.","in":"query","name":"walletRole","required":false,"schema":{"type":"string","enum":["trader","maker"],"default":"trader","example":"trader"}},{"description":"The ERC-20 token contract address to fetch trades for.","in":"query","name":"tokenAddress","required":false,"schema":{"type":"string","example":"0x731814e491571a2e9ee3c5b1f7f3b962ee8f4870"}},{"description":"Filter trades where the specified token was swapped against this paired token address, regardless of pool.","in":"query","name":"pairedTokenAddress","required":false,"schema":{"type":"string","example":"0x0b3e328455c4059eeb9e3f84b5543f74e24e7e1b"}},{"description":"The contract address (Uniswap V2/V3) or pool ID (Uniswap V4) of the liquidity pool to fetch trades for. When present, overrides token_address and paired_token_address.","in":"query","name":"pair","required":false,"schema":{"type":"string","example":"0xa1dddb82501e8fe2d92ad0e8ba331313f501de72"}},{"description":"Specifies trade side for the given token_address.","in":"query","name":"side","required":false,"schema":{"type":"string","enum":["buy","sell","all"],"default":"all","example":"sell"}},{"description":"Minimum trade size in USD. Filters out trades with an estimated USD value below this threshold.\nNote: Adds additional SLAM cost to the query.\n","in":"query","name":"minUsd","required":false,"schema":{"type":"number","example":100}},{"description":"Maximum trade size in USD. Filters out trades with an estimated USD value above this threshold.\nNote: Adds additional SLAM cost to the query.\n","in":"query","name":"maxUsd","required":false,"schema":{"type":"number","example":10000}},{"description":"The maximum number of records to return (1-1000).","in":"query","name":"num","required":false,"schema":{"type":"integer","minimum":1,"maximum":1000,"default":25,"example":25}},{"description":"Sort order: asc (oldest first) or desc (newest first).","in":"query","name":"order","required":false,"schema":{"type":"string","enum":["asc","desc"],"default":"desc","example":"desc"}},{"description":"Start searching from this UTC timestamp (inclusive). If provided, overrides start_block as the starting point.","in":"query","name":"startTimestamp","required":false,"schema":{"type":"string","format":"date-time","example":"2025-08-18T06:46:35Z"}},{"description":"Block number to start the search from (inclusive). Defaults to the latest block in desc order, or the genesis block in asc order.","in":"query","name":"startBlock","required":false,"schema":{"type":"integer","example":34355124}},{"description":"Log index within the starting block to resume pagination or refine the starting point.","in":"query","name":"startLogIndex","required":false,"schema":{"type":"integer","example":582}},{"description":"When true, returns only the SLAM token cost for this query without performing the actual query.","in":"query","name":"estimateCost","required":false,"schema":{"type":"boolean","default":false}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"slam":{"type":"number","description":"The SLAM token cost for this API call","example":0.065},"chain":{"type":"string","description":"The name of the blockchain network","example":"base"},"cursor":{"type":"object","properties":{"start_block":{"type":"integer","description":"Block number for pagination","example":31384774},"start_log_index":{"type":"integer","description":"Log index for pagination","example":45}}},"trades":{"type":"array","items":{"type":"object","properties":{"transaction":{"type":"object","properties":{"utc":{"type":"string","format":"date-time","example":"2025-08-18T06:46:35Z"},"block":{"type":"integer","example":34355124},"hash":{"type":"string","example":"0x09c715d8f2c16134119d9cc53a600a09b49d1fa20dcc6cc1a8c02b4a86439d51"},"method":{"type":"string","example":"swap simple mode"},"log_index":{"type":"integer","example":582}}},"side":{"type":"string","enum":["buy","sell"],"example":"sell"},"usd":{"type":"number","description":"Trade size in USD","example":10726.204254},"quote_token":{"type":"object","properties":{"address":{"type":"string","example":"0x731814e491571a2e9ee3c5b1f7f3b962ee8f4870"},"symbol":{"type":"string","example":"VADER"},"name":{"type":"string","example":"VaderAI by Virtuals"},"amount":{"type":"number","example":618854.223280559}}},"base_token":{"type":"object","properties":{"address":{"type":"string","example":"0x0b3e328455c4059eeb9e3f84b5543f74e24e7e1b"},"symbol":{"type":"string","example":"VIRTUAL"},"name":{"type":"string","example":"Virtual Protocol"},"amount":{"type":"number","example":8899.78611752252}}},"price":{"type":"number","example":0.0141539462344898},"pair":{"type":"object","properties":{"address":{"type":"string","example":"0xa1dddb82501e8fe2d92ad0e8ba331313f501de72"},"name":{"type":"string","example":"VIRTUAL/VADER"},"labels":{"type":"string","example":"Uniswap V2 Pool"}}},"trader":{"type":"object","properties":{"address":{"type":"string","example":"0x45D964A0E60e45a5144Dc2d2273503B01f83D388"}}},"maker":{"type":"object","properties":{"address":{"type":"string","example":"0x45d964a0e60e45a5144dc2d2273503b01f83d388"}}},"sender":{"type":"object","properties":{"address":{"type":"string","example":"0x6E4141d33021b52C91c28608403db4A0FFB50Ec6"}}},"recipient":{"type":"object","properties":{"address":{"type":"string","example":"0x6E4141d33021b52C91c28608403db4A0FFB50Ec6"}}}}}}},"example":{"slam":0.065,"chain":"base","cursor":{"start_block":31384774,"start_log_index":45},"trades":[{"transaction":{"utc":"2025-08-18T06:46:35Z","block":34355124,"hash":"0x09c715d8f2c16134119d9cc53a600a09b49d1fa20dcc6cc1a8c02b4a86439d51","method":"swap simple mode","log_index":582},"side":"sell","usd":10726.204254,"quote_token":{"address":"0x731814e491571a2e9ee3c5b1f7f3b962ee8f4870","symbol":"VADER","name":"VaderAI by Virtuals","amount":618854.223280559},"base_token":{"address":"0x0b3e328455c4059eeb9e3f84b5543f74e24e7e1b","symbol":"VIRTUAL","name":"Virtual Protocol","amount":8899.78611752252},"price":0.0141539462344898,"pair":{"address":"0xa1dddb82501e8fe2d92ad0e8ba331313f501de72","name":"VIRTUAL/VADER","labels":"Uniswap V2 Pool"},"trader":{"address":"0x45D964A0E60e45a5144Dc2d2273503B01f83D388"},"maker":{"address":"0x45d964a0e60e45a5144dc2d2273503b01f83d388"},"sender":{"address":"0x6E4141d33021b52C91c28608403db4A0FFB50Ec6"},"recipient":{"address":"0x6E4141d33021b52C91c28608403db4A0FFB50Ec6"}}]}}}}},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"403":{"$ref":"#/components/responses/Error403"},"500":{"$ref":"#/components/responses/Error500"}},"security":[{"X-API-Key":[]}],"x-codeSamples":[],"summary":"Get wallet trades from Cryptoslam","tags":["Marketplace"]}},"/v4/data/marketplace/cryptoslam/wallet/trades/dna":{"get":{"description":"<p style='display: none'>/v4/data/marketplace/cryptoslam/wallet/trades/dna</p>\n<p><b>4000 credits per API call</b></p>\n\n<p>The Wallet Trades DNA endpoint returns all trades for a specific wallet, enriched with HolderDNA metrics calculated at the time of each swap. Supports DNA-based filters, allowing segmentation across different tokens. This lets you track how wallet intelligence, reputation, and other behavioral signals evolve per token throughout trading history.</p>\n\n<p>Supported blockchains:</p>\n<ul>\n<li>Ethereum - ethereum-mainnet</li>\n<li>Base - base-mainnet</li>\n</ul>\n","operationId":"GetCryptoslamWalletTradesDna","parameters":[{"description":"The blockchain to work with.","in":"query","name":"chain","required":true,"schema":{"$ref":"#/components/schemas/ChainEnumForTrendingTokens"}},{"description":"The wallet address to fetch trades for.","in":"query","name":"walletAddress","required":true,"schema":{"type":"string","example":"0x45D964A0E60e45a5144Dc2d2273503B01f83D388"}},{"description":"Filter trades where the specified wallet_address acted in the given role. Valid values: trader (default) where the wallet sent or received the token, regardless of initiating the swap transaction, or maker where the wallet initiated the swap transaction.","in":"query","name":"walletRole","required":false,"schema":{"type":"string","enum":["trader","maker"],"default":"trader","example":"trader"}},{"description":"The ERC-20 token contract address to fetch trades for.","in":"query","name":"tokenAddress","required":false,"schema":{"type":"string","example":"0x731814e491571a2e9ee3c5b1f7f3b962ee8f4870"}},{"description":"Filter trades where the specified token was swapped against this paired token address, regardless of pool.","in":"query","name":"pairedTokenAddress","required":false,"schema":{"type":"string","example":"0x0b3e328455c4059eeb9e3f84b5543f74e24e7e1b"}},{"description":"The contract address (Uniswap V2/V3) or pool ID (Uniswap V4) of the liquidity pool to fetch trades for. When present, overrides token_address and paired_token_address.","in":"query","name":"pair","required":false,"schema":{"type":"string","example":"0xa1dddb82501e8fe2d92ad0e8ba331313f501de72"}},{"description":"Specifies trade side for the implied quote token address.","in":"query","name":"side","required":false,"schema":{"type":"string","enum":["buy","sell","all"],"default":"all","example":"sell"}},{"description":"Pipe-delimited list of walletDNA metrics to return in the response. Use 'all' to display every metric.\nValid options include: tokens, intelligence, reputation, flow, mass, epoch, makerPresence, entry, all.\n","in":"query","name":"dna","required":false,"schema":{"type":"string","default":"all","example":"intelligence|flow|mass|tokens"}},{"description":"Minimum trade size in USD. Filters out trades with an estimated USD value below this threshold.\nNote: Adds additional SLAM cost to the query.\n","in":"query","name":"minUsd","required":false,"schema":{"type":"number","example":100}},{"description":"Maximum trade size in USD. Filters out trades with an estimated USD value above this threshold.\nNote: Adds additional SLAM cost to the query.\n","in":"query","name":"maxUsd","required":false,"schema":{"type":"number","example":10000}},{"description":"Minimum holder IQ (raw score). Filters out wallets with IQ scores below this threshold. Average IQ for all wallets trading a given token is 100.","in":"query","name":"minIq","required":false,"schema":{"type":"number","example":120}},{"description":"Maximum holder IQ (raw score). Filters out wallets with IQ scores above this threshold. Average IQ for all wallets trading a given token is 100. Max: Although possible, it is uncommon for wallets to have IQ scores above 200.","in":"query","name":"maxIq","required":false,"schema":{"type":"number","example":180}},{"description":"Minimum holder Intelligence tier. Filters out wallets ranked below this tier.","in":"query","name":"minIntelligence","required":false,"schema":{"type":"string","enum":["idiot","dumb","below avg","avg","avg++","gifted","gifted++","genius","einstein"],"example":"gifted"}},{"description":"Maximum holder Intelligence tier. Filters out wallets ranked above this tier.","in":"query","name":"maxIntelligence","required":false,"schema":{"type":"string","enum":["idiot","dumb","below avg","avg","avg++","gifted","gifted++","genius","einstein"],"example":"genius"}},{"description":"Minimum raw holder Reputation. Filters out wallets with Reputation scores below this threshold.","in":"query","name":"minReputation","required":false,"schema":{"type":"number","example":80}},{"description":"Maximum raw holder Reputation. Filters out wallets with Reputation scores above this threshold. Max: 100.","in":"query","name":"maxReputation","required":false,"schema":{"type":"number","maximum":100,"example":95}},{"description":"Minimum holder Reputation tier. Filters out wallets ranked below this tier.","in":"query","name":"minReputationTier","required":false,"schema":{"type":"string","enum":["a+","a","a−","b+","b","b−","c+","c","c−","d","f"],"example":"b+"}},{"description":"Maximum holder Reputation tier. Filters out wallets ranked above this tier.","in":"query","name":"maxReputationTier","required":false,"schema":{"type":"string","enum":["a+","a","a−","b+","b","b−","c+","c","c−","d","f"],"example":"a+"}},{"description":"Minimum raw holder Mass. Filters out wallets with Mass scores below this threshold.","in":"query","name":"minMass","required":false,"schema":{"type":"number","example":50}},{"description":"Maximum raw holder Mass. Filters out wallets with Mass scores above this threshold. Max: Scores above 250 are rare but possible.","in":"query","name":"maxMass","required":false,"schema":{"type":"number","example":200}},{"description":"Minimum holder Mass tier. Filters out wallets ranked below this tier.","in":"query","name":"minMassTier","required":false,"schema":{"type":"string","enum":["ghost","dust","plankton","shrimp","minnow","fish","dolphin","orca","whale","moby"],"example":"fish"}},{"description":"Maximum holder Mass tier. Filters out wallets ranked above this tier.","in":"query","name":"maxMassTier","required":false,"schema":{"type":"string","enum":["ghost","dust","plankton","shrimp","minnow","fish","dolphin","orca","whale","moby"],"example":"whale"}},{"description":"Minimum raw holder Epoch. Filters out wallets with Epoch scores below this threshold.","in":"query","name":"minEpoch","required":false,"schema":{"type":"number","example":30}},{"description":"Maximum raw holder Epoch. Filters out wallets with Epoch scores above this threshold. Max: 200.","in":"query","name":"maxEpoch","required":false,"schema":{"type":"number","maximum":200,"example":150}},{"description":"Minimum holder Epoch tier. Filters out wallets ranked below this tier.","in":"query","name":"minEpochTier","required":false,"schema":{"type":"string","enum":["newbie","rookie","core","veteran","early adopter","genesis","og","ultra og"],"example":"core"}},{"description":"Maximum holder Epoch tier. Filters out wallets ranked above this tier.","in":"query","name":"maxEpochTier","required":false,"schema":{"type":"string","enum":["newbie","rookie","core","veteran","early adopter","genesis","og","ultra og"],"example":"ultra og"}},{"description":"Minimum raw holder maker_presence. Filters out wallets with maker_presence scores below this threshold.","in":"query","name":"minMakerPresence","required":false,"schema":{"type":"number","example":50}},{"description":"Maximum raw holder maker_presence. Filters out wallets with maker_presence scores above this threshold. Max: Scores above 200 are rare but possible.","in":"query","name":"maxMakerPresence","required":false,"schema":{"type":"number","example":180}},{"description":"Minimum holder maker_presence tier. Filters out wallets ranked below this tier.","in":"query","name":"minMakerPresenceTier","required":false,"schema":{"type":"string","enum":["hyperactive","highly active","active","engaged","occasional","minimal","micro","zero"],"example":"active"}},{"description":"Maximum holder maker_presence tier. Filters out wallets ranked above this tier.","in":"query","name":"maxMakerPresenceTier","required":false,"schema":{"type":"string","enum":["hyperactive","highly active","active","engaged","occasional","minimal","micro","zero"],"example":"hyperactive"}},{"description":"Minimum raw holder Flow. Filters out wallets with Flow scores below this threshold.","in":"query","name":"minFlow","required":false,"schema":{"type":"number","example":50}},{"description":"Maximum raw holder Flow. Filters out wallets with Flow scores above this threshold. Max: Scores above 250 are rare but possible.","in":"query","name":"maxFlow","required":false,"schema":{"type":"number","example":200}},{"description":"Minimum holder Flow tier. Filters out wallets ranked below this tier.","in":"query","name":"minFlowTier","required":false,"schema":{"type":"string","enum":["dry","drip","trickle","stream","current","flood","torrent","tsunami"],"example":"current"}},{"description":"Maximum holder Flow tier. Filters out wallets ranked above this tier.","in":"query","name":"maxFlowTier","required":false,"schema":{"type":"string","enum":["dry","drip","trickle","stream","current","flood","torrent","tsunami"],"example":"tsunami"}},{"description":"Minimum raw holder buy_flow. Filters out wallets with buy_flow scores below this threshold.","in":"query","name":"minBuyFlow","required":false,"schema":{"type":"number","example":50}},{"description":"Maximum raw holder buy_flow. Filters out wallets with buy_flow scores above this threshold. Max: Scores above 250 are rare but possible.","in":"query","name":"maxBuyFlow","required":false,"schema":{"type":"number","example":200}},{"description":"Minimum holder buy_flow tier. Filters out wallets ranked below this tier.","in":"query","name":"minBuyFlowTier","required":false,"schema":{"type":"string","enum":["dry","drip","trickle","stream","current","flood","torrent","tsunami"],"example":"current"}},{"description":"Maximum holder buy_flow tier. Filters out wallets ranked above this tier.","in":"query","name":"maxBuyFlowTier","required":false,"schema":{"type":"string","enum":["dry","drip","trickle","stream","current","flood","torrent","tsunami"],"example":"tsunami"}},{"description":"Minimum raw holder sell_flow. Filters out wallets with sell_flow scores below this threshold.","in":"query","name":"minSellFlow","required":false,"schema":{"type":"number","example":50}},{"description":"Maximum raw holder sell_flow. Filters out wallets with sell_flow scores above this threshold. Max: Scores above 250 are rare but possible.","in":"query","name":"maxSellFlow","required":false,"schema":{"type":"number","example":200}},{"description":"Minimum holder sell_flow tier. Filters out wallets ranked below this tier.","in":"query","name":"minSellFlowTier","required":false,"schema":{"type":"string","enum":["dry","drip","trickle","stream","current","flood","torrent","tsunami"],"example":"current"}},{"description":"Maximum holder sell_flow tier. Filters out wallets ranked above this tier.","in":"query","name":"maxSellFlowTier","required":false,"schema":{"type":"string","enum":["dry","drip","trickle","stream","current","flood","torrent","tsunami"],"example":"tsunami"}},{"description":"The maximum number of trade records to return (1-1000).","in":"query","name":"num","required":false,"schema":{"type":"integer","minimum":1,"maximum":1000,"default":25,"example":25}},{"description":"Sort order for results: asc (oldest first) or desc (newest first).","in":"query","name":"order","required":false,"schema":{"type":"string","enum":["asc","desc"],"default":"desc","example":"desc"}},{"description":"Start searching from this UTC timestamp (inclusive). If provided, overrides start_block as the starting point.","in":"query","name":"startTimestamp","required":false,"schema":{"type":"string","format":"date-time","example":"2025-08-18T06:46:35Z"}},{"description":"Block number to start the search from (inclusive). Defaults to the latest block in desc order, or the genesis block in asc order.","in":"query","name":"startBlock","required":false,"schema":{"type":"integer","example":34355124}},{"description":"Log index within the starting block to resume pagination or refine the starting point.","in":"query","name":"startLogIndex","required":false,"schema":{"type":"integer","example":582}},{"description":"When true, returns only the SLAM token cost for this query without performing the actual query.","in":"query","name":"estimateCost","required":false,"schema":{"type":"boolean","default":false}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"slam":{"type":"number","description":"The SLAM token cost for this API call","example":0.065},"chain":{"type":"string","description":"The name of the blockchain network","example":"base"},"cursor":{"type":"object","properties":{"start_block":{"type":"integer","description":"Block number for pagination","example":31384774},"start_log_index":{"type":"integer","description":"Log index for pagination","example":45}}},"trades":{"type":"array","items":{"type":"object","properties":{"transaction":{"type":"object","properties":{"utc":{"type":"string","format":"date-time","example":"2025-08-18T06:46:35Z"},"block":{"type":"integer","example":34355124},"hash":{"type":"string","example":"0x09c715d8f2c16134119d9cc53a600a09b49d1fa20dcc6cc1a8c02b4a86439d51"},"method":{"type":"string","example":"swap simple mode"},"log_index":{"type":"integer","example":582}}},"side":{"type":"string","enum":["buy","sell"],"example":"sell"},"usd":{"type":"number","description":"Trade size in USD","example":10726.204254},"quote_token":{"type":"object","properties":{"address":{"type":"string","example":"0x731814e491571a2e9ee3c5b1f7f3b962ee8f4870"},"symbol":{"type":"string","example":"VADER"},"name":{"type":"string","example":"VaderAI by Virtuals"},"amount":{"type":"number","example":618854.223280559}}},"base_token":{"type":"object","properties":{"address":{"type":"string","example":"0x0b3e328455c4059eeb9e3f84b5543f74e24e7e1b"},"symbol":{"type":"string","example":"VIRTUAL"},"name":{"type":"string","example":"Virtual Protocol"},"amount":{"type":"number","example":8899.78611752252}}},"price":{"type":"number","example":0.0141539462344898},"pair":{"type":"object","properties":{"address":{"type":"string","example":"0xa1dddb82501e8fe2d92ad0e8ba331313f501de72"},"name":{"type":"string","example":"VIRTUAL/VADER"},"labels":{"type":"string","example":"Uniswap V2 Pool"}}},"trader":{"type":"object","properties":{"address":{"type":"string","example":"0x45D964A0E60e45a5144Dc2d2273503B01f83D388"},"quote_token_holding":{"type":"object","properties":{"balance":{"type":"number","example":223561.945721182},"staked_pct":{"type":"number","example":0.245384},"value_usd":{"type":"number","example":25065.5682}}},"intelligence":{"type":"object","properties":{"tier":{"type":"string","example":"Genius"},"iq":{"type":"number","example":156.87}}},"reputation":{"type":"object","properties":{"tier":{"type":"string","example":"A+"},"raw":{"type":"number","example":98.69}}},"mass":{"type":"object","properties":{"tier":{"type":"string","example":"Dolphin"},"raw":{"type":"number","example":105.89}}},"epoch":{"type":"object","properties":{"tier":{"type":"string","example":"Ultra OG"},"raw":{"type":"number","example":180.92}}},"maker_presence":{"type":"object","properties":{"tier":{"type":"string","example":"Hyperactive"},"raw":{"type":"number","example":200}}},"flow":{"type":"object","properties":{"buy":{"type":"object","properties":{"tier":{"type":"string","example":"Torrent"},"raw":{"type":"number","example":185.58}}},"sell":{"type":"object","properties":{"tier":{"type":"string","example":"Torrent"},"raw":{"type":"number","example":160.25}}},"total":{"type":"object","properties":{"tier":{"type":"string","example":"Torrent"},"raw":{"type":"number","example":186.24}}}}},"entry":{"type":"object","properties":{"method":{"type":"string","example":"AirDrop"},"token_amount":{"type":"number","example":200000},"block":{"type":"integer","example":32376272},"utc":{"type":"string","format":"date-time","example":"2025-07-03T11:24:51"},"parent":{"type":"string","example":"0xeB4F1685aadcF4075d03602C5F24Fb4bF781305D"}}}}},"maker":{"type":"object","properties":{"address":{"type":"string","example":"0x45d964a0e60e45a5144dc2d2273503b01f83d388"}}},"sender":{"type":"object","properties":{"address":{"type":"string","example":"0x6E4141d33021b52C91c28608403db4A0FFB50Ec6"}}},"recipient":{"type":"object","properties":{"address":{"type":"string","example":"0x6E4141d33021b52C91c28608403db4A0FFB50Ec6"}}}}}}},"example":{"slam":0.065,"chain":"base","cursor":{"start_block":31384774,"start_log_index":45},"trades":[{"transaction":{"utc":"2025-08-18T06:46:35Z","block":34355124,"hash":"0x09c715d8f2c16134119d9cc53a600a09b49d1fa20dcc6cc1a8c02b4a86439d51","method":"swap simple mode","log_index":582},"side":"sell","usd":10726.204254,"quote_token":{"address":"0x731814e491571a2e9ee3c5b1f7f3b962ee8f4870","symbol":"VADER","name":"VaderAI by Virtuals","amount":618854.223280559},"base_token":{"address":"0x0b3e328455c4059eeb9e3f84b5543f74e24e7e1b","symbol":"VIRTUAL","name":"Virtual Protocol","amount":8899.78611752252},"price":0.0141539462344898,"pair":{"address":"0xa1dddb82501e8fe2d92ad0e8ba331313f501de72","name":"VIRTUAL/VADER","labels":"Uniswap V2 Pool"},"trader":{"address":"0x45D964A0E60e45a5144Dc2d2273503B01f83D388","quote_token_holding":{"balance":223561.945721182,"staked_pct":0.245384,"value_usd":25065.5682},"intelligence":{"tier":"Genius","iq":156.87},"reputation":{"tier":"A+","raw":98.69},"mass":{"tier":"Dolphin","raw":105.89},"epoch":{"tier":"Ultra OG","raw":180.92},"maker_presence":{"tier":"Hyperactive","raw":200},"flow":{"buy":{"tier":"Torrent","raw":185.58},"sell":{"tier":"Torrent","raw":160.25},"total":{"tier":"Torrent","raw":186.24}},"entry":{"method":"AirDrop","token_amount":200000,"block":32376272,"utc":"2025-07-03T11:24:51","parent":"0xeB4F1685aadcF4075d03602C5F24Fb4bF781305D"}},"maker":{"address":"0x45d964a0e60e45a5144dc2d2273503b01f83d388"},"sender":{"address":"0x6E4141d33021b52C91c28608403db4A0FFB50Ec6"},"recipient":{"address":"0x6E4141d33021b52C91c28608403db4A0FFB50Ec6"}}]}}}}},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"403":{"$ref":"#/components/responses/Error403"},"500":{"$ref":"#/components/responses/Error500"}},"security":[{"X-API-Key":[]}],"x-codeSamples":[],"summary":"Get wallet trades DNA from Cryptoslam","tags":["Marketplace"]}},"/v4/data/marketplace/cryptoslam/wallet/transfers":{"get":{"description":"<p style='display: none'>/v4/data/marketplace/cryptoslam/wallet/transfers</p>\n<p><b>25 credits per API call</b></p>\n\n<p>Returns token transfers for a specified wallet address, with optional filtering by token address, participant address, direction, block range, or timestamp range. You may filter by either tokenAddress or address, but not both.</p>\n\n<p>Supported blockchains:</p>\n<ul>\n<li>Ethereum - ethereum-mainnet</li>\n<li>Base - base-mainnet</li>\n</ul>\n","operationId":"GetCryptoslamWalletTransfers","parameters":[{"description":"The blockchain to work with.","in":"query","name":"chain","required":true,"schema":{"$ref":"#/components/schemas/ChainEnumForTrendingTokens"}},{"description":"The wallet address to fetch transfers for.","in":"query","name":"walletAddress","required":true,"schema":{"type":"string","example":"0xF977814e90dA44bFA03b6295A0616a897441aceC"}},{"description":"Optional filter to only include transfers involving this address. Mutually exclusive with tokenAddress.","in":"query","name":"address","required":false,"schema":{"type":"string","example":"0x6a0a87ec975DF3D2A4d6159Db55B034D4313ED66"}},{"description":"Optional filter transfers for this ERC-20 token contract address. Mutually exclusive with address.","in":"query","name":"tokenAddress","required":false,"schema":{"type":"string","example":"0x98d0baa52b2d063e780de12f615f963fe8537553"}},{"description":"Transfer direction relative to the address.","in":"query","name":"direction","required":false,"schema":{"type":"string","enum":["sent","received","all"],"default":"all","example":"all"}},{"description":"The maximum number of records to return (1-1000).","in":"query","name":"num","required":false,"schema":{"type":"integer","minimum":1,"maximum":1000,"default":25,"example":25}},{"description":"Sort order: asc (oldest first) or desc (newest first).","in":"query","name":"order","required":false,"schema":{"type":"string","enum":["asc","desc"],"default":"desc","example":"desc"}},{"description":"Start searching from this UTC timestamp (inclusive). Overrides start_block when provided.","in":"query","name":"startTimestamp","required":false,"schema":{"type":"string","format":"date-time","example":"2025-07-24T19:01:47Z"}},{"description":"Block number to start the search from (inclusive). Defaults to the latest block in desc order, or the genesis block in asc order.","in":"query","name":"startBlock","required":false,"schema":{"type":"integer","example":33297128}},{"description":"Log index within the starting block to resume pagination or refine the starting point.","in":"query","name":"startLogIndex","required":false,"schema":{"type":"integer","example":995}},{"description":"When true, returns only the SLAM token cost for this query without performing the actual query.","in":"query","name":"estimateCost","required":false,"schema":{"type":"boolean","default":false}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"slam":{"type":"number","description":"The SLAM token cost for this API call","example":0.00960899547185145},"chain":{"type":"string","description":"The blockchain network name","example":"base"},"cursor":{"type":"object","properties":{"start_block":{"type":"integer","description":"Block number for pagination","example":33297128},"start_log_index":{"type":"integer","description":"Log index for pagination","example":995}}},"transfers":{"type":"array","items":{"type":"object","properties":{"transaction":{"type":"object","properties":{"utc":{"type":"string","format":"date-time","example":"2025-07-24T19:01:47Z"},"block":{"type":"integer","example":33297180},"hash":{"type":"string","example":"0xec1765d57f51a6a7274c33991b42e1c1bff6f760462c0409b13a2632a8ed4934"},"method":{"type":"string","example":"execute"},"log_index":{"type":"integer","example":403}}},"token":{"type":"object","properties":{"address":{"type":"string","example":"0x98d0baa52b2d063e780de12f615f963fe8537553"},"symbol":{"type":"string","example":"KAITO"},"name":{"type":"string","example":"KAITO"}}},"from":{"type":"object","properties":{"address":{"type":"string","example":"0x6a0a87ec975DF3D2A4d6159Db55B034D4313ED66"}}},"to":{"type":"object","properties":{"address":{"type":"string","example":"0x37bb450b17721c6720040a150029e504766e9777"},"name":{"type":"string","example":"WETH/KAITO"},"labels":{"type":"string","example":"Uniswap V3 Pool"}}},"amount":{"type":"object","properties":{"raw":{"type":"integer","description":"Raw token amount","example":293120070211072300},"decimals":{"type":"number","description":"Token amount in decimals","example":0.2931200702110723}}}}}}},"example":{"slam":0.00960899547185145,"chain":"base","cursor":{"start_block":33297128,"start_log_index":995},"transfers":[{"transaction":{"utc":"2025-07-24T19:01:47Z","block":33297180,"hash":"0xec1765d57f51a6a7274c33991b42e1c1bff6f760462c0409b13a2632a8ed4934","method":"execute","log_index":403},"token":{"address":"0x98d0baa52b2d063e780de12f615f963fe8537553","symbol":"KAITO","name":"KAITO"},"from":{"address":"0x6a0a87ec975DF3D2A4d6159Db55B034D4313ED66"},"to":{"address":"0x37bb450b17721c6720040a150029e504766e9777","name":"WETH/KAITO","labels":"Uniswap V3 Pool"},"amount":{"raw":293120070211072300,"decimals":0.2931200702110723}}]}}}}},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"403":{"$ref":"#/components/responses/Error403"},"500":{"$ref":"#/components/responses/Error500"}},"security":[{"X-API-Key":[]}],"x-codeSamples":[],"summary":"Get wallet transfers from Cryptoslam","tags":["Marketplace"]}},"/v4/data/marketplace/cryptoslam/wallet/transfers/dna":{"get":{"description":"<p style='display: none'>/v4/data/marketplace/cryptoslam/wallet/transfers/dna</p>\n<p><b>4000 credits per API call</b></p>\n\n<p>Returns token transfer records for a given wallet address, enriched with WalletDNA analytics—including sender and receiver wallet tiers (\"size\"), labels, current balances (token & USD), and each address's share of supply. Each record includes FDV and live token pricing. Supports filtering by participant address, direction, block range, or timestamp. Longer response times should be expected due to the richness of the data.</p>\n\n<p>Supported blockchains:</p>\n<ul>\n<li>Ethereum - ethereum-mainnet</li>\n<li>Base - base-mainnet</li>\n</ul>\n","operationId":"GetCryptoslamWalletTransfersDna","parameters":[{"description":"The blockchain to work with.","in":"query","name":"chain","required":true,"schema":{"$ref":"#/components/schemas/ChainEnumForTrendingTokens"}},{"description":"The wallet address to fetch transfers for.","in":"query","name":"walletAddress","required":true,"schema":{"type":"string","example":"0xF977814e90dA44bFA03b6295A0616a897441aceC"}},{"description":"Optional filter to only include transfers involving this address.","in":"query","name":"address","required":false,"schema":{"type":"string","example":"0x6a0a87ec975DF3D2A4d6159Db55B034D4313ED66"}},{"description":"Optional filter transfers for this ERC-20 token contract address.","in":"query","name":"tokenAddress","required":false,"schema":{"type":"string","example":"0x98d0baa52b2d063e780de12f615f963fe8537553"}},{"description":"Transfer direction relative to the address.","in":"query","name":"direction","required":false,"schema":{"type":"string","enum":["sent","received","all"],"default":"all","example":"all"}},{"description":"Max number of transfer records to return (max 100).","in":"query","name":"num","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"default":25,"example":25}},{"description":"Sort order: asc (oldest first) or desc (newest first).","in":"query","name":"order","required":false,"schema":{"type":"string","enum":["asc","desc"],"default":"desc","example":"desc"}},{"description":"Start from this UTC timestamp (overrides start_block).","in":"query","name":"startTimestamp","required":false,"schema":{"type":"string","format":"date-time","example":"2025-07-24T19:01:47Z"}},{"description":"Block number to start from (inclusive).","in":"query","name":"startBlock","required":false,"schema":{"type":"integer","example":33297128}},{"description":"Log index within the block to resume pagination.","in":"query","name":"startLogIndex","required":false,"schema":{"type":"integer","example":995}},{"description":"When true, returns only the SLAM cost without performing the query.","in":"query","name":"estimateCost","required":false,"schema":{"type":"boolean","default":false}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"slam":{"type":"number","description":"SLAM token cost for this API call","example":0.0096},"chain":{"type":"string","description":"Blockchain network name","example":"base"},"cursor":{"type":"object","properties":{"start_block":{"type":"integer","description":"Block number for pagination","example":33297128},"start_log_index":{"type":"integer","description":"Log index for pagination","example":995}}},"transfers":{"type":"array","items":{"type":"object","properties":{"transaction":{"type":"object","properties":{"utc":{"type":"string","format":"date-time","example":"2025-07-24T19:01:47Z"},"block":{"type":"integer","example":33297180},"hash":{"type":"string","example":"0xec17..."},"method":{"type":"string","example":"execute"},"log_index":{"type":"integer","example":403}}},"token":{"type":"object","properties":{"address":{"type":"string","example":"0x98d0..."},"symbol":{"type":"string","example":"KAITO"},"name":{"type":"string","example":"KAITO"},"usd":{"type":"number","description":"Token price in USD","example":0.45},"fdv":{"type":"number","description":"Fully diluted valuation","example":40000000}}},"from":{"type":"object","properties":{"address":{"type":"string","example":"0x6a0a..."},"balance":{"type":"object","properties":{"decimals":{"type":"number","description":"Token balance in decimals","example":1.23},"usd":{"type":"number","description":"Balance value in USD","example":0.56},"supply_share":{"type":"number","description":"Share of token supply","example":0.0001}}},"mass":{"type":"object","properties":{"tier":{"type":"string","example":"Fish"},"raw":{"type":"number","example":100}}}}},"to":{"type":"object","properties":{"address":{"type":"string","example":"0x37bb..."},"name":{"type":"string","example":"WETH/KAITO"},"labels":{"type":"string","example":"Uniswap V3 Pool"},"balance":{"type":"object","properties":{"decimals":{"type":"number","description":"Token balance in decimals","example":99.1},"usd":{"type":"number","description":"Balance value in USD","example":50.3},"supply_share":{"type":"number","description":"Share of token supply","example":0.0501}}},"mass":{"type":"object","properties":{"tier":{"type":"string","example":"Whale"},"raw":{"type":"number","example":1500}}}}},"amount":{"type":"object","properties":{"raw":{"type":"integer","description":"Raw token amount","example":293120000000000000},"decimals":{"type":"number","description":"Token amount in decimals","example":0.2931},"usd":{"type":"number","description":"Amount value in USD","example":0.12}}}}}}},"example":{"slam":0.0096,"chain":"base","cursor":{"start_block":33297128,"start_log_index":995},"transfers":[{"transaction":{"utc":"2025-07-24T19:01:47Z","block":33297180,"hash":"0xec17...","method":"execute","log_index":403},"token":{"address":"0x98d0...","symbol":"KAITO","name":"KAITO","usd":0.45,"fdv":40000000},"from":{"address":"0x6a0a...","balance":{"decimals":1.23,"usd":0.56,"supply_share":0.0001},"mass":{"tier":"Fish","raw":100}},"to":{"address":"0x37bb...","name":"WETH/KAITO","labels":"Uniswap V3 Pool","balance":{"decimals":99.1,"usd":50.3,"supply_share":0.0501},"mass":{"tier":"Whale","raw":1500}},"amount":{"raw":293120000000000000,"decimals":0.2931,"usd":0.12}}]}}}}},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"403":{"$ref":"#/components/responses/Error403"},"500":{"$ref":"#/components/responses/Error500"}},"security":[{"X-API-Key":[]}],"x-codeSamples":[],"summary":"Get wallet transfers DNA from Cryptoslam","tags":["Marketplace"]}},"/v4/data/marketplace/cryptoslam/pair/trades":{"get":{"description":"<p style='display: none'>/v4/data/marketplace/cryptoslam/pair/trades</p>\n<p><b>80 credits per API call</b></p>\n\n<p>Returns trades for a specified liquidity pool, with optional filtering by side, trader, maker, block range, or timestamp range.</p>\n\n<p>Supported blockchains:</p>\n<ul>\n<li>Ethereum - ethereum-mainnet</li>\n<li>Base - base-mainnet</li>\n</ul>\n","operationId":"GetCryptoslamPairTrades","parameters":[{"description":"The blockchain to work with.","in":"query","name":"chain","required":true,"schema":{"$ref":"#/components/schemas/ChainEnumForTrendingTokens"}},{"description":"The contract address (Uniswap V2/V3) or pool ID (Uniswap V4) of the liquidity pool to fetch trades for.","in":"query","name":"pair","required":true,"schema":{"type":"string","example":"0xa1dddb82501e8fe2d92ad0e8ba331313f501de72"}},{"description":"Filter trades where this address sent or received the specified token, regardless of whether they initiated the swap transaction.","in":"query","name":"traderAddress","required":false,"schema":{"type":"string","example":"0xFd03314B7f38294BA91a51f7A3F716d8Ba36C2bf"}},{"description":"Filter trades where this address initiated the swap transaction.","in":"query","name":"makerAddress","required":false,"schema":{"type":"string","example":"0xfd03314b7f38294ba91a51f7a3f716d8ba36c2bf"}},{"description":"Specifies trade side for the implied quote token address.","in":"query","name":"side","required":false,"schema":{"type":"string","enum":["buy","sell","all"],"default":"all","example":"sell"}},{"description":"Minimum trade size in USD. Filters out trades with an estimated USD value below this threshold.\nNote: Adds additional SLAM cost to the query.\n","in":"query","name":"minUsd","required":false,"schema":{"type":"number","example":100}},{"description":"Maximum trade size in USD. Filters out trades with an estimated USD value above this threshold.\nNote: Adds additional SLAM cost to the query.\n","in":"query","name":"maxUsd","required":false,"schema":{"type":"number","example":10000}},{"description":"The maximum number of records to return (1-1000).","in":"query","name":"num","required":false,"schema":{"type":"integer","minimum":1,"maximum":1000,"default":25,"example":25}},{"description":"Sort order: asc (oldest first) or desc (newest first).","in":"query","name":"order","required":false,"schema":{"type":"string","enum":["asc","desc"],"default":"desc","example":"desc"}},{"description":"Start searching from this UTC timestamp (inclusive). If provided, overrides start_block as the starting point.","in":"query","name":"startTimestamp","required":false,"schema":{"type":"string","format":"date-time","example":"2025-08-21T23:19:35Z"}},{"description":"Block number to start the search from (inclusive). Defaults to the latest block in desc order, or the genesis block in asc order.","in":"query","name":"startBlock","required":false,"schema":{"type":"integer","example":34513846}},{"description":"Log index within the starting block to resume pagination or refine the starting point.","in":"query","name":"startLogIndex","required":false,"schema":{"type":"integer","example":416}},{"description":"When true, returns only the SLAM token cost for this query without performing the actual query.","in":"query","name":"estimateCost","required":false,"schema":{"type":"boolean","default":false}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"slam":{"type":"number","description":"The SLAM token cost for this API call","example":0.065},"chain":{"type":"string","description":"The name of the blockchain network","example":"base"},"cursor":{"type":"object","properties":{"start_block":{"type":"integer","description":"Block number for pagination","example":34513846},"start_log_index":{"type":"integer","description":"Log index for pagination","example":416}}},"trades":{"type":"array","items":{"type":"object","properties":{"transaction":{"type":"object","properties":{"utc":{"type":"string","format":"date-time","example":"2025-08-21T23:19:35Z"},"block":{"type":"integer","example":34514514},"hash":{"type":"string","example":"0x4bd2bf862024806b417822818e0f13a348a4ef2365caa95ec9385940ba7408d1"},"method":{"type":"string","example":"unxswap by order id"},"log_index":{"type":"integer","example":299}}},"side":{"type":"string","enum":["buy","sell"],"example":"sell"},"usd":{"type":"number","description":"Trade size in USD","example":229.823854},"quote_token":{"type":"object","properties":{"address":{"type":"string","example":"0x731814e491571a2e9ee3c5b1f7f3b962ee8f4870"},"symbol":{"type":"string","example":"VADER"},"name":{"type":"string","example":"VaderAI by Virtuals"},"amount":{"type":"number","example":14460.0574485873}}},"base_token":{"type":"object","properties":{"address":{"type":"string","example":"0x0b3e328455c4059eeb9e3f84b5543f74e24e7e1b"},"symbol":{"type":"string","example":"VIRTUAL"},"name":{"type":"string","example":"Virtual Protocol"},"amount":{"type":"number","example":193.550073538834}}},"price":{"type":"number","example":0.0134197098315315},"pair":{"type":"object","properties":{"address":{"type":"string","example":"0xa1dddb82501e8fe2d92ad0e8ba331313f501de72"},"name":{"type":"string","example":"VIRTUAL/VADER"},"labels":{"type":"string","example":"Uniswap V2 Pool"}}},"trader":{"type":"object","properties":{"address":{"type":"string","example":"0xFd03314B7f38294BA91a51f7A3F716d8Ba36C2bf"}}},"maker":{"type":"object","properties":{"address":{"type":"string","example":"0xfd03314b7f38294ba91a51f7a3f716d8ba36c2bf"}}},"sender":{"type":"object","properties":{"address":{"type":"string","example":"0x5e2F47bD7D4B357fCfd0Bb224Eb665773B1B9801"},"name":{"type":"string","example":"Dex Router"}}},"recipient":{"type":"object","properties":{"address":{"type":"string","example":"0x6D5dF1d155d79279ABD65A98815F7853C2b3a005"},"name":{"type":"string","example":"VIRTUAL/AXR"},"labels":{"type":"string","example":"Uniswap V2 Pool"}}}}}}},"example":{"slam":0.065,"chain":"base","cursor":{"start_block":34513846,"start_log_index":416},"trades":[{"transaction":{"utc":"2025-08-21T23:19:35Z","block":34514514,"hash":"0x4bd2bf862024806b417822818e0f13a348a4ef2365caa95ec9385940ba7408d1","method":"unxswap by order id","log_index":299},"side":"sell","usd":229.823854,"quote_token":{"address":"0x731814e491571a2e9ee3c5b1f7f3b962ee8f4870","symbol":"VADER","name":"VaderAI by Virtuals","amount":14460.0574485873},"base_token":{"address":"0x0b3e328455c4059eeb9e3f84b5543f74e24e7e1b","symbol":"VIRTUAL","name":"Virtual Protocol","amount":193.550073538834},"price":0.0134197098315315,"pair":{"address":"0xa1dddb82501e8fe2d92ad0e8ba331313f501de72","name":"VIRTUAL/VADER","labels":"Uniswap V2 Pool"},"trader":{"address":"0xFd03314B7f38294BA91a51f7A3F716d8Ba36C2bf"},"maker":{"address":"0xfd03314b7f38294ba91a51f7a3f716d8ba36c2bf"},"sender":{"address":"0x5e2F47bD7D4B357fCfd0Bb224Eb665773B1B9801","name":"Dex Router"},"recipient":{"address":"0x6D5dF1d155d79279ABD65A98815F7853C2b3a005","name":"VIRTUAL/AXR","labels":"Uniswap V2 Pool"}}]}}}}},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"403":{"$ref":"#/components/responses/Error403"},"500":{"$ref":"#/components/responses/Error500"}},"security":[{"X-API-Key":[]}],"x-codeSamples":[],"summary":"Get pair trades from Cryptoslam","tags":["Marketplace"]}},"/v4/data/marketplace/cryptoslam/pair/trades/dna":{"get":{"description":"<p style='display: none'>/v4/data/marketplace/cryptoslam/pair/trades/dna</p>\n<p><b>4000 credits per API call</b></p>\n\n<p>This endpoint retrieves trade data for a specified liquidity pool enriched with WalletDNA metrics. Developers can filter trades by size, side, or wallet behavior (IQ, Reputation, Flow, Mass, Epoch, Maker Presence). Responses include detailed trade, token, and wallet profiles, enabling advanced segmentation, smart-money tracking, and high-signal on-chain analytics in real time.</p>\n\n<p>Supported blockchains:</p>\n<ul>\n<li>Ethereum - ethereum-mainnet</li>\n<li>Base - base-mainnet</li>\n</ul>\n","operationId":"GetCryptoslamPairTradesDna","parameters":[{"description":"The blockchain to work with.","in":"query","name":"chain","required":true,"schema":{"$ref":"#/components/schemas/ChainEnumForTrendingTokens"}},{"description":"The contract address (Uniswap V2/V3) or pool ID (Uniswap V4) of the liquidity pool to fetch trades for.","in":"query","name":"pair","required":true,"schema":{"type":"string","example":"0xf1fdc83c3a336bdbdc9fb06e318b08eaddc82ff4"}},{"description":"Filter trades where this address sent or received the specified token, regardless of whether they initiated the swap transaction.","in":"query","name":"traderAddress","required":false,"schema":{"type":"string","example":"0xB7B8F759E8Bd293b91632100f53a45859832f463"}},{"description":"Filter trades where this address initiated the swap transaction.","in":"query","name":"makerAddress","required":false,"schema":{"type":"string","example":"0x45e10a07a38764d84bbf0f0445dd24eedc3e7bd8"}},{"description":"Specifies trade side for the implied quote token address.","in":"query","name":"side","required":false,"schema":{"type":"string","enum":["buy","sell","all"],"default":"all","example":"sell"}},{"description":"Pipe-delimited list of walletDNA metrics to return in the response. Use 'all' to display every metric.\nValid options include: tokens, intelligence, reputation, flow, mass, epoch, makerPresence, entry, all.\n","in":"query","name":"dna","required":false,"schema":{"type":"string","default":"all","example":"intelligence|flow|mass|tokens"}},{"description":"Minimum trade size in USD. Filters out trades with an estimated USD value below this threshold.\nNote: Adds additional SLAM cost to the query.\n","in":"query","name":"minUsd","required":false,"schema":{"type":"number","example":100}},{"description":"Maximum trade size in USD. Filters out trades with an estimated USD value above this threshold.\nNote: Adds additional SLAM cost to the query.\n","in":"query","name":"maxUsd","required":false,"schema":{"type":"number","example":10000}},{"description":"Minimum holder IQ (raw score). Filters out wallets with IQ scores below this threshold. Average IQ for all wallets trading a given token is 100.","in":"query","name":"minIq","required":false,"schema":{"type":"number","example":120}},{"description":"Maximum holder IQ (raw score). Filters out wallets with IQ scores above this threshold. Average IQ for all wallets trading a given token is 100. Max: Although possible, it is uncommon for wallets to have IQ scores above 200.","in":"query","name":"maxIq","required":false,"schema":{"type":"number","example":180}},{"description":"Minimum holder Intelligence tier. Filters out wallets ranked below this tier.","in":"query","name":"minIntelligence","required":false,"schema":{"type":"string","enum":["idiot","dumb","below avg","avg","avg++","gifted","gifted++","genius","einstein"],"example":"gifted"}},{"description":"Maximum holder Intelligence tier. Filters out wallets ranked above this tier.","in":"query","name":"maxIntelligence","required":false,"schema":{"type":"string","enum":["idiot","dumb","below avg","avg","avg++","gifted","gifted++","genius","einstein"],"example":"genius"}},{"description":"Minimum raw holder Reputation. Filters out wallets with Reputation scores below this threshold.","in":"query","name":"minReputation","required":false,"schema":{"type":"number","example":80}},{"description":"Maximum raw holder Reputation. Filters out wallets with Reputation scores above this threshold. Max: 100.","in":"query","name":"maxReputation","required":false,"schema":{"type":"number","maximum":100,"example":95}},{"description":"Minimum holder Reputation tier. Filters out wallets ranked below this tier.","in":"query","name":"minReputationTier","required":false,"schema":{"type":"string","enum":["a+","a","a−","b+","b","b−","c+","c","c−","d","f"],"example":"b+"}},{"description":"Maximum holder Reputation tier. Filters out wallets ranked above this tier.","in":"query","name":"maxReputationTier","required":false,"schema":{"type":"string","enum":["a+","a","a−","b+","b","b−","c+","c","c−","d","f"],"example":"a+"}},{"description":"Minimum raw holder Mass. Filters out wallets with Mass scores below this threshold.","in":"query","name":"minMass","required":false,"schema":{"type":"number","example":50}},{"description":"Maximum raw holder Mass. Filters out wallets with Mass scores above this threshold. Max: Scores above 250 are rare but possible.","in":"query","name":"maxMass","required":false,"schema":{"type":"number","example":200}},{"description":"Minimum holder Mass tier. Filters out wallets ranked below this tier.","in":"query","name":"minMassTier","required":false,"schema":{"type":"string","enum":["ghost","dust","plankton","shrimp","minnow","fish","dolphin","orca","whale","moby"],"example":"fish"}},{"description":"Maximum holder Mass tier. Filters out wallets ranked above this tier.","in":"query","name":"maxMassTier","required":false,"schema":{"type":"string","enum":["ghost","dust","plankton","shrimp","minnow","fish","dolphin","orca","whale","moby"],"example":"whale"}},{"description":"Minimum raw holder Epoch. Filters out wallets with Epoch scores below this threshold.","in":"query","name":"minEpoch","required":false,"schema":{"type":"number","example":30}},{"description":"Maximum raw holder Epoch. Filters out wallets with Epoch scores above this threshold. Max: 200.","in":"query","name":"maxEpoch","required":false,"schema":{"type":"number","maximum":200,"example":150}},{"description":"Minimum holder Epoch tier. Filters out wallets ranked below this tier.","in":"query","name":"minEpochTier","required":false,"schema":{"type":"string","enum":["newbie","rookie","core","veteran","early adopter","genesis","og","ultra og"],"example":"core"}},{"description":"Maximum holder Epoch tier. Filters out wallets ranked above this tier.","in":"query","name":"maxEpochTier","required":false,"schema":{"type":"string","enum":["newbie","rookie","core","veteran","early adopter","genesis","og","ultra og"],"example":"ultra og"}},{"description":"Minimum raw holder maker_presence. Filters out wallets with maker_presence scores below this threshold.","in":"query","name":"minMakerPresence","required":false,"schema":{"type":"number","example":50}},{"description":"Maximum raw holder maker_presence. Filters out wallets with maker_presence scores above this threshold. Max: Scores above 200 are rare but possible.","in":"query","name":"maxMakerPresence","required":false,"schema":{"type":"number","example":180}},{"description":"Minimum holder maker_presence tier. Filters out wallets ranked below this tier.","in":"query","name":"minMakerPresenceTier","required":false,"schema":{"type":"string","enum":["hyperactive","highly active","active","engaged","occasional","minimal","micro","zero"],"example":"active"}},{"description":"Maximum holder maker_presence tier. Filters out wallets ranked above this tier.","in":"query","name":"maxMakerPresenceTier","required":false,"schema":{"type":"string","enum":["hyperactive","highly active","active","engaged","occasional","minimal","micro","zero"],"example":"hyperactive"}},{"description":"Minimum raw holder Flow. Filters out wallets with Flow scores below this threshold.","in":"query","name":"minFlow","required":false,"schema":{"type":"number","example":50}},{"description":"Maximum raw holder Flow. Filters out wallets with Flow scores above this threshold. Max: Scores above 250 are rare but possible.","in":"query","name":"maxFlow","required":false,"schema":{"type":"number","example":200}},{"description":"Minimum holder Flow tier. Filters out wallets ranked below this tier.","in":"query","name":"minFlowTier","required":false,"schema":{"type":"string","enum":["dry","drip","trickle","stream","current","flood","torrent","tsunami"],"example":"current"}},{"description":"Maximum holder Flow tier. Filters out wallets ranked above this tier.","in":"query","name":"maxFlowTier","required":false,"schema":{"type":"string","enum":["dry","drip","trickle","stream","current","flood","torrent","tsunami"],"example":"tsunami"}},{"description":"Minimum raw holder buy_flow. Filters out wallets with buy_flow scores below this threshold.","in":"query","name":"minBuyFlow","required":false,"schema":{"type":"number","example":50}},{"description":"Maximum raw holder buy_flow. Filters out wallets with buy_flow scores above this threshold. Max: Scores above 250 are rare but possible.","in":"query","name":"maxBuyFlow","required":false,"schema":{"type":"number","example":200}},{"description":"Minimum holder buy_flow tier. Filters out wallets ranked below this tier.","in":"query","name":"minBuyFlowTier","required":false,"schema":{"type":"string","enum":["dry","drip","trickle","stream","current","flood","torrent","tsunami"],"example":"current"}},{"description":"Maximum holder buy_flow tier. Filters out wallets ranked above this tier.","in":"query","name":"maxBuyFlowTier","required":false,"schema":{"type":"string","enum":["dry","drip","trickle","stream","current","flood","torrent","tsunami"],"example":"tsunami"}},{"description":"Minimum raw holder sell_flow. Filters out wallets with sell_flow scores below this threshold.","in":"query","name":"minSellFlow","required":false,"schema":{"type":"number","example":50}},{"description":"Maximum raw holder sell_flow. Filters out wallets with sell_flow scores above this threshold. Max: Scores above 250 are rare but possible.","in":"query","name":"maxSellFlow","required":false,"schema":{"type":"number","example":200}},{"description":"Minimum holder sell_flow tier. Filters out wallets ranked below this tier.","in":"query","name":"minSellFlowTier","required":false,"schema":{"type":"string","enum":["dry","drip","trickle","stream","current","flood","torrent","tsunami"],"example":"current"}},{"description":"Maximum holder sell_flow tier. Filters out wallets ranked above this tier.","in":"query","name":"maxSellFlowTier","required":false,"schema":{"type":"string","enum":["dry","drip","trickle","stream","current","flood","torrent","tsunami"],"example":"tsunami"}},{"description":"The maximum number of trade records to return (1-1000).","in":"query","name":"num","required":false,"schema":{"type":"integer","minimum":1,"maximum":1000,"default":25,"example":25}},{"description":"Sort order for results: asc (oldest first) or desc (newest first).","in":"query","name":"order","required":false,"schema":{"type":"string","enum":["asc","desc"],"default":"desc","example":"desc"}},{"description":"Start searching from this UTC timestamp (inclusive). If provided, overrides start_block as the starting point.","in":"query","name":"startTimestamp","required":false,"schema":{"type":"string","format":"date-time","example":"2025-08-27T17:16:31Z"}},{"description":"Block number to start the search from (inclusive). Defaults to the latest block in desc order, or the genesis block in asc order.","in":"query","name":"startBlock","required":false,"schema":{"type":"integer","example":34761645}},{"description":"Log index within the starting block to resume pagination or refine the starting point.","in":"query","name":"startLogIndex","required":false,"schema":{"type":"integer","example":508}},{"description":"When true, returns only the SLAM token cost for this query without performing the actual query.","in":"query","name":"estimateCost","required":false,"schema":{"type":"boolean","default":false}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"slam":{"type":"number","description":"The SLAM token cost for this API call","example":5.65857866142481},"chain":{"type":"string","description":"The name of the blockchain network","example":"base"},"cursor":{"type":"object","properties":{"start_block":{"type":"integer","description":"Block number for pagination","example":34761645},"start_log_index":{"type":"integer","description":"Log index for pagination","example":508}}},"trades":{"type":"array","items":{"type":"object","properties":{"transaction":{"type":"object","properties":{"utc":{"type":"string","format":"date-time","example":"2025-08-27T17:16:31Z"},"block":{"type":"integer","example":34762822},"hash":{"type":"string","example":"0xf57796859582734ddaa55b214cd9a6613044ec6c831662a14f61b44f76864fac"},"log_index":{"type":"integer","example":170}}},"side":{"type":"string","enum":["buy","sell"],"example":"sell"},"usd":{"type":"number","description":"Trade size in USD","example":397.743919},"quote_token":{"type":"object","properties":{"address":{"type":"string","example":"0x4f9fd6be4a90f2620860d680c0d4d5fb53d1a825"},"symbol":{"type":"string","example":"AIXBT"},"name":{"type":"string","example":"aixbt by Virtuals"},"amount":{"type":"number","example":3792.94561936705}}},"base_token":{"type":"object","properties":{"address":{"type":"string","example":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913"},"symbol":{"type":"string","example":"USDC"},"name":{"type":"string","example":"USD Coin"},"amount":{"type":"number","example":398.741271}}},"price":{"type":"number","example":0.10540407822228},"pair":{"type":"object","properties":{"address":{"type":"string","example":"0xf1fdc83c3a336bdbdc9fb06e318b08eaddc82ff4"},"name":{"type":"string","example":"AIXBT/USDC"},"labels":{"type":"string","example":"Uniswap V3 Pool"}}},"trader":{"type":"object","properties":{"address":{"type":"string","example":"0xB7B8F759E8Bd293b91632100f53a45859832f463"},"quote_token_holding":{"type":"object","properties":{"balance":{"type":"number","example":191359.341236202},"staked_pct":{"type":"number","example":0.019235},"value_usd":{"type":"number","example":20312.1217}}},"intelligence":{"type":"object","properties":{"tier":{"type":"string","example":"Avg++"},"iq":{"type":"number","example":117.4}}},"reputation":{"type":"object","properties":{"tier":{"type":"string","example":"A"},"raw":{"type":"number","example":94.71}}},"mass":{"type":"object","properties":{"tier":{"type":"string","example":"Dolphin"},"raw":{"type":"number","example":117.42}}},"epoch":{"type":"object","properties":{"tier":{"type":"string","example":"Core"},"raw":{"type":"number","example":49.23}}},"maker_presence":{"type":"object","properties":{"tier":{"type":"string","example":"Zero"},"raw":{"type":"number","example":0}}},"flow":{"type":"object","properties":{"buy":{"type":"object","properties":{"tier":{"type":"string","example":"Flood"},"raw":{"type":"number","example":144.7}}},"sell":{"type":"object","properties":{"tier":{"type":"string","example":"Tsunami"},"raw":{"type":"number","example":224.85}}},"total":{"type":"object","properties":{"tier":{"type":"string","example":"Tsunami"},"raw":{"type":"number","example":209.3}}}}},"entry":{"type":"object","properties":{"method":{"type":"string","example":"DEX"},"token_amount":{"type":"number","example":37958.904633452},"block":{"type":"integer","example":31588672},"utc":{"type":"string","format":"date-time","example":"2025-06-15T05:51:31"}}}}},"maker":{"type":"object","properties":{"address":{"type":"string","example":"0x45e10a07a38764d84bbf0f0445dd24eedc3e7bd8"}}},"sender":{"type":"object","properties":{"address":{"type":"string","example":"0xB7B8F759E8Bd293b91632100f53a45859832f463"}}},"recipient":{"type":"object","properties":{"address":{"type":"string","example":"0xB7B8F759E8Bd293b91632100f53a45859832f463"}}}}}}},"example":{"slam":5.65857866142481,"chain":"base","cursor":{"start_block":34761645,"start_log_index":508},"trades":[{"transaction":{"utc":"2025-08-27T17:16:31Z","block":34762822,"hash":"0xf57796859582734ddaa55b214cd9a6613044ec6c831662a14f61b44f76864fac","log_index":170},"side":"sell","usd":397.743919,"quote_token":{"address":"0x4f9fd6be4a90f2620860d680c0d4d5fb53d1a825","symbol":"AIXBT","name":"aixbt by Virtuals","amount":3792.94561936705},"base_token":{"address":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","symbol":"USDC","name":"USD Coin","amount":398.741271},"price":0.10540407822228,"pair":{"address":"0xf1fdc83c3a336bdbdc9fb06e318b08eaddc82ff4","name":"AIXBT/USDC","labels":"Uniswap V3 Pool"},"trader":{"address":"0xB7B8F759E8Bd293b91632100f53a45859832f463","quote_token_holding":{"balance":191359.341236202,"staked_pct":0.019235,"value_usd":20312.1217},"intelligence":{"tier":"Avg++","iq":117.4},"reputation":{"tier":"A","raw":94.71},"mass":{"tier":"Dolphin","raw":117.42},"epoch":{"tier":"Core","raw":49.23},"maker_presence":{"tier":"Zero","raw":0},"flow":{"buy":{"tier":"Flood","raw":144.7},"sell":{"tier":"Tsunami","raw":224.85},"total":{"tier":"Tsunami","raw":209.3}},"entry":{"method":"DEX","token_amount":37958.904633452,"block":31588672,"utc":"2025-06-15T05:51:31"}},"maker":{"address":"0x45e10a07a38764d84bbf0f0445dd24eedc3e7bd8"},"sender":{"address":"0xB7B8F759E8Bd293b91632100f53a45859832f463"},"recipient":{"address":"0xB7B8F759E8Bd293b91632100f53a45859832f463"}}]}}}}},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"403":{"$ref":"#/components/responses/Error403"},"500":{"$ref":"#/components/responses/Error500"}},"security":[{"X-API-Key":[]}],"x-codeSamples":[],"summary":"Get pair trades DNA from Cryptoslam","tags":["Marketplace"]}},"/v4/data/storage/upload":{"post":{"description":"<p style='display: none'>/v4/data/storage/upload</p>\n<p><b>Billed via Walrus on-chain storage fees — no standard API credits consumed per call.</b></p>\n\n<p>Upload a file to <a href=\"https://walrus.space\" target=\"_blank\">Walrus</a> decentralized storage.\nFiles are staged in GCS and then certified on-chain by the Walrus worker asynchronously.\nThe response immediately returns a <code>jobId</code> and a pre-computed <code>blobId</code>;\npoll <code>GET /v4/data/storage/upload/{jobId}</code> to track certification progress.</p>\n\n<p><b>Epochs and renewals:</b> Walrus storage is divided into epochs (approximately 2 weeks each).\nFiles are stored for the platform default of ~4 epochs (~8 weeks) and are <b>automatically renewed</b>\nby Tatum before each epoch window closes. Renewal fees (SUI/WAL on-chain costs × your plan rate)\nare charged to your Walrus storage balance. To stop automatic renewal, call\n<code>DELETE /v4/data/storage/upload/{jobId}</code>.</p>\n\n<ul>\n<li>Maximum file size: <b>50 MiB</b>.</li>\n<li>Only available on <b>mainnet</b> API keys.</li>\n<li>If another active upload already exists with the same filename and size, the filename is\nautomatically disambiguated (e.g. <code>report (1).pdf</code>) to avoid blob-id collisions on-chain.</li>\n<li>Send the file as a <code>multipart/form-data</code> field named <code>file</code>.</li>\n</ul>\n","operationId":"StorageUpload","requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","required":["file"],"properties":{"file":{"type":"string","format":"binary","description":"The file to upload (max 50 MiB)."}}}}}},"responses":{"200":{"description":"Upload job created and staged successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WalrusStorageEnqueueResponse"},"example":{"jobId":"68000000000000000000abcd","status":"PENDING","filename":"report.pdf","mimeType":"application/pdf","sizeBytes":1048576,"blobId":"mAlStJ4PAJaBuuHEUHotGheikLiTXpQagboGF43bY4s"}}}},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"403":{"$ref":"#/components/responses/Error403"},"500":{"$ref":"#/components/responses/Error500"}},"security":[{"X-API-Key":[]}],"x-codeSamples":[],"summary":"Upload a file to Walrus storage","tags":["Storage API"]}},"/v4/data/storage/uploads":{"get":{"description":"<p style='display: none'>/v4/data/storage/uploads</p>\n<p><b>0 credits per API call</b></p>\n\n<p>List all upload jobs for the current API key, ordered by most recently created.\nUse <code>limit</code> and <code>offset</code> to paginate through results.</p>\n","operationId":"StorageListUploads","parameters":[{"name":"limit","in":"query","required":false,"description":"Number of results to return. Range 1–100, default 50.","schema":{"type":"integer","minimum":1,"maximum":100,"default":50,"example":20}},{"name":"offset","in":"query","required":false,"description":"Number of results to skip for pagination. Maximum 10 000.","schema":{"type":"integer","minimum":0,"maximum":10000,"default":0,"example":0}}],"responses":{"200":{"description":"List of upload jobs.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/WalrusStorageJobStatusResponse"}},"example":[{"jobId":"68000000000000000000abcd","status":"CERTIFIED","filename":"report.pdf","mimeType":"application/pdf","sizeBytes":1048576,"blobId":"mAlStJ4PAJaBuuHEUHotGheikLiTXpQagboGF43bY4s","quiltPatchId":"mAlStJ4PAJaBuuHEUHotGheikLiTXpQagboGF43bY4sBAQCaAg","suiObjectId":"0x1b520353e191083dccad671db585525365e6f5bf70fcf63c7dd8e088ec5c57b6","walrusStartEpoch":29,"walrusEndEpoch":33,"renewalBillingStatus":"active","noRenewal":false,"downloadUrlByQuiltId":"https://aggregator.walrus-mainnet.walrus.space/v1/blobs/by-quilt-id/mAlStJ4PAJaBuuHEUHotGheikLiTXpQagboGF43bY4s/report.pdf","downloadUrlByQuiltPatchId":"https://aggregator.walrus-mainnet.walrus.space/v1/blobs/by-quilt-patch-id/mAlStJ4PAJaBuuHEUHotGheikLiTXpQagboGF43bY4sBAQCaAg","createdAt":1777304790000,"updatedAt":1777304809955},{"jobId":"68000000000000000000abce","status":"PENDING","filename":"data.csv","mimeType":"text/csv","sizeBytes":204800,"blobId":"xKpQr7TnYmBvCdEfGhIjKlMnOpQrStUvWxYzAbCdEfG","createdAt":1777304900000,"updatedAt":1777304900000}]}}},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"403":{"$ref":"#/components/responses/Error403"},"500":{"$ref":"#/components/responses/Error500"}},"security":[{"X-API-Key":[]}],"x-codeSamples":[],"summary":"List Walrus storage uploads","tags":["Storage API"]}},"/v4/data/storage/upload/{jobId}":{"get":{"description":"<p style='display: none'>/v4/data/storage/upload/{jobId}</p>\n<p><b>0 credits per API call</b></p>\n\n<p>Get the current status of a Walrus storage upload job. Poll this endpoint after\n<code>POST /v4/data/storage/upload</code> to track progress through the lifecycle:\n<code>PENDING</code> → <code>UPLOADING</code> → <code>CERTIFIED</code>.</p>\n\n<p>Once status is <code>CERTIFIED</code>, the response includes <code>downloadUrlByQuiltId</code>\nand <code>downloadUrlByQuiltPatchId</code> which can be used to retrieve the file from any\nWalrus aggregator node. The <code>walrusStartEpoch</code> and <code>walrusEndEpoch</code> fields\nindicate the active storage window (one epoch ≈ 2 weeks).</p>\n\n<p>If status is <code>FAILED</code>, the <code>errorMessage</code> field contains the reason.\nFailed jobs are not retried automatically — submit a new upload request to try again.</p>\n","operationId":"StorageGetUploadStatus","parameters":[{"name":"jobId","in":"path","required":true,"description":"The job ID returned by <code>POST /v4/data/storage/upload</code>.","schema":{"type":"string","example":"68000000000000000000abcd"}}],"responses":{"200":{"description":"Upload job status.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WalrusStorageJobStatusResponse"},"example":{"jobId":"68000000000000000000abcd","status":"CERTIFIED","filename":"report.pdf","mimeType":"application/pdf","sizeBytes":1048576,"blobId":"mAlStJ4PAJaBuuHEUHotGheikLiTXpQagboGF43bY4s","quiltPatchId":"mAlStJ4PAJaBuuHEUHotGheikLiTXpQagboGF43bY4sBAQCaAg","suiObjectId":"0x1b520353e191083dccad671db585525365e6f5bf70fcf63c7dd8e088ec5c57b6","walrusStartEpoch":29,"walrusEndEpoch":33,"renewalBillingStatus":"active","noRenewal":false,"storageEvents":[{"type":"registered","txDigest":"4ywoqKo35fVadBsXZQEqQkLr4mY6mHS9MykZU3HmzUKX","at":1777304790823,"epochs":4},{"type":"certified","txDigest":"8fkmBPjuGUkYaca1nAVnACoVNeMp6GcV6QVZKHTaDh3K","at":1777304809955}],"downloadUrlByQuiltId":"https://aggregator.walrus-mainnet.walrus.space/v1/blobs/by-quilt-id/mAlStJ4PAJaBuuHEUHotGheikLiTXpQagboGF43bY4s/report.pdf","downloadUrlByQuiltPatchId":"https://aggregator.walrus-mainnet.walrus.space/v1/blobs/by-quilt-patch-id/mAlStJ4PAJaBuuHEUHotGheikLiTXpQagboGF43bY4sBAQCaAg","createdAt":1777304790000,"updatedAt":1777304809955}}}},"401":{"$ref":"#/components/responses/Error401"},"403":{"$ref":"#/components/responses/Error403"},"404":{"description":"Upload job not found or does not belong to this API key."},"500":{"$ref":"#/components/responses/Error500"}},"security":[{"X-API-Key":[]}],"x-codeSamples":[],"summary":"Get Walrus storage upload status","tags":["Storage API"]},"delete":{"description":"<p style='display: none'>/v4/data/storage/upload/{jobId}</p>\n<p><b>Soft cancel: 0 credits. Instant delete: billed via Walrus on-chain storage fees (same credit check as upload).</b></p>\n\n<p>Cancel renewal for a certified Walrus storage upload. Two modes are available:</p>\n\n<ul>\n<li><b>Soft cancel</b> (default, <code>instant=false</code>): marks the blob as <code>noRenewal=true</code>.\nThe file remains on-chain until its current storage epoch expires (<code>walrusEndEpoch</code>),\nthen decommissions naturally. No additional fee is incurred — the remaining prepaid epochs are simply not renewed.</li>\n<li><b>Instant delete</b> (<code>instant=true</code>): queues an immediate on-chain delete transaction.\nRequires sufficient Walrus storage credits (same check as upload). The Walrus worker executes the delete tx\nand the on-chain delete fee is charged to your Walrus storage balance afterward.\nCan be applied even if soft cancel was already set — it upgrades to instant.</li>\n</ul>\n\n<p>Both modes are idempotent. The job must be in <code>CERTIFIED</code> status and not already\ndecommissioned.</p>\n","operationId":"StorageCancelRenewal","parameters":[{"name":"jobId","in":"path","required":true,"description":"The job ID returned by <code>POST /v4/data/storage/upload</code>.","schema":{"type":"string","example":"68000000000000000000abcd"}},{"name":"instant","in":"query","required":false,"description":"Set to <code>true</code> to queue an immediate on-chain delete (costs Walrus storage credits).\nOmit or set to <code>false</code> (default) for a free soft cancel — blob stays on-chain until its epoch expires.\n","schema":{"type":"boolean","default":false,"example":true}}],"responses":{"200":{"description":"Renewal cancelled successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WalrusStorageCancelRenewalResponse"},"examples":{"softCancel":{"summary":"Soft cancel (noRenewal)","value":{"jobId":"68000000000000000000abcd","noRenewal":true,"renewalBillingStatus":"active","walrusEndEpoch":33}},"instantDelete":{"summary":"Instant delete queued","value":{"jobId":"68000000000000000000abcd","noRenewal":true,"pendingInstantDelete":true,"renewalBillingStatus":"pending_instant_delete","walrusEndEpoch":33}}}}}},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"403":{"$ref":"#/components/responses/Error403"},"404":{"description":"Upload job not found or does not belong to this API key."},"500":{"$ref":"#/components/responses/Error500"}},"security":[{"X-API-Key":[]}],"x-codeSamples":[],"summary":"Cancel Walrus storage renewal","tags":["Storage API"]}},"/v4/data/prediction/events":{"get":{"description":"<p style='display: none'>/v4/data/prediction/events</p>\n<p><b>100 credits per API call</b></p>\n\n<p>List prediction-market events across supported platforms. An event is a top-level\ngrouping of one or more markets that share a common question or outcome set\n(e.g. \"2028 US Presidential Election\"). Each event row includes a roll-up of nested\nmarket counts, total volume, and total liquidity, with an opt-in to embed the full\nlist of nested markets via <code>includeMarkets=true</code>.</p>\n\n<p>Supported platforms (filter via <code>platform</code> or omit for a cross-platform\nfeed):</p>\n<ul>\n<li>Polymarket — <code>polymarket</code></li>\n<li>Kalshi — <code>kalshi</code></li>\n</ul>\n\n<p><b>Filtering, sorting and pagination</b></p>\n<ul>\n<li>The <code>status</code>, <code>category</code>, <code>tag</code> and\n<code>search</code> filters are only honoured by Polymarket. To use any of them\nyou must also pin <code>platform=polymarket</code> — calling them without that\npin returns <code>400</code> so the response is honest about what was filtered.</li>\n<li><code>sort</code> accepts <code>volume_desc</code>, <code>liquidity_desc</code>,\n<code>endingSoon</code>, <code>newest</code>. When omitted on a cross-platform feed,\nresults are interleaved so neither platform dominates the first page.</li>\n<li>Pagination is cursor-based. The first call returns a\n<code>pagination.cursor</code>; pass that value verbatim as <code>?cursor=…</code>\non the next call. Cursors are opaque, fingerprint-bound to the filter set, and\nexpire when filters change — never construct or modify them by hand. The cursor\nfield is omitted from <code>pagination</code> on the last page.</li>\n</ul>\n\n<p><b>Other notes</b></p>\n<ul>\n<li><code>volumeUnit</code> is <code>usd</code> on Polymarket events\n(dollar-denominated volume) and <code>contracts</code> on Kalshi events (number of\ncontracts traded, not USD).</li>\n<li><code>totalLiquidity</code> is <code>null</code> on Kalshi — quoted liquidity\nis not exposed at the event level on Kalshi; compute from per-market orderbook\ndepth if you need it.</li>\n<li><code>status</code> in the response is the verbatim upstream status string\n(richer than the <code>status</code> filter enum) — values can include\n<code>paused</code>, <code>archived</code>, <code>settled</code>, etc.</li>\n<li><code>markets</code> is populated only when <code>includeMarkets=true</code> is\npassed; otherwise it is <code>null</code>. When populated, every nested market is\nreturned (no internal cap).</li>\n</ul>\n","operationId":"GetPredictionEventsV4","parameters":[{"description":"Filter to a single platform. Omit for a cross-platform feed.","in":"query","name":"platform","schema":{"$ref":"#/components/schemas/PredictionPlatform"}},{"description":"Filter by lifecycle status. Polymarket-only — must be combined with\n`platform=polymarket`.\n","in":"query","name":"status","schema":{"$ref":"#/components/schemas/PredictionMarketStatusFilter"}},{"description":"Filter by event category. Polymarket-only — must be combined with\n`platform=polymarket`. Free-form string, max 64 characters.\n","in":"query","name":"category","schema":{"type":"string","maxLength":64,"example":"politics"}},{"description":"Filter by event tag slug. Polymarket-only — must be combined with\n`platform=polymarket`. Free-form string, max 64 characters.\n","in":"query","name":"tag","schema":{"type":"string","maxLength":64,"example":"us-elections"}},{"description":"Free-text search across event titles. Polymarket-only — must be combined with\n`platform=polymarket`. Max 256 characters.\n","in":"query","name":"search","schema":{"type":"string","maxLength":256,"example":"election"}},{"description":"Sort order. When omitted on a cross-platform feed, results are interleaved\nto balance the two platforms; otherwise sorted within the merged set.\n","in":"query","name":"sort","schema":{"$ref":"#/components/schemas/PredictionMarketSort"}},{"description":"Opaque cursor returned by the previous response's `pagination.cursor`.\nOmit on the first call. Fingerprint-bound to the filter set — changing\nfilters invalidates the cursor.\n","in":"query","name":"cursor","schema":{"$ref":"#/components/schemas/PredictionCursor"}},{"description":"Page size. Defaults to 20 when omitted.","in":"query","name":"limit","schema":{"type":"integer","minimum":1,"maximum":100,"default":20,"example":20}},{"description":"When `true`, each event includes its full nested `markets[]` array. Defaults\nto `false` to keep list payloads light — opt in when you need per-event\nmarket depth.\n","in":"query","name":"includeMarkets","schema":{"type":"boolean","default":false,"example":false}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PredictionEventsListResponse"}}},"description":"OK"},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"403":{"$ref":"#/components/responses/Error403"},"500":{"$ref":"#/components/responses/Error500"}},"security":[{"X-API-Key":[]}],"x-codeSamples":[],"summary":"List prediction-market events","tags":["Prediction API"]}},"/v4/data/prediction/events/{id}":{"get":{"description":"<p style='display: none'>/v4/data/prediction/events/{id}</p>\n<p><b>100 credits per API call</b></p>\n\n<p>Retrieve a single prediction-market event by its platform-native identifier.\nUseful for hydrating event detail pages or following links from a listing.</p>\n\n<p>Accepted <code>id</code> formats:</p>\n<ul>\n<li>Polymarket — numeric event id (e.g. <code>12345</code>).</li>\n<li>Kalshi — event ticker (e.g. <code>KXELONMARS</code>). Tickers are\nuppercase alphanumeric with optional <code>-</code> and <code>_</code>\nseparators.</li>\n</ul>\n\n<p><b>Other notes</b></p>\n<ul>\n<li>Returns <code>404</code> when the event does not exist on either platform.</li>\n<li>Returns <code>400</code> when the <code>id</code> does not match either\naccepted format.</li>\n<li><code>markets</code> is populated only when <code>includeMarkets=true</code>\nis passed; otherwise it is <code>null</code>.</li>\n<li><code>volumeUnit</code> and <code>totalLiquidity</code> follow the same\nper-platform rules as the listing endpoint.</li>\n</ul>\n","operationId":"GetPredictionEventByIdV4","parameters":[{"description":"Platform-native event identifier. Polymarket numeric id or Kalshi event ticker.\n","in":"path","name":"id","required":true,"schema":{"type":"string","example":"KXELONMARS"}},{"description":"When `true`, the event includes its full nested `markets[]` array. Defaults\nto `false`.\n","in":"query","name":"includeMarkets","schema":{"type":"boolean","default":false,"example":false}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PredictionEventResponse"}}},"description":"OK"},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"403":{"$ref":"#/components/responses/Error403"},"404":{"description":"Event not found on any supported platform."},"500":{"$ref":"#/components/responses/Error500"}},"security":[{"X-API-Key":[]}],"x-codeSamples":[],"summary":"Get a prediction-market event by ID","tags":["Prediction API"]}},"/v4/data/prediction/markets":{"get":{"description":"<p style='display: none'>/v4/data/prediction/markets</p>\n<p><b>100 credits per API call</b></p>\n\n<p>List prediction markets across supported platforms. A market is a single\nbinary or multi-outcome question (e.g. \"Will candidate X win?\"); it belongs to\na parent event when one is defined upstream. Each row carries pricing-friendly\nroll-ups (volume, liquidity), the current outcome set, and on-chain references\non platforms where they exist.</p>\n\n<p>Supported platforms (filter via <code>platform</code> or omit for a cross-platform\nfeed):</p>\n<ul>\n<li>Polymarket — <code>polymarket</code></li>\n<li>Kalshi — <code>kalshi</code></li>\n</ul>\n\n<p><b>Filtering, sorting and pagination</b></p>\n<ul>\n<li>The <code>status</code>, <code>category</code>, <code>tag</code>,\n<code>search</code> and <code>minVolume</code> filters are only honoured by\nPolymarket. To use any of them you must also pin\n<code>platform=polymarket</code> — calling them without that pin returns\n<code>400</code>.</li>\n<li><code>eventId</code> accepts either a Polymarket numeric event id or a\nKalshi event ticker. When omitted, results span all events on the targeted\nplatform(s).</li>\n<li><code>endingBefore</code> is an ISO-8601 timestamp; markets closing on or\nafter that timestamp are excluded.</li>\n<li><code>sort</code> accepts <code>volume_desc</code>, <code>liquidity_desc</code>,\n<code>endingSoon</code>, <code>newest</code>. When omitted on a cross-platform\nfeed, results are interleaved between the two platforms.</li>\n<li>Pagination is cursor-based. The first call returns a\n<code>pagination.cursor</code>; pass it back verbatim as <code>?cursor=…</code>\non the next call. Cursors are opaque, fingerprint-bound, and expire when filters\nchange — never construct or modify them by hand.</li>\n</ul>\n\n<p><b>Other notes</b></p>\n<ul>\n<li><code>volumeUnit</code> is <code>usd</code> on Polymarket (dollar-denominated\nnotional) and <code>contracts</code> on Kalshi (contract count — not USD).</li>\n<li><code>liquidity</code> is <code>null</code> on Kalshi — quoted liquidity is\nnot exposed by the upstream markets feed; aggregate orderbook depth\nclient-side if you need it.</li>\n<li><code>chain</code> is populated for Polymarket markets (Polygon CTF) and\n<code>null</code> on Kalshi which has no on-chain footprint.</li>\n<li><code>status</code> in the response is the verbatim upstream status string\n(richer than the <code>?status=</code> filter enum) — values can include\n<code>paused</code>, <code>archived</code>, <code>settled</code>, etc.</li>\n</ul>\n","operationId":"GetPredictionMarketsV4","parameters":[{"description":"Filter to a single platform. Omit for a cross-platform feed.","in":"query","name":"platform","schema":{"$ref":"#/components/schemas/PredictionPlatform"}},{"description":"Filter by lifecycle status. Polymarket-only — must be combined with\n`platform=polymarket`.\n","in":"query","name":"status","schema":{"$ref":"#/components/schemas/PredictionMarketStatusFilter"}},{"description":"Filter by category. Polymarket-only — must be combined with\n`platform=polymarket`.\n","in":"query","name":"category","schema":{"type":"string","maxLength":64,"example":"crypto"}},{"description":"Filter by tag slug. Polymarket-only — must be combined with\n`platform=polymarket`.\n","in":"query","name":"tag","schema":{"type":"string","maxLength":64,"example":"bitcoin"}},{"description":"Scope the listing to a single parent event. Polymarket numeric event id\n(e.g. `12345`) or Kalshi event ticker (e.g. `KXELONMARS`).\n","in":"query","name":"eventId","schema":{"type":"string","maxLength":128,"pattern":"^(\\d+|[A-Z][A-Z0-9_-]*)$","example":"KXELONMARS"}},{"description":"Free-text search across market questions. Polymarket-only — must be\ncombined with `platform=polymarket`.\n","in":"query","name":"search","schema":{"type":"string","maxLength":256,"example":"bitcoin"}},{"description":"Exclude markets closing on or after this ISO-8601 timestamp.\n","in":"query","name":"endingBefore","schema":{"type":"string","format":"date-time","example":"2026-12-31T00:00:00Z"}},{"description":"Minimum volume threshold in `volumeUnit` units. Polymarket-only — must be\ncombined with `platform=polymarket`.\n","in":"query","name":"minVolume","schema":{"type":"number","minimum":0,"example":10000}},{"description":"Sort order. When omitted on a cross-platform feed, results are interleaved\nbetween platforms instead.\n","in":"query","name":"sort","schema":{"$ref":"#/components/schemas/PredictionMarketSort"}},{"description":"Opaque cursor returned by the previous response's `pagination.cursor`.\nOmit on the first call.\n","in":"query","name":"cursor","schema":{"$ref":"#/components/schemas/PredictionCursor"}},{"description":"Page size. Defaults to 20 when omitted.","in":"query","name":"limit","schema":{"type":"integer","minimum":1,"maximum":100,"default":20,"example":20}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PredictionMarketsListResponse"}}},"description":"OK"},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"403":{"$ref":"#/components/responses/Error403"},"500":{"$ref":"#/components/responses/Error500"}},"security":[{"X-API-Key":[]}],"x-codeSamples":[],"summary":"List prediction markets","tags":["Prediction API"]}},"/v4/data/prediction/markets/{id}":{"get":{"description":"<p style='display: none'>/v4/data/prediction/markets/{id}</p>\n<p><b>100 credits per API call</b></p>\n\n<p>Retrieve a single prediction market by its platform-native identifier.</p>\n\n<p>Accepted <code>id</code> formats:</p>\n<ul>\n<li>Polymarket — condition id (<code>0x</code> + 64 hex characters).</li>\n<li>Kalshi — market ticker (e.g. <code>KXELONMARS-99</code>). Tickers are\nuppercase alphanumeric with optional <code>-</code> and <code>_</code>\nseparators.</li>\n</ul>\n\n<p><b>Other notes</b></p>\n<ul>\n<li>Returns <code>404</code> when the market does not exist on either platform.</li>\n<li>Returns <code>400</code> when the <code>id</code> does not match either\naccepted format.</li>\n<li><code>volumeUnit</code>, <code>liquidity</code> and <code>chain</code> follow\nthe same per-platform rules as the listing endpoint.</li>\n</ul>\n","operationId":"GetPredictionMarketByIdV4","parameters":[{"description":"Platform-native market identifier. Polymarket condition id or Kalshi market\nticker.\n","in":"path","name":"id","required":true,"schema":{"type":"string","example":"0xdd22472e552920b8438158ea7238bfadfa4f736aa4cee91a6b86c39ead110917"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PredictionMarketResponse"}}},"description":"OK"},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"403":{"$ref":"#/components/responses/Error403"},"404":{"description":"Market not found on any supported platform."},"500":{"$ref":"#/components/responses/Error500"}},"security":[{"X-API-Key":[]}],"x-codeSamples":[],"summary":"Get a prediction market by ID","tags":["Prediction API"]}},"/v4/data/prediction/markets/{id}/price":{"get":{"description":"<p style='display: none'>/v4/data/prediction/markets/{id}/price</p>\n<p><b>100 credits per API call</b></p>\n\n<p>Current price snapshot for a single market. Returns per-outcome quotes\n(best bid / best ask / sizes), the implied midpoint, spread, last trade price\nand rolling 24-hour volume. Useful for ticker-style dashboards and pre-trade\npreviews.</p>\n\n<p><b>Other notes</b></p>\n<ul>\n<li>Resolves the same <code>id</code> formats as <code>GET /markets/{id}</code>\n(Polymarket condition id or Kalshi market ticker).</li>\n<li><code>volume24h</code> is reported in the market's <code>volumeUnit</code> —\n<code>usd</code> on Polymarket, <code>contracts</code> on Kalshi.</li>\n<li><code>volume24h</code> and <code>volumeUnit</code> are <code>null</code> when\nthe upstream does not expose a 24-hour figure.</li>\n<li><code>midPrice</code> and <code>spread</code> are <code>null</code> when\neither side of the book is empty.</li>\n</ul>\n","operationId":"GetPredictionMarketPriceV4","parameters":[{"description":"Platform-native market identifier.","in":"path","name":"id","required":true,"schema":{"type":"string","example":"0xdd22472e552920b8438158ea7238bfadfa4f736aa4cee91a6b86c39ead110917"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PredictionMarketPriceResponse"}}},"description":"OK"},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"403":{"$ref":"#/components/responses/Error403"},"404":{"description":"Market not found on any supported platform."},"500":{"$ref":"#/components/responses/Error500"}},"security":[{"X-API-Key":[]}],"x-codeSamples":[],"summary":"Get current market price","tags":["Prediction API"]}},"/v4/data/prediction/markets/{id}/orderbook":{"get":{"description":"<p style='display: none'>/v4/data/prediction/markets/{id}/orderbook</p>\n<p><b>100 credits per API call</b></p>\n\n<p>Current orderbook snapshot for one side of a market. The orderbook is\nper-outcome — pass <code>side=yes</code> or <code>side=no</code> to choose which\noutcome's book you want. Returns top-of-book through to <code>depth</code> levels\nof bids and asks, with a computed quoted-liquidity figure within 1% and 5% of the\nmidpoint.</p>\n\n<p><b>Other notes</b></p>\n<ul>\n<li><code>side</code> is required.</li>\n<li><code>hash</code> is a content fingerprint of the book snapshot useful for\nETag-style change detection on poll. Populated on Polymarket; <code>null</code>\non Kalshi (no equivalent upstream field).</li>\n<li>Returns <code>404</code> when the market does not exist on either platform.</li>\n</ul>\n","operationId":"GetPredictionMarketOrderbookV4","parameters":[{"description":"Platform-native market identifier.","in":"path","name":"id","required":true,"schema":{"type":"string","example":"KXELONMARS-99"}},{"description":"Which outcome's orderbook to return.","in":"query","name":"side","required":true,"schema":{"$ref":"#/components/schemas/PredictionOutcomeSide"}},{"description":"Number of levels to return per side. Defaults to 20 when omitted.\n","in":"query","name":"depth","schema":{"type":"integer","minimum":1,"maximum":100,"default":20,"example":20}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PredictionOrderbookResponse"}}},"description":"OK"},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"403":{"$ref":"#/components/responses/Error403"},"404":{"description":"Market not found on any supported platform."},"500":{"$ref":"#/components/responses/Error500"}},"security":[{"X-API-Key":[]}],"x-codeSamples":[],"summary":"Get current market orderbook","tags":["Prediction API"]}},"/v4/data/prediction/markets/{id}/history":{"get":{"description":"<p style='display: none'>/v4/data/prediction/markets/{id}/history</p>\n<p><b>200 credits per API call</b></p>\n\n<p>Historical OHLC price candles for a market over a time window. Used to power\nchart views — every candle includes open / high / low / close prices plus the\nin-bucket trade volume.</p>\n\n<p><b>Filtering</b></p>\n<ul>\n<li><code>interval</code> is required. Accepted values: <code>1m</code>,\n<code>5m</code>, <code>15m</code>, <code>1h</code>, <code>4h</code>,\n<code>1d</code>, <code>1w</code>. Each interval has a maximum allowed range\n(e.g. <code>1m</code> can be queried for ~1 day at a time, <code>1d</code> for\n~1 year). Requests exceeding the range cap return <code>400</code>.</li>\n<li><code>start</code> and <code>end</code> are required ISO-8601 timestamps.\n<code>end</code> must be after <code>start</code>.</li>\n<li><code>source</code> selects the underlying data feed. Defaults to\n<code>candlesticks</code> (trade-based OHLC with real volume). Pass\n<code>midpoint</code> to switch to a midpoint-quote feed with broader range\ncoverage at the cost of <code>volume = 0</code> on every candle.\n<code>source=midpoint</code> is supported on Polymarket only — passing it\nagainst a Kalshi market returns <code>400</code>.</li>\n</ul>\n\n<p><b>Other notes</b></p>\n<ul>\n<li><code>partial: true</code> indicates the requested range was truncated by an\nupstream availability limit. This only happens on Polymarket with\n<code>source=candlesticks</code> (the trade-based feed exposes a finite window\nof historical fills); Kalshi candles cover the full requested range, and\n<code>source=midpoint</code> on Polymarket also covers the full range.</li>\n<li>When <code>partial</code> is <code>true</code>, <code>availableFrom</code>\ncontains the earliest timestamp the response actually covers — data before that\npoint is unavailable from the trade-based feed. To recover the missing range on\nPolymarket, repeat the call with <code>source=midpoint</code>; the response\nspans the full window at the cost of <code>volume = 0</code> on every candle\n(the midpoint feed carries quotes, not fills).</li>\n<li><code>availableFrom</code> is <code>null</code> when no trades exist in the\nentire requested range.</li>\n<li>Candle timestamps are bucket-aligned (e.g. an <code>interval=1h</code>\nresponse has timestamps on the hour).</li>\n</ul>\n","operationId":"GetPredictionMarketPriceHistoryV4","parameters":[{"description":"Platform-native market identifier.","in":"path","name":"id","required":true,"schema":{"type":"string","example":"0xdd22472e552920b8438158ea7238bfadfa4f736aa4cee91a6b86c39ead110917"}},{"description":"Candle bucket size.","in":"query","name":"interval","required":true,"schema":{"$ref":"#/components/schemas/PredictionHistoryInterval"}},{"description":"Window start (ISO-8601). Must be earlier than `end`.","in":"query","name":"start","required":true,"schema":{"type":"string","format":"date-time","example":"2026-05-01T00:00:00Z"}},{"description":"Window end (ISO-8601). Must be later than `start`.","in":"query","name":"end","required":true,"schema":{"type":"string","format":"date-time","example":"2026-05-15T00:00:00Z"}},{"description":"Data source. Defaults to `candlesticks`. `midpoint` is Polymarket-only.\n","in":"query","name":"source","schema":{"$ref":"#/components/schemas/PredictionHistorySource"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PredictionPriceHistoryResponse"}}},"description":"OK"},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"403":{"$ref":"#/components/responses/Error403"},"404":{"description":"Market not found on any supported platform."},"500":{"$ref":"#/components/responses/Error500"}},"security":[{"X-API-Key":[]}],"x-codeSamples":[],"summary":"Get market price history","tags":["Prediction API"]}},"/v4/data/prediction/markets/{id}/trades":{"get":{"description":"<p style='display: none'>/v4/data/prediction/markets/{id}/trades</p>\n<p><b>100 credits per API call</b></p>\n\n<p>Recent trades feed for a single market. Each row is one fill — outcome side,\nbuy/sell direction, price, size and notional value — with the taker wallet\nattribution when the upstream exposes it.</p>\n\n<p><b>Filtering and pagination</b></p>\n<ul>\n<li><code>after</code> and <code>before</code> are ISO-8601 timestamps that\ndefine an inclusive time window. They are honoured by Kalshi natively. On\nPolymarket the upstream <code>/trades</code> feed has no time-window filter, so\npassing <code>after</code> or <code>before</code> against a Polymarket market\nreturns <code>400</code> — set the platform via the path id rather than\nattempting cross-platform time queries.</li>\n<li>Pagination is cursor-based. The first call returns a\n<code>pagination.cursor</code>; pass it back verbatim as <code>?cursor=…</code>\non the next call. Cursors are fingerprint-bound to the time-window filter set.</li>\n</ul>\n\n<p><b>Other notes</b></p>\n<ul>\n<li><code>taker</code> is the wallet that crossed the spread on this fill.\nPopulated on Polymarket; <code>null</code> on Kalshi (the public trades feed\ndoes not expose per-trade wallet attribution there).</li>\n<li><code>txHash</code> is the on-chain settlement transaction hash where one\nexists. Populated on Polymarket and <code>null</code> on Kalshi.</li>\n<li><code>side</code> is the outcome side (<code>yes</code> / <code>no</code>);\n<code>direction</code> is the order side (<code>buy</code> / <code>sell</code>)\n— both are surfaced because they answer different questions.</li>\n</ul>\n","operationId":"GetPredictionMarketTradesV4","parameters":[{"description":"Platform-native market identifier.","in":"path","name":"id","required":true,"schema":{"type":"string","example":"KXELONMARS-99"}},{"description":"Inclusive lower bound on the trade timestamp (ISO-8601). Kalshi-only —\npassing this against a Polymarket market returns `400`.\n","in":"query","name":"after","schema":{"type":"string","format":"date-time","example":"2026-05-01T00:00:00Z"}},{"description":"Inclusive upper bound on the trade timestamp (ISO-8601). Kalshi-only —\npassing this against a Polymarket market returns `400`. Must be later than\n`after` when both are provided.\n","in":"query","name":"before","schema":{"type":"string","format":"date-time","example":"2026-05-15T00:00:00Z"}},{"description":"Opaque cursor returned by the previous response's `pagination.cursor`.\nOmit on the first call.\n","in":"query","name":"cursor","schema":{"$ref":"#/components/schemas/PredictionCursor"}},{"description":"Page size. Defaults to 50 when omitted.","in":"query","name":"limit","schema":{"type":"integer","minimum":1,"maximum":100,"default":50,"example":50}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PredictionTradesListResponse"}}},"description":"OK"},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"403":{"$ref":"#/components/responses/Error403"},"404":{"description":"Market not found on any supported platform."},"500":{"$ref":"#/components/responses/Error500"}},"security":[{"X-API-Key":[]}],"x-codeSamples":[],"summary":"Get recent market trades","tags":["Prediction API"]}},"/v4/data/prediction/markets/{id}/positions":{"get":{"description":"<p style='display: none'>/v4/data/prediction/markets/{id}/positions</p>\n<p><b>100 credits per API call</b></p>\n\n<p>Top holders of a market grouped by outcome token. Each top-level row in the\nresponse is one outcome (e.g. YES, NO); under it sits the list of wallets\ncurrently holding that outcome, ordered by the chosen <code>sortBy</code>\nmetric. Useful for \"who's on each side of this bet\" leaderboards on a\nmarket-detail page.</p>\n\n<p><b>Platform support</b></p>\n<ul>\n<li>Polymarket only. Calling this endpoint against a Kalshi market id returns\n<code>400</code>.</li>\n</ul>\n\n<p><b>Filtering, sorting and pagination</b></p>\n<ul>\n<li><code>user</code> narrows the response to a single wallet — useful for\n\"does this user have a position in this market\" checks.</li>\n<li><code>status</code> filters holders by their position state:\n<code>OPEN</code> (size > 0.01), <code>CLOSED</code> (size ≤ 0.01),\n<code>ALL</code> (default).</li>\n<li><code>sortBy</code> chooses the metric used to order holders inside each\noutcome group: <code>TOKENS</code>, <code>CASH_PNL</code>,\n<code>REALIZED_PNL</code>, <code>TOTAL_PNL</code>. Combine with\n<code>sortDirection</code> (<code>ASC</code> or <code>DESC</code>).</li>\n<li>Pagination is offset-based. <code>limit</code> and <code>offset</code> apply\n<em>per outcome group</em> — e.g. on a binary market with <code>limit=50</code>\nthe response carries up to 100 holders total (50 YES + 50 NO).</li>\n</ul>\n","operationId":"GetPredictionMarketPositionsV4","parameters":[{"description":"Platform-native market identifier. Must be a Polymarket condition id;\nKalshi market ids return `400`.\n","in":"path","name":"id","required":true,"schema":{"type":"string","example":"0xdd22472e552920b8438158ea7238bfadfa4f736aa4cee91a6b86c39ead110917"}},{"description":"Filter the response to a single holder wallet (0x + 40 hex).","in":"query","name":"user","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","example":"0x56687bf447db6ffa42ffe2204a05edaa20f55839"}},{"description":"Filter holders by position lifecycle state. Defaults to `ALL`.","in":"query","name":"status","schema":{"$ref":"#/components/schemas/PredictionMarketPositionStatusFilter"}},{"description":"Metric used to order holders inside each outcome group. Defaults to\n`TOTAL_PNL`.\n","in":"query","name":"sortBy","schema":{"$ref":"#/components/schemas/PredictionMarketPositionSortBy"}},{"description":"Sort direction. Defaults to `DESC`.","in":"query","name":"sortDirection","schema":{"$ref":"#/components/schemas/PredictionSortDirection"}},{"description":"Maximum number of holders to return *per outcome group*. Defaults to 50.\n","in":"query","name":"limit","schema":{"type":"integer","minimum":1,"maximum":500,"default":50,"example":50}},{"description":"Starting offset *per outcome group*. Defaults to 0.\n","in":"query","name":"offset","schema":{"type":"integer","minimum":0,"maximum":10000,"default":0,"example":0}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PredictionMarketPositionsResponse"}}},"description":"OK"},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"403":{"$ref":"#/components/responses/Error403"},"500":{"$ref":"#/components/responses/Error500"}},"security":[{"X-API-Key":[]}],"x-codeSamples":[],"summary":"Get top holders of a market","tags":["Prediction API"]}},"/v4/data/prediction/wallets/{address}/portfolio":{"get":{"description":"<p style='display: none'>/v4/data/prediction/wallets/{address}/portfolio</p>\n<p><b>200 credits per API call</b></p>\n\n<p>Aggregated portfolio summary for a single wallet. Returns position counts\n(open, redeemable, closed), unrealised and realised PnL, total cost basis,\nactive notional, win rate and ROI — all computed over the requested\n<code>period</code>. Useful as the headline KPI block on a wallet detail page.</p>\n\n<p><b>Platform support</b></p>\n<ul>\n<li>Polymarket only. Passing any non-EVM address returns <code>400</code>.</li>\n</ul>\n\n<p><b>Filtering</b></p>\n<ul>\n<li><code>period</code> selects the lookback window for closed-position\naggregates: <code>24h</code>, <code>7d</code>, <code>30d</code> or\n<code>all</code>. Defaults to <code>all</code>.</li>\n<li>Open-position counts and <code>activeNotional</code> are always live (the\nperiod only affects closed-position roll-ups).</li>\n</ul>\n\n<p><b>Other notes</b></p>\n<ul>\n<li><code>address</code> is normalised to lowercase before being echoed back\nin the response.</li>\n<li><code>winRate</code> is a percentage in <code>[0, 100]</code> (e.g.\n<code>42.5</code> = 42.5%). It is <code>null</code> when\n<code>closedPositions</code> is zero — the ratio is undefined, not zero.</li>\n<li><code>roi</code> is realised ROI as a percentage (e.g. <code>23.45</code>\n= 23.45%). Computed from realised PnL over total cost basis of closed\npositions only — unrealised PnL is excluded. <code>null</code> when\n<code>totalCostBasis</code> is zero.</li>\n<li><code>redeemablePositions</code> is the count of positions on a resolved\nmarket that the wallet has won but has not yet redeemed. Disjoint from both\n<code>openPositions</code> and <code>closedPositions</code> — tracked\nseparately so the count of currently actionable positions is visible.</li>\n</ul>\n","operationId":"GetPredictionWalletPortfolioV4","parameters":[{"description":"Wallet address. Must be a 0x-prefixed 40-hex EVM address. Kalshi wallets\nreturn `400`.\n","in":"path","name":"address","required":true,"schema":{"$ref":"#/components/schemas/PredictionWalletAddress"}},{"description":"Lookback window for closed-position aggregates (`closedPositions`,\n`wins`, `losses`, `winRate`, `totalCostBasis`, `realizedPnl`, `roi`).\nDefaults to `all`.\n","in":"query","name":"period","schema":{"$ref":"#/components/schemas/PredictionPortfolioPeriod"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PredictionPortfolioResponse"}}},"description":"OK"},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"403":{"$ref":"#/components/responses/Error403"},"500":{"$ref":"#/components/responses/Error500"}},"security":[{"X-API-Key":[]}],"x-codeSamples":[],"summary":"Get wallet portfolio summary","tags":["Prediction API"]}},"/v4/data/prediction/wallets/{address}/positions":{"get":{"description":"<p style='display: none'>/v4/data/prediction/wallets/{address}/positions</p>\n<p><b>100 credits per API call</b></p>\n\n<p>Current open positions held by a wallet — one row per outcome token, with\nunrealised PnL, current value, lifetime cost basis, and the parent market's\nquestion, slug and outcome metadata. Useful for \"what's in my portfolio right\nnow\" views and per-market drill-downs.</p>\n\n<p><b>Platform support</b></p>\n<ul>\n<li>Polymarket only. Kalshi wallets return <code>400</code>.</li>\n</ul>\n\n<p><b>Filtering, sorting and pagination</b></p>\n<ul>\n<li><code>market</code> scopes the response to a comma-separated list of\ncondition ids (<code>0x</code> + 64 hex), up to 50 entries.</li>\n<li><code>eventId</code> scopes the response to a comma-separated list of\nPolymarket numeric event ids, up to 50 entries. Mutually exclusive with\n<code>market</code> — passing both returns <code>400</code>.</li>\n<li><code>sizeThreshold</code> filters out positions smaller than the given\nsize. Defaults to <code>1</code>; pass <code>0</code> to include dust.</li>\n<li><code>redeemable=true</code> returns positions on resolved markets that\nthe wallet has won but has not yet redeemed. <code>mergeable=true</code>\nreturns positions eligible for merging back to USDC. Both default to\n<code>false</code>.</li>\n<li><code>sortBy</code> accepts <code>CURRENT</code>, <code>INITIAL</code>,\n<code>TOKENS</code>, <code>CASHPNL</code>, <code>PERCENTPNL</code>,\n<code>TITLE</code>, <code>RESOLVING</code>, <code>PRICE</code>,\n<code>AVGPRICE</code>. Defaults to <code>TOKENS</code>. Combine with\n<code>sortDirection</code> (<code>ASC</code> / <code>DESC</code>, defaults to\n<code>DESC</code>).</li>\n<li><code>title</code> filters by a substring of the market question.</li>\n<li>Pagination is offset-based — <code>limit</code> (1..500, default 100) and\n<code>offset</code> (0..10000, default 0).</li>\n</ul>\n\n<p><b>Other notes</b></p>\n<ul>\n<li><code>address</code> is normalised to lowercase before being echoed in the\nresponse (every row's <code>proxyWallet</code>).</li>\n<li><code>negativeRisk</code> indicates whether the parent market is part of\nPolymarket's negative-risk grouping (e.g. multi-candidate winner-take-all\nmarkets).</li>\n</ul>\n","operationId":"GetPredictionWalletPositionsV4","parameters":[{"description":"Wallet address (0x + 40 hex). Kalshi addresses return `400`.","in":"path","name":"address","required":true,"schema":{"$ref":"#/components/schemas/PredictionWalletAddress"}},{"description":"Comma-separated list of condition ids (0x + 64 hex) to scope the response\nto. Up to 50 entries. Mutually exclusive with `eventId`.\n","in":"query","name":"market","schema":{"type":"string","example":"0xdd22472e552920b8438158ea7238bfadfa4f736aa4cee91a6b86c39ead110917"}},{"description":"Comma-separated list of Polymarket numeric event ids to scope the response\nto. Up to 50 entries. Mutually exclusive with `market`.\n","in":"query","name":"eventId","schema":{"type":"string","example":"12345,67890"}},{"description":"Minimum position size to include. Defaults to `1`; pass `0` to include\ndust positions.\n","in":"query","name":"sizeThreshold","schema":{"type":"number","minimum":0,"default":1,"example":1}},{"description":"When `true`, returns positions on resolved markets that the wallet has won\nbut has not yet redeemed. Defaults to `false`.\n","in":"query","name":"redeemable","schema":{"type":"boolean","default":false,"example":false}},{"description":"When `true`, returns positions eligible for merging back to USDC.\nDefaults to `false`.\n","in":"query","name":"mergeable","schema":{"type":"boolean","default":false,"example":false}},{"description":"Sort key. Defaults to `TOKENS`.","in":"query","name":"sortBy","schema":{"$ref":"#/components/schemas/PredictionPositionSortBy"}},{"description":"Sort direction. Defaults to `DESC`.","in":"query","name":"sortDirection","schema":{"$ref":"#/components/schemas/PredictionSortDirection"}},{"description":"Filter rows where the market question contains this substring.","in":"query","name":"title","schema":{"type":"string","maxLength":100,"example":"Mars"}},{"description":"Page size. Defaults to 100.","in":"query","name":"limit","schema":{"type":"integer","minimum":1,"maximum":500,"default":100,"example":100}},{"description":"Page offset. Defaults to 0.","in":"query","name":"offset","schema":{"type":"integer","minimum":0,"maximum":10000,"default":0,"example":0}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PredictionWalletPositionsResponse"}}},"description":"OK"},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"403":{"$ref":"#/components/responses/Error403"},"500":{"$ref":"#/components/responses/Error500"}},"security":[{"X-API-Key":[]}],"x-codeSamples":[],"summary":"Get wallet open positions","tags":["Prediction API"]}},"/v4/data/prediction/wallets/{address}/history":{"get":{"description":"<p style='display: none'>/v4/data/prediction/wallets/{address}/history</p>\n<p><b>100 credits per API call</b></p>\n\n<p>Closed and resolved positions for a wallet — one row per settled position\n(winning or losing), with the realised PnL, lifetime cost basis, settlement\nprice, and the parent market's question and outcome metadata. Useful for\nbacktest-style P&L drill-downs and tax exports.</p>\n\n<p><b>Platform support</b></p>\n<ul>\n<li>Polymarket only. Kalshi wallets return <code>400</code>.</li>\n</ul>\n\n<p><b>Filtering, sorting and pagination</b></p>\n<ul>\n<li><code>market</code> scopes the response to a comma-separated list of\ncondition ids (<code>0x</code> + 64 hex), up to 50 entries.</li>\n<li><code>eventId</code> scopes the response to a comma-separated list of\nPolymarket numeric event ids, up to 50 entries. Mutually exclusive with\n<code>market</code> — passing both returns <code>400</code>.</li>\n<li><code>title</code> filters by a substring of the market question.</li>\n<li><code>sortBy</code> accepts <code>REALIZEDPNL</code>, <code>TITLE</code>,\n<code>PRICE</code>, <code>AVGPRICE</code>, <code>TIMESTAMP</code>. Defaults\nto <code>REALIZEDPNL</code>. Combine with <code>sortDirection</code>\n(<code>ASC</code> / <code>DESC</code>, defaults to <code>DESC</code>).</li>\n<li>Pagination is offset-based — <code>limit</code> (1..50, default 10) and\n<code>offset</code> (0..100000, default 0).</li>\n</ul>\n\n<p><b>Other notes</b></p>\n<ul>\n<li><code>address</code> is normalised to lowercase before being echoed in the\nresponse (every row's <code>proxyWallet</code>).</li>\n<li><code>timestamp</code> is unix-seconds (not milliseconds) — the settlement\ntime of the position.</li>\n<li><code>curPrice</code> is the resolution price (0 or 1 for binary markets);\n<code>avgPrice</code> is the volume-weighted entry price.</li>\n</ul>\n","operationId":"GetPredictionWalletHistoryV4","parameters":[{"description":"Wallet address (0x + 40 hex). Kalshi addresses return `400`.","in":"path","name":"address","required":true,"schema":{"$ref":"#/components/schemas/PredictionWalletAddress"}},{"description":"Comma-separated list of condition ids (0x + 64 hex). Up to 50 entries.\nMutually exclusive with `eventId`.\n","in":"query","name":"market","schema":{"type":"string","example":"0xdd22472e552920b8438158ea7238bfadfa4f736aa4cee91a6b86c39ead110917"}},{"description":"Comma-separated list of Polymarket numeric event ids. Up to 50 entries.\nMutually exclusive with `market`.\n","in":"query","name":"eventId","schema":{"type":"string","example":"12345,67890"}},{"description":"Filter rows where the market question contains this substring.","in":"query","name":"title","schema":{"type":"string","maxLength":100,"example":"Election"}},{"description":"Sort key. Defaults to `REALIZEDPNL`.","in":"query","name":"sortBy","schema":{"$ref":"#/components/schemas/PredictionClosedPositionSortBy"}},{"description":"Sort direction. Defaults to `DESC`.","in":"query","name":"sortDirection","schema":{"$ref":"#/components/schemas/PredictionSortDirection"}},{"description":"Page size. Defaults to 10.","in":"query","name":"limit","schema":{"type":"integer","minimum":1,"maximum":50,"default":10,"example":10}},{"description":"Page offset. Defaults to 0.","in":"query","name":"offset","schema":{"type":"integer","minimum":0,"maximum":100000,"default":0,"example":0}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PredictionWalletHistoryResponse"}}},"description":"OK"},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"403":{"$ref":"#/components/responses/Error403"},"500":{"$ref":"#/components/responses/Error500"}},"security":[{"X-API-Key":[]}],"x-codeSamples":[],"summary":"Get wallet closed positions","tags":["Prediction API"]}},"/v4/data/prediction/wallets/{address}/trades":{"get":{"description":"<p style='display: none'>/v4/data/prediction/wallets/{address}/trades</p>\n<p><b>100 credits per API call</b></p>\n\n<p>Trade-only fills for a wallet — one row per trade, with the buy/sell side,\noutcome metadata, size, price, transaction hash, and the trader's profile\nfields (display name, profile image). Trade-only — does not include\nnon-trade events like splits, merges, redemptions or rewards (use\n<code>/wallets/{address}/activity</code> for the full feed).</p>\n\n<p><b>Platform support</b></p>\n<ul>\n<li>Polymarket only. Kalshi wallets return <code>400</code>.</li>\n</ul>\n\n<p><b>Filtering and pagination</b></p>\n<ul>\n<li><code>market</code> / <code>eventId</code> scope the response (mutually\nexclusive, up to 50 entries each).</li>\n<li><code>side</code> filters to <code>BUY</code> or <code>SELL</code> trades.</li>\n<li><code>takerOnly</code> defaults to <code>true</code> — set to\n<code>false</code> to include maker-side fills.</li>\n<li><code>filterType</code> and <code>filterAmount</code> set a minimum trade\nsize threshold. <code>filterType=CASH</code> filters by USDC notional;\n<code>filterType=TOKENS</code> filters by outcome-token count. Both must be\nprovided together — passing one without the other returns <code>400</code>.</li>\n<li>Pagination is offset-based — <code>limit</code> (1..10000, default 100) and\n<code>offset</code> (0..10000, default 0). The upstream feed enforces a hard\ncap at <code>offset = 3000</code>; calls past that point return an empty page\nrather than an error.</li>\n</ul>\n\n<p><b>Other notes</b></p>\n<ul>\n<li><code>address</code> is normalised to lowercase before being echoed in the\nresponse (every row's <code>proxyWallet</code>).</li>\n<li><code>timestamp</code> is unix-seconds (not milliseconds).</li>\n<li><code>side</code> uses the trade-direction vocabulary\n(<code>BUY</code> / <code>SELL</code>) — distinct from the outcome-side\nvocabulary (<code>yes</code> / <code>no</code>) used by\n<code>/markets/{id}/trades</code>.</li>\n</ul>\n","operationId":"GetPredictionWalletTradesV4","parameters":[{"description":"Wallet address (0x + 40 hex). Kalshi addresses return `400`.","in":"path","name":"address","required":true,"schema":{"$ref":"#/components/schemas/PredictionWalletAddress"}},{"description":"Comma-separated list of condition ids (0x + 64 hex). Up to 50 entries.\nMutually exclusive with `eventId`.\n","in":"query","name":"market","schema":{"type":"string","example":"0xdd22472e552920b8438158ea7238bfadfa4f736aa4cee91a6b86c39ead110917"}},{"description":"Comma-separated list of Polymarket numeric event ids. Up to 50 entries.\nMutually exclusive with `market`.\n","in":"query","name":"eventId","schema":{"type":"string","example":"12345,67890"}},{"description":"Filter by trade direction.","in":"query","name":"side","schema":{"$ref":"#/components/schemas/PredictionTradeSide"}},{"description":"Include only taker-side fills. Defaults to `true`; set to `false` to\ninclude maker-side fills.\n","in":"query","name":"takerOnly","schema":{"type":"boolean","default":true,"example":true}},{"description":"Minimum-trade-size unit. Must be combined with `filterAmount` — passing\none without the other returns `400`.\n","in":"query","name":"filterType","schema":{"$ref":"#/components/schemas/PredictionTradeFilterType"}},{"description":"Minimum trade size, interpreted via `filterType`. Must be combined with\n`filterType`.\n","in":"query","name":"filterAmount","schema":{"type":"number","minimum":0,"example":100}},{"description":"Page size. Defaults to 100. Note the upstream offset cap of 3000 — calls\npast that point return an empty page.\n","in":"query","name":"limit","schema":{"type":"integer","minimum":1,"maximum":10000,"default":100,"example":100}},{"description":"Page offset. Defaults to 0. The upstream feed enforces a hard cap at\noffset 3000; calls past that point return an empty page.\n","in":"query","name":"offset","schema":{"type":"integer","minimum":0,"maximum":10000,"default":0,"example":0}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PredictionWalletTradesResponse"}}},"description":"OK"},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"403":{"$ref":"#/components/responses/Error403"},"500":{"$ref":"#/components/responses/Error500"}},"security":[{"X-API-Key":[]}],"x-codeSamples":[],"summary":"Get wallet trade history","tags":["Prediction API"]}},"/v4/data/prediction/wallets/{address}/activity":{"get":{"description":"<p style='display: none'>/v4/data/prediction/wallets/{address}/activity</p>\n<p><b>100 credits per API call</b></p>\n\n<p>Full wallet event feed — covers every event type the upstream emits:\n<code>TRADE</code>, <code>SPLIT</code>, <code>MERGE</code>, <code>REDEEM</code>,\n<code>REWARD</code>, <code>CONVERSION</code>, <code>MAKER_REBATE</code> and\n<code>REFERRAL_REWARD</code>. Unlike <code>/wallets/{address}/trades</code>,\nthis endpoint includes non-trade events and supports a native time-range\nfilter — useful for activity logs, audit trails and tax exports.</p>\n\n<p><b>Platform support</b></p>\n<ul>\n<li>Polymarket only. Kalshi wallets return <code>400</code>.</li>\n</ul>\n\n<p><b>Filtering, sorting and pagination</b></p>\n<ul>\n<li><code>market</code> / <code>eventId</code> scope the response (mutually\nexclusive, up to 50 entries each).</li>\n<li><code>type</code> is a comma-separated list of event types — up to 8\nentries from the enum.</li>\n<li><code>side</code> filters to <code>BUY</code> or <code>SELL</code>\n(relevant for trade-type rows; null on non-trade rows).</li>\n<li><code>start</code> / <code>end</code> are unix-<strong>seconds</strong>\n(not milliseconds) — values that look like millisecond timestamps\n(~13 digits) are rejected with <code>400</code>. <code>end</code> must be\ngreater than or equal to <code>start</code>.</li>\n<li><code>sortBy</code> accepts <code>TIMESTAMP</code>, <code>TOKENS</code>,\n<code>CASH</code>. Defaults to <code>TIMESTAMP</code>. Combine with\n<code>sortDirection</code> (defaults to <code>DESC</code>).</li>\n<li>Pagination is offset-based — <code>limit</code> (1..500, default 100) and\n<code>offset</code> (0..10000, default 0).</li>\n</ul>\n\n<p><b>Other notes</b></p>\n<ul>\n<li><code>side</code> is <code>null</code> on non-trade rows (e.g.\n<code>REWARD</code>, <code>SPLIT</code>, <code>MERGE</code>,\n<code>REDEEM</code>) — direction is undefined there.</li>\n<li><code>outcomeIndex</code> can be <code>null</code> for rows that don't map\nto a position side. A sentinel value of <code>999</code> is occasionally\nemitted by the upstream for the same case.</li>\n<li><code>conditionId</code> and <code>asset</code> can be <code>null</code> on\nrows that aren't market-scoped (e.g. some reward / referral rows).</li>\n<li><code>address</code> is normalised to lowercase before being echoed in the\nresponse.</li>\n</ul>\n","operationId":"GetPredictionWalletActivityV4","parameters":[{"description":"Wallet address (0x + 40 hex). Kalshi addresses return `400`.","in":"path","name":"address","required":true,"schema":{"$ref":"#/components/schemas/PredictionWalletAddress"}},{"description":"Comma-separated list of condition ids (0x + 64 hex). Up to 50 entries.\nMutually exclusive with `eventId`.\n","in":"query","name":"market","schema":{"type":"string","example":"0xdd22472e552920b8438158ea7238bfadfa4f736aa4cee91a6b86c39ead110917"}},{"description":"Comma-separated list of Polymarket numeric event ids. Up to 50 entries.\nMutually exclusive with `market`.\n","in":"query","name":"eventId","schema":{"type":"string","example":"12345,67890"}},{"description":"Comma-separated list of event types to include. Up to 8 entries from the\n`PredictionActivityType` enum.\n","in":"query","name":"type","schema":{"type":"string","example":"TRADE,REDEEM"}},{"description":"Filter trade-type rows by direction. Non-trade rows always have\n`side = null` and are unaffected.\n","in":"query","name":"side","schema":{"$ref":"#/components/schemas/PredictionTradeSide"}},{"description":"Inclusive lower bound on event timestamp, in unix-**seconds**. Values that\nlook like milliseconds (~13 digits) are rejected with `400`.\n","in":"query","name":"start","schema":{"type":"integer","minimum":0,"maximum":4102444800,"example":1747569600}},{"description":"Inclusive upper bound on event timestamp, in unix-**seconds**. Must be\n≥ `start` when both are provided.\n","in":"query","name":"end","schema":{"type":"integer","minimum":0,"maximum":4102444800,"example":1748174400}},{"description":"Sort key. Defaults to `TIMESTAMP`.","in":"query","name":"sortBy","schema":{"$ref":"#/components/schemas/PredictionActivitySortBy"}},{"description":"Sort direction. Defaults to `DESC`.","in":"query","name":"sortDirection","schema":{"$ref":"#/components/schemas/PredictionSortDirection"}},{"description":"Page size. Defaults to 100.","in":"query","name":"limit","schema":{"type":"integer","minimum":1,"maximum":500,"default":100,"example":100}},{"description":"Page offset. Defaults to 0.","in":"query","name":"offset","schema":{"type":"integer","minimum":0,"maximum":10000,"default":0,"example":0}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PredictionWalletActivityResponse"}}},"description":"OK"},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"403":{"$ref":"#/components/responses/Error403"},"500":{"$ref":"#/components/responses/Error500"}},"security":[{"X-API-Key":[]}],"x-codeSamples":[],"summary":"Get wallet activity feed","tags":["Prediction API"]}},"/v4/data/prediction/wallets/{address}/value":{"get":{"description":"<p style='display: none'>/v4/data/prediction/wallets/{address}/value</p>\n<p><b>50 credits per API call</b></p>\n\n<p>Total USD notional of a wallet's currently open positions. A single-number\nendpoint — useful for sparkline-style summaries and headline KPIs without\npaying the cost of pulling the full positions list.</p>\n\n<p><b>Platform support</b></p>\n<ul>\n<li>Polymarket only. Kalshi wallets return <code>400</code>.</li>\n</ul>\n\n<p><b>Filtering</b></p>\n<ul>\n<li><code>market</code> scopes the total to a comma-separated list of condition\nids (<code>0x</code> + 64 hex), up to 50 entries. Omit for the wallet-wide\ntotal.</li>\n</ul>\n\n<p><b>Other notes</b></p>\n<ul>\n<li><code>value</code> is rounded to 2 decimal places.</li>\n<li><code>user</code> is the lowercased address.</li>\n</ul>\n","operationId":"GetPredictionWalletValueV4","parameters":[{"description":"Wallet address (0x + 40 hex). Kalshi addresses return `400`.","in":"path","name":"address","required":true,"schema":{"$ref":"#/components/schemas/PredictionWalletAddress"}},{"description":"Comma-separated list of condition ids (0x + 64 hex) to scope the total to.\nUp to 50 entries. Omit for the wallet-wide total.\n","in":"query","name":"market","schema":{"type":"string","example":"0xdd22472e552920b8438158ea7238bfadfa4f736aa4cee91a6b86c39ead110917"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PredictionWalletValueResponse"}}},"description":"OK"},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"403":{"$ref":"#/components/responses/Error403"},"500":{"$ref":"#/components/responses/Error500"}},"security":[{"X-API-Key":[]}],"x-codeSamples":[],"summary":"Get wallet open-position notional","tags":["Prediction API"]}},"/v4/data/prediction/wallets/{address}/markets-traded":{"get":{"description":"<p style='display: none'>/v4/data/prediction/wallets/{address}/markets-traded</p>\n<p><b>50 credits per API call</b></p>\n\n<p>Count of distinct markets a wallet has ever traded. Lifetime metric —\nuseful as a quick activity signal alongside <code>/wallets/{address}/value</code>\nwithout paying the cost of pulling the full trade history.</p>\n\n<p><b>Platform support</b></p>\n<ul>\n<li>Polymarket only. Kalshi wallets return <code>400</code>.</li>\n</ul>\n\n<p><b>Other notes</b></p>\n<ul>\n<li><code>traded</code> is an integer count — the number of distinct markets,\nnot the number of trades.</li>\n<li><code>user</code> is the lowercased address.</li>\n</ul>\n","operationId":"GetPredictionWalletMarketsTradedV4","parameters":[{"description":"Wallet address (0x + 40 hex). Kalshi addresses return `400`.","in":"path","name":"address","required":true,"schema":{"$ref":"#/components/schemas/PredictionWalletAddress"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PredictionWalletMarketsTradedResponse"}}},"description":"OK"},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"403":{"$ref":"#/components/responses/Error403"},"500":{"$ref":"#/components/responses/Error500"}},"security":[{"X-API-Key":[]}],"x-codeSamples":[],"summary":"Get wallet markets-traded count","tags":["Prediction API"]}},"/v4/data/prediction/top-traders":{"get":{"description":"<p style='display: none'>/v4/data/prediction/top-traders</p>\n<p><b>200 credits per API call</b></p>\n\n<p>Ranked leaderboard of top traders, scoped by category and time period.\nEach row carries the trader's wallet, display fields (username, X handle,\nprofile image), verified-badge status, and the metrics used for ranking\n(volume and PnL within the requested window).</p>\n\n<p><b>Platform support</b></p>\n<ul>\n<li>Polymarket only.</li>\n</ul>\n\n<p><b>Filtering, sorting and pagination</b></p>\n<ul>\n<li><code>category</code> selects the leaderboard slice — one of\n<code>OVERALL</code>, <code>POLITICS</code>, <code>SPORTS</code>,\n<code>CRYPTO</code>, <code>CULTURE</code>, <code>MENTIONS</code>,\n<code>WEATHER</code>, <code>ECONOMICS</code>, <code>TECH</code>,\n<code>FINANCE</code>. Defaults to <code>OVERALL</code>.</li>\n<li><code>timePeriod</code> sets the lookback window —\n<code>DAY</code>, <code>WEEK</code>, <code>MONTH</code>, <code>ALL</code>.\nDefaults to <code>DAY</code>.</li>\n<li><code>orderBy</code> chooses the ranking metric: <code>PNL</code>\n(realised + unrealised profit) or <code>VOL</code> (trading volume).\nDefaults to <code>PNL</code>.</li>\n<li><code>user</code> filters the leaderboard to a single wallet — useful\nfor \"where does this trader rank\" lookups. <code>userName</code> filters\nby trader display name (substring match).</li>\n<li>Pagination is offset-based — <code>limit</code> (1..50, default 25)\nand <code>offset</code> (0..1000, default 0). Higher offsets are not\nsupported by the upstream leaderboard.</li>\n</ul>\n\n<p><b>Other notes</b></p>\n<ul>\n<li><code>rank</code> is the continuous 1-indexed position given the\nrequested filters — <code>rank = 1</code> is the leader for the chosen\ncategory and time period.</li>\n<li><code>proxyWallet</code> is returned lowercased.</li>\n<li><code>vol</code> and <code>pnl</code> are USD figures, scoped to the\nrequested <code>category</code> and <code>timePeriod</code>.</li>\n</ul>\n","operationId":"GetPredictionTopTradersV4","parameters":[{"description":"Leaderboard category slice. Defaults to `OVERALL`.","in":"query","name":"category","schema":{"$ref":"#/components/schemas/PredictionLeaderboardCategory"}},{"description":"Lookback window. Defaults to `DAY`.","in":"query","name":"timePeriod","schema":{"$ref":"#/components/schemas/PredictionLeaderboardTimePeriod"}},{"description":"Ranking metric. Defaults to `PNL`.","in":"query","name":"orderBy","schema":{"$ref":"#/components/schemas/PredictionLeaderboardOrder"}},{"description":"Page size. Defaults to 25.","in":"query","name":"limit","schema":{"type":"integer","minimum":1,"maximum":50,"default":25,"example":25}},{"description":"Page offset. Defaults to 0. The upstream leaderboard caps offsets at 1000.\n","in":"query","name":"offset","schema":{"type":"integer","minimum":0,"maximum":1000,"default":0,"example":0}},{"description":"Filter the leaderboard to a single wallet (0x + 40 hex). Useful for\n\"where does this trader rank\" lookups.\n","in":"query","name":"user","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","example":"0x56687bf447db6ffa42ffe2204a05edaa20f55839"}},{"description":"Filter by trader display name (substring match).","in":"query","name":"userName","schema":{"type":"string","maxLength":64,"example":"JaneDoe"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PredictionTopTradersResponse"}}},"description":"OK"},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"403":{"$ref":"#/components/responses/Error403"},"500":{"$ref":"#/components/responses/Error500"}},"security":[{"X-API-Key":[]}],"x-codeSamples":[],"summary":"Get top traders leaderboard","tags":["Prediction API"]}},"/v4/data/prediction/search":{"get":{"description":"<p style='display: none'>/v4/data/prediction/search</p>\n<p><b>50 credits per API call</b></p>\n\n<p>Unified search across events, tags and trader profiles. One query returns\nall three result types in a single response — pick the branches you care\nabout with <code>searchTags</code> and <code>searchProfiles</code>.\nDesigned for discovery surfaces (autocomplete, top-of-page search) where a\nsingle query needs to surface the most relevant entities of any kind.</p>\n\n<p><b>Platform support</b></p>\n<ul>\n<li>Polymarket only.</li>\n</ul>\n\n<p><b>Filtering and pagination</b></p>\n<ul>\n<li><code>q</code> is the required search string — 2..128 characters.\nSingle-character queries are rejected with <code>400</code> because they\nmatch an unhelpfully wide slice of the dataset.</li>\n<li><code>limitPerType</code> caps the number of results returned per\nbranch (events, tags, profiles) — defaults to 10.</li>\n<li><code>searchTags</code> toggles the <code>tags</code> branch — defaults\nto <code>true</code>. <code>searchProfiles</code> toggles the\n<code>profiles</code> branch — defaults to <code>false</code> because most\ncallers don't need it.</li>\n<li><code>eventsStatus</code> narrows the events branch by a free-text\nstatus (e.g. <code>active</code>); <code>eventsTag</code> is a\ncomma-separated list of tag slugs (up to 50 entries).\n<code>keepClosedMarkets</code> overrides the default behaviour of hiding\nclosed markets from the events branch.</li>\n<li><code>sort</code> is a free-text sort key forwarded to the upstream;\n<code>ascending</code> sets sort direction.</li>\n<li>Pagination is page-based (not cursor-based) — advance via\n<code>?page=N+1</code>. The response body carries\n<code>data.pagination.hasMore</code> and <code>data.pagination.totalResults</code>\nfor paging decisions.</li>\n</ul>\n\n<p><b>Other notes</b></p>\n<ul>\n<li>Branches are populated independently — an empty <code>tags</code> array\nmeans no tag matches were found, not that the search failed.</li>\n<li><code>events</code> share the same shape as the <code>/events</code>\nlisting endpoint, so the same client-side rendering can be reused.</li>\n<li><code>profiles</code> rows include only <code>proxyWallet</code>,\n<code>name</code> and <code>pseudonym</code> — additional profile fields\n(image, bio) are not exposed here.</li>\n</ul>\n","operationId":"GetPredictionSearchV4","parameters":[{"description":"Search string (required). 2..128 characters. Single-character queries\nare rejected with `400`.\n","in":"query","name":"q","required":true,"schema":{"type":"string","minLength":2,"maxLength":128,"example":"election"}},{"description":"1-indexed page number for paging through results. Defaults to 1.\n","in":"query","name":"page","schema":{"type":"integer","minimum":1,"maximum":1000,"default":1,"example":1}},{"description":"Maximum number of results per branch (events / tags / profiles).\nDefaults to 10.\n","in":"query","name":"limitPerType","schema":{"type":"integer","minimum":1,"maximum":50,"default":10,"example":10}},{"description":"Toggle the `tags` branch. Defaults to `true`.","in":"query","name":"searchTags","schema":{"type":"boolean","default":true,"example":true}},{"description":"Toggle the `profiles` branch. Defaults to `false` — most callers don't\nneed profile results.\n","in":"query","name":"searchProfiles","schema":{"type":"boolean","default":false,"example":false}},{"description":"Narrow the events branch by status (free-text — accepts any value the\nupstream supports, e.g. `active`).\n","in":"query","name":"eventsStatus","schema":{"type":"string","maxLength":32,"example":"active"}},{"description":"Narrow the events branch to a comma-separated list of tag slugs. Up to\n50 entries.\n","in":"query","name":"eventsTag","schema":{"type":"string","example":"politics,sports"}},{"description":"Include closed markets in the events branch. Defaults to the upstream's\nbehaviour (closed markets are hidden).\n","in":"query","name":"keepClosedMarkets","schema":{"type":"boolean","example":false}},{"description":"Sort key forwarded to the upstream (free-text — accepts comma-separated\nfield names).\n","in":"query","name":"sort","schema":{"type":"string","maxLength":128,"example":"volume"}},{"description":"Sort direction.","in":"query","name":"ascending","schema":{"type":"boolean","example":false}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PredictionSearchResponse"}}},"description":"OK"},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"403":{"$ref":"#/components/responses/Error403"},"500":{"$ref":"#/components/responses/Error500"}},"security":[{"X-API-Key":[]}],"x-codeSamples":[],"summary":"Unified search (events / tags / profiles)","tags":["Prediction API"]}}},"components":{"securitySchemes":{"X-API-Key":{"type":"apiKey","name":"x-api-key","in":"header","description":"Your **API key** is used to identify your account & your plan, including the number of API calls per second and total monthly calls you have.\n\nEach key is for individual use only.\n\nIf you don't have a key already you can [Sign up for a Free Tatum account](https://co.tatum.io/signup) to get two keys (testnet and mainnet), allowing up to 5 API calls per second and 1,000,000 Credits.\n\nFor testing purposes, you can use the following key which only works inside docs and has limited functionality (e.g. you cannot create virtual accounts or notification subscriptions with it):\n* t-66a730ccccfd17001c479705-2f597d14ad7543f289a03418\n\nFor more details on limits and plans, [click here](https://docs.tatum.io/docs/plans-limits).\n"}},"responses":{"Error400":{"description":"Bad Request","content":{"application/json":{"schema":{"properties":{"errorCode":{"example":"validation.failed","description":"validation.failed","type":"string"},"message":{"example":"Request validation failed. Please see data for additional information.","description":"Request validation failed. Please see data for additional information.","type":"string"},"statusCode":{"example":400,"description":"400","type":"number"},"data":{"type":"array","items":{"type":"object","required":["target"],"properties":{"target":{"type":"object","additionalProperties":true,"description":"Request object present in the body of the HTTP request","example":{"property":12345}},"value":{"type":"number","description":"Value of the target object which validation is wrong. Can be of any data type, example here is using type number.","example":12345},"property":{"type":"string","description":"Property name of the target object which validation is wrong","example":"property1"},"constraints":{"type":"object","additionalProperties":true,"description":"Object of failed constraints for the target object. Key is the constraint, value is detailed description of the failed constraint.","example":{"min":"property1 must not be less than 50000"}}}}}},"required":["errorCode","message","statusCode","data"],"type":"object"}}}},"Error401":{"description":"Unauthorized. Not valid or inactive subscription key present in the HTTP Header.","content":{"application/json":{"schema":{"oneOf":[{"properties":{"errorCode":{"example":"subscription.not.active","description":"subscription.not.active","type":"string"},"message":{"example":"Subscription not active anymore.","description":"Subscription not active anymore.","type":"string"},"statusCode":{"example":401,"description":"401","type":"number"}},"required":["errorCode","message","statusCode"],"type":"object"},{"properties":{"errorCode":{"example":"subscription.invalid","description":"subscription.invalid","type":"string"},"message":{"example":"Unable to find valid subscription for '${apiKey}'","description":"Unable to find valid subscription for '${apiKey}'","type":"string"},"statusCode":{"example":401,"description":"401","type":"number"}},"required":["errorCode","message","statusCode"],"type":"object"}]}}}},"Error403":{"description":"Forbidden. The request is authenticated, but it is not possible to perform the operation due to logical error or invalid permissions.","content":{"application/json":{"schema":{"properties":{"message":{"example":"Forbidden","description":"Forbidden","type":"string"},"statusCode":{"example":403,"description":"403","type":"number"}},"required":["statusCode","message"],"type":"object"}}}},"Error500":{"description":"Internal server error. There was an error on the server during the processing of the request.","content":{"application/json":{"schema":{"properties":{"message":{"example":"Internal server error","description":"Internal server error","type":"string"},"statusCode":{"example":500,"description":"500","type":"number"}},"required":["statusCode","message"],"type":"object"}}}}},"schemas":{"FiatCurrency":{"type":"string","enum":["AED","AFN","ALL","AMD","ANG","AOA","ARS","AUD","AWG","AZN","BAM","BBD","BDT","BGN","BHD","BIF","BMD","BND","BOB","BRL","BSD","BTN","BWP","BYN","BYR","BZD","CAD","CDF","CHF","CLF","CLP","CNY","COP","CRC","CUC","CUP","CVE","CZK","DJF","DKK","DOP","DZD","EGP","ERN","ETB","EUR","FJD","FKP","GBP","GEL","GGP","GHS","GIP","GMD","GNF","GTQ","GYD","HKD","HNL","HRK","HTG","HUF","IDR","ILS","IMP","INR","IQD","IRR","ISK","JEP","JMD","JOD","JPY","KES","KGS","KHR","KMF","KPW","KRW","KWD","KYD","KZT","LAK","LBP","LKR","LRD","LSL","LTL","LVL","LYD","MAD","MDL","MGA","MKD","MMK","MNT","MOP","MRO","MUR","MVR","MWK","MXN","MYR","MZN","NAD","NGN","NIO","NOK","NPR","NZD","OMR","PAB","PEN","PGK","PHP","PKR","PLN","PYG","QAR","RON","RSD","RUB","RWF","SAR","SBD","SCR","SDG","SEK","SGD","SHP","SLL","SOS","SRD","STD","SVC","SYP","SZL","THB","TJS","TMT","TND","TOP","TRY","TTD","TWD","TZS","UAH","UGX","USD","UYU","UZS","VEF","VND","VUV","WST","XAF","XAG","XAU","XCD","XDR","XOF","XPF","YER","ZAR","ZMK","ZMW","ZWL"]},"SymbolBasePair":{"type":"string","description":"Base pair accepted by symbol-based token price endpoints. Superset of\nFiatCurrency that also allows the stablecoins USDT and USDC.\n","enum":["AED","AFN","ALL","AMD","ANG","AOA","ARS","AUD","AWG","AZN","BAM","BBD","BDT","BGN","BHD","BIF","BMD","BND","BOB","BRL","BSD","BTN","BWP","BYN","BYR","BZD","CAD","CDF","CHF","CLF","CLP","CNY","COP","CRC","CUC","CUP","CVE","CZK","DJF","DKK","DOP","DZD","EGP","ERN","ETB","EUR","FJD","FKP","GBP","GEL","GGP","GHS","GIP","GMD","GNF","GTQ","GYD","HKD","HNL","HRK","HTG","HUF","IDR","ILS","IMP","INR","IQD","IRR","ISK","JEP","JMD","JOD","JPY","KES","KGS","KHR","KMF","KPW","KRW","KWD","KYD","KZT","LAK","LBP","LKR","LRD","LSL","LTL","LVL","LYD","MAD","MDL","MGA","MKD","MMK","MNT","MOP","MRO","MUR","MVR","MWK","MXN","MYR","MZN","NAD","NGN","NIO","NOK","NPR","NZD","OMR","PAB","PEN","PGK","PHP","PKR","PLN","PYG","QAR","RON","RSD","RUB","RWF","SAR","SBD","SCR","SDG","SEK","SGD","SHP","SLL","SOS","SRD","STD","SVC","SYP","SZL","THB","TJS","TMT","TND","TOP","TRY","TTD","TWD","TZS","UAH","UGX","USD","UYU","UZS","VEF","VND","VUV","WST","XAF","XAG","XAU","XCD","XDR","XOF","XPF","YER","ZAR","ZMK","ZMW","ZWL","USDT","USDC"]},"FiatOrCryptoCurrency":{"type":"string","enum":["AED","AFN","ALL","AMD","ANG","AOA","ARS","AUD","AWG","AZN","ALGO","ADA","BAM","BAT","BBD","BCH","BDT","BGN","BHD","BIF","BMD","BNB","BND","BOB","BRL","BSD","BTC","BTN","BWP","BYN","BYR","BZD","CAD","CDF","CHF","CLF","CLP","CNY","COP","CRC","CUC","CUP","CVE","CZK","DJF","DKK","DOP","DOGE","DZD","EGP","ERN","ETB","ETH","EUR","FJD","FKP","FREE","GMC","GMC_BSC","RMD","GBP","GEL","GGP","GHS","GIP","GMD","GNF","GTQ","GYD","HKD","HNL","HRK","HTG","HUF","IDR","ILS","IMP","INR","IQD","IRR","ISK","JEP","JMD","JOD","JPY","KES","KGS","KHR","KMF","KPW","KRW","KWD","KYD","KZT","LAK","LBP","LEO","LINK","LKR","LRD","LSL","LTC","LTL","LVL","LYD","MAD","MATIC","MDL","MGA","MKD","MKR","MMK","MMY","MNT","MOP","MRO","MUR","MVR","MWK","MXN","MYR","MZN","NAD","NGN","NIO","NOK","NPR","NZD","OMR","PAB","PAX","PAXG","PEN","PGK","PHP","PKR","PLN","PYG","QAR","RON","RSD","RUB","RWF","SAR","SBD","SCR","SDG","SEK","SGD","SHP","SLL","SOS","SRD","STD","SVC","SYP","SZL","THB","TJS","TMT","TND","TOP","TRY","TTD","TRON","TUSD","BUSD","TWD","TZS","UAH","UGX","UNI","USD","USDC","USDC_MATIC","USDC_MATIC_NATIVE","USDT","USDT_TRON","USDT_MATIC","UYU","UZS","VEF","VND","VUV","WBTC","WST","XAF","XAG","XAU","XCD","XCON","XDR","XOF","XPF","XRP","YER","ZAR","ZMK","ZMW","ZWL"]},"FeeBtcBased":{"type":"object","required":["fast","medium","slow"],"properties":{"fast":{"type":"string","description":"Transaction fee in BTC|LTC to be paid, if transaction should be included in next 1-2 blocks.","example":"0.006584"},"medium":{"type":"string","description":"Transaction fee in BTC|LTC to be paid, if transaction should be included in next 5-6 blocks.","example":"0.004584"},"slow":{"type":"string","description":"Transaction fee in BTC|LTC to be paid, if transaction should be included in next 7+ blocks.","example":"0.002584"}}},"Error403EthTxBody":{"properties":{"errorCode":{"description":"ethereum.transaction.body","example":"ethereum.transaction.body","type":"string"},"message":{"description":"Either currency, or tokenAddress must be defined.","example":"Either currency, or tokenAddress must be defined.","type":"string"},"statusCode":{"description":"403","example":403,"type":"number"}},"required":["errorCode","message","statusCode"],"type":"object"},"Error403EthGasCalculation":{"properties":{"errorCode":{"description":"eth.transaction.gas","example":"eth.transaction.gas","type":"string"},"message":{"description":"Unable to calculate gas limit for transaction. ${error}","example":"Unable to calculate gas limit for transaction. ${error}","type":"string"},"statusCode":{"description":"403","example":403,"type":"number"}},"required":["errorCode","message","statusCode"],"type":"object"},"EthGasEstimationBatch":{"type":"object","required":["error","result"],"properties":{"error":{"type":"boolean","description":"If all estimations succeeded.","example":false},"result":{"type":"array","items":{"type":"object","required":["error"],"properties":{"error":{"type":"boolean","description":"If estimation succeeded.","example":false},"contractAddress":{"description":"Contract address of ERC20 token, if transaction is ERC20 token","example":"0x687422eEA2cB73B5d3e242bA5456b782919AFc85","maxLength":42,"minLength":42,"type":"string"},"data":{"type":"object","required":["gasLimit","gasPrice","estimations"],"properties":{"gasLimit":{"type":"string","description":"Gas limit for transaction in gas price.","example":"40000"},"gasPrice":{"type":"string","description":"Gas price in wei.","example":"20000000000"},"estimations":{"type":"object","description":"Detailed estimations for safe (under 30 minutes), standard (under 5 minutes) and fast (under 2 minutes) transaction times.","required":["safe","standard","fast","baseFee"],"properties":{"safe":{"type":"string","description":"Safe gas price in wei.","example":"20000000000"},"standard":{"type":"string","description":"Standard gas price in wei.","example":"40000000000"},"fast":{"type":"string","description":"Fast gas price in wei.","example":"55000000000"},"baseFee":{"type":"string","description":"Base fee for EIP-1559 transactions in wei.","example":"55000000000"}}}}},"msg":{"type":"string","description":"Error message. Present only if error - true.","example":"Provided address 0xt16360210b423d3a5205923d6e64a2d142d9f426 is invalid, the capitalization checksum test failed, or it's an indirect IBAN address which can't be converted."}}}}},"example":{"error":true,"result":[{"error":true,"msg":"Provided address 0xt16360210b423d3a5205923d6e64a2d142d9f426 is invalid, the capitalization checksum test failed, or it's an indirect IBAN address which can't be converted."},{"error":false,"contractAddress":"0xdac17f958d2ee523a2206206994597c13d831ec7","data":{"gasLimit":"63185","gasPrice":"119104833751","estimations":{"safe":"100833333333","standard":"104833333333","fast":"119104833751","baseFee":"119104833751"}}}]}},"Error403XdcGasCalculation":{"properties":{"errorCode":{"description":"xdc.transaction.gas","example":"xdc.transaction.gas","type":"string"},"message":{"description":"Unable to calculate gas limit for transaction. ${error}","example":"Unable to calculate gas limit for transaction. ${error}","type":"string"},"statusCode":{"description":"403","example":403,"type":"number"}},"required":["errorCode","message","statusCode"],"type":"object"},"Error403VetFailed":{"properties":{"errorCode":{"description":"vet.failed","example":"vet.failed","type":"string"},"message":{"description":"Unable to communicate with blockchain. ${error}","example":"Unable to communicate with blockchain. ${error}","type":"string"},"statusCode":{"description":"403","example":403,"type":"number"}},"required":["errorCode","message","statusCode"],"type":"object"},"BestQuoteResult":{"type":"object","properties":{"sellToken":{"type":"string"},"buyToken":{"type":"string"},"sellAmount":{"type":"string"},"buyAmount":{"type":"string","description":"Best-case expected output (sell orders) or required input (buy orders)."},"kind":{"type":"string","enum":["sell","buy"],"description":"Whether this is an exact-input (sell) or exact-output (buy) rate."},"estimatedSettlementSeconds":{"type":"number","description":"Estimated time until the swap is settled, in **seconds** (not minutes).\nUniswap / PancakeSwap: ~12-15 s (one Ethereum block — near-instant).\nCoW Protocol: ≥30 s (one batch auction cycle; illiquid pairs may take longer)."},"limitAmount":{"type":"string","description":"Guaranteed limit amount after applying slippage tolerance.\nsell order: minimum buyToken output  (minBuyAmount)  — higher is better.\nbuy order:  maximum sellToken input  (maxSellAmount) — lower  is better."},"fee":{"type":"string","description":"Protocol-level fee in sellToken units.\nCoW Protocol: the fee amount extracted by solvers from the order surplus.\nUniswap / PancakeSwap: always '0' — LP fees are embedded in the quoted\namounts (amountOut already reflects the pool fee tier). The pool fee tier\nis available in payload.protocolData.poolFee."},"expiresAt":{"type":"number","description":"Unix timestamp — how long this quote / order is valid.\nAfter this time, CoW orders expire and DEX quotes become stale."},"protocol":{"type":"string"},"executionModel":{"type":"string","enum":["instant","batch-auction"],"description":"How this protocol executes swaps.\n- `instant`:       atomic on-chain tx — guaranteed price (within slippage) or revert\n- `batch-auction`: off-chain order book — solver fills within limit price, may take minutes\n- `cross-chain`:   bridge + swap — settlement depends on destination chain finality"},"mevProtected":{"type":"boolean","description":"Whether this protocol is MEV-protected by design.\nCoW Protocol: true — batch auction with delegated execution means your\nintent never enters the public mempool, making sandwich attacks impossible.\nAMM protocols (Uniswap, PancakeSwap): false — transactions enter the\npublic mempool and are vulnerable without additional measures."}},"required":["sellToken","buyToken","sellAmount","buyAmount","kind","estimatedSettlementSeconds","limitAmount","fee","expiresAt","protocol","executionModel","mevProtected"],"description":"The best swap rate across all protocols — payload stripped for cleaner display.\nUse GET /swaps/quotes to get all options with full execution payload."},"HttpExceptionDto":{"type":"object","properties":{"message":{"type":"string"},"statusCode":{"type":"number"},"timestamp":{"type":"string"},"path":{"type":"string"},"details":{}},"required":["message","statusCode","timestamp","path"]},"SwapRate":{"type":"object","properties":{"protocol":{"type":"string"},"kind":{"type":"string","enum":["sell","buy"],"description":"Whether this is an exact-input (sell) or exact-output (buy) rate."},"executionModel":{"type":"string","enum":["instant","batch-auction"],"description":"How this protocol executes swaps.\n- `instant`:       atomic on-chain tx — guaranteed price (within slippage) or revert\n- `batch-auction`: off-chain order book — solver fills within limit price, may take minutes\n- `cross-chain`:   bridge + swap — settlement depends on destination chain finality"},"estimatedSettlementSeconds":{"type":"number","description":"Estimated time until the swap is settled, in **seconds** (not minutes).\nUniswap / PancakeSwap: ~12-15 s (one Ethereum block — near-instant).\nCoW Protocol: ≥30 s (one batch auction cycle; illiquid pairs may take longer)."},"sellToken":{"type":"string"},"buyToken":{"type":"string"},"sellAmount":{"type":"string"},"buyAmount":{"type":"string","description":"Best-case expected output (sell orders) or required input (buy orders)."},"limitAmount":{"type":"string","description":"Guaranteed limit amount after applying slippage tolerance.\nsell order: minimum buyToken output  (minBuyAmount)  — higher is better.\nbuy order:  maximum sellToken input  (maxSellAmount) — lower  is better."},"fee":{"type":"string","description":"Protocol-level fee in sellToken units.\nCoW Protocol: the fee amount extracted by solvers from the order surplus.\nUniswap / PancakeSwap: always '0' — LP fees are embedded in the quoted\namounts (amountOut already reflects the pool fee tier). The pool fee tier\nis available in payload.protocolData.poolFee."},"expiresAt":{"type":"number","description":"Unix timestamp — how long this quote / order is valid.\nAfter this time, CoW orders expire and DEX quotes become stale."},"mevProtected":{"type":"boolean","description":"Whether this protocol is MEV-protected by design.\nCoW Protocol: true — batch auction with delegated execution means your\nintent never enters the public mempool, making sandwich attacks impossible.\nAMM protocols (Uniswap, PancakeSwap): false — transactions enter the\npublic mempool and are vulnerable without additional measures."},"payload":{"$ref":"#/components/schemas/UnifiedPayload"}},"required":["protocol","kind","executionModel","estimatedSettlementSeconds","sellToken","buyToken","sellAmount","buyAmount","limitAmount","fee","expiresAt","mevProtected","payload"]},"UnifiedPayload":{"type":"object","properties":{"amountIn":{"type":"string"},"amountOut":{"type":"string"},"fee":{"type":"string"},"sellToken":{"type":"string"},"buyToken":{"type":"string"},"validTo":{"type":"number"},"protocolData":{}},"required":["amountIn","amountOut","fee","sellToken","buyToken","protocolData"]},"BalanceItem":{"oneOf":[{"$ref":"#/components/schemas/NativeTokenBalance"},{"$ref":"#/components/schemas/NftBalance"},{"$ref":"#/components/schemas/FungibleTokenBalance"}]},"PortfolioItem":{"oneOf":[{"$ref":"#/components/schemas/NativeTokenPortfolio"},{"$ref":"#/components/schemas/NftPortfolio"},{"$ref":"#/components/schemas/FungibleTokenPortfolio"}]},"NativeTokenBalance":{"type":"object","properties":{"chain":{"$ref":"#/components/schemas/Chain"},"type":{"$ref":"#/components/schemas/TokenType","example":"native"},"address":{"type":"string"},"balance":{"type":"string"},"denominatedBalance":{"type":"string"},"decimals":{"type":"number"}},"required":["chain","type","address","balance","denominatedBalance","decimals"]},"NftBalance":{"type":"object","properties":{"chain":{"$ref":"#/components/schemas/Chain"},"type":{"$ref":"#/components/schemas/TokenType","example":"nft"},"address":{"type":"string"},"balance":{"type":"string"},"tokenAddress":{"type":"string"},"tokenId":{"type":"string"},"metadataURI":{"type":"string"},"lastUpdatedBlockNumber":{"type":"integer"},"metadata":{"type":"object"}},"required":["chain","type","address","balance","tokenAddress","lastUpdatedBlockNumber"]},"FungibleTokenBalance":{"type":"object","properties":{"chain":{"$ref":"#/components/schemas/Chain"},"type":{"$ref":"#/components/schemas/TokenType","example":"fungible"},"address":{"type":"string"},"balance":{"type":"string"},"denominatedBalance":{"type":"string"},"decimals":{"type":"number"},"tokenAddress":{"type":"string"},"lastUpdatedBlockNumber":{"type":"integer"}},"required":["chain","type","address","balance","tokenAddress","lastUpdatedBlockNumber","denominatedBalance","decimals"]},"NativeTokenPortfolio":{"type":"object","properties":{"chain":{"$ref":"#/components/schemas/Chain"},"type":{"$ref":"#/components/schemas/TokenType","example":"native"},"address":{"type":"string"},"balance":{"type":"string"},"denominatedBalance":{"type":"string"},"decimals":{"type":"number"}},"required":["chain","type","address","balance","denominatedBalance","decimals"]},"NftPortfolio":{"type":"object","properties":{"chain":{"$ref":"#/components/schemas/Chain"},"type":{"$ref":"#/components/schemas/TokenType","example":"nft"},"address":{"type":"string"},"balance":{"type":"string"},"tokenAddress":{"type":"string"},"tokenId":{"type":"string"},"metadataURI":{"type":"string"},"metadata":{"type":"object"}},"required":["chain","type","address","balance","tokenAddress"]},"FungibleTokenPortfolio":{"type":"object","properties":{"chain":{"$ref":"#/components/schemas/Chain"},"type":{"$ref":"#/components/schemas/TokenType","example":"fungible"},"address":{"type":"string"},"balance":{"type":"string"},"tokenAddress":{"type":"string"},"denominatedBalance":{"type":"string"},"decimals":{"type":"number"}},"required":["chain","type","address","balance","tokenAddress","denominatedBalance","decimals"]},"TokenType":{"type":"string","enum":["native","fungible","nft","multitoken"],"description":"Enum representing the type of token.","example":"nft"},"BlockItem":{"type":"object","properties":{"blockNumber":{"type":"integer","description":"The block number in the blockchain.","example":10},"blockTimestamp":{"type":"integer","format":"int64","description":"The timestamp when the block was created, in milliseconds since Unix epoch.","example":1598671520000},"hash":{"type":"string","description":"The hash of the block.","example":"0xec1a2d906f34e1981b2b1a15dbe5e10cf640e8b4b27dc056ebb65c0409b5a9af"},"eventIngestedSize":{"type":"integer","description":"The number of ingested events in the block.","example":0},"nftIngestedSize":{"type":"integer","description":"The number of ingested NFTs in the block.","example":0},"txHashes":{"type":"array","items":{"type":"string"},"description":"The array of transaction hashes included in the block.","example":["0x19eaae1f7bdd28605f4175d7e87c9de68431bf76e85a262e268252a84bfc3984"]}}},"DefiBlockItem":{"type":"object","properties":{"blockNumber":{"type":"integer","description":"The block number in the blockchain.","example":10},"blockTimestamp":{"type":"integer","format":"int64","description":"The timestamp when the block was created, in milliseconds since Unix epoch.","example":1598671520000},"hash":{"type":"string","description":"The hash of the block.","example":"0xec1a2d906f34e1981b2b1a15dbe5e10cf640e8b4b27dc056ebb65c0409b5a9af"},"txHashes":{"type":"array","items":{"type":"string"},"description":"The array of transaction hashes included in the block.","example":["0x19eaae1f7bdd28605f4175d7e87c9de68431bf76e85a262e268252a84bfc3984"]}}},"NameResolutionItem":{"type":"object","properties":{"address":{"type":"string","description":"Wallet address.","example":"0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045"},"chain":{"type":"string","description":"Chain.","example":"ethereum-mainnet"},"name":{"type":"string","description":"Name.","example":"vitalik.eth"},"resolved":{"type":"boolean","description":"Boolean result if name is successfully resolved.","example":[true]}}},"Event":{"type":"object","properties":{"chain":{"$ref":"#/components/schemas/Chain"},"address":{"type":"string","description":"The address associated with the event."},"blockNumber":{"type":"integer","description":"The block number where the event was recorded."},"timestamp":{"type":"integer","description":"The timestamp of the event in UNIX format."},"decoded":{"oneOf":[{"$ref":"#/components/schemas/FungibleTransfer"},{"$ref":"#/components/schemas/StablecoinTransfer"},{"$ref":"#/components/schemas/NftTransfer"},{"$ref":"#/components/schemas/MultitokenTransferSingle"},{"$ref":"#/components/schemas/MultitokenTransferBatch"},{"$ref":"#/components/schemas/UniswapTradeV2"},{"$ref":"#/components/schemas/UniswapTradeV3"}],"description":"The decoded event data based on the given models."},"raw":{"$ref":"#/components/schemas/RawData"},"txHash":{"type":"string","description":"The transaction hash related to the event."},"txIndex":{"type":"integer","description":"The transaction index within the block."},"logIndex":{"type":"integer","description":"The log index within the transaction."}}},"DecodedDataCommon":{"type":"object","description":"Common properties for decoded data events.","properties":{"label":{"type":"string","description":"The label of the event.","example":"Transfer"},"type":{"type":"string","description":"The type of the event.","example":"FungibleTransfer"},"subtype":{"type":"string","description":"The subtype of the event.","example":"ERC20"},"from":{"type":"string","description":"The sender address of the event.","example":"0x742d35cc6634c0532925a3b844bc454e4438f44e"},"to":{"type":"string","description":"The receiver address of the event.","example":"0xb7d49e5aa39ff1e5d1b33286c3a8e5515b6a4e1a"}}},"FungibleTransfer":{"allOf":[{"$ref":"#/components/schemas/DecodedDataCommon"},{"type":"object","properties":{"decimals":{"type":"integer","description":"The number of decimal places for the transferred token.","example":18},"value":{"type":"string","description":"The value of the transferred token.","example":"1000"}}}]},"StablecoinTransfer":{"allOf":[{"$ref":"#/components/schemas/FungibleTransfer"},{"type":"object","properties":{"stablecoin":{"type":"string","description":"The address of the stablecoin being transferred.","example":"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"}}}]},"NftTransfer":{"allOf":[{"$ref":"#/components/schemas/DecodedDataCommon"},{"type":"object","properties":{"tokenId":{"type":"string","description":"The unique identifier of the NFT being transferred.","example":"101"}}}]},"MultitokenTransfer":{"allOf":[{"$ref":"#/components/schemas/DecodedDataCommon"},{"type":"object","properties":{"operator":{"type":"string","description":"The address of the operator initiating the transfer.","example":"0x742d35cc6634c0532925a3b844bc454e4438f44e"}}}]},"MultitokenTransferSingle":{"allOf":[{"$ref":"#/components/schemas/MultitokenTransfer"},{"type":"object","properties":{"multitokenId":{"type":"string","description":"The unique identifier of the single multitoken being transferred.","example":"1"},"multitokenValue":{"type":"string","description":"The value of the single multitoken being transferred.","example":"100"}}}]},"MultitokenTransferBatch":{"allOf":[{"$ref":"#/components/schemas/MultitokenTransfer"},{"type":"object","properties":{"multitokenIds":{"type":"array","items":{"type":"string"},"description":"The unique identifiers of the multitokens being transferred.","example":["1","2","3"]},"multitokenValues":{"type":"array","items":{"type":"string"},"description":"The values of the multitokens being transferred.","example":["100","200","300"]}}}]},"UniswapTrade":{"allOf":[{"$ref":"#/components/schemas/DecodedDataCommon"},{"type":"object","properties":{"token0":{"type":"string","description":"The address of the first token involved in the trade.","example":"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2"},"token1":{"type":"string","description":"The address of the second token involved in the trade.","example":"0x6b175474e89094c44da98b954eedeac495271d0f"},"partiallyRaw":{"type":"boolean","description":"Indicates whether the trade data is partially raw or not.","example":false}}}]},"UniswapTradeV2":{"allOf":[{"$ref":"#/components/schemas/UniswapTrade"},{"type":"object","properties":{"amount0In":{"type":"string","description":"The input amount of the first token in the trade.","example":"0.5"},"amount1In":{"type":"string","description":"The input amount of the second token in the trade.","example":"0.0"},"amount0Out":{"type":"string","description":"The output amount of the first token in the trade.","example":"0.0"},"amount1Out":{"type":"string","description":"The output amount of the second token in the trade.","example":"1.0"}}}]},"UniswapTradeV3":{"allOf":[{"$ref":"#/components/schemas/UniswapTrade"},{"type":"object","properties":{"amount0":{"type":"string","description":"The net amount of the first token involved in the trade.","example":"0.5"},"amount1":{"type":"string","description":"The net amount of the second token involved in the trade.","example":"1.0"},"sqrtPriceX96":{"type":"string","description":"The square root price of the trading pair scaled by 2^96.","example":"79228162514264337593543950336"},"liquidity":{"type":"string","description":"The liquidity of the trading pair at the time of the trade.","example":"1000"},"tick":{"type":"integer","description":"The tick index of the Uniswap V3 pool at the time of the trade.","example":1000}}}]},"RawData":{"type":"object","description":"Raw data associated with the event, including topics and data.","required":["topic_0"],"properties":{"topic_0":{"type":"string","description":"The first topic of the event, if present.","example":"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"},"topic_1":{"type":"string","description":"The second topic of the event, if present.","example":"0x000000000000000000000000742d35cc6634c0532925a3b844bc454e4438f44e"},"topic_2":{"type":"string","description":"The third topic of the event, if present.","example":"0x000000000000000000000000b7d49e5aa39ff1e5d1b33286c3a8e5515b6a4e1a"},"topic_3":{"type":"string","description":"The fourth topic of the event, if present.","example":""},"data":{"type":"string","description":"The data associated with the event, if present.","example":"0x0000000000000000000000000000000000000000000000000de0b6b3a7640000"}}},"TxData":{"type":"object","properties":{"chain":{"$ref":"#/components/schemas/ChainEnum"},"hash":{"type":"string","description":"The transaction hash.","example":"0x549447710026cef714da21fb29cbfae1f689bd3246f2fa0a5081149c4aeb3bb3"},"address":{"type":"string","description":"The address involved in the transaction.","example":"0xdef1c0ded9bec7f1a1670819833240f027b25eff"},"counterAddress":{"type":"string","description":"The counter address involved in the transaction (optional).","example":"0x0d4a11d5eeaac28ec3f61d100daf4d40471f1852"},"tokenAddress":{"type":"string","description":"The token address involved in the transaction (optional).","example":"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2"},"tokenId":{"type":"string","description":"The ID of the token involved in the transaction (optional).","example":33},"blockNumber":{"type":"number","description":"The block number in which the transaction occurred.","example":16819465},"transactionIndex":{"type":"number","description":"The transaction index within the block.","example":84},"transactionType":{"$ref":"#/components/schemas/TxType"},"transactionSubtype":{"$ref":"#/components/schemas/TxSubtype"},"amount":{"type":"string","description":"The amount transferred in the transaction.","example":0.9909237063720822},"timestamp":{"type":"number","description":"The timestamp when the transaction occurred.","example":1678715303000}}},"TxDataWithoutIndex":{"type":"object","properties":{"chain":{"$ref":"#/components/schemas/ChainEnumForTransactionHistory"},"hash":{"type":"string","description":"The transaction hash.","example":"0x549447710026cef714da21fb29cbfae1f689bd3246f2fa0a5081149c4aeb3bb3"},"address":{"type":"string","description":"The address involved in the transaction.","example":"0xdef1c0ded9bec7f1a1670819833240f027b25eff"},"counterAddress":{"type":"string","description":"The counter address involved in the transaction (optional).","example":"0x0d4a11d5eeaac28ec3f61d100daf4d40471f1852"},"tokenAddress":{"type":"string","description":"The token address involved in the transaction (optional).","example":"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2"},"tokenId":{"type":"string","description":"The ID of the token involved in the transaction (optional).","example":33},"blockNumber":{"type":"number","description":"The block number in which the transaction occurred.","example":16819465},"transactionType":{"$ref":"#/components/schemas/TxType"},"transactionSubtype":{"$ref":"#/components/schemas/TxSubtype"},"amount":{"type":"string","description":"The amount transferred in the transaction.","example":0.9909237063720822},"timestamp":{"type":"number","description":"The timestamp when the transaction occurred.\n- Enabled for chains: Ethereum, Polygon, Arbitrum, Optimism, Base.\n","example":1678715303000}}},"TxType":{"type":"string","description":"The type of the transaction.","enum":["fungible","nft","multitoken","native"]},"TxSubtype":{"type":"string","description":"The subtype of the transaction.","enum":["incoming","outgoing","zero-transfer"]},"FungibleInfo":{"type":"object","properties":{"name":{"type":"string","description":"The full name of the fungible token.","example":"USD Coin"},"symbol":{"type":"string","description":"The symbol of the fungible token.","example":"USDC"},"tokenType":{"type":"string","description":"The type of the token (e.g., fungible).","example":"fungible"},"supply":{"type":"string","description":"The total supply of the fungible token.","example":"48699269596631307"},"decimals":{"type":"number","description":"The number of decimal places for the fungible token.","example":6},"logo":{"type":"string","description":"The logo of the fungible token.","example":"https://blockchains.tatum.io/assets/token-logos/ethereum-mainnet/0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48.png"}}},"NativeInfo":{"type":"object","properties":{"symbol":{"type":"string","description":"The symbol of the native currency.","example":"ETH"},"supply":{"type":"string","description":"The total supply of the native currency.","example":"122373866217800000000000000"},"decimals":{"type":"number","description":"The number of decimal places for the native currency.","example":18},"tokenType":{"type":"string","description":"The token type of the currency.","example":"native"},"logo":{"type":"string","description":"The logo of the native currency.","example":"https://blockchains.tatum.io/assets/token-logos/ethereum-mainnet/native.png"}}},"FungibleInfoTezos":{"type":"object","properties":{"symbol":{"type":"string","description":"The symbol of the fungible token.","example":"USDC"},"name":{"type":"string","description":"The full name of the fungible token.","example":"USD Coin"},"description":{"type":"string","description":"The describtion of the fungible token.","example":"USD Coin"},"supply":{"type":"string","description":"The total supply of the fungible token.","example":"1000000000"},"decimals":{"type":"number","description":"The number of decimal places for the fungible token.","example":6},"tokenType":{"type":"string","description":"The type of the token (e.g., fungible, nft).","example":"fungible"}}},"NftInfo":{"type":"object","properties":{"symbol":{"type":"string","description":"The symbol of the NFT collection.","example":"ART"},"name":{"type":"string","description":"The full name of the NFT collection.","example":"Art Collection"},"supply":{"type":"string","description":"The total supply of the NFT collection.","example":"5000"},"tokenType":{"type":"string","description":"The type of the token (e.g., ERC721, ERC1155).","example":"ERC721"}}},"NftInfoTezos":{"type":"object","properties":{"name":{"type":"string","description":"The full name of the NFT collection.","example":"Art Collection"},"description":{"type":"string","description":"The total supply of the NFT collection.","example":"5000"},"tokenType":{"type":"string","description":"The type of the token (e.g., ERC721, ERC1155).","example":"ERC721"},"contractMetadata":{"type":"object","description":"Additional information about the contract"}}},"MultitokenInfo":{"type":"object","properties":{"symbol":{"type":"string","description":"The symbol of the multitoken collection.","example":"GAME"},"name":{"type":"string","description":"The full name of the multitoken collection.","example":"Game Assets"},"tokenType":{"type":"string","description":"The type of the token (e.g., ERC1155).","example":"ERC1155"}}},"NftTokenInfo":{"type":"object","properties":{"symbol":{"type":"string","description":"The symbol of the NFT token.","example":"ART"},"name":{"type":"string","description":"The name of the NFT token.","example":"Mona Lisa"},"metadata":{"type":"object","description":"The metadata associated with the NFT token.","example":{"artist":"Leonardo da Vinci","year":1503}},"metadataURI":{"type":"string","description":"The URI of the metadata associated with the NFT token.","example":"https://example.com/metadata/123"},"tokenType":{"type":"string","description":"The type of the token (e.g., ERC721, ERC1155).","example":"ERC721"}}},"Token":{"type":"object","properties":{"chain":{"$ref":"#/components/schemas/Chain"},"tokenId":{"$ref":"#/components/schemas/TokenId"},"tokenAddress":{"$ref":"#/components/schemas/TokenAddress"},"tokenType":{"$ref":"#/components/schemas/TokenType"},"metadataURI":{"$ref":"#/components/schemas/NftMetadataURI"},"metadata":{"$ref":"#/components/schemas/NftMetadata"}}},"TokenTezos":{"type":"object","properties":{"chain":{"$ref":"#/components/schemas/Chain"},"tokenId":{"$ref":"#/components/schemas/TokenId"},"tokenAddress":{"$ref":"#/components/schemas/TokenAddress"},"tokenType":{"$ref":"#/components/schemas/TokenType"},"creator":{"type":"string","description":"Address of the token creator.","example":"tz1hkNPg5jQ66pJpZH2boiF5AnbAcd1dt5KS"},"name":{"type":"string","description":"Name of the token.","example":"My token 1"}}},"Chain":{"type":"string","description":"Name of the chain.","example":"ethereum"},"ChainEnum":{"type":"string","example":"ethereum-mainnet","enum":["ethereum-mainnet","ethereum-sepolia","ethereum-holesky","bsc-mainnet","bsc-testnet","polygon-mainnet","celo-mainnet","celo-testnet","chiliz-mainnet"]},"ChainEnumForTransactionHistory":{"type":"string","example":"ethereum-mainnet","enum":["ethereum-mainnet","ethereum-sepolia","base-mainnet","base-sepolia","arb-one-mainnet","arb-testnet","bsc-mainnet","bsc-testnet","polygon-mainnet","polygon-amoy","optimism-mainnet","optimism-testnet","berachain-mainnet","unichain-mainnet","unichain-sepolia","monad-mainnet","monad-testnet","celo-mainnet","chiliz-mainnet","tezos-mainnet"]},"ChainEnumForWalletPortfolio":{"type":"string","example":"ethereum-mainnet","enum":["ethereum-mainnet","ethereum-sepolia","ethereum-holesky","solana-mainnet","solana-devnet","base-mainnet","base-sepolia","arb-one-mainnet","arb-testnet","bsc-mainnet","bsc-testnet","polygon-mainnet","polygon-amoy","optimism-mainnet","optimism-testnet","berachain-mainnet","unichain-mainnet","unichain-sepolia","monad-mainnet","monad-testnet","celo-mainnet","celo-testnet","chiliz-mainnet","tezos-mainnet"]},"ChainEnumForBlocksAndEvents":{"type":"string","example":"ethereum-mainnet","enum":["ethereum-mainnet","ethereum-sepolia","ethereum-holesky","base-mainnet","base-sepolia","arb-one-mainnet","arb-testnet","bsc-mainnet","bsc-testnet","polygon-mainnet","optimism-mainnet","optimism-testnet","berachain-mainnet","unichain-mainnet","unichain-sepolia","monad-mainnet","monad-testnet","celo-mainnet","celo-testnet","chiliz-mainnet"]},"ChainEnumForBlockByTime":{"type":"string","example":"ethereum-mainnet","enum":["ethereum-mainnet","ethereum-sepolia","ethereum-holesky","bitcoin-mainnet","base-mainnet","base-sepolia","arb-one-mainnet","arb-testnet","bsc-mainnet","bsc-testnet","polygon-mainnet","optimism-mainnet","optimism-testnet","berachain-mainnet","unichain-mainnet","unichain-sepolia","monad-testnet","celo-mainnet","celo-testnet"]},"ChainEnumForNftBalances":{"type":"string","example":"ethereum-mainnet","enum":["ethereum-mainnet","ethereum-sepolia","ethereum-holesky","solana-mainnet","solana-devnet","base-mainnet","base-sepolia","arb-one-mainnet","arb-testnet","bsc-mainnet","bsc-testnet","polygon-mainnet","polygon-amoy","optimism-mainnet","optimism-testnet","berachain-mainnet","unichain-mainnet","unichain-sepolia","monad-testnet","celo-mainnet","celo-testnet","algorand-mainnet-algod","algorand-testnet-algod"]},"ChainEnumExtended":{"type":"string","example":"ethereum-mainnet","enum":["ethereum-mainnet","ethereum-sepolia","ethereum-holesky","bsc-mainnet","bsc-testnet","polygon-mainnet","celo-mainnet","celo-testnet","chiliz-mainnet","tezos-mainnet"]},"ChainEnumForTokens":{"type":"string","example":"ethereum-mainnet","enum":["ethereum-mainnet","ethereum-sepolia","ethereum-holesky","solana-mainnet","solana-devnet","base-mainnet","base-sepolia","arb-one-mainnet","arb-testnet","bsc-mainnet","bsc-testnet","polygon-mainnet","optimism-mainnet","optimism-testnet","berachain-mainnet","unichain-mainnet","unichain-sepolia","monad-mainnet","monad-testnet","celo-mainnet","celo-testnet","chiliz-mainnet","tezos-mainnet"]},"ChainEnumTrending":{"type":"string","example":"ethereum-mainnet","enum":["ethereum-mainnet","base-mainnet"]},"ChainEnumBlockchainsApiBlock":{"type":"string","example":"bitcoin-mainnet","enum":["algorand-mainnet-algod","algorand-testnet-algod","arb-one-mainnet","arb-testnet","avax-mainnet","avax-testnet","base-mainnet","base-sepolia","bch-mainnet","bch-testnet","berachain-mainnet","bitcoin-mainnet","bitcoin-testnet","bsc-mainnet","bsc-testnet","cardano-mainnet","cardano-preprod","celo-mainnet","chiliz-mainnet","cro-mainnet","cro-testnet","doge-mainnet","doge-testnet","egld-mainnet","egld-testnet","eos-mainnet","eos-testnet","ethereum-classic-mainnet","ethereum-classic-testnet","ethereum-mainnet","ethereum-sepolia","fantom-mainnet","fantom-testnet","flare-coston","flare-coston2","flare-mainnet","flare-songbird","kcs-mainnet","kcs-testnet","klaytn-baobab","klaytn-cypress","litecoin-mainnet","litecoin-testnet","monad-mainnet","monad-testnet","one-mainnet-s0","one-testnet-s0","optimism-mainnet","optimism-testnet","polygon-amoy","polygon-mainnet","ripple-mainnet","ripple-testnet","solana-devnet","solana-mainnet","sonic-blaze","sonic-mainnet","stellar-mainnet","stellar-testnet","tron-mainnet","tron-testnet","unichain-mainnet","unichain-sepolia","vechain-mainnet","vechain-testnet","xdc-mainnet","xdc-testnet","zcash-mainnet","zcash-testnet"]},"ChainEnumBlockchainsApiTxByHash":{"type":"string","example":"ethereum-mainnet","enum":["algorand-mainnet-algod","algorand-testnet-algod","arb-one-mainnet","arb-testnet","avax-mainnet","avax-testnet","base-mainnet","base-sepolia","bch-mainnet","bch-testnet","berachain-mainnet","bitcoin-mainnet","bitcoin-testnet","bsc-mainnet","bsc-testnet","cardano-mainnet","cardano-preprod","celo-mainnet","chiliz-mainnet","cro-mainnet","cro-testnet","doge-mainnet","doge-testnet","egld-mainnet","egld-testnet","ethereum-classic-mainnet","ethereum-classic-testnet","ethereum-mainnet","ethereum-sepolia","fantom-mainnet","fantom-testnet","flare-coston","flare-coston2","flare-mainnet","flare-songbird","kcs-mainnet","kcs-testnet","klaytn-baobab","klaytn-cypress","litecoin-mainnet","litecoin-testnet","monad-mainnet","monad-testnet","one-mainnet-s0","one-testnet-s0","optimism-mainnet","optimism-testnet","polygon-amoy","polygon-mainnet","ripple-mainnet","ripple-testnet","solana-devnet","solana-mainnet","sonic-blaze","sonic-mainnet","stellar-mainnet","stellar-testnet","tron-mainnet","tron-testnet","unichain-mainnet","unichain-sepolia","vechain-mainnet","vechain-testnet","xdc-mainnet","xdc-testnet","zcash-mainnet","zcash-testnet"]},"ChainEnumBlockchainsApiUtxoInfo":{"type":"string","example":"bitcoin-mainnet","description":"UTXO chains supported for GET blockchains/utxo/info.","enum":["bitcoin-mainnet","bitcoin-testnet","litecoin-mainnet","litecoin-testnet","doge-mainnet","dogecoin-testnet","bch-mainnet","bch-testnet"]},"UtxoInfoResponse":{"type":"object","required":["value","address","script","hash","index","height"],"properties":{"value":{"type":"integer","description":"Value in smallest unit (satoshis for BTC/LTC/DOGE/BCH)."},"address":{"type":"string","description":"Output address."},"script":{"type":"string","description":"Script hex."},"hash":{"type":"string","description":"Transaction hash."},"index":{"type":"integer","description":"Output index (vout) in the transaction."},"height":{"type":"integer","description":"Block height. For mempool (unconfirmed) UTXOs, height is -1."}}},"ChainEnumBlockchainsApiBalance":{"type":"string","example":"ethereum-mainnet","enum":["algorand-mainnet-algod","algorand-testnet-algod","arb-one-mainnet","arb-testnet","avax-mainnet","avax-testnet","base-mainnet","base-sepolia","berachain-mainnet","bitcoin-mainnet","bitcoin-testnet","bsc-mainnet","bsc-testnet","cardano-mainnet","cardano-preprod","celo-mainnet","chiliz-mainnet","cro-mainnet","cro-testnet","doge-mainnet","doge-testnet","egld-mainnet","egld-testnet","eos-mainnet","eos-testnet","ethereum-classic-mainnet","ethereum-classic-testnet","ethereum-mainnet","ethereum-sepolia","fantom-mainnet","fantom-testnet","flare-coston","flare-coston2","flare-mainnet","flare-songbird","kcs-mainnet","kcs-testnet","klaytn-baobab","klaytn-cypress","litecoin-mainnet","litecoin-testnet","monad-mainnet","monad-testnet","one-mainnet-s0","one-testnet-s0","optimism-mainnet","optimism-testnet","polygon-amoy","polygon-mainnet","ripple-mainnet","ripple-testnet","solana-devnet","solana-mainnet","sonic-blaze","sonic-mainnet","stellar-mainnet","stellar-testnet","tron-mainnet","tron-testnet","unichain-mainnet","unichain-sepolia","vechain-mainnet","vechain-testnet","xdc-mainnet","xdc-testnet"]},"ChainEnumBlockchainsApiMempool":{"type":"string","example":"bitcoin-mainnet","enum":["bitcoin-mainnet","bitcoin-testnet","litecoin-mainnet","litecoin-testnet","doge-mainnet","dogecoin-testnet","bch-mainnet","bch-testnet"]},"ChainEnumBlockchainsApiTransactionHistoryUtxos":{"type":"string","example":"bitcoin-mainnet","description":"Chains supported for GET blockchains/transaction/history/utxos (Bitcoin, Litecoin, Dogecoin, Cardano).","enum":["bitcoin-mainnet","bitcoin-testnet","litecoin-mainnet","litecoin-testnet","doge-mainnet","dogecoin-testnet","cardano-mainnet","cardano-preprod"]},"ChainEnumBlockchainsApiTxCount":{"type":"string","example":"ethereum-mainnet","enum":["arb-one-mainnet","arb-testnet","avax-mainnet","avax-testnet","base-mainnet","base-sepolia","berachain-mainnet","bsc-mainnet","bsc-testnet","celo-mainnet","chiliz-mainnet","cro-mainnet","cro-testnet","egld-mainnet","egld-testnet","ethereum-classic-mainnet","ethereum-classic-testnet","ethereum-mainnet","ethereum-sepolia","fantom-mainnet","fantom-testnet","flare-coston","flare-coston2","flare-mainnet","flare-songbird","kcs-mainnet","kcs-testnet","klaytn-baobab","klaytn-cypress","monad-mainnet","monad-testnet","one-mainnet-s0","one-testnet-s0","optimism-mainnet","optimism-testnet","polygon-amoy","polygon-mainnet","sonic-blaze","sonic-mainnet","unichain-mainnet","unichain-sepolia","xdc-mainnet","xdc-testnet"]},"ChainEnumBlockchainsApiInternalTx":{"type":"string","example":"ethereum-mainnet","description":"EVM chains that support internal transactions via Etherscan","enum":["ethereum-mainnet","ethereum-sepolia","bsc-mainnet","bsc-testnet","polygon-mainnet","polygon-amoy","celo-mainnet","base-mainnet","base-sepolia","arb-one-mainnet","arb-testnet","optimism-mainnet","optimism-testnet","berachain-mainnet","unichain-mainnet","unichain-sepolia","monad-testnet","monad-mainnet","avax-mainnet","avax-testnet","xdc-mainnet","xdc-testnet","sonic-mainnet","sonic-blaze"]},"InternalTransaction":{"type":"object","description":"Internal transaction from Etherscan txlistinternal API","properties":{"blockNumber":{"type":"string","example":"83142718"},"timeStamp":{"type":"string","example":"1771405460"},"hash":{"type":"string","example":"0x8f6e3eafec46b4136071829e312ccd1c21fca3ac262acc08cb2dd44d95428986"},"from":{"type":"string","example":"0x278d858f05b94576c1e6f73285886876ff6ef8d2"},"to":{"type":"string","example":"0x67366782805870060151383f4bbff9dab53e5cd6"},"value":{"type":"string","example":"227496880059990000000"},"contractAddress":{"type":"string"},"input":{"type":"string"},"type":{"type":"string","example":"call"},"gas":{"type":"string","example":"462306"},"gasUsed":{"type":"string","example":"1273"},"traceId":{"type":"string","example":"0_1_1_1_1_1"},"isError":{"type":"string","example":"0"},"errCode":{"type":"string"}}},"EVMTransaction":{"type":"object","description":"Generic EVM-style transaction object (Ethereum, BSC, Polygon, etc.); exact properties depend on chain.","properties":{"hash":{"type":"string","example":"0x7b3b0bc2c72b7e6b8a2c8af8d77c6f6b2c14a8f6c3f7d8e9b1e2d3c4b5a6f7d8"},"transactionHash":{"type":"string","description":"Same as hash (for receipt merge)."},"blockHash":{"type":"string"},"blockNumber":{"type":"integer"},"from":{"type":"string","example":"0x8ba1f109551bd432803012645ac136ddd64dba72"},"to":{"type":["string","null"],"example":"0x4bbeEB066eD09B7AEd07bF39EEe0460DFa261520"},"value":{"type":"string","description":"Value in native units (wei-like).","example":"10000000000000000"},"gas":{"type":"integer"},"gasPrice":{"type":"string"},"maxFeePerGas":{"type":["integer","null"]},"maxPriorityFeePerGas":{"type":["integer","null"]},"nonce":{"type":"integer"},"transactionIndex":{"type":"integer"},"input":{"type":"string","description":"Input data hex."},"type":{"type":"integer","description":"Transaction type (0=legacy, 1=EIP-2930, 2=EIP-1559)."},"accessList":{"type":"array","description":"Access list (EIP-2930/EIP-1559)."},"chainId":{"type":["integer","null"]},"yParity":{"type":"string","description":"Recovery id (0x0 or 0x1).","example":"0x1"},"gasUsed":{"type":["integer","null"]},"effectiveGasPrice":{"type":["integer","null"]},"cumulativeGasUsed":{"type":"integer"},"contractAddress":{"type":["string","null"],"description":"Created contract address (for contract creation txs)."},"status":{"type":"boolean","description":"true if tx succeeded."},"logsBloom":{"type":"string","description":"Bloom filter for logs."},"logs":{"type":"array","description":"Event logs (when merged with receipt).","items":{"type":"object","properties":{"address":{"type":"string"},"topics":{"type":"array","items":{"type":"string"}},"data":{"type":"string"},"blockNumber":{"type":"integer"},"transactionHash":{"type":"string"},"transactionIndex":{"type":"integer"},"blockHash":{"type":"string"},"logIndex":{"type":"integer"},"removed":{"type":"boolean","description":"true when log was removed (chain reorg)."},"blockTimestamp":{"type":"string","description":"Block timestamp hex."}}}},"fee":{"type":["string","null"],"description":"Paid fee in native units, if available.","example":"21000000000000"}},"additionalProperties":true},"UTXOTransaction":{"type":"object","description":"UTXO-style transaction object with inputs/outputs arrays (Bitcoin, Litecoin, Dogecoin).","properties":{"blockNumber":{"type":"integer","description":"Block height where the transaction was included.","example":937056},"block":{"type":"string","description":"Block hash.","example":"00000000000000000000bdbfedb6b9e3e521fa404007a84dfc4e681a6a6e927d"},"fee":{"type":"integer","description":"Transaction fee in satoshis.","example":726},"hash":{"type":"string","description":"Transaction hash (txid).","example":"7912175f3f46da95075248a147efdd00cf86d1a018e1609800e22187e65ccd92"},"hex":{"type":"string","description":"Raw transaction hex."},"index":{"type":"integer","description":"Transaction index within the block.","example":1586},"inputs":{"type":"array","description":"Transaction inputs.","items":{"type":"object","properties":{"prevout":{"type":"object","properties":{"hash":{"type":"string","description":"Previous output transaction hash."},"index":{"type":"integer","description":"Previous output index."}}},"sequence":{"type":"integer","example":4294967295},"script":{"type":"string"},"address":{"type":["string","null"],"description":"Present (null) for coinbase inputs; coin omitted in that case."},"coin":{"type":"object","description":"Spent output info (if available).","properties":{"version":{"type":"integer"},"height":{"type":"integer"},"value":{"oneOf":[{"type":"integer"},{"type":"string"}],"description":"Value in satoshis (number) or decimal string."},"script":{"type":"string"},"address":{"type":"string"},"type":{"type":"string","description":"Script type (e.g. witness_v0_keyhash, pubkeyhash)."},"reqSigs":{"type":["integer","null"]},"coinbase":{"type":"boolean"}}}}}},"locktime":{"type":"integer","example":0},"outputs":{"type":"array","description":"Transaction outputs.","items":{"type":"object","properties":{"value":{"oneOf":[{"type":"integer"},{"type":"string"}],"description":"Value in satoshis (number) or decimal string."},"script":{"type":"string"},"address":{"type":["string","null"]},"scriptPubKey":{"type":"object","properties":{"type":{"type":"string","description":"Script type (e.g. witness_v0_keyhash, scripthash)."},"reqSigs":{"type":["integer","null"]}}}}}},"size":{"type":"integer","description":"Transaction size in bytes.","example":223},"time":{"type":"integer","description":"Block timestamp (Unix seconds).","example":1771321646},"version":{"type":"integer","example":2},"vsize":{"type":"integer","description":"Virtual size in bytes.","example":142},"weight":{"type":"integer","description":"Transaction weight.","example":565},"witnessHash":{"type":"string","description":"Witness data hash (SegWit)."}},"additionalProperties":true},"AdaTransactionHistoryItem":{"type":"object","description":"Cardano (ADA) transaction format for GET blockchains/transaction/history/utxos.","properties":{"block":{"type":"object","properties":{"hash":{"type":"string","description":"Block hash."},"number":{"type":"integer","description":"Block number."}}},"hash":{"type":"string","description":"Transaction hash."},"inputs":{"type":"array","items":{"type":"object","properties":{"address":{"type":"string"},"symbol":{"type":"string","example":"ADA"},"value":{"type":"string"},"txHash":{"type":"string"}}}},"outputs":{"type":"array","items":{"type":"object","properties":{"address":{"type":"string"},"symbol":{"type":"string","example":"ADA"},"value":{"type":"string"},"index":{"type":"integer"},"txHash":{"type":"string"}}}},"withdrawals":{"type":"array","description":"Stake withdrawals (optional, only if present).","items":{"type":"object","properties":{"address":{"type":"string"},"symbol":{"type":"string","example":"ADA"},"value":{"type":"string"},"txHash":{"type":"string"}}}},"fee":{"type":"string","description":"Transaction fee in lovelace."}},"additionalProperties":true},"BalanceSimple":{"type":"object","properties":{"balance":{"type":"string","description":"Native balance as string.","example":"0.1234"}}},"BalanceUtxo":{"type":"object","properties":{"balance":{"type":"string","description":"Calculated balance (incoming - outgoing - pending).","example":"100000"},"incoming":{"type":"string","description":"Confirmed incoming sum.","example":"150000"},"outgoing":{"type":"string","description":"Confirmed outgoing sum.","example":"30000"},"incomingPending":{"type":"string","description":"Pending incoming sum.","example":"5000"},"outgoingPending":{"type":"string","description":"Pending outgoing sum.","example":"15000"}}},"BalanceBatchItemSimple":{"type":"object","description":"Balance batch item for non-UTXO chains.","properties":{"address":{"type":"string","description":"The queried address.","example":"0x8ba1f109551bd432803012645ac136ddd64dba72"},"balance":{"type":"string","description":"Native balance as string.","example":"0.1234"}}},"BalanceBatchItemUtxo":{"type":"object","description":"Balance batch item for UTXO chains (Bitcoin, Litecoin, Dogecoin).","properties":{"address":{"type":"string","description":"The queried address."},"balance":{"type":"string","description":"Calculated balance (incoming - outgoing - pending).","example":"100000"},"incoming":{"type":"string","description":"Confirmed incoming sum.","example":"150000"},"outgoing":{"type":"string","description":"Confirmed outgoing sum.","example":"30000"},"incomingPending":{"type":"string","description":"Pending incoming sum.","example":"5000"},"outgoingPending":{"type":"string","description":"Pending outgoing sum.","example":"15000"}}},"EVMBlock":{"type":"object","description":"EVM-style block object (Ethereum, BSC, Polygon, etc.).","properties":{"hash":{"type":"string","example":"0x25b4ef2c43f1fffc1efa7d7b21069dfa70917a87fd6e46d8ff02dc9242b0da3a"},"number":{"type":"integer","example":24475922},"height":{"type":"integer","description":"Alias for number.","example":24475922},"parentHash":{"type":"string","example":"0xefa8d8861c803f97a0eac153adfb4da796cbdd084310895fbc74dd70a585198f"},"timestamp":{"type":"integer","example":1771323719},"gasUsed":{"type":"integer","example":20126114},"gasLimit":{"type":"integer","example":60000000},"miner":{"type":"string","example":"0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97"},"size":{"type":"integer","example":93801},"difficulty":{"type":"string","example":"0"},"baseFeePerGas":{"type":"string","example":"0x26c8b97"},"extraData":{"type":"string"},"transactions":{"type":"array","description":"Transaction objects with receipts (logs, status, etc.).","items":{"$ref":"#/components/schemas/EVMTransaction"}}},"example":{"baseFeePerGas":"0x26c8b97","difficulty":"0","extraData":"0x546974616e2028746974616e6275696c6465722e78797a29","gasLimit":60000000,"gasUsed":20126114,"hash":"0x25b4ef2c43f1fffc1efa7d7b21069dfa70917a87fd6e46d8ff02dc9242b0da3a","miner":"0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97","number":24475922,"parentHash":"0xefa8d8861c803f97a0eac153adfb4da796cbdd084310895fbc74dd70a585198f","size":93801,"timestamp":1771323719,"transactions":[{"blockHash":"0x25b4ef2c43f1fffc1efa7d7b21069dfa70917a87fd6e46d8ff02dc9242b0da3a","blockNumber":24475922,"from":"0x693ca5c6852a7d212dabc98b28e15257465c11f3","gas":448247,"gasPrice":"40668055","hash":"0x23c40aa8ff6a45d39206071005f462b71bf786a6095be5bd9f7734b06b2daef8","input":"0x09c5eabe...","nonce":157771,"to":"0x0000000aa232009084bd71a5797d089aa4edfad4","transactionIndex":0,"value":"0","type":2,"logs":[{"address":"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48","topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"],"data":"0x000000000000000000000000000000000000000000000000000000000001dfd4","blockNumber":24475922,"transactionHash":"0x23c40aa8ff6a45d39206071005f462b71bf786a6095be5bd9f7734b06b2daef8","transactionIndex":0,"logIndex":0}],"status":true,"transactionHash":"0x23c40aa8ff6a45d39206071005f462b71bf786a6095be5bd9f7734b06b2daef8"}],"transactionsRoot":"0xa714065fefc95e4e539ac2b2fdb676d4581df1698b74ac205f24728c87d95c0f","height":24475922},"additionalProperties":true},"UtxoBlock":{"type":"object","description":"UTXO-style block object (Bitcoin, Litecoin, Dogecoin).","properties":{"hash":{"type":"string","example":"00000000000000000001b29653de48d09ac74976734681c9aa660136a35d348b"},"height":{"type":"integer","example":937061},"time":{"type":"integer","example":1771322796},"size":{"type":"integer","example":1759585},"weight":{"type":"integer","example":3993592},"bits":{"type":"integer","example":386022526},"nonce":{"type":"integer","example":4071332163},"prevBlock":{"type":"string","example":"0000000000000000000239eedc8f375530ab78f2e3cdd5db7fb80246b6dfe3cb"},"merkleRoot":{"type":"string","example":"17589be1f8c5e103e2cbb03b6537edae3e24a6bcf91d47182b673c7390c6b219"},"nTx":{"type":"integer","example":3553},"txs":{"type":"array","description":"Transaction objects with inputs/outputs.","items":{"$ref":"#/components/schemas/UTXOTransaction"}}},"example":{"bits":386022526,"chainwork":"0000000000000000000000000000000000000001100e85b1ef0be06c970e01b4","confirmations":1,"difficulty":125864590119494.3,"hash":"00000000000000000001b29653de48d09ac74976734681c9aa660136a35d348b","height":937061,"mediantime":1771321646,"merkleRoot":"17589be1f8c5e103e2cbb03b6537edae3e24a6bcf91d47182b673c7390c6b219","nTx":3553,"nextBlock":null,"nonce":4071332163,"prevBlock":"0000000000000000000239eedc8f375530ab78f2e3cdd5db7fb80246b6dfe3cb","size":1759585,"strippedsize":744669,"time":1771322796,"txs":[{"blockNumber":937061,"fee":1376,"hash":"ed06329c0844ce9985dda3881ec91448c7915c24eda1196076a937d7fd145632","hex":"02000000000101d29b587fb5e3dea3fd744d3930a7fb4888d54355a4c170352afecc5b46d94ca50000000000fdffffff034f74000000000000160014a3ee5216c6dc21d68e99d60c43e92ad60ad36fdf...","index":97,"inputs":[{"prevout":{"hash":"a54cd9465bccfe2a3570c1a45543d58848fba730394d74fda3dee3b57f589bd2","index":0},"sequence":4294967293,"script":"","coin":{"version":2,"height":937056,"value":75211,"script":"00148410ef37a35b6ad9f6e0d993a0f4b3eec467ab65","address":"bc1qssgw7dartd4dnahqmxf6pa9namzx02m9vck74q","type":"witness_v0_keyhash","reqSigs":1,"coinbase":false}}],"locktime":0,"outputs":[{"value":29775,"script":"0014a3ee5216c6dc21d68e99d60c43e92ad60ad36fdf","address":"bc1q50h9y9kxmssadr5e6cxy86f26c9dxm7lf5k7c9","scriptPubKey":{"type":"witness_v0_keyhash","reqSigs":1}},{"value":2361,"script":"001484982cb717048bd8fd9162a130f6e8444c6678e3","address":"bc1qsjvzedchqj9a3lv3v2snpahgg3xxv78rxpckfy","scriptPubKey":{"type":"witness_v0_keyhash","reqSigs":1}}],"size":254,"time":1771322796},{"blockNumber":937061,"fee":160,"hash":"fcd661749f6d97532838a3cbb68027954b24b572e5193514b2ff9f750e5514ef","index":886,"inputs":[{"prevout":{"hash":"0cf67c54ce8bdb771eb859c9633bfbe8c81fc49b830fe2b174cc50682f12c00f","index":0},"sequence":4294967293,"script":"","coin":{"version":2,"height":937061,"value":11020,"address":"bc1qjyzrjfw8fd8eq5vrwpxpnwdnkkla6mgudgvs0q","type":"witness_v0_keyhash","reqSigs":1,"coinbase":false}}],"locktime":937059,"outputs":[{"value":10860,"script":"001449a26a18aebdfa41680566422798e3cfe6656f80","address":"bc1qfx3x5x9whhayz6q9vepz0x8relnx2muq6g8v9g","scriptPubKey":{"type":"witness_v0_keyhash","reqSigs":1}}],"size":191,"time":1771322796}],"version":537116672,"versionHex":"2003c000","weight":3993592},"additionalProperties":true},"UtxoRawTransaction":{"type":"object","description":"Raw node (bitcoind-style RPC) transaction object. Returned by Bitcoin Cash (bch-mainnet, bch-testnet)\ninstead of the normalized UTXO format. Fields mirror the node's verbose getrawtransaction response\n(vin/vout with scriptSig/scriptPubKey).\n","properties":{"txid":{"type":"string","example":"1215937ef87b10e8674456bd7dfb79afe1855f6ee4c7ea931d716f0cbb89805c"},"hash":{"type":"string","example":"1215937ef87b10e8674456bd7dfb79afe1855f6ee4c7ea931d716f0cbb89805c"},"version":{"type":"integer","example":2},"size":{"type":"integer","example":192},"locktime":{"type":"integer","example":0},"vin":{"type":"array","description":"Transaction inputs (node RPC format).","items":{"type":"object","properties":{"txid":{"type":"string","description":"Previous output transaction id (absent for coinbase inputs)."},"vout":{"type":"integer","description":"Previous output index (absent for coinbase inputs)."},"scriptSig":{"type":"object","properties":{"asm":{"type":"string"},"hex":{"type":"string"}}},"coinbase":{"type":"string","description":"Present only on coinbase inputs."},"sequence":{"type":"integer","example":4294967295}}}},"vout":{"type":"array","description":"Transaction outputs (node RPC format).","items":{"type":"object","properties":{"value":{"type":"number","description":"Output value in whole coins (BCH), as returned by the node.","example":28.54999808},"n":{"type":"integer","example":0},"scriptPubKey":{"type":"object","properties":{"asm":{"type":"string"},"hex":{"type":"string"},"reqSigs":{"type":"integer"},"type":{"type":"string","example":"pubkeyhash"},"addresses":{"type":"array","items":{"type":"string"},"example":["bitcoincash:qp6zx0kqzcdm3um4673ru7esss20gunnlqlwryjjrj"]}}}}}},"hex":{"type":"string","description":"Raw transaction hex."},"blockhash":{"type":"string","example":"000000000000000001cf8b3ed385197edfc0550fcb33923b455e77938286b66e"},"confirmations":{"type":"integer","example":2},"time":{"type":"integer","example":1780318545},"blocktime":{"type":"integer","example":1780318545}},"additionalProperties":true},"UtxoRawBlock":{"type":"object","description":"Raw node (bitcoind-style RPC) block object. Returned by Bitcoin Cash (bch-mainnet, bch-testnet)\ninstead of the normalized UTXO format. Fields mirror the node's verbose getblock response; tx contains\nfull raw transactions (see UtxoRawTransaction).\n","properties":{"hash":{"type":"string","example":"000000000000000001cf8b3ed385197edfc0550fcb33923b455e77938286b66e"},"confirmations":{"type":"integer","example":2},"size":{"type":"integer","example":26214},"height":{"type":"integer","example":953480},"version":{"type":"integer","example":536928256},"versionHex":{"type":"string","example":"2000e000"},"merkleroot":{"type":"string","example":"cef9c3c173c74fc7b8fe2f9d00e4654fa4f765c7905d22f3b4ff9937a90266c7"},"tx":{"type":"array","description":"Full raw transactions included in the block (node RPC format).","items":{"$ref":"#/components/schemas/UtxoRawTransaction"}},"time":{"type":"integer","example":1780318545},"mediantime":{"type":"integer","example":1780316287},"nonce":{"type":"integer","example":2347680863},"bits":{"type":"string","example":"1801ef0e"},"difficulty":{"type":"number","example":568564824958.5759},"chainwork":{"type":"string","example":"000000000000000000000000000000000000000002f303eb5119b612b1e9dae2"},"nTx":{"type":"integer","example":57},"previousblockhash":{"type":"string","example":"0000000000000000013b6e5ebfefb6b1d99c0a5b7b1971856e4a50182c388f6a"},"nextblockhash":{"type":"string","example":"000000000000000000fb514420dd764c6409fc11f6e9265276913b941b6b3994"},"ablastate":{"type":"object","description":"BCH ABLA (Adaptive Blocksize Limit Algorithm) state.","properties":{"epsilon":{"type":"integer"},"beta":{"type":"integer"},"blocksize":{"type":"integer"},"blocksizelimit":{"type":"integer"},"nextblocksizelimit":{"type":"integer"}}}},"additionalProperties":true},"ChainEnumForCollections":{"type":"string","example":"ethereum-mainnet","enum":["ethereum-mainnet","ethereum-sepolia","ethereum-holesky","base-mainnet","base-sepolia","arb-one-mainnet","arb-testnet","bsc-mainnet","bsc-testnet","polygon-mainnet","optimism-mainnet","optimism-testnet","berachain-mainnet","unichain-mainnet","unichain-sepolia","monad-testnet","celo-mainnet","celo-testnet","chiliz-mainnet","tezos-mainnet"]},"ChainEnumForTxnByHash":{"type":"string","example":"ethereum-mainnet","enum":["ethereum-mainnet","ethereum-sepolia","ethereum-holesky","base-mainnet","base-sepolia","arb-one-mainnet","arb-testnet","bsc-mainnet","bsc-testnet","polygon-mainnet","optimism-mainnet","optimism-testnet","berachain-mainnet","unichain-mainnet","unichain-sepolia","monad-mainnet","monad-testnet","celo-mainnet","celo-testnet","chiliz-mainnet","tezos-mainnet"]},"ChainEnumForExchangeRateByContract":{"type":"string","example":"ethereum-mainnet","enum":["ethereum-mainnet","solana-mainnet","base-mainnet","arb-one-mainnet","bsc-mainnet","polygon-mainnet","optimism-mainnet","berachain-mainnet","unichain-mainnet","celo-mainnet"]},"ChainEnumForOwners":{"type":"string","example":"ethereum-mainnet","enum":["ethereum-mainnet","ethereum-sepolia","ethereum-holesky","base-mainnet","base-sepolia","arb-one-mainnet","arb-testnet","bsc-mainnet","polygon-mainnet","optimism-mainnet","optimism-testnet","berachain-mainnet","unichain-mainnet","unichain-sepolia","monad-testnet","celo-mainnet","celo-testnet"]},"ChainEnumForMetadata":{"type":"string","example":"ethereum-mainnet","enum":["ethereum-mainnet","ethereum-sepolia","ethereum-holesky","base-mainnet","base-sepolia","arb-one-mainnet","arb-testnet","bsc-mainnet","bsc-testnet","polygon-mainnet","optimism-mainnet","optimism-testnet","berachain-mainnet","unichain-mainnet","unichain-sepolia","monad-testnet","celo-mainnet","celo-testnet","chiliz-mainnet"]},"ChainEnumForOwnersAddress":{"type":"string","example":"ethereum-mainnet","enum":["ethereum-mainnet","ethereum-sepolia","ethereum-holesky","base-mainnet","base-sepolia","arb-one-mainnet","arb-testnet","bsc-mainnet","bsc-testnet","polygon-mainnet","optimism-mainnet","optimism-testnet","berachain-mainnet","unichain-mainnet","unichain-sepolia","monad-mainnet","monad-testnet","celo-mainnet","celo-testnet","chiliz-mainnet"]},"ChainEnumForBalanceByTime":{"type":"string","example":"ethereum-mainnet","enum":["ethereum-mainnet","bitcoin-mainnet","base-mainnet","arb-one-mainnet","bsc-mainnet","polygon-mainnet","optimism-mainnet","berachain-mainnet","unichain-mainnet","celo-mainnet"]},"ChainEnumForWalletResolve":{"type":"string","example":"ethereum-mainnet","enum":["ethereum-mainnet","base-mainnet","arb-one-mainnet","bsc-mainnet","solana-mainnet"]},"ChainUtxoEnum":{"description":"The blockchain to work with.","type":"string","example":"bitcoin","enum":["bitcoin","bitcoin-mainnet","bitcoin-testnet","litecoin","litecoin-mainnet","litecoin-testnet","doge","doge-mainnet","doge-testnet","cardano","cardano-mainnet","cardano-preprod"]},"Utxo":{"type":"object","required":["chain","address","txHash","index","value","valueAsString"],"properties":{"chain":{"$ref":"#/components/schemas/ChainUtxoEnum"},"address":{"type":"string","description":"Address of the UTXO","example":"bc1qmfp2r68cde646jv5ns7x2qvah8v5qtfw8gznj2"},"txHash":{"type":"string","description":"Hash of the transaction this UTXO is present in","example":"0x1b5b3e8a671434bf5d0d38e3e52dcafac484441a48bfae4a3f71e5b0b3093d8e"},"index":{"type":"number","description":"Index of the UTXO in the transaction","example":0},"value":{"type":"number","description":"Value of the UTXO, in BTC, LTC or DOGE.","example":0.0001},"valueAsString":{"type":"string","description":"String representation of the value of the UTXO, in BTC, LTC or DOGE.","example":"0.0001"}}},"TokenId":{"type":"string","description":"ID of the token.","maxLength":78,"example":"3","format":"uint256"},"TokenIds":{"type":"string","description":"IDs of the token.","maxLength":78,"example":"3,4","format":"uint256"},"TokenAddress":{"type":"string","description":"Contract address of the token.","example":"0xba30E5F9Bb24caa003E9f2f0497Ad287FDF95623"},"CurrencySymbol":{"type":"string","description":"The fiat or crypto asset to exchange.","example":"BTC"},"ExcludeMetadata":{"type":"boolean","example":false},"NftMetadataURI":{"type":"string","description":"Metadata URL of the token. This data doesn't have to be present.\nThe safest way to obtain them in that case is from the NFT Contract.tokenURI() method call.\n","example":"ipfs://QmTDcCdt3yb6mZitzWBmQr65AW6Wska295Dg9nbEYpSUDR/3"},"NftMetadata":{"type":"object","description":"Metadata scheme obtained from the url. This data don't have to be present.\nThe safest way to obtain them in that case is from the NFT Contract.tokenURI() method call.\n","example":{"image":"ipfs://QmamEqaaVttv9AvfgM4Wa7d9Ettonep1NBQSDCtM7THUSX","attributes":[{"trait_type":"Background","value":"Club Exterior"},{"trait_type":"Fur","value":"Radioactive"},{"trait_type":"Back","value":"Beer Kegs"},{"trait_type":"Mouth","value":"Goofball"},{"trait_type":"Eyes","value":"Closed"}]}},"BlockNumber":{"type":"number","example":16499510,"minimum":0},"BlockNumberTo":{"type":"number","example":16779230,"minimum":0},"PageSize":{"type":"number","example":10,"minimum":1,"maximum":50},"Cursor":{"type":"string","description":"Cursor pagination, used to get next page or previous page of results. The size of result is defined by the `pageSize` parameter. \nThe cursor is a base64 encoded string, user can get the value from a response in the `nextPage` or `prevPage` field. \nIf the nextPage or prevPage fields are not present in the response body, pagination is usually available with the `offset` and `pageSize` parameters.\n","example":"MzYxNTQ3MHwyNDV8cHJldg=="},"Offset":{"type":"number","example":0},"ExchangeRate":{"description":"FIAT value in EURO of the FIAT or crypto asset.","properties":{"id":{"description":"FIAT or crypto asset.","example":"BTC","$ref":"#/components/schemas/FiatOrCryptoCurrency"},"value":{"description":"FIAT value of the asset in given base pair.","example":"1235.56","type":"string"},"basePair":{"description":"Base pair.","example":"EUR","default":"EUR","$ref":"#/components/schemas/FiatOrCryptoCurrency"},"timestamp":{"description":"Date of validity of rate in UTC.","example":1572031674384,"type":"number"},"source":{"description":"Source of base pair.","example":"fixer.io","type":"string"},"batchId":{"description":"Used for identification in batch calls","example":"one","type":"string"}},"type":"object","required":["id","value","basePair","timestamp","source"]},"ExchangeRateBySymbol":{"description":"FIAT value in EURO of the FIAT or crypto asset.","properties":{"value":{"description":"FIAT value of the asset in given base pair.","example":"1235.56","type":"string"},"basePair":{"description":"Base pair.","example":"EUR","default":"EUR","$ref":"#/components/schemas/FiatOrCryptoCurrency"},"timestamp":{"description":"Date of validity of rate in UTC.","example":1572031674384,"type":"number"},"source":{"description":"Source of base pair.","example":"fixer.io","type":"string"},"batchId":{"description":"Used for identification in batch calls","example":"one","type":"string"},"symbol":{"description":"FIAT or crypto asset.","example":"BTC","$ref":"#/components/schemas/FiatOrCryptoCurrency"}},"type":"object","required":["value","basePair","timestamp","source","symbol"]},"HistoricalPriceSymbol":{"description":"Enum for trading pair symbols used in historical prices. These are the base symbols that are supported for historical price queries.","type":"string","enum":["BTC","ETH","BNB","NEO","LTC","QTUM","ADA","XRP","TUSD","IOTA","XLM","ONT","TRX","ETC","ICX","VET","USDC","LINK","ONG","HOT","ZIL","ZRX","FET","BAT","ZEC","IOST","CELR","DASH","THETA","ENJ","ATOM","TFUEL","ONE","ALGO","DOGE","DUSK","ANKR","WIN","COS","MTL","DENT","WAN","FUN","CVC","CHZ","BAND","XTZ","RVN","HBAR","NKN","STX","KAVA","ARPA","IOTX","RLC","BCH","FTT","EUR","OGN","LSK","BNT","MBL","COTI","DATA","SOL","CTSI","HIVE","CHR","ARDR","MDT","KNC","LRC","COMP","SC","ZEN","SNX","VTHO","DGB","SXP","DCR","STORJ","MANA","YFI","JST","CRV","SAND","NMR","DOT","LUNA","RSR","PAXG","TRB","SUSHI","KSM","EGLD","DIA","RUNE","FIO","UMA","BEL","UNI","OXT","SUN","AVAX","UTK","XVS","AAVE","NEAR","FIL","INJ","AUDIO","CTK","AXS","STRAX","ROSE","AVA","SKL","GRT","JUV","PSG","1INCH","OG","ATM","ASR","CELO","RIF","TRU","CKB","TWT","SFP","DODO","CAKE","ACM","FIS","OM","POND","DEGO","ALICE","SUPER","CFX","TKO","PUNDIX","TLM","BAR","FORTH","SLP","SHIB","ICP","AR","MASK","LPT","XVG","ATA","GTC","PHA","MLN","DEXE","C98","QNT","FLOW","MINA","RAY","FARM","QUICK","MBOX","REQ","GHST","WAXP","GNO","XEC","DYDX","IDEX","USDP","GALA","ILV","YGG","SYS","DF","FIDA","AGLD","RAD","RARE","LAZIO","CHESS","ADX","AUCTION","MOVR","CITY","ENS","QI","PORTO","POWR","JASMY","AMP","PYR","ALCX","SANTOS","BICO","FLUX","FXS","VOXEL","HIGH","CVX","PEOPLE","SPELL","JOE","ACH","IMX","GLMR","SCRT","API3","BTTC","ACA","XNO","WOO","ALPINE","T","ASTR","GMT","APE","BIFI","STEEM","NEXO","REI","LDO","OP","STG","LUNC","GMX","POLYX","APT","OSMO","HFT","PHB","HOOK","MAGIC","RP","GNS","SYN","SSV","LQTY","USTC","GAS","GLM","PROM","QKC","ID","ARB","RDNT","WBTC","EDU","SUI","PEPE","FLOKI","MAV","PENDLE","ARKM","WBETH","WLD","FDUSD","SEI","CYBER","ARK","IQ","NTRN","TIA","MEME","ORDI","BEAMX","PIVX","VIC","BLUR","VANRY","AEUR","JTO","1000SATS","BONK","ACE","NFP","AI","XAI","MANTA","ALT","JUP","PYTH","RONIN","DYM","PIXEL","STRK","PORTAL","AXL","WIF","METIS","AEVO","BOME","ETHFI","ENA","W","TNSR","SAGA","TAO","REZ","BB","NOT","IO","ZK","LISTA","ZRO","G","BANANA","RENDER","TON","DOGS","EURI","POL","NEIRO","TURBO","1MBABYDOGE","CATI","HMSTR","EIGEN","SCR","BNSOL","LUMIA","KAIA","COW","CETUS","PNUT","ACT","USUAL","THE","ACX","ORCA","MOVE","ME","VELODROME","VANA","1000CAT","PENGU","BIO","D","AIXBT","CGPT","COOKIE","S","SOLV","TRUMP","ANIME","BERA","1000CHEEMS","TST","LAYER","HEI","KAITO","SHELL","RED","GPS","EPIC","BMT","FORM","XUSD","NIL","PARTI","MUBARAK","TUT","BROCCOLI714","BANANAS31","GUN","BABY","ONDO","BIGTIME","VIRTUAL","KERNEL","WCT","HYPER","INIT","SIGN","STO","SYRUP","KMNO","SXT","NXPC","AWE","HAEDAL","USD1","HUMA","A","SOPH","RESOLV","HOME","SPK","NEWT","SAHARA","LA","ERA","C","TREE","A2Z","TOWNS","PROVE","BFUSD","PLUME","DOLO","MITO","WLFI","SOMI","OPEN","USDE","LINEA","HOLO","PUMP","AVNT","ZKC","SKY","BARD","0G","HEMI","XP","MIRA","FF","EDEN","NOM","2Z","MORPH","ASTER","WAL","EUL","ENSO","YB","ZBT","TURTLE","GIGGLE","F","KITE","MMT","SAPIEN","ALLO","BANK","MET"],"example":"BTC"},"HistoricalPrice":{"description":"Historical price data for a trading pair at a specific point in time. Includes 1-minute interval OHLCV (Open, High, Low, Close, Volume) data.","type":"object","properties":{"symbol":{"description":"Base symbol of the trading pair without (e.g., \"BTC\").","type":"string","example":"BTC"},"openTime":{"description":"Kline open time in milliseconds (Unix timestamp).","type":"number","example":1499040000000},"open":{"description":"Open price.","type":"string","example":"0.01634790"},"high":{"description":"High price.","type":"string","example":"0.80000000"},"low":{"description":"Low price.","type":"string","example":"0.01575800"},"close":{"description":"Close price.","type":"string","example":"0.01577100"},"closeTime":{"description":"Kline close time in milliseconds (Unix timestamp).","type":"number","example":1499644799999},"volume":{"description":"Base asset volume.","type":"string","example":"148976.11427815"},"quoteAssetVolume":{"description":"Quote asset volume (USDT).","type":"string","example":"2434.19055334"},"numberOfTrades":{"description":"Number of trades.","type":"number","example":308},"takerBuyBaseAssetVolume":{"description":"Taker buy base asset volume.","type":"string","example":"1756.87402397"},"takerBuyQuoteAssetVolume":{"description":"Taker buy quote asset volume.","type":"string","example":"28.46694368"}},"required":["symbol","openTime","open","high","low","close","closeTime","volume","quoteAssetVolume","numberOfTrades","takerBuyBaseAssetVolume","takerBuyQuoteAssetVolume"]},"PriceChangeResponse":{"description":"Price change data for a trading pair over a specified time range or interval. Includes open and close prices, timestamps, and calculated absolute and percentage changes.","type":"object","properties":{"symbol":{"description":"Base symbol of the trading pair (e.g., \"BTC\").","type":"string","example":"BTC"},"basePair":{"description":"Quote asset of the trading pair (e.g., \"USDT\", \"ETH\").","type":"string","example":"USDT"},"open":{"description":"Opening price at the start of the time range/interval.","type":"string","example":"45000.50"},"close":{"description":"Closing price at the end of the time range/interval.","type":"string","example":"46500.75"},"openTime":{"description":"Opening time in milliseconds (Unix timestamp).","type":"number","example":1704067200000},"closeTime":{"description":"Closing time in milliseconds (Unix timestamp).","type":"number","example":1704153600000},"absoluteChange":{"description":"Absolute price change (close - open) as a string.","type":"string","example":"1500.25"},"percentageChange":{"description":"Percentage price change as a number.","type":"number","format":"double","example":3.33},"batchId":{"description":"Echoed from the request for identification.","type":"string","example":"one"}},"required":["symbol","basePair","open","close","openTime","closeTime","absoluteChange","percentageChange"]},"PriceChangeBatchQuery":{"description":"Single item for the price-change batch request. Provide either (timeFrom + timeTo) or interval, and a batchId for correlation.","type":"object","properties":{"symbol":{"description":"Base symbol (e.g., \"BTC\", \"ETH\").","$ref":"#/components/schemas/HistoricalPriceSymbol"},"basePair":{"description":"Quote asset (e.g., \"USDT\", \"ETH\"). Defaults to \"USDT\".","type":"string","example":"USDT"},"timeFrom":{"description":"Range start (ISO 8601). Required if not using interval.","type":"string","format":"date-time"},"timeTo":{"description":"Range end (ISO 8601). Required if not using interval.","type":"string","format":"date-time"},"interval":{"description":"Predefined interval (e.g. \"1h\", \"1d\", \"1w\", \"1M\"). Use instead of timeFrom/timeTo.","type":"string","enum":["1m","5m","15m","30m","45m","1h","2h","4h","1d","1w","1M","1y"]},"batchId":{"description":"Client-defined id returned with the result for this item.","type":"string","example":"one"}},"required":["symbol","batchId"]},"ExchangeRateByContract":{"description":"FIAT value in EURO of the crypto asset by contract address on chain.","properties":{"value":{"description":"FIAT value of the asset in given base pair.","example":"0.85537833","type":"string"},"basePair":{"description":"Base pair.","example":"EUR","default":"EUR","$ref":"#/components/schemas/FiatOrCryptoCurrency"},"timestamp":{"description":"Date of validity of rate in UTC.","example":1757572639823,"type":"number"},"source":{"description":"Source of base pair.","example":"Tatum","type":"string"},"chain":{"type":"string","description":"Chain.","example":"ethereum-mainnet"},"address":{"type":"string","description":"Contract address.","example":"0xdac17f958d2ee523a2206206994597c13d831ec7"}},"type":"object","required":["value","basePair","timestamp","source","chain","address"]},"ExchangeRateByContractBatchItem":{"description":"Exchange rate by contract address (batch response item). Same as ExchangeRateByContract with optional batchId for identification.\nWhen a token price is not available (e.g. token not found by provider), value and timestamp are null and error contains the reason.\n","properties":{"value":{"description":"FIAT value of the asset in given base pair. Null when price is not available.","example":"0.85537833","type":"string","nullable":true},"basePair":{"description":"Base pair.","example":"EUR","default":"EUR","$ref":"#/components/schemas/FiatOrCryptoCurrency"},"timestamp":{"description":"Date of validity of rate in UTC. Null when price is not available.","example":1757572639823,"type":"number","nullable":true},"source":{"description":"Source of base pair.","example":"Tatum","type":"string"},"chain":{"type":"string","description":"Chain.","example":"ethereum-mainnet"},"address":{"type":"string","description":"Contract address.","example":"0xdac17f958d2ee523a2206206994597c13d831ec7"},"batchId":{"description":"Identification from the request, returned with the result pair.","example":"1","type":"string"},"error":{"description":"Present when price is not available (e.g. Token not found).","type":"object","properties":{"message":{"type":"string","example":"Token not found"}},"required":["message"]}},"type":"object","required":["value","basePair","timestamp","source","chain","address"]},"RateByContractAddressQuery":{"description":"Single pair for batch exchange rate by contract address.","type":"object","properties":{"chain":{"description":"The blockchain to work with.","$ref":"#/components/schemas/ChainEnumForExchangeRateByContract"},"contractAddress":{"description":"The blockchain contract address of the smart contract.","type":"string","example":"0xdac17f958d2ee523a2206206994597c13d831ec7"},"basePair":{"description":"The target fiat asset to get the exchange rate for.","$ref":"#/components/schemas/FiatCurrency","example":"USD"},"batchId":{"description":"Used for identification, will be returned with result pair.","type":"string","example":"1"}},"required":["chain","contractAddress","basePair","batchId"]},"RateQuery":{"type":"object","properties":{"batchId":{"description":"Used for identification, will be returned with result pair","example":"one","type":"string"},"basePair":{"description":"Base pair.","example":"EUR","$ref":"#/components/schemas/FiatCurrency"},"currency":{"description":"FIAT or crypto asset.","example":"BTC","$ref":"#/components/schemas/CurrencySymbol"}},"required":["batchId","basePair","currency"]},"RateBySymbolQuery":{"type":"object","properties":{"batchId":{"description":"Used for identification, will be returned with result pair","example":"one","type":"string"},"basePair":{"description":"Base pair (target asset).\nFree plan accepts only fiat currencies, USDT or USDC.\nPaid plans accept any supported fiat or crypto symbol.\n","example":"EUR","type":"string"},"symbol":{"description":"FIAT or crypto asset.","example":"BTC","$ref":"#/components/schemas/CurrencySymbol"}},"required":["batchId","basePair","symbol"]},"NftBalanceByAddressErc721":{"type":"object","required":["contractAddress","balances","metadata"],"properties":{"contractAddress":{"type":"string","example":"43821281","description":"On Algorand, this is the asset ID (the ID of the NFT); on the other blockchains, this is the address of the NFT smart contract."},"balances":{"type":"array","description":"On Algorand, this is either an array of \"1\" to indicate that the NFTs with the specified IDs exist, or an array with the number of NFT fractions if the NFTs are <a href=\"https://developer.algorand.org/docs/get-started/tokenization/nft/#fractional-nfts\" target=\"_blank\">fractional</a>; on the other blockchains, this is an array of the IDs of the NFTs.","items":{"type":"string","maxLength":78,"example":"123","format":"uint256"}},"metadata":{"type":"array","items":{"$ref":"#/components/schemas/NftTokenByAddressErc721TokenMetadata"}},"supply":{"type":"number","example":10,"description":"(Algorand only) The number of fractions in the NFT if the NFT is <a href=\"https://developer.algorand.org/docs/get-started/tokenization/nft/#fractional-nfts\" target=\"_blank\">fractional</a>"},"decimals":{"type":"number","example":1,"description":"(Algorand only) The number of decimal places in an NFT fraction if the NFT is <a href=\"https://developer.algorand.org/docs/get-started/tokenization/nft/#fractional-nfts\" target=\"_blank\">fractional</a>"}}},"NftTokenByAddressErc721TokenMetadata":{"type":"object","properties":{"tokenId":{"description":"(EVM-based blockchains only) The ID of the NFT owned by this address","type":"string","maxLength":78,"example":"123","format":"uint256"},"url":{"description":"The URL pointing to the NFT metadata; the URL may not be present, and if it is not returned, you can get it by calling the NFT Contract.tokenURI() method","example":"ipfs://QmXFpaS3S7CkLZvihLFA9JbawKdqhjg8dJeDkPntmkD2Pc","type":"string"},"metadata":{"$ref":"#/components/schemas/NftTokenByAddressErc721Metadata"}}},"NftTokenByAddressErc721Metadata":{"type":"object","description":"The metadata scheme obtained from the metadata URL; the scheme may not be present, and if it is not returned, you can get it using the <a href=\"#operation/NftGetMetadataErc721\">NFT metadata API</a>","example":{"name":"Example NFT name","description":"Example NFT description","image":"ipfs://QmP4R7ACZ7JRQ6sLdmnPHqjWEXxzdnPvhAV2f6RnQ8uxJ6"}},"EstimateGasResult":{"type":"object","description":"Result of the gas estimation","properties":{"gasPrice":{"description":"The estimated price for one gas unit (in wei)","example":"10000000000","type":"string"},"gasLimit":{"description":"The number of the gas units needed to process the transaction at the estimated gas price","example":"21000","type":"string"}}},"EstimateGas":{"type":"object","required":["from","to","amount","chain"],"properties":{"from":{"type":"string","description":"Blockchain address of the sender","example":"0xfb99f8ae9b70a0c8cd96ae665bbaf85a7e01a2ef"},"to":{"type":"string","description":"Blockchain address of the recipient","example":"0x687422eEA2cB73B5d3e242bA5456b782919AFc85"},"amount":{"type":"string","description":"Amount to be sent","example":"100000"},"data":{"type":"string","description":"Data to be sent","example":"0x"},"contractAddress":{"type":"string","description":"Contract address of the token (only for ETH)","example":"0x687422eEA2cB73B5d3e242bA5456b782919AFc85"},"chain":{"type":"string","description":"Blockchain to estimate gas for","enum":["BSC","CELO","EGLD","ETH","ONE","KLAY","KCS","FLR","CRO","AVAX","BASE","POL_ETH","OPTIMISM","FTM","S"]}}},"BlockchainFee":{"description":"Recommended fees to perform blockchain transaction","properties":{"fast":{"description":"Fast transaction acceptance time into block. For btc-based chains - fee per byte. For evm-based chains - gas price in wei","example":14766927339,"type":"number"},"medium":{"description":"Medium transaction acceptance time into block. For btc-based chains - fee per byte. For evm-based chains - gas price in wei","example":13333333333,"type":"number"},"slow":{"description":"Slow transaction acceptance time into block. For btc-based chains - fee per byte. For evm-based chains - gas price in wei","example":12953333333,"type":"number"},"baseFee":{"description":"(evm-based only) This is the minimum fee needs to paid in order for the tx to be accepted into block.","example":12657357496,"type":"number"},"time":{"description":"Last time fees were recalculated","example":"2022-12-08T08:42:04.518Z","type":"string"},"block":{"description":"Last used to calculate fee from","example":16138867,"type":"number"}},"type":"object","required":["fast","medium","slow","time","block"]},"EstimateFee":{"type":"object","required":["chain","type"],"properties":{"chain":{"type":"string","description":"The blockchain to estimate the fee for","enum":["CELO","ETH","BSC","XDC","ONE","MATIC","KLAY"]},"type":{"type":"string","description":"The type of the transaction","enum":["DEPLOY_ERC20","DEPLOY_NFT","MINT_NFT","BURN_NFT","TRANSFER_NFT","TRANSFER_ERC20","DEPLOY_AUCTION","DEPLOY_MARKETPLACE"]},"sender":{"type":"string","maxLength":42,"minLength":42,"example":"0xfb99f8ae9b70a0c8cd96ae665bbaf85a7e01a2ef","description":"(Only if <code>type=TRANSFER_ERC20</code>) The blockchain address of the sender address"},"recipient":{"description":"(Only if <code>type=TRANSFER_ERC20</code>) The blockchain address of the recipient address","example":"0x687422eEA2cB73B5d3e242bA5456b782919AFc85","maxLength":42,"minLength":42,"type":"string"},"contractAddress":{"description":"(Only if <code>type=TRANSFER_ERC20</code>) The blockchain address of the smart address of the fungible token","example":"0x687422eEA2cB73B5d3e242bA5456b782919AFc85","maxLength":42,"minLength":42,"type":"string"},"amount":{"description":"(Only if <code>type=TRANSFER_ERC20</code>) The amount of the fungible token to be sent","example":"100000","pattern":"^[+]?((\\d+(\\.\\d*)?)|(\\.\\d+))$","type":"string"}}},"EstimateFeeBatchMintNft":{"type":"object","required":["chain","type","sender","recipients","tokenIds","urls","contractAddress"],"properties":{"chain":{"type":"string","description":"Blockchain to estimate fee for.","enum":["CELO","ETH","BSC","XDC","ONE","MATIC","KLAY"]},"type":{"type":"string","description":"Type of transaction","enum":["MINT_NFT_BATCH"]},"sender":{"type":"string","maxLength":42,"minLength":43,"example":"0xfb99f8ae9b70a0c8cd96ae665bbaf85a7e01a2ef","description":"Address of the minter"},"recipients":{"type":"array","description":"Blockchain addresses to mint tokens to","items":{"example":"0x687422eEA2cB73B5d3e242bA5456b782919AFc85","maxLength":42,"minLength":43,"type":"string"}},"contractAddress":{"description":"Contract address of NFT token","example":"0x687422eEA2cB73B5d3e242bA5456b782919AFc85","maxLength":42,"minLength":43,"type":"string"},"tokenIds":{"type":"array","description":"Token IDs","items":{"example":"100000","pattern":"^[+]?((\\d+(\\.\\d*)?)|(\\.\\d+))$","type":"string"}},"urls":{"type":"array","description":"Metadata URLs","items":{"example":"ipfs://QmXJJ6UF5WkF4WTJvsdhiA1etGwBLfpva7Vr9AudGMe3pj","pattern":"^[+]?((\\d+(\\.\\d*)?)|(\\.\\d+))$","type":"string"}}}},"EstimateFeeDeployCustodialWallet":{"type":"object","required":["chain","type","batchCount"],"properties":{"chain":{"type":"string","description":"Blockchain to estimate fee for.","enum":["CELO","ETH","BSC","XDC","ONE","MATIC","KLAY"]},"type":{"type":"string","description":"Type of transaction","enum":["DEPLOY_CUSTODIAL_WALLET_BATCH"]},"batchCount":{"description":"Number of addresses to create","example":10,"minimum":1,"maximum":300,"type":"number"}}},"EstimateFeeTransferFromCustodial":{"type":"object","required":["chain","type","sender","recipient","custodialAddress","amount","tokenType"],"properties":{"chain":{"type":"string","description":"The blockchain to estimate the fee for","enum":["CELO","ETH","BSC","XDC","KLAY","ONE","MATIC"]},"type":{"type":"string","description":"The type of the transaction","enum":["TRANSFER_CUSTODIAL"]},"sender":{"type":"string","maxLength":42,"example":"0xfb99f8ae9b70a0c8cd96ae665bbaf85a7e01a2ef","minLength":42,"description":"The blockchain address of the sender"},"recipient":{"description":"The blockchain address of the recipient","example":"0x687422eEA2cB73B5d3e242bA5456b782919AFc85","maxLength":42,"minLength":42,"type":"string"},"contractAddress":{"description":"Contract address of the token","example":"0x687422eEA2cB73B5d3e242bA5456b782919AFc85","maxLength":42,"minLength":42,"type":"string"},"custodialAddress":{"description":"The blockchain address of the custodial wallet contract","example":"0x687422eEA2cB73B5d3e242bA5456b782919AFc85","maxLength":42,"minLength":42,"type":"string"},"tokenType":{"description":"The type of the asset to transfer. Set <code>0</code> for fungible tokens (ERC-20 or equivalent), <code>1</code> for NFTs (ERC-721 or equivalent), <code>2</code> for Multi Tokens (ERC-1155 or equivalent), or <code>3</code> for native blockchain currencies.","example":0,"type":"number","minimum":0,"maximum":3,"enum":[0,1,2,3]},"amount":{"description":"<ul><li>If the asset to transfer is a fungible token, Multi Token, or a native blockchain currency, set this parameter to the amount to transfer.</li>\n<li>If the asset to transfer is an NFT, set this parameter to <code>1</code>.</li></ul>\n","example":"100000","pattern":"^[+]?((\\d+(\\.\\d*)?)|(\\.\\d+))$","type":"string"},"tokenId":{"description":"(only if tokenType = 1 or 2) Token id","example":"1234","type":"string","minimum":1}}},"EstimateFeeFromAddress":{"type":"object","required":["chain","type","fromAddress","to"],"properties":{"chain":{"type":"string","description":"Blockchain to estimate fee for.","enum":["BTC","DOGE","LTC"]},"type":{"type":"string","description":"Type of transaction","enum":["TRANSFER"]},"fromAddress":{"description":"Array of addresses. Tatum will automatically scan last 100 transactions for each address and will use all of the unspent values. We advise to use this option if you have 1 address per 1 transaction only.","type":"array","items":{"type":"string","example":"2N9bBiH2qrTDrPCzrNhaFGdkNKS86PJAAAS","minimum":30,"maximum":50}},"to":{"description":"Array of addresses and values to send bitcoins to. Values must be set in BTC. Difference between from and to is transaction fee.","type":"array","items":{"type":"object","required":["address","value"],"properties":{"address":{"description":"Destination address.","type":"string","example":"2MzNGwuKvMEvKMQogtgzSqJcH2UW3Tc5oc7","minimum":30,"maximum":60},"value":{"description":"Amount to be sent, in BTC.","type":"number","minimum":0,"example":0.02969944}}}}}},"EstimateFeeFromUTXO":{"type":"object","required":["chain","type","fromUTXO","to"],"properties":{"chain":{"type":"string","description":"Blockchain to estimate fee for.","enum":["BTC","DOGE","LTC"]},"type":{"type":"string","description":"Type of transaction","enum":["TRANSFER"]},"fromUTXO":{"description":"Array of transaction hashes, index of UTXO in it and corresponding private keys. Use this option if you want to calculate amount to send manually. Either fromUTXO or fromAddress must be present.","type":"array","items":{"type":"object","required":["txHash","index"],"properties":{"txHash":{"description":"Transaction hash of the UTXO to be spent.","type":"string","example":"53faa103e8217e1520f5149a4e8c84aeb58e55bdab11164a95e69a8ca50f8fcc","minLength":64,"maxLength":64},"index":{"description":"Index of the UTXO to be spent.","type":"number","example":0,"minimum":0,"maximum":2147483647}}}},"to":{"description":"Array of addresses and values to send bitcoins to. Values must be set in BTC. Difference between from and to is transaction fee.","type":"array","items":{"type":"object","required":["address","value"],"properties":{"address":{"description":"Destination address.","type":"string","example":"2MzNGwuKvMEvKMQogtgzSqJcH2UW3Tc5oc7","minimum":30,"maximum":60},"value":{"description":"Amount to be sent, in BTC.","type":"number","minimum":0,"example":0.02969944}}}}}},"FeeEvmBased":{"type":"object","required":["gasLimit","gasPrice"],"properties":{"gasLimit":{"type":"number","description":"Gas limit for transaction in gas price.","example":40000},"gasPrice":{"type":"number","description":"Gas price in Gwei.","example":20}}},"EthEstimateGas":{"type":"object","properties":{"from":{"type":"string","maxLength":42,"example":"0xfb99f8ae9b70a0c8cd96ae665bbaf85a7e01a2ef","minLength":42,"description":"Sender address."},"to":{"description":"Blockchain address to send assets","example":"0x687422eEA2cB73B5d3e242bA5456b782919AFc85","maxLength":42,"minLength":42,"type":"string"},"contractAddress":{"description":"Contract address of ERC20 token, if transaction is ERC20 token","example":"0x687422eEA2cB73B5d3e242bA5456b782919AFc85","maxLength":42,"minLength":42,"type":"string"},"amount":{"description":"Amount to be sent in Ether or ERC20.","example":"100000","pattern":"^[+]?((\\d+(\\.\\d*)?)|(\\.\\d+))$","type":"string"},"data":{"type":"string","maxLength":50000,"description":"Additional data that can be passed to a blockchain transaction as a data property; must be in the hexadecimal format","example":"4d79206e6f746520746f2074686520726563697069656e74","pattern":"^(0x|0h)?[0-9A-F]+$"}},"required":["to","amount","from"]},"EthEstimateGasArray":{"type":"object","required":["estimations"],"properties":{"estimations":{"type":"array","items":{"$ref":"#/components/schemas/EthEstimateGas"}}}},"GasEstimated":{"type":"object","required":["gasLimit","gasPrice"],"properties":{"gasPrice":{"type":"string","description":"The estimated price for one gas unit (in wei)","example":"10000000000"},"gasLimit":{"type":"number","description":"The number of the gas units needed to process the transaction at the estimated gas price","example":"21000"}}},"XdcEstimateGas":{"type":"object","properties":{"from":{"type":"string","maxLength":43,"example":"xdcfb99f8ae9b70a0c8cd96ae665bbaf85a7e01a2ef","minLength":42,"description":"Sender address."},"to":{"description":"Blockchain address to send assets","example":"xdc687422eEA2cB73B5d3e242bA5456b782919AFc85","maxLength":43,"minLength":42,"type":"string"},"amount":{"description":"Amount to be sent in XDC.","example":"100000","pattern":"^[+]?((\\d+(\\.\\d*)?)|(\\.\\d+))$","type":"string"}},"required":["to","amount","from"]},"VetEstimateGas":{"type":"object","required":["from","to","value"],"properties":{"from":{"description":"Sender account address.","type":"string","maxLength":50,"example":"0x5034aa590125b64023a0262112b98d72e3c8e40e"},"to":{"type":"string","description":"Recipient account address.","maxLength":50,"example":"0x5034aa590125b64023a0262112b98d72e3c8e40e"},"value":{"type":"string","description":"Amount to send.","maxLength":50,"example":"140"},"data":{"type":"string","description":"Data to send to Smart Contract","maxLength":10000},"nonce":{"type":"number","description":"Nonce","example":12345}}},"ChainEnumForTrendingTokens":{"type":"string","description":"Chains supported by the tokens and wallets endpoints.\n","enum":["ethereum-mainnet","base-mainnet"]},"TimeframeEnum":{"type":"string","description":"Aggregation window used to compute the trend.","enum":["5m","15m","1h","3h","6h","1d"]},"PriceChanges":{"type":"object","additionalProperties":false,"description":"Percentage price change (%) over each timeframe.","properties":{"5m":{"type":"number","description":"Change in the last 5 minutes.","example":1.1},"15m":{"type":"number","description":"Change in the last 15 minutes.","example":2.3},"1h":{"type":"number","description":"Change in the last hour.","example":-0.5},"3h":{"type":"number","description":"Change in the last 3 hours.","example":4.2},"6h":{"type":"number","description":"Change in the last 6 hours.","example":9.9},"1d":{"type":"number","description":"Change in the last 24 hours.","example":12.5}}},"TrendingToken":{"type":"object","description":"Trending token summary.","properties":{"rank":{"type":"integer","minimum":1,"description":"Position in the trending list (1 = most trending).","example":1},"name":{"type":"string","description":"Token name.","example":"Example Token"},"tokenAddress":{"type":"string","description":"Token contract address (lowercased for EVM chains).","example":"0x1111111111111111111111111111111111111111"},"symbol":{"type":"string","description":"Token symbol or ticker.","example":"EXMPL"},"chain":{"$ref":"#/components/schemas/ChainEnumForTrendingTokens"},"type":{"type":"string","description":"Token type (e.g., fungible, nft, multitoken).","example":"fungible"},"fdv":{"type":"number","format":"double","description":"Fully diluted valuation in USD.","example":123456789.12},"liquidity":{"type":"number","format":"double","description":"Approximate on-chain liquidity in USD.","example":2345678.9},"priceUSD":{"type":"number","format":"double","description":"Current price in USD.","example":1.2345},"priceChanges":{"$ref":"#/components/schemas/PriceChanges"},"firstMint":{"type":"string","format":"date-time","description":"ISO 8601 timestamp of the first mint seen for this token.","example":"2025-08-03T23:47:47Z"}}},"Pagination":{"type":"object","description":"Optional pagination metadata (if applicable).","properties":{"pageNumber":{"type":"integer","minimum":0,"description":"Current page number (if applicable).","example":0},"pageSize":{"type":"integer","minimum":1,"maximum":250,"description":"Page size used for this response.","example":50},"cursor":{"type":"string","description":"Opaque cursor for fetching the next page.","example":"eyJwYWdlIjoyfQ=="}}},"ResponseArrayTrendingToken":{"type":"object","description":"Array response wrapper for trending tokens.","required":["data"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/TrendingToken"}}}},"TrendingTokensSupportedChain":{"type":"string","description":"Chains supported by the trending tokens endpoint.\n","enum":["ethereum-mainnet","bsc-mainnet","polygon-mainnet","avax-mainnet","arb-one-mainnet","optimism-mainnet","base-mainnet","monad-mainnet","solana-mainnet"]},"TrendingTokenTimeframeStats":{"type":"object","additionalProperties":false,"description":"Per-timeframe numeric statistics (1h, 4h, 12h, 24h).","properties":{"1h":{"type":"number","description":"Value over the last hour.","example":1.52},"4h":{"type":"number","description":"Value over the last 4 hours.","example":3.69},"12h":{"type":"number","description":"Value over the last 12 hours.","example":4.87},"24h":{"type":"number","description":"Value over the last 24 hours.","example":4.06}}},"TrendingTokenStats":{"type":"object","description":"Trending token with recent trading-activity statistics.","properties":{"chain":{"$ref":"#/components/schemas/TrendingTokensSupportedChain"},"tokenAddress":{"type":"string","description":"Token contract address.","example":"0xc05e0e564c9292abdb52f843acedb093b78b0f45"},"name":{"type":"string","description":"Token name.","example":"Cali"},"uniqueName":{"type":"string","nullable":true,"description":"Unique slug for the token, when available.","example":null},"symbol":{"type":"string","description":"Token symbol or ticker.","example":"CALI"},"decimals":{"type":"integer","description":"Number of token decimals.","example":9},"logo":{"type":"string","nullable":true,"description":"URL of the token logo, when available.","example":"https://blockchains.tatum.io/assets/token-logos/trending/ethereum-mainnet/0xc05e0e564c9292abdb52f843acedb093b78b0f45.webp"},"usdPrice":{"type":"number","format":"double","description":"Current price in USD.","example":0.00000121098865732},"createdAt":{"type":"integer","description":"Unix timestamp (seconds) of token creation.","example":1779974711},"marketCap":{"type":"number","description":"Market capitalization in USD.","example":509451},"liquidityUsd":{"type":"number","description":"Approximate on-chain liquidity in USD.","example":31081},"holders":{"type":"integer","description":"Number of token holders.","example":649},"pricePercentChange":{"$ref":"#/components/schemas/TrendingTokenTimeframeStats"},"totalVolume":{"$ref":"#/components/schemas/TrendingTokenTimeframeStats"},"transactions":{"$ref":"#/components/schemas/TrendingTokenTimeframeStats"},"buyTransactions":{"$ref":"#/components/schemas/TrendingTokenTimeframeStats"},"sellTransactions":{"$ref":"#/components/schemas/TrendingTokenTimeframeStats"},"buyers":{"$ref":"#/components/schemas/TrendingTokenTimeframeStats"},"sellers":{"$ref":"#/components/schemas/TrendingTokenTimeframeStats"}}},"Reputation":{"type":"object","description":"Reputation data for a wallet address.","properties":{"address":{"type":"string","description":"Wallet address.","example":"0x80d8bac9a6901698b3749fe336bbd1385c1f98f2"},"score":{"type":"number","description":"Reputation score.","example":87.5},"chain":{"type":"string","description":"Blockchain name.","example":"ethereum-mainnet"},"blockNumber":{"type":"number","description":"Block number.","example":16499510},"timestamp":{"type":"number","description":"Timestamp.","example":1678715303000},"details":{"type":"object","description":"Additional reputation details.","example":{"nftScore":50,"tokenScore":37.5}}}},"ResponseArrayReputation":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Reputation"}}}},"ReputationPortfolio":{"type":"object","description":"Reputation portfolio data for a wallet address.","properties":{"address":{"type":"string","description":"Wallet address.","example":"0x80d8bac9a6901698b3749fe336bbd1385c1f98f2"},"chain":{"type":"string","description":"Blockchain name.","example":"ethereum-mainnet"},"blockNumber":{"type":"number","description":"Block number.","example":16499510},"timestamp":{"type":"number","description":"Timestamp.","example":1678715303000},"portfolio":{"type":"array","description":"Portfolio reputation details.","items":{"type":"object","properties":{"tokenAddress":{"type":"string","description":"Token address.","example":"0x1234567890abcdef1234567890abcdef12345678"},"score":{"type":"number","description":"Reputation score for token.","example":42.1}}}}}},"ResponseArrayReputationPortfolio":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/ReputationPortfolio"}}}},"ReputationByHolder":{"type":"object","description":"Reputation data for a wallet address by tokens.","properties":{"walletAddress":{"type":"string","description":"Wallet address.","example":"0x80d8bac9a6901698b3749fe336bbd1385c1f98f2"},"chain":{"type":"string","description":"Blockchain name.","example":"ethereum-mainnet"},"blockNumber":{"type":"number","description":"Block number.","example":16499510},"timestamp":{"type":"number","description":"Timestamp.","example":1678715303000},"tokens":{"type":"array","description":"Reputation details for tokens.","items":{"type":"object","properties":{"tokenAddress":{"type":"string","description":"Token address.","example":"0x1234567890abcdef1234567890abcdef12345678"},"tokenSymbol":{"type":"string","description":"Token symbol.","example":"USDC"},"score":{"type":"number","description":"Reputation score for token.","example":42.1}}}}}},"ResponseArrayReputationByHolder":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/ReputationByHolder"}}}},"TransferDNA":{"type":"object","description":"DNA transfer data.","properties":{"chain":{"type":"string","description":"Blockchain name.","example":"ethereum-mainnet"},"walletAddress":{"type":"string","description":"Wallet address.","example":"0x80d8bac9a6901698b3749fe336bbd1385c1f98f2"},"tokenAddress":{"type":"string","description":"Token contract address.","example":"0x1234567890abcdef1234567890abcdef12345678"},"direction":{"type":"string","description":"Transfer direction.","example":"incoming"},"amount":{"type":"string","description":"Transfer amount.","example":"100.0"},"blockNumber":{"type":"number","description":"Block number.","example":16499510},"timestamp":{"type":"number","description":"Timestamp.","example":1678715303000},"txHash":{"type":"string","description":"Transaction hash.","example":"0x549447710026cef714da21fb29cbfae1f689bd3246f2fa0a5081149c4aeb3bb3"}},"required":["chain","walletAddress","tokenAddress","direction","amount","blockNumber","timestamp","txHash"]},"ResponseArrayTransferDNA":{"type":"object","description":"Array response wrapper for trending tokens.","required":["data"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/TransferDNA"}},"pagination":{"$ref":"#/components/schemas/Pagination"}}},"StakedAddress":{"type":"object","description":"Individual Solana stake account information.","required":["stakeAddress","validatorAddress","delegated","active","state"],"properties":{"stakeAddress":{"type":"string","description":"Stake account address.","example":"8JMUtSoHS3h28tL7AJHP1SbXfhfeZSnpJ1hWZNCMSw9G"},"validatorAddress":{"type":"string","nullable":true,"description":"Validator address (null if not delegated).","example":"RuBYsjLeJYtWXbabcxPbNcbbFXQvMLrJGutpcqVRomz"},"delegated":{"type":"string","description":"Delegated stake amount in SOL.","example":"64598.00228288"},"active":{"type":"string","description":"Active stake amount in SOL.","example":"64598.00228288"},"state":{"type":"string","description":"State of the stake account.","enum":["active","activating","deactivating","inactive"],"example":"active"}}},"EthValidator":{"type":"object","description":"Individual Ethereum validator staking information.","required":["validatorIndex","validatorPubKey","delegated","active","state"],"properties":{"validatorIndex":{"type":"string","description":"Beacon validator index.","example":"12345"},"validatorPubKey":{"type":"string","nullable":true,"description":"Validator BLS pubkey.","example":"0x94f0c6c1f4f25afc71f4d4dbe6efc5cbf56b9ed8e5b6292a09a4ab8ef143f063f4be261f9325f6db39c4f65fcefa2ad8"},"delegated":{"type":"string","description":"Delegated stake amount in ETH.","example":"32"},"active":{"type":"string","description":"Active stake amount in ETH.","example":"32"},"state":{"type":"string","description":"State of the validator.","enum":["active","activating","deactivating","inactive"],"example":"active"}}},"CurrentStakedAssetsSolanaResponse":{"type":"object","description":"Response containing current staked assets for Solana.","required":["address","totalStaked","totalActive","stakeAddresses"],"properties":{"address":{"type":"string","description":"The wallet address.","example":"EcH12jxhrbhF6qHqRzWpZ8rZU3TjG3sX6F67zP61oDJG"},"totalStaked":{"type":"string","description":"Total staked amount in SOL.","example":"129196.00456576"},"totalActive":{"type":"string","description":"Total active stake amount in SOL.","example":"129196.00456576"},"stakeAddresses":{"type":"array","description":"Array of stake accounts, sorted by active amount in descending order.","items":{"$ref":"#/components/schemas/StakedAddress"}}}},"CurrentStakedAssetsEthereumResponse":{"type":"object","description":"Response containing current staked assets for Ethereum.","required":["address","totalStaked","totalActive","validators"],"properties":{"address":{"type":"string","description":"Ethereum wallet address.","example":"0x9f8f72aa9304c8b593d555f12ef6589cc3a579a2"},"totalStaked":{"type":"string","description":"Total staked amount in ETH.","example":"96"},"totalActive":{"type":"string","description":"Total active stake amount in ETH.","example":"64"},"validators":{"type":"array","description":"Array of validators, sorted by active amount in descending order.","items":{"$ref":"#/components/schemas/EthValidator"}}}},"CurrentStakedAssetsResponse":{"oneOf":[{"$ref":"#/components/schemas/CurrentStakedAssetsSolanaResponse"},{"$ref":"#/components/schemas/CurrentStakedAssetsEthereumResponse"}],"description":"Current staked assets response. Shape differs by chain."},"StakedAssetsByValidator":{"type":"object","description":"Stake information grouped by validator.","required":["validatorAddress","stakeAddresses","delegated","active"],"properties":{"validatorAddress":{"type":"string","nullable":true,"description":"Validator address (null if not delegated).","example":"RuBYsjLeJYtWXbabcxPbNcbbFXQvMLrJGutpcqVRomz"},"stakeAddresses":{"type":"array","description":"Array of stake account addresses.","items":{"type":"string"},"example":["8JMUtSoHS3h28tL7AJHP1SbXfhfeZSnpJ1hWZNCMSw9G"]},"delegated":{"type":"string","description":"Total delegated stake amount in SOL for this validator.","example":"64598.00228288"},"active":{"type":"string","description":"Total active stake amount in SOL for this validator.","example":"64598.00228288"}}},"CurrentStakedAssetsByValidatorSolanaResponse":{"type":"object","description":"Response containing current staked assets grouped by validator for Solana.","required":["address","totalStaked","totalActive","validatorAddresses"],"properties":{"address":{"type":"string","description":"The wallet address.","example":"EcH12jxhrbhF6qHqRzWpZ8rZU3TjG3sX6F67zP61oDJG"},"totalStaked":{"type":"string","description":"Total staked amount in SOL.","example":"129196.00456576"},"totalActive":{"type":"string","description":"Total active stake amount in SOL.","example":"129196.00456576"},"validatorAddresses":{"type":"array","description":"Array of validators with stake information, sorted by delegated amount in descending order.","items":{"$ref":"#/components/schemas/StakedAssetsByValidator"}}}},"CurrentStakedAssetsByValidatorResponse":{"oneOf":[{"$ref":"#/components/schemas/CurrentStakedAssetsByValidatorSolanaResponse"},{"$ref":"#/components/schemas/CurrentStakedAssetsEthereumResponse"}],"description":"Current staked assets by validator response. Shape differs by chain."},"StakedAccountReward":{"type":"object","description":"Individual reward entry for a stake account. For Ethereum, epoch and blockNumber are consensus-layer (beacon chain) values, not execution layer.","required":["epoch","blockNumber","amount","postBalance"],"properties":{"epoch":{"type":"number","description":"The epoch number when the reward was earned (consensus layer for Ethereum).","example":873},"blockNumber":{"type":"number","description":"The block number/slot when the reward was earned (consensus layer for Ethereum).","example":377568231},"amount":{"type":"string","description":"The reward amount in SOL.","example":"230.858942334"},"postBalance":{"type":"string","description":"The stake account balance after the reward in SOL.","example":"677185.048123885"}}},"StakedAccountRewardsResponse":{"type":"object","description":"Response containing staked account rewards.","required":["stakeAddress","totalAmount","rewards"],"properties":{"stakeAddress":{"type":"string","description":"The stake account address.","example":"8JMUtSoHS3h28tL7AJHP1SbXfhfeZSnpJ1hWZNCMSw9G"},"totalAmount":{"type":"string","description":"Total rewards amount in SOL.","example":"1234.567890123"},"rewards":{"type":"array","description":"Array of individual reward entries, sorted by epoch in descending order.","items":{"$ref":"#/components/schemas/StakedAccountReward"}}}},"StakedAccountRewardsBatchRequest":{"type":"object","description":"Request body for the staked-account-rewards batch endpoint. All filters are shared across every address in the request.","required":["chain","stakeAddresses"],"properties":{"chain":{"type":"string","description":"The blockchain to query. Only Solana mainnet is supported for batch.","enum":["solana-mainnet"],"example":"solana-mainnet"},"stakeAddresses":{"type":"array","description":"List of stake account addresses to query (1–50 unique entries).","minItems":1,"maxItems":50,"uniqueItems":true,"items":{"type":"string"},"example":["8JMUtSoHS3h28tL7AJHP1SbXfhfeZSnpJ1hWZNCMSw9G","43wKrYJ8jd2k5GpbiH31oaEYHohc4GBFKYqXRtdyf2Ye"]},"epochFrom":{"type":"number","description":"Filter rewards from this epoch (inclusive). Only one filter type may be used per request.","example":870},"epochTo":{"type":"number","description":"Filter rewards to this epoch (inclusive). Only one filter type may be used per request.","example":872},"blockFrom":{"type":"number","description":"Filter rewards from this block number (inclusive). Only one filter type may be used per request.","example":376272225},"blockTo":{"type":"number","description":"Filter rewards to this block number (inclusive). Only one filter type may be used per request.","example":377136045},"timeFrom":{"type":"string","format":"date-time","description":"Filter rewards from this date (inclusive, ISO 8601). Only one filter type may be used per request.","example":"2024-01-01T00:00:00Z"},"timeTo":{"type":"string","format":"date-time","description":"Filter rewards to this date (inclusive, ISO 8601). Only one filter type may be used per request.","example":"2024-12-31T23:59:59Z"},"unixFrom":{"type":"number","description":"Filter rewards from this unix timestamp (inclusive). Only one filter type may be used per request.","example":1704067200},"unixTo":{"type":"number","description":"Filter rewards to this unix timestamp (inclusive). Only one filter type may be used per request.","example":1735689599}}},"StakingTransactionSolana":{"type":"object","description":"Solana staking transaction. Uses stake accounts and validator vote addresses.","required":["txHash","blockNumber","timestamp","epoch","type","amount"],"properties":{"txHash":{"type":"string","description":"Transaction hash.","example":"5JFC47k33cDR6cwAJXnusHiBmf2mSDwQ3WGUicv1vPXBzyWzXNg4r6SZS7sRk8o2q7m9vPJC8SygpKAfg9AoE2uQ"},"blockNumber":{"type":"number","description":"Solana slot.","example":366007894},"timestamp":{"type":"number","description":"Unix timestamp of the transaction.","example":1757552548},"epoch":{"type":"number","description":"Epoch number when the transaction occurred.","example":847},"type":{"type":"string","description":"Transaction type. credential_change is not used for Solana.","enum":["create","stake","unstake","withdraw","split"],"example":"stake"},"amount":{"type":"string","description":"Transaction amount in SOL.","example":"64598.00228288"},"stakeAddress":{"type":"string","description":"Stake account address.","example":"8JMUtSoHS3h28tL7AJHP1SbXfhfeZSnpJ1hWZNCMSw9G"},"validatorAddress":{"type":"string","description":"Validator vote account address (for delegate).","example":"RuBYsjLeJYtWXbabcxPbNcbbFXQvMLrJGutpcqVRomz"},"fromStakeAccount":{"type":"string","description":"Source stake account (for split, merge)."},"toStakeAccount":{"type":"string","description":"Destination stake account (for split, merge)."},"from":{"type":"string","description":"Source address (for split, withdraw, merge transactions).","example":"HcTDaQXACrWUGZY6q1mWYFoxaQvqiBRR1D7JqFJgXrHM"},"to":{"type":"string","description":"Destination address (for split, withdraw, merge transactions).","example":"EcH12jxhrbhF6qHqRzWpZ8rZU3TjG3sX6F67zP61oDJG"},"by":{"type":"string","description":"Authority address that performed the action (for stake, unstake, withdraw transactions).","example":"EcH12jxhrbhF6qHqRzWpZ8rZU3TjG3sX6F67zP61oDJG"}}},"StakingTransactionEthereum":{"type":"object","description":"Ethereum staking transaction. Uses withdrawal address and validator index/pubkey. For beacon-only events (withdrawal, credential_change), txHash is a synthetic reference ID (SHA-256 of event_id); blockNumber may be consensus slot for credential_change; amount is in ETH.\n","required":["txHash","blockNumber","timestamp","epoch","type","amount","withdrawalAddress"],"properties":{"txHash":{"type":"string","description":"Transaction hash. For beacon-only events (withdrawal, credential_change), this is a synthetic reference ID, not an on-chain execution transaction hash.\n","example":"0xabc123..."},"blockNumber":{"type":"number","description":"Execution block number or consensus slot for credential_change.","example":21000000},"timestamp":{"type":"number","description":"Unix timestamp of the transaction.","example":1757552548},"epoch":{"type":"number","description":"Beacon chain epoch when the transaction occurred.","example":847},"type":{"type":"string","description":"Transaction type. credential_change = BLS→execution credential change (Ethereum only).","enum":["create","stake","unstake","withdraw","split","credential_change"],"example":"stake"},"amount":{"type":"string","description":"Transaction amount in ETH. credential_change has amount 0.","example":"32.0"},"withdrawalAddress":{"type":"string","description":"Execution address that receives withdrawals (0x...).","example":"0x742d35Cc6634C0532925a3b844Bc9e7595f2EE05"},"validatorIndex":{"type":"number","description":"Beacon chain validator index.","example":123456},"validatorPubkey":{"type":"string","nullable":true,"description":"BLS public key of the validator (0x + 96 hex chars).","example":"0x8d41e4bb3f1f6da0c9986c9cf0f36eb5c3e4c5e6a7b8c9d0e1f2a3b4c5d6e7f8"}}},"StakingTransactionsSolanaResponse":{"type":"object","description":"Response containing staking transactions for Solana.","required":["stakeAddress","transactions"],"properties":{"stakeAddress":{"type":"string","description":"The address queried (wallet address owning stake accounts).","example":"8JMUtSoHS3h28tL7AJHP1SbXfhfeZSnpJ1hWZNCMSw9G"},"transactions":{"type":"array","description":"Array of staking transactions, sorted by epoch in descending order.","items":{"$ref":"#/components/schemas/StakingTransactionSolana"}}}},"StakingTransactionsEthereumResponse":{"type":"object","description":"Response containing staking transactions for Ethereum.","required":["withdrawalAddress","transactions"],"properties":{"withdrawalAddress":{"type":"string","description":"The withdrawal address queried (0x execution address).","example":"0x742d35Cc6634C0532925a3b844Bc9e7595f2EE05"},"transactions":{"type":"array","description":"Array of staking transactions, sorted by block timestamp in descending order.","items":{"$ref":"#/components/schemas/StakingTransactionEthereum"}}}},"StakingTransactionsResponse":{"oneOf":[{"$ref":"#/components/schemas/StakingTransactionsSolanaResponse"},{"$ref":"#/components/schemas/StakingTransactionsEthereumResponse"}],"description":"Staking transactions response. Shape differs by chain (solana-mainnet vs ethereum-mainnet)."},"StakingPool3rdParty":{"type":"object","description":"Staking pool (validator) information with enriched metadata.","required":["identity","voteIdentity","lastVote","rootSlot","credits","epochCredits","activatedStake","version","active","skipRate","updatedAt","firstEpochWithStake","name","description","website","commission","ipCity","ipCountry","isJito","jitoCommissionBps","voteSuccess","firstEpochDistance","stakeWeight","uptime","epoch","stakingApy","jitoApy","totalApy"],"properties":{"identity":{"type":"string","description":"Validator identity address.","example":"5iJDEVRi1nMLwKAWhYbEokZnvBAe15rgFaHGkggVEP9z"},"voteIdentity":{"type":"string","description":"Validator vote account address.","example":"RuBYsjLeJYtWXbabcxPbNcbbFXQvMLrJGutpcqVRomz"},"lastVote":{"type":"number","description":"Last vote slot number.","example":377568231},"rootSlot":{"type":"number","description":"Root slot number.","example":377568000},"credits":{"type":"number","description":"Total epoch credits earned.","example":1234567},"epochCredits":{"type":"number","description":"Credits earned in the current epoch.","example":5000},"activatedStake":{"type":"string","description":"Total activated stake amount in lamports.","example":"123456789000000000"},"version":{"type":"string","description":"Validator software version.","example":"1.18.0"},"active":{"type":"boolean","description":"Whether the validator is active (not delinquent).","example":true},"skipRate":{"type":"number","description":"Skip rate (percentage of slots skipped).","example":0.05},"updatedAt":{"type":"string","description":"Last update timestamp.","example":"2024-11-06T12:00:00Z"},"firstEpochWithStake":{"type":"number","description":"First epoch when validator had stake.","example":100},"name":{"type":"string","description":"Validator name.","example":"My Validator"},"description":{"type":"string","description":"Validator description.","example":"High-performance validator with 99.9% uptime"},"website":{"type":"string","description":"Validator website URL.","example":"https://myvalidator.com"},"commission":{"type":"number","description":"Validator commission rate (percentage).","example":5},"ipCity":{"type":"string","description":"Validator server city location.","example":"New York"},"ipCountry":{"type":"string","description":"Validator server country location.","example":"United States"},"isJito":{"type":"boolean","description":"Whether validator is running Jito MEV.","example":false},"jitoCommissionBps":{"type":"number","description":"Jito MEV commission in basis points.","example":0},"voteSuccess":{"type":"number","description":"Vote success rate (percentage).","example":99.9},"firstEpochDistance":{"type":"number","description":"Distance from first epoch with stake.","example":773},"stakeWeight":{"type":"number","description":"Stake weight (percentage of total network stake).","example":0.5},"uptime":{"type":"number","description":"Uptime percentage.","example":99.95},"epoch":{"type":"number","description":"Current epoch number.","example":873},"stakingApy":{"type":"number","description":"Staking APY (percentage).","example":7.2},"jitoApy":{"type":"number","description":"Jito MEV APY (percentage).","example":0},"totalApy":{"type":"number","description":"Total APY (staking + Jito, percentage).","example":7.2}}},"StakingPoolsResponse":{"type":"object","description":"Response containing staking pools (validators).","required":["pools"],"properties":{"pools":{"type":"array","description":"Array of staking pools, sorted by activated stake in descending order.","items":{"$ref":"#/components/schemas/StakingPool3rdParty"}}}},"LiquidStakingAssetEthereum":{"type":"object","description":"Ethereum liquid staking asset (balance human-readable).","required":["protocol","symbol","underlying","contractAddress","balance"],"properties":{"protocol":{"type":"string","description":"Protocol name (e.g. Lido, Rocket Pool).","example":"Lido"},"symbol":{"type":"string","description":"Token symbol (e.g. stETH, wstETH).","example":"stETH"},"underlying":{"type":"string","description":"Underlying asset symbol.","example":"ETH"},"contractAddress":{"type":"string","description":"ERC20 contract address.","example":"0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84"},"balance":{"type":"string","description":"Balance (human-readable, formatted by decimals).","example":"1"}}},"LiquidStakingAssetSolana":{"type":"object","description":"Solana liquid staking asset (balance as uiAmountString).","required":["protocol","symbol","underlying","mintAddress","balance"],"properties":{"protocol":{"type":"string","description":"Protocol name (e.g. Marinade, Jito).","example":"Marinade"},"symbol":{"type":"string","description":"Token symbol (e.g. mSOL, JitoSOL).","example":"mSOL"},"underlying":{"type":"string","description":"Underlying asset symbol.","example":"SOL"},"mintAddress":{"type":"string","description":"SPL token mint address.","example":"mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"},"balance":{"type":"string","description":"Balance (human-readable uiAmountString).","example":"100.5"}}},"LiquidStakingCurrentAssetsResponse":{"type":"array","description":"Array of liquid staking assets with balance &gt; 0.","items":{"oneOf":[{"$ref":"#/components/schemas/LiquidStakingAssetEthereum"},{"$ref":"#/components/schemas/LiquidStakingAssetSolana"}]}},"LiquidStakingPoolEthereum":{"type":"object","description":"Provider-level Ethereum liquid staking pool (one row per protocol).","required":["protocol","underlying","symbols","contractAddresses"],"properties":{"protocol":{"type":"string","example":"Lido"},"underlying":{"type":"string","example":"ETH"},"symbols":{"type":"array","items":{"type":"string"},"example":["stETH","wstETH"]},"contractAddresses":{"type":"array","items":{"type":"string"},"example":["0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84","0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0"]},"apy":{"type":"number","nullable":true,"description":"Yield APY from representative canonical asset; null when unavailable."},"apyBase":{"type":"number","nullable":true,"description":"Base APY component; null when unavailable."},"apyBase7d":{"type":"number","nullable":true,"description":"7-day base APY."},"apyBase30d":{"type":"number","nullable":true,"description":"30-day base APY (DefiLlama-aligned)."},"tvlUsd":{"type":"number","nullable":true,"description":"Provider protocol TVL on the selected chain (from DefiLlama). Not summed token TVL."},"rank":{"type":"integer","description":"Rank by TVL (1 = highest)."}}},"LiquidStakingPoolSolana":{"type":"object","description":"Provider-level Solana liquid staking pool (one row per protocol).","required":["protocol","underlying","symbols","mintAddresses"],"properties":{"protocol":{"type":"string","example":"Marinade"},"underlying":{"type":"string","example":"SOL"},"symbols":{"type":"array","items":{"type":"string"},"example":["mSOL"]},"mintAddresses":{"type":"array","items":{"type":"string"},"example":["mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"]},"apy":{"type":"number","nullable":true,"description":"Current APY when available; null when unavailable."},"apyBase":{"type":"number","nullable":true,"description":"Base APY component."},"apyBase7d":{"type":"number","nullable":true,"description":"7-day base APY."},"apyBase30d":{"type":"number","nullable":true,"description":"30-day base APY."},"tvlUsd":{"type":"number","nullable":true,"description":"Provider protocol TVL on the selected chain (from DefiLlama). Not summed token TVL."},"rank":{"type":"integer","description":"Rank by TVL (1 = highest)."}}},"LiquidStakingPoolsResponse":{"type":"object","description":"Liquid staking pools (one row per protocol). apy* fields = yield metrics for canonical asset (yields.llama.fi).\ntvlUsd = provider protocol TVL on the chain (DefiLlama), not summed token TVL.\n","required":["pools"],"properties":{"pools":{"type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/LiquidStakingPoolEthereum"},{"$ref":"#/components/schemas/LiquidStakingPoolSolana"}]}}}},"ChainEnumMiningRewards":{"type":"string","description":"UTXO chains supported for mining rewards (coinbase).","example":"bitcoin-mainnet","enum":["bitcoin-mainnet","bitcoin-testnet","litecoin-mainnet","litecoin-testnet","doge-mainnet","dogecoin-testnet"]},"MiningRewardEntry":{"type":"object","description":"Individual mining reward (coinbase output) entry.","required":["blockNumber","txHash","index","value","valueAsString","address","chain"],"properties":{"blockNumber":{"type":"number","description":"Block number when the reward was mined.","example":900000},"txHash":{"type":"string","description":"Transaction hash of the coinbase transaction.","example":"a1b2c3d4e5f6789012345678901234567890abcdef1234567890abcdef123456"},"index":{"type":"number","description":"Output index (vout) in the transaction.","example":0},"value":{"type":"number","description":"Reward value in currency units (BTC, LTC, or DOGE).","example":6.25},"valueAsString":{"type":"string","description":"String representation of the reward value.","example":"6.25"},"address":{"type":"string","description":"Miner address that received the reward.","example":"bc1qwzrryqr3ja8w7hnja2spmkgfdcgvqwp5swz4af4ngsjecfz0w0pqud7k38"},"chain":{"$ref":"#/components/schemas/ChainEnumMiningRewards"}}},"MiningTotalRewardsResponse":{"type":"object","description":"Total mining rewards (sum of all coinbase outputs) for an address.","required":["value","valueAsString","address","chain"],"properties":{"value":{"type":"number","description":"Total reward value in currency units (BTC, LTC, or DOGE).","example":312.5},"valueAsString":{"type":"string","description":"String representation of the total reward value.","example":"312.5"},"address":{"type":"string","description":"Miner address.","example":"bc1qwzrryqr3ja8w7hnja2spmkgfdcgvqwp5swz4af4ngsjecfz0w0pqud7k38"},"chain":{"$ref":"#/components/schemas/ChainEnumMiningRewards"}}},"WalrusStorageUploadStatus":{"type":"string","description":"Lifecycle status of a Walrus storage upload job.","enum":["PENDING","UPLOADING","CERTIFIED","FAILED"],"example":"CERTIFIED"},"WalrusRenewalBillingStatus":{"type":"string","description":"Billing and renewal lifecycle of a certified Walrus blob.\n- `active` — blob is live; renewal credits applied on schedule.\n- `pending_initial_charge` — certified but first-period credits not yet charged.\n- `pending_renewal_credit` — on-chain extend succeeded; scanner posts renewal credits.\n- `pending_decommission` — blob past its end epoch; worker will decommission.\n- `pending_instant_delete` — immediate on-chain delete queued by user.\n- `decommissioned` — blob has been removed from Walrus storage.\n","enum":["active","pending_initial_charge","pending_renewal_credit","pending_decommission","pending_instant_delete","decommissioned"],"example":"active"},"WalrusStorageEvent":{"type":"object","description":"A single on-chain event in the storage lifecycle of a blob.","required":["type","txDigest"],"properties":{"type":{"type":"string","description":"Event type.","enum":["registered","certified","renewed","deleted"],"example":"registered"},"txDigest":{"type":"string","description":"Sui transaction digest for this event.","example":"4ywoqKo35fVadBsXZQEqQkLr4mY6mHS9MykZU3HmzUKX"},"at":{"type":"integer","description":"Approximate Unix timestamp (ms) when the transaction was persisted.","example":1777304790823},"epochs":{"type":"integer","description":"Walrus epochs purchased in this transaction (present for `registered` and `renewed`).","example":4}}},"WalrusStorageEnqueueResponse":{"type":"object","description":"Response returned immediately after a file is staged for Walrus upload.","required":["jobId","status","filename","sizeBytes","blobId"],"properties":{"jobId":{"type":"string","description":"Unique identifier for the upload job. Use it to poll status.","example":"68000000000000000000abcd"},"status":{"$ref":"#/components/schemas/WalrusStorageUploadStatus"},"filename":{"type":"string","description":"Stored file name. May differ from the original if the name was disambiguated\nto avoid a duplicate blob ID on-chain (e.g. `report (1).pdf`).\n","example":"report.pdf"},"mimeType":{"type":"string","description":"MIME type detected from the uploaded file.","example":"application/pdf"},"sizeBytes":{"type":"integer","description":"Number of bytes the server received.","example":1048576},"blobId":{"type":"string","description":"Pre-computed Walrus blob ID (deterministic from bytes + filename).\nSafe to use for download URL construction before certification completes.\n","example":"mAlStJ4PAJaBuuHEUHotGheikLiTXpQagboGF43bY4s"}}},"WalrusStorageJobStatusResponse":{"type":"object","description":"Full status of a Walrus storage upload job.","required":["jobId","status","filename","sizeBytes","createdAt","updatedAt"],"properties":{"jobId":{"type":"string","description":"Unique identifier for the upload job.","example":"68000000000000000000abcd"},"status":{"$ref":"#/components/schemas/WalrusStorageUploadStatus"},"filename":{"type":"string","description":"Stored file name on Walrus.","example":"report.pdf"},"mimeType":{"type":"string","description":"MIME type of the uploaded file.","example":"application/pdf"},"sizeBytes":{"type":"integer","description":"File size in bytes.","example":1048576},"errorMessage":{"type":"string","description":"Human-readable error message when status is `FAILED`.","example":"RpcError: Service Unavailable"},"blobId":{"type":"string","description":"Walrus blob ID. Present after the upload is staged.","example":"mAlStJ4PAJaBuuHEUHotGheikLiTXpQagboGF43bY4s"},"quiltPatchId":{"type":"string","description":"Walrus quilt patch ID. Present after on-chain certification.","example":"mAlStJ4PAJaBuuHEUHotGheikLiTXpQagboGF43bY4sBAQCaAg"},"suiObjectId":{"type":"string","description":"Sui on-chain Blob object ID. Use SuiScan to inspect storage state.","example":"0x1b520353e191083dccad671db585525365e6f5bf70fcf63c7dd8e088ec5c57b6"},"walrusStartEpoch":{"type":"integer","description":"Walrus epoch when storage begins.","example":29},"walrusEndEpoch":{"type":"integer","description":"Walrus epoch at which storage expires. Renewal window opens one epoch before.","example":33},"renewalBillingStatus":{"$ref":"#/components/schemas/WalrusRenewalBillingStatus"},"noRenewal":{"type":"boolean","description":"When `true`, the worker will never extend this blob. It expires naturally at `walrusEndEpoch`.","example":false},"storageEvents":{"type":"array","description":"Chronological on-chain history — register → certify → renewals/deletions.","items":{"$ref":"#/components/schemas/WalrusStorageEvent"}},"downloadUrlByQuiltId":{"type":"string","description":"Walrus aggregator URL to download the file by blob ID and filename.\nPresent only when status is `CERTIFIED` and the blob is not decommissioned.\n","example":"https://aggregator.walrus-mainnet.walrus.space/v1/blobs/by-quilt-id/mAlStJ4PAJaBuuHEUHotGheikLiTXpQagboGF43bY4s/report.pdf"},"downloadUrlByQuiltPatchId":{"type":"string","description":"Walrus aggregator URL to download the file by quilt patch ID.\nPresent only when status is `CERTIFIED` and the blob is not decommissioned.\n","example":"https://aggregator.walrus-mainnet.walrus.space/v1/blobs/by-quilt-patch-id/mAlStJ4PAJaBuuHEUHotGheikLiTXpQagboGF43bY4sBAQCaAg"},"createdAt":{"type":"integer","description":"Unix timestamp (ms) when the upload job was created.","example":1777304790000},"updatedAt":{"type":"integer","description":"Unix timestamp (ms) when the job was last updated.","example":1777304809955}}},"WalrusStorageCancelRenewalResponse":{"type":"object","description":"Response after cancelling renewal for a Walrus storage upload.","required":["jobId","noRenewal"],"properties":{"jobId":{"type":"string","description":"The upload job ID.","example":"68000000000000000000abcd"},"noRenewal":{"type":"boolean","description":"Always `true` — renewal has been cancelled.","example":true},"pendingInstantDelete":{"type":"boolean","description":"Present and `true` when an instant on-chain delete has been queued.","example":true},"renewalBillingStatus":{"$ref":"#/components/schemas/WalrusRenewalBillingStatus"},"walrusEndEpoch":{"type":"integer","description":"Walrus epoch at which the blob expires or was deleted.","example":33}}},"PredictionPlatform":{"type":"string","description":"Prediction-market platform identifier.","enum":["polymarket","kalshi"],"example":"polymarket"},"PredictionMarketStatusFilter":{"type":"string","description":"Coarse lifecycle filter used by the `?status=` query parameter. The response field\n`status` carries a richer, platform-native string (e.g. `paused`, `archived`,\n`settled`); this enum is used only for filtering.\n","enum":["active","closed","resolved"],"example":"active"},"PredictionMarketSort":{"type":"string","description":"Sort order for event and market listings. When omitted on a cross-platform feed,\nresults are interleaved between platforms instead.\n","enum":["volume_desc","liquidity_desc","endingSoon","newest"],"example":"volume_desc"},"PredictionVolumeUnit":{"type":"string","description":"Unit for `volume` and `totalVolume` fields. `usd` on Polymarket (dollar-denominated\nnotional); `contracts` on Kalshi (contract count — not USD).\n","enum":["usd","contracts"],"example":"usd"},"PredictionCursor":{"type":"string","description":"Opaque base64-encoded pagination token. Returned in `pagination.cursor` on\nresponses that have more pages. Pass back verbatim as `?cursor=…` to fetch the\nnext page. Cursors are fingerprint-bound to the filter set — modifying any\nfilter between calls invalidates the cursor and returns `400`. The field is\nomitted from `pagination` on the last page.\n","maxLength":1024,"example":"eyJwbUV2dEN1cnNvciI6IjIwMjUtMTEtMDFUMTI6MzQ6NTZaIn0="},"PredictionMarketSource":{"type":"object","description":"Upstream platform attribution for a market or event row.","required":["platform","platformId","url"],"properties":{"platform":{"$ref":"#/components/schemas/PredictionPlatform"},"platformId":{"type":"string","description":"Platform-native identifier. Polymarket condition id (0x + 64 hex) or numeric\nevent id; Kalshi market or event ticker.\n","example":"KXELONMARS-99"},"url":{"type":"string","description":"Canonical public URL on the source platform.","example":"https://kalshi.com/markets/kxelonmars"}}},"PredictionMarketOutcome":{"type":"object","description":"One outcome of a market (e.g. YES / NO for a binary market).","required":["name","price","tokenId"],"properties":{"name":{"type":"string","description":"Outcome label.","example":"YES"},"price":{"type":"number","description":"Current probability in [0, 1].","example":0.42},"tokenId":{"type":"string","nullable":true,"description":"Polymarket CTF token id for this outcome (numeric string). `null` on Kalshi —\nKalshi outcomes are not tokenised.\n","example":"71321045679252212594626385532706912750332728571942612009397583165281712267356"}}},"PredictionMarketResolution":{"type":"object","description":"Resolution payload populated only after a market has settled. `null` on every\nactive or paused market.\n","required":["outcome","resolvedAt","txHash","source"],"properties":{"outcome":{"type":"string","description":"Winning outcome name (matches one of the market's `outcomes[].name`).","example":"YES"},"resolvedAt":{"type":"string","format":"date-time","description":"ISO-8601 timestamp the market was resolved at.","example":"2026-04-12T18:00:00Z"},"txHash":{"type":"string","nullable":true,"description":"On-chain resolution transaction hash when available. `null` on Kalshi (the\nresolution is recorded off-chain on Kalshi's side).\n","example":"0x9c1f…"},"source":{"type":"string","nullable":true,"description":"Resolution source attribution (e.g. `uma`, `kalshi`). `null` when the upstream\ndoes not expose it.\n","example":"uma"}}},"PredictionMarketChain":{"type":"object","description":"On-chain references for a market. Populated for Polymarket (Polygon CTF);\n`null` on Kalshi which has no on-chain footprint.\n","required":["chainId","conditionId","tokenIds","resolutionSource"],"properties":{"chainId":{"type":"integer","description":"EVM chain id (Polymarket runs on Polygon — chainId 137).","example":137},"conditionId":{"type":"string","nullable":true,"description":"CTF condition id (0x + 64 hex).","example":"0xdd22472e552920b8438158ea7238bfadfa4f736aa4cee91a6b86c39ead110917"},"tokenIds":{"type":"object","nullable":true,"description":"Outcome token ids keyed by outcome name.","properties":{"yes":{"type":"string","nullable":true,"example":"7132104567925221259…"},"no":{"type":"string","nullable":true,"example":"5239841276582930182…"}}},"resolutionSource":{"type":"string","nullable":true,"description":"Resolution-source URL or identifier (UMA on Polymarket).","example":"https://uma.app/"}}},"PredictionEventMarket":{"type":"object","description":"Market row as nested inside an event. Same shape as the top-level\n`PredictionMarket` minus the `chain` block (which is only surfaced on the\ndedicated markets endpoints).\n","required":["id","platform","eventId","question","description","category","tags","imageUrl","status","openTime","closeTime","settleTime","outcomes","volume","volumeUnit","liquidity","resolution","createdAt","source"],"properties":{"id":{"type":"string","description":"Platform-native market identifier (Polymarket condition id or Kalshi market ticker).","example":"KXELONMARS-99"},"platform":{"$ref":"#/components/schemas/PredictionPlatform"},"eventId":{"type":"string","nullable":true,"description":"Parent event id. Polymarket numeric event id, or Kalshi event ticker.\n`null` when the upstream does not group this market under an event.\n","example":"KXELONMARS"},"question":{"type":"string","description":"Human-readable market question.","example":"Will Elon Musk land humans on Mars by 2030?"},"description":{"type":"string","nullable":true,"description":"Long-form description or resolution rules.","example":"Resolves YES if SpaceX confirms a successful crewed Mars landing by 2030-12-31."},"category":{"type":"string","nullable":true,"description":"Category label, when available.","example":"Science"},"tags":{"type":"array","description":"Free-form tag slugs. May be empty on Kalshi.","items":{"type":"string"},"example":["space","spacex"]},"imageUrl":{"type":"string","nullable":true,"description":"Image / icon URL for the market, when available.","example":"https://polymarket.com/images/elon-mars.png"},"status":{"type":"string","description":"Verbatim upstream status string. Richer than the `?status=` filter enum —\nvalues can include `paused`, `archived`, `settled`, `determined`, etc.\n","example":"active"},"openTime":{"type":"string","format":"date-time","nullable":true,"description":"ISO-8601 timestamp the market opened for trading.","example":"2024-01-01T00:00:00Z"},"closeTime":{"type":"string","format":"date-time","nullable":true,"description":"ISO-8601 timestamp the market closes / closed for trading.","example":"2030-12-31T23:59:59Z"},"settleTime":{"type":"string","format":"date-time","nullable":true,"description":"ISO-8601 timestamp the market is expected to settle.","example":"2031-01-15T00:00:00Z"},"outcomes":{"type":"array","description":"All outcomes of the market.","items":{"$ref":"#/components/schemas/PredictionMarketOutcome"}},"volume":{"type":"number","description":"Total volume in `volumeUnit` units.","example":1542300.12},"volumeUnit":{"$ref":"#/components/schemas/PredictionVolumeUnit"},"liquidity":{"type":"number","nullable":true,"description":"Quoted-resting-orders depth. `null` on Kalshi — the upstream markets feed\ndoes not populate this; aggregate orderbook depth client-side if you need it.\n","example":89400.5},"resolution":{"$ref":"#/components/schemas/PredictionMarketResolution","nullable":true},"createdAt":{"type":"string","format":"date-time","nullable":true,"description":"ISO-8601 timestamp the market was created upstream.","example":"2023-11-21T10:42:00Z"},"source":{"$ref":"#/components/schemas/PredictionMarketSource"}}},"PredictionEvent":{"type":"object","description":"Top-level event row — a grouping of one or more markets sharing a question or\noutcome set. Aggregate fields (`marketCount`, `totalVolume`, `totalLiquidity`)\nare server-computed roll-ups over the event's markets.\n","required":["id","platform","title","description","category","tags","imageUrl","status","openTime","closeTime","marketCount","totalVolume","volumeUnit","totalLiquidity","markets","source"],"properties":{"id":{"type":"string","description":"Platform-native event identifier (Polymarket numeric id or Kalshi event ticker).","example":"KXELONMARS"},"platform":{"$ref":"#/components/schemas/PredictionPlatform"},"title":{"type":"string","nullable":true,"description":"Event title.","example":"Will Elon Musk land humans on Mars by 2030?"},"description":{"type":"string","nullable":true,"description":"Long-form event description, when available.","example":"Outcome resolves on confirmation of a successful crewed Mars landing."},"category":{"type":"string","nullable":true,"description":"Event category label, when available.","example":"Science"},"tags":{"type":"array","description":"Free-form tag slugs. May be empty on Kalshi.","items":{"type":"string"},"example":["space","spacex"]},"imageUrl":{"type":"string","nullable":true,"description":"Image / icon URL for the event, when available.","example":"https://polymarket.com/images/elon-mars-event.png"},"status":{"type":"string","description":"Verbatim upstream status string. Richer than the `?status=` filter enum.\n","example":"active"},"openTime":{"type":"string","format":"date-time","nullable":true,"example":"2024-01-01T00:00:00Z"},"closeTime":{"type":"string","format":"date-time","nullable":true,"example":"2030-12-31T23:59:59Z"},"marketCount":{"type":"integer","description":"Number of markets attached to this event.","example":3},"totalVolume":{"type":"number","description":"Sum of nested-market volume, in `volumeUnit` units.","example":4823100.5},"volumeUnit":{"$ref":"#/components/schemas/PredictionVolumeUnit"},"totalLiquidity":{"type":"number","nullable":true,"description":"Sum of nested-market quoted liquidity. `null` on Kalshi events because the\nunderlying market liquidity is not exposed there.\n","example":271800.3},"markets":{"type":"array","nullable":true,"description":"Nested markets array. Populated only when the request passes\n`includeMarkets=true`; `null` otherwise.\n","items":{"$ref":"#/components/schemas/PredictionEventMarket"}},"source":{"$ref":"#/components/schemas/PredictionMarketSource"}}},"PredictionCursorPagination":{"type":"object","description":"Cursor-based pagination wrapper. The `cursor` field is omitted on the last\npage; `pageSize` reflects the page size of the call that produced this response.\n","required":["pageSize"],"properties":{"cursor":{"$ref":"#/components/schemas/PredictionCursor"},"pageSize":{"type":"integer","description":"Page size of the page that produced this response.","example":20}}},"PredictionEventsListResponse":{"type":"object","description":"Paginated list of prediction-market events.","required":["data","pagination"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/PredictionEvent"}},"pagination":{"$ref":"#/components/schemas/PredictionCursorPagination"}}},"PredictionEventResponse":{"type":"object","description":"Single prediction-market event.","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/PredictionEvent"}}},"PredictionOutcomeSide":{"type":"string","description":"Which outcome of a binary market a row refers to.","enum":["yes","no"],"example":"yes"},"PredictionTradeDirection":{"type":"string","description":"Order side — whether the taker bought or sold the outcome.","enum":["buy","sell"],"example":"buy"},"PredictionHistoryInterval":{"type":"string","description":"OHLC candle bucket size. Each interval has its own maximum allowed time window;\nrequests exceeding that window return `400`.\n","enum":["1m","5m","15m","1h","4h","1d","1w"],"example":"1h"},"PredictionHistorySource":{"type":"string","description":"Underlying data feed for OHLC candles. `candlesticks` (default) is trade-based\nwith real in-bucket volume. `midpoint` uses a midpoint-quote feed with broader\ntime-range coverage at the cost of `volume = 0` on every candle. `midpoint`\nis Polymarket-only.\n","enum":["candlesticks","midpoint"],"example":"candlesticks"},"PredictionMarketPositionStatusFilter":{"type":"string","description":"Position-status filter for the `?status=` parameter on\n`/markets/{id}/positions`. `OPEN` = size > 0.01, `CLOSED` = size ≤ 0.01,\n`ALL` = no filter.\n","enum":["OPEN","CLOSED","ALL"],"example":"ALL"},"PredictionMarketPositionSortBy":{"type":"string","description":"Metric used to order holders inside each outcome group.","enum":["TOKENS","CASH_PNL","REALIZED_PNL","TOTAL_PNL"],"example":"TOTAL_PNL"},"PredictionSortDirection":{"type":"string","description":"Sort direction.","enum":["ASC","DESC"],"example":"DESC"},"PredictionMarket":{"description":"A single prediction market. Same shape as `PredictionEventMarket` plus the\non-chain `chain` block — surfaced only on the dedicated `/markets` endpoints\nso event listings stay lean.\n","allOf":[{"$ref":"#/components/schemas/PredictionEventMarket"},{"type":"object","required":["chain"],"properties":{"chain":{"$ref":"#/components/schemas/PredictionMarketChain","nullable":true}}}]},"PredictionMarketsListResponse":{"type":"object","description":"Paginated list of prediction markets.","required":["data","pagination"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/PredictionMarket"}},"pagination":{"$ref":"#/components/schemas/PredictionCursorPagination"}}},"PredictionMarketResponse":{"type":"object","description":"Single prediction market.","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/PredictionMarket"}}},"PredictionOutcomePriceQuote":{"type":"object","description":"Per-outcome price quote inside a market-price snapshot.","required":["price","bid","ask","bidSize","askSize"],"properties":{"price":{"type":"number","description":"Current outcome probability in [0, 1].","example":0.42},"bid":{"type":"number","nullable":true,"description":"Best bid price. `null` when the bid side of the book is empty.","example":0.41},"ask":{"type":"number","nullable":true,"description":"Best ask price. `null` when the ask side of the book is empty.","example":0.43},"bidSize":{"type":"number","nullable":true,"description":"Size resting at the best bid. `null` when the bid side is empty.","example":1250},"askSize":{"type":"number","nullable":true,"description":"Size resting at the best ask. `null` when the ask side is empty.","example":980}}},"PredictionMarketPrice":{"type":"object","description":"Current price snapshot for a market.","required":["marketId","platform","timestamp","yes","no","midPrice","spread","lastTradePrice","lastTradeAt","volume24h","volumeUnit"],"properties":{"marketId":{"type":"string","description":"Platform-native market identifier.","example":"0xdd22472e552920b8438158ea7238bfadfa4f736aa4cee91a6b86c39ead110917"},"platform":{"$ref":"#/components/schemas/PredictionPlatform"},"timestamp":{"type":"string","format":"date-time","description":"ISO-8601 timestamp the snapshot was computed at.","example":"2026-05-18T12:34:56Z"},"yes":{"$ref":"#/components/schemas/PredictionOutcomePriceQuote"},"no":{"$ref":"#/components/schemas/PredictionOutcomePriceQuote"},"midPrice":{"type":"number","nullable":true,"description":"Implied midpoint between best bid and best ask. `null` when either side of\nthe book is empty.\n","example":0.42},"spread":{"type":"number","nullable":true,"description":"Difference between best ask and best bid. `null` when either side of the\nbook is empty.\n","example":0.02},"lastTradePrice":{"type":"number","nullable":true,"description":"Price of the most recent trade, when one exists.","example":0.4215},"lastTradeAt":{"type":"string","format":"date-time","nullable":true,"description":"ISO-8601 timestamp of the most recent trade, when one exists.","example":"2026-05-18T12:34:00Z"},"volume24h":{"type":"number","nullable":true,"description":"Rolling 24-hour volume in `volumeUnit` units. `null` when the upstream does\nnot expose a 24-hour figure.\n","example":184230.5},"volumeUnit":{"$ref":"#/components/schemas/PredictionVolumeUnit","nullable":true}}},"PredictionMarketPriceResponse":{"type":"object","description":"Current price snapshot response.","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/PredictionMarketPrice"}}},"PredictionOrderbookLevel":{"type":"object","description":"One price level on an orderbook side.","required":["price","size"],"properties":{"price":{"type":"number","description":"Price for this level.","example":0.41},"size":{"type":"number","description":"Aggregate size resting at this price.","example":1250}}},"PredictionOrderbook":{"type":"object","description":"Orderbook snapshot for one outcome side of a market. Includes computed\nquoted-liquidity figures within 1% and 5% of the midpoint.\n","required":["marketId","platform","side","timestamp","hash","bids","asks","spread","midPrice","liquidity"],"properties":{"marketId":{"type":"string","description":"Platform-native market identifier.","example":"KXELONMARS-99"},"platform":{"$ref":"#/components/schemas/PredictionPlatform"},"side":{"$ref":"#/components/schemas/PredictionOutcomeSide"},"timestamp":{"type":"string","format":"date-time","description":"ISO-8601 timestamp the snapshot was computed at.","example":"2026-05-18T12:34:56Z"},"hash":{"type":"string","nullable":true,"description":"Content fingerprint of the book state, useful for ETag-style change detection\non poll. Populated on Polymarket; `null` on Kalshi (no equivalent upstream\nfield).\n","example":"0a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b"},"bids":{"type":"array","description":"Bid levels ordered from best (highest price) to worst.","items":{"$ref":"#/components/schemas/PredictionOrderbookLevel"}},"asks":{"type":"array","description":"Ask levels ordered from best (lowest price) to worst.","items":{"$ref":"#/components/schemas/PredictionOrderbookLevel"}},"spread":{"type":"number","nullable":true,"description":"Difference between best ask and best bid. `null` when either side of the\nbook is empty.\n","example":0.02},"midPrice":{"type":"number","nullable":true,"description":"Implied midpoint. `null` when either side of the book is empty.\n","example":0.42},"liquidity":{"type":"object","description":"Quoted-liquidity totals within bands of the midpoint. Computed over the full\nreturned book (pre-trim by `depth`).\n","required":["within1pct","within5pct"],"properties":{"within1pct":{"type":"number","description":"Total resting size within ±1% of the midpoint.","example":18450.2},"within5pct":{"type":"number","description":"Total resting size within ±5% of the midpoint.","example":92310.8}}}}},"PredictionOrderbookResponse":{"type":"object","description":"Orderbook snapshot response.","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/PredictionOrderbook"}}},"PredictionPriceCandle":{"type":"object","description":"A single OHLC candle.","required":["timestamp","open","high","low","close","volume"],"properties":{"timestamp":{"type":"string","format":"date-time","description":"ISO-8601 bucket-aligned start time of the candle.","example":"2026-05-18T12:00:00Z"},"open":{"type":"number","description":"Opening price of the bucket.","example":0.41},"high":{"type":"number","description":"Highest price within the bucket.","example":0.44},"low":{"type":"number","description":"Lowest price within the bucket.","example":0.4},"close":{"type":"number","description":"Closing price of the bucket.","example":0.43},"volume":{"type":"number","description":"In-bucket trade volume. Always `0` when `source=midpoint` (the midpoint feed\ncarries no volume data).\n","example":12450.5}}},"PredictionPriceHistory":{"type":"object","description":"Historical OHLC candles for a market over a time window.","required":["marketId","platform","interval","source","candles","partial","availableFrom"],"properties":{"marketId":{"type":"string","description":"Platform-native market identifier.","example":"0xdd22472e552920b8438158ea7238bfadfa4f736aa4cee91a6b86c39ead110917"},"platform":{"$ref":"#/components/schemas/PredictionPlatform"},"interval":{"$ref":"#/components/schemas/PredictionHistoryInterval"},"source":{"$ref":"#/components/schemas/PredictionHistorySource"},"candles":{"type":"array","description":"Candles in chronological order, bucket-aligned to `interval`.","items":{"$ref":"#/components/schemas/PredictionPriceCandle"}},"partial":{"type":"boolean","description":"`true` when the requested range was truncated by an upstream availability\nlimit. When `true`, `availableFrom` indicates the earliest timestamp the\nresponse actually covers.\n","example":false},"availableFrom":{"type":"string","format":"date-time","nullable":true,"description":"Earliest timestamp the response covers. Equals the requested `start` when\n`partial` is `false`. `null` when no trades exist in the entire requested\nrange.\n","example":"2026-05-01T00:00:00Z"}}},"PredictionPriceHistoryResponse":{"type":"object","description":"Price-history response.","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/PredictionPriceHistory"}}},"PredictionTrade":{"type":"object","description":"A single market trade fill.","required":["tradeId","marketId","platform","side","direction","price","size","notionalValue","taker","txHash","timestamp"],"properties":{"tradeId":{"type":"string","description":"Platform-native trade identifier.","example":"0x9c1f3a7b…"},"marketId":{"type":"string","description":"Platform-native market identifier.","example":"KXELONMARS-99"},"platform":{"$ref":"#/components/schemas/PredictionPlatform"},"side":{"$ref":"#/components/schemas/PredictionOutcomeSide"},"direction":{"$ref":"#/components/schemas/PredictionTradeDirection"},"price":{"type":"number","description":"Fill price in [0, 1].","example":0.42},"size":{"type":"number","description":"Fill size (outcome tokens / contracts).","example":250},"notionalValue":{"type":"number","description":"Fill notional in the market's quote currency (price × size).\n","example":105},"taker":{"type":"string","nullable":true,"description":"Wallet that crossed the spread. Populated on Polymarket; `null` on Kalshi\n(the public trades feed does not expose per-trade wallet attribution there).\n","example":"0x56687bf447db6ffa42ffe2204a05edaa20f55839"},"txHash":{"type":"string","nullable":true,"description":"On-chain settlement transaction hash where one exists. Populated on\nPolymarket; `null` on Kalshi.\n","example":"0xabc123…"},"timestamp":{"type":"string","format":"date-time","description":"ISO-8601 timestamp the trade settled at.","example":"2026-05-18T12:34:00Z"}}},"PredictionTradesListResponse":{"type":"object","description":"Paginated list of market trades.","required":["data","pagination"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/PredictionTrade"}},"pagination":{"$ref":"#/components/schemas/PredictionCursorPagination"}}},"PredictionMarketPositionHolder":{"type":"object","description":"One holder row inside an outcome group on `/markets/{id}/positions`.","required":["proxyWallet","name","profileImage","verified","asset","conditionId","avgPrice","size","currPrice","currentValue","cashPnl","totalBought","realizedPnl","totalPnl","outcome","outcomeIndex"],"properties":{"proxyWallet":{"type":"string","description":"Holder wallet (0x + 40 hex, lowercased).","example":"0x56687bf447db6ffa42ffe2204a05edaa20f55839"},"name":{"type":"string","nullable":true,"description":"Holder display name, when set on their profile.","example":"JaneDoe"},"profileImage":{"type":"string","nullable":true,"description":"Holder profile image URL, when set.","example":"https://polymarket.com/avatars/jane.png"},"verified":{"type":"boolean","description":"Whether the holder has a verified-badge on their profile.","example":false},"asset":{"type":"string","description":"Polymarket outcome-token asset id this holder owns.","example":"71321045679252212594626385532706912750332728571942612009397583165281712267356"},"conditionId":{"type":"string","description":"Market condition id (0x + 64 hex).","example":"0xdd22472e552920b8438158ea7238bfadfa4f736aa4cee91a6b86c39ead110917"},"avgPrice":{"type":"number","description":"Volume-weighted average entry price.","example":0.38},"size":{"type":"number","description":"Current position size (outcome tokens).","example":12500},"currPrice":{"type":"number","description":"Current market price of the outcome.","example":0.42},"currentValue":{"type":"number","description":"Current USD mark-to-market value of the position.","example":5250},"cashPnl":{"type":"number","description":"Unrealised PnL in USD.","example":500},"totalBought":{"type":"number","description":"Lifetime USD spent acquiring this position.","example":4750},"realizedPnl":{"type":"number","description":"Realised PnL in USD.","example":0},"totalPnl":{"type":"number","description":"Sum of cashPnl and realizedPnl.","example":500},"outcome":{"type":"string","nullable":true,"description":"Outcome label (e.g. `YES` / `NO`).","example":"YES"},"outcomeIndex":{"type":"integer","description":"Outcome index (0 / 1 on binary markets).","example":0}}},"PredictionMarketPositionsGroup":{"type":"object","description":"Top-level row in the `/markets/{id}/positions` response — one group per outcome\ntoken, containing the wallets holding that outcome.\n","required":["token","positions"],"properties":{"token":{"type":"string","description":"Outcome-token asset id.","example":"71321045679252212594626385532706912750332728571942612009397583165281712267356"},"positions":{"type":"array","description":"Holders of this outcome, ordered by the requested `sortBy` / `sortDirection`.\n","items":{"$ref":"#/components/schemas/PredictionMarketPositionHolder"}}}},"PredictionMarketPositionsResponse":{"type":"object","description":"Top-holders response. `pagination.pageSize` / `pageNumber` apply per outcome\ngroup (so a binary market with `limit=50` returns up to 100 rows total — 50\nper outcome).\n","required":["data","pagination"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/PredictionMarketPositionsGroup"}},"pagination":{"$ref":"#/components/schemas/PredictionOffsetPagination"}}},"PredictionOffsetPagination":{"type":"object","description":"Offset-based pagination metadata, returned by every wallet endpoint and by\n`/markets/{id}/positions`. `pageNumber` is the zero-indexed page derived from\n`offset / limit` on the request.\n","required":["pageSize","pageNumber"],"properties":{"pageSize":{"type":"integer","description":"Page size of the call that produced this response.","example":100},"pageNumber":{"type":"integer","description":"Zero-indexed page number (`offset / limit`).","example":0}}},"PredictionWalletAddress":{"type":"string","description":"EVM wallet address — `0x`-prefixed, 40 hex characters. Returned lowercased\nin response payloads. Non-EVM inputs (e.g. Kalshi user identifiers) return\n`400` from every wallets endpoint.\n","pattern":"^0x[a-fA-F0-9]{40}$","example":"0x56687bf447db6ffa42ffe2204a05edaa20f55839"},"PredictionPortfolioPeriod":{"type":"string","description":"Lookback window for closed-position aggregates on `/wallets/{address}/portfolio`.","enum":["24h","7d","30d","all"],"example":"all"},"PredictionPositionSortBy":{"type":"string","description":"Sort key for `/wallets/{address}/positions`.","enum":["CURRENT","INITIAL","TOKENS","CASHPNL","PERCENTPNL","TITLE","RESOLVING","PRICE","AVGPRICE"],"example":"TOKENS"},"PredictionClosedPositionSortBy":{"type":"string","description":"Sort key for `/wallets/{address}/history`.","enum":["REALIZEDPNL","TITLE","PRICE","AVGPRICE","TIMESTAMP"],"example":"REALIZEDPNL"},"PredictionTradeSide":{"type":"string","description":"Order direction (buy / sell). Distinct from the outcome-side enum.","enum":["BUY","SELL"],"example":"BUY"},"PredictionTradeFilterType":{"type":"string","description":"Unit used by the `filterAmount` minimum-trade-size threshold on\n`/wallets/{address}/trades`. `CASH` = USDC notional, `TOKENS` =\noutcome-token count.\n","enum":["CASH","TOKENS"],"example":"CASH"},"PredictionActivityType":{"type":"string","description":"Event type emitted in the wallet activity feed. Covers every category the\nupstream surfaces — not just trades.\n","enum":["TRADE","SPLIT","MERGE","REDEEM","REWARD","CONVERSION","MAKER_REBATE","REFERRAL_REWARD"],"example":"TRADE"},"PredictionActivitySortBy":{"type":"string","description":"Sort key for `/wallets/{address}/activity`.","enum":["TIMESTAMP","TOKENS","CASH"],"example":"TIMESTAMP"},"PredictionPortfolio":{"type":"object","description":"Server-aggregated wallet summary. Synthesised from the wallet's current open\npositions, redeemable positions, total notional and closed-position roll-ups\nwithin the requested `period`.\n","required":["address","period","generatedAt","openPositions","redeemablePositions","activeNotional","unrealizedPnl","closedPositions","wins","losses","winRate","totalCostBasis","realizedPnl","totalPnl","roi"],"properties":{"address":{"type":"string","description":"Wallet address, lowercased.","example":"0x56687bf447db6ffa42ffe2204a05edaa20f55839"},"period":{"$ref":"#/components/schemas/PredictionPortfolioPeriod"},"generatedAt":{"type":"string","format":"date-time","description":"ISO-8601 timestamp the snapshot was computed at.","example":"2026-05-18T12:34:56Z"},"openPositions":{"type":"integer","description":"Count of currently open positions.","example":12},"redeemablePositions":{"type":"integer","description":"Count of positions on a resolved market that the wallet has won but has\nnot yet redeemed. Disjoint from `openPositions` and `closedPositions`.\n","example":2},"activeNotional":{"type":"number","description":"Total USD notional of currently open positions (rounded to 2dp).","example":5421.18},"unrealizedPnl":{"type":"number","description":"Sum of unrealised PnL across currently open positions.","example":213.4},"closedPositions":{"type":"integer","description":"Count of closed positions within the requested `period`.","example":38},"wins":{"type":"integer","description":"Count of winning closed positions within the requested `period`.","example":22},"losses":{"type":"integer","description":"Count of losing closed positions within the requested `period`.","example":16},"winRate":{"type":"number","nullable":true,"description":"Win rate as a percentage in [0, 100]. `null` when `closedPositions` is 0 —\nthe ratio is undefined, not zero.\n","example":57.89},"totalCostBasis":{"type":"number","description":"Sum of cost basis across closed positions within the period.","example":18420.5},"realizedPnl":{"type":"number","description":"Sum of realised PnL across closed positions within the period.","example":4321.7},"totalPnl":{"type":"number","description":"Sum of `unrealizedPnl` and `realizedPnl`.","example":4535.1},"roi":{"type":"number","nullable":true,"description":"Realised ROI as a percentage. Computed from realised PnL over total cost\nbasis of closed positions only — unrealised PnL is excluded. `null` when\n`totalCostBasis` is 0.\n","example":23.46}}},"PredictionPortfolioResponse":{"type":"object","description":"Wallet portfolio summary response.","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/PredictionPortfolio"}}},"PredictionWalletPosition":{"type":"object","description":"One open-position row on `/wallets/{address}/positions`.","required":["proxyWallet","asset","conditionId","size","avgPrice","initialValue","currentValue","cashPnl","percentPnl","totalBought","realizedPnl","percentRealizedPnl","curPrice","redeemable","mergeable","title","slug","icon","eventSlug","outcome","outcomeIndex","oppositeOutcome","oppositeAsset","endDate","negativeRisk"],"properties":{"proxyWallet":{"type":"string","description":"Holder wallet (0x + 40 hex, lowercased).","example":"0x56687bf447db6ffa42ffe2204a05edaa20f55839"},"asset":{"type":"string","description":"Polymarket outcome-token asset id.","example":"71321045679252212594626385532706912750332728571942612009397583165281712267356"},"conditionId":{"type":"string","description":"Market condition id (0x + 64 hex).","example":"0xdd22472e552920b8438158ea7238bfadfa4f736aa4cee91a6b86c39ead110917"},"size":{"type":"number","description":"Current position size (outcome tokens).","example":1250},"avgPrice":{"type":"number","description":"Volume-weighted average entry price.","example":0.38},"initialValue":{"type":"number","description":"USD value at entry.","example":475},"currentValue":{"type":"number","description":"Current USD mark-to-market value of the position.","example":525},"cashPnl":{"type":"number","description":"Unrealised PnL in USD.","example":50},"percentPnl":{"type":"number","description":"Unrealised PnL as a ratio (e.g. 0.1053 = 10.53%).","example":0.1053},"totalBought":{"type":"number","description":"Lifetime USD spent acquiring this position.","example":475},"realizedPnl":{"type":"number","description":"Realised PnL in USD.","example":0},"percentRealizedPnl":{"type":"number","description":"Realised PnL as a ratio.","example":0},"curPrice":{"type":"number","description":"Current market price of the outcome.","example":0.42},"redeemable":{"type":"boolean","description":"`true` when the position is on a resolved market and the wallet has won\nbut has not yet redeemed.\n","example":false},"mergeable":{"type":"boolean","description":"`true` when the position can be merged back to USDC with the opposite\noutcome.\n","example":false},"title":{"type":"string","nullable":true,"description":"Parent market question.","example":"Will Elon Musk land humans on Mars by 2030?"},"slug":{"type":"string","nullable":true,"description":"Parent market slug on Polymarket.","example":"will-elon-musk-land-humans-on-mars-by-2030"},"icon":{"type":"string","nullable":true,"description":"Parent market icon URL.","example":"https://polymarket.com/images/elon-mars.png"},"eventSlug":{"type":"string","nullable":true,"description":"Parent event slug on Polymarket.","example":"elon-mars-event"},"outcome":{"type":"string","nullable":true,"description":"Outcome label (e.g. `YES` / `NO`).","example":"YES"},"outcomeIndex":{"type":"integer","description":"Outcome index (0 / 1 on binary markets).","example":0},"oppositeOutcome":{"type":"string","nullable":true,"description":"Label of the opposite outcome.","example":"NO"},"oppositeAsset":{"type":"string","description":"Polymarket asset id of the opposite outcome.","example":"52398412765829301823124912398421398214129482198431928421319284213192842131"},"endDate":{"type":"string","nullable":true,"description":"ISO-8601 close timestamp of the parent market.","example":"2030-12-31T23:59:59Z"},"negativeRisk":{"type":"boolean","description":"Whether the parent market is part of Polymarket's negative-risk grouping\n(e.g. multi-candidate winner-take-all markets).\n","example":false}}},"PredictionWalletPositionsResponse":{"type":"object","description":"Paginated wallet open-positions response.","required":["data","pagination"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/PredictionWalletPosition"}},"pagination":{"$ref":"#/components/schemas/PredictionOffsetPagination"}}},"PredictionWalletClosedPosition":{"type":"object","description":"One closed-position row on `/wallets/{address}/history`.","required":["proxyWallet","asset","conditionId","avgPrice","totalBought","realizedPnl","curPrice","timestamp","title","slug","icon","eventSlug","outcome","outcomeIndex","oppositeOutcome","oppositeAsset","endDate"],"properties":{"proxyWallet":{"type":"string","description":"Holder wallet (0x + 40 hex, lowercased).","example":"0x56687bf447db6ffa42ffe2204a05edaa20f55839"},"asset":{"type":"string","description":"Polymarket outcome-token asset id.","example":"71321045679252212594626385532706912750332728571942612009397583165281712267356"},"conditionId":{"type":"string","description":"Market condition id (0x + 64 hex).","example":"0xdd22472e552920b8438158ea7238bfadfa4f736aa4cee91a6b86c39ead110917"},"avgPrice":{"type":"number","description":"Volume-weighted average entry price.","example":0.38},"totalBought":{"type":"number","description":"Lifetime USD spent acquiring the position.","example":475},"realizedPnl":{"type":"number","description":"Realised PnL in USD on settlement.","example":525},"curPrice":{"type":"number","description":"Resolution price (0 or 1 on binary markets — 1 = winning outcome).\n","example":1},"timestamp":{"type":"integer","description":"Settlement time of the position (unix-seconds).","example":1747569600},"title":{"type":"string","nullable":true,"description":"Parent market question.","example":"Will candidate X win the 2024 election?"},"slug":{"type":"string","nullable":true,"example":"will-candidate-x-win-the-2024-election"},"icon":{"type":"string","nullable":true,"example":"https://polymarket.com/images/election.png"},"eventSlug":{"type":"string","nullable":true,"example":"election-2024"},"outcome":{"type":"string","nullable":true,"example":"YES"},"outcomeIndex":{"type":"integer","example":0},"oppositeOutcome":{"type":"string","nullable":true,"example":"NO"},"oppositeAsset":{"type":"string","example":"52398412765829301823124912398421398214129482198431928421319284213192842131"},"endDate":{"type":"string","nullable":true,"example":"2024-11-05T23:59:59Z"}}},"PredictionWalletHistoryResponse":{"type":"object","description":"Paginated wallet closed-positions response.","required":["data","pagination"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/PredictionWalletClosedPosition"}},"pagination":{"$ref":"#/components/schemas/PredictionOffsetPagination"}}},"PredictionWalletTrade":{"type":"object","description":"One trade-fill row on `/wallets/{address}/trades`.","required":["proxyWallet","side","asset","conditionId","size","price","timestamp","title","slug","icon","eventSlug","outcome","outcomeIndex","name","pseudonym","bio","profileImage","profileImageOptimized","transactionHash"],"properties":{"proxyWallet":{"type":"string","description":"Trader wallet (0x + 40 hex, lowercased).","example":"0x56687bf447db6ffa42ffe2204a05edaa20f55839"},"side":{"$ref":"#/components/schemas/PredictionTradeSide"},"asset":{"type":"string","description":"Polymarket outcome-token asset id.","example":"71321045679252212594626385532706912750332728571942612009397583165281712267356"},"conditionId":{"type":"string","description":"Market condition id (0x + 64 hex).","example":"0xdd22472e552920b8438158ea7238bfadfa4f736aa4cee91a6b86c39ead110917"},"size":{"type":"number","description":"Trade size (outcome tokens).","example":250},"price":{"type":"number","description":"Trade price in [0, 1].","example":0.42},"timestamp":{"type":"integer","description":"Trade time (unix-seconds).","example":1747569600},"title":{"type":"string","nullable":true,"example":"Will candidate X win the 2024 election?"},"slug":{"type":"string","nullable":true,"example":"will-candidate-x-win-the-2024-election"},"icon":{"type":"string","nullable":true,"example":"https://polymarket.com/images/election.png"},"eventSlug":{"type":"string","nullable":true,"example":"election-2024"},"outcome":{"type":"string","nullable":true,"example":"YES"},"outcomeIndex":{"type":"integer","example":0},"name":{"type":"string","nullable":true,"description":"Trader display name, when set on their profile.","example":"JaneDoe"},"pseudonym":{"type":"string","nullable":true,"description":"Trader pseudonym, when set.","example":"WitnessProtection"},"bio":{"type":"string","nullable":true,"description":"Trader profile bio, when set.","example":"Trading politics since 2020."},"profileImage":{"type":"string","nullable":true,"example":"https://polymarket.com/avatars/jane.png"},"profileImageOptimized":{"type":"string","nullable":true,"description":"CDN-optimised variant of `profileImage`, when available.","example":"https://polymarket.com/avatars/jane.opt.png"},"transactionHash":{"type":"string","nullable":true,"description":"On-chain transaction hash of the trade settlement.","example":"0xabc123…"}}},"PredictionWalletTradesResponse":{"type":"object","description":"Paginated wallet trades response.","required":["data","pagination"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/PredictionWalletTrade"}},"pagination":{"$ref":"#/components/schemas/PredictionOffsetPagination"}}},"PredictionWalletActivity":{"type":"object","description":"One activity-row on `/wallets/{address}/activity`.","required":["proxyWallet","timestamp","conditionId","type","size","usdcSize","transactionHash","price","asset","side","outcomeIndex","title","slug","icon","eventSlug","outcome","name","pseudonym","bio","profileImage","profileImageOptimized"],"properties":{"proxyWallet":{"type":"string","description":"Wallet address (0x + 40 hex, lowercased).","example":"0x56687bf447db6ffa42ffe2204a05edaa20f55839"},"timestamp":{"type":"integer","description":"Event time (unix-seconds).","example":1747569600},"conditionId":{"type":"string","nullable":true,"description":"Market condition id (0x + 64 hex). `null` on rows that aren't\nmarket-scoped (e.g. some reward / referral rows).\n","example":"0xdd22472e552920b8438158ea7238bfadfa4f736aa4cee91a6b86c39ead110917"},"type":{"$ref":"#/components/schemas/PredictionActivityType"},"size":{"type":"number","description":"Token-count delta — outcome tokens moved by this event.","example":250},"usdcSize":{"type":"number","description":"USDC notional delta — USDC moved by this event.","example":105},"transactionHash":{"type":"string","nullable":true,"description":"On-chain transaction hash, when one exists.","example":"0xabc123…"},"price":{"type":"number","description":"Price associated with the event. `0` on non-trade events (e.g.\n`REWARD`, `REDEEM`) where price is undefined.\n","example":0.42},"asset":{"type":"string","nullable":true,"description":"Outcome-token asset id. `null` on rows that aren't market-scoped.\n","example":"71321045679252212594626385532706912750332728571942612009397583165281712267356"},"side":{"$ref":"#/components/schemas/PredictionTradeSide","nullable":true,"description":"Order direction on trade-type rows. `null` on non-trade events (e.g.\n`REWARD`, `SPLIT`, `MERGE`, `REDEEM`, `CONVERSION`).\n"},"outcomeIndex":{"type":"integer","nullable":true,"description":"Outcome index (0 / 1 on binary markets). `null` when the upstream omits\nit; the upstream occasionally emits a sentinel value of `999` for rows\nthat don't map to a position side.\n","example":0},"title":{"type":"string","nullable":true},"slug":{"type":"string","nullable":true},"icon":{"type":"string","nullable":true},"eventSlug":{"type":"string","nullable":true},"outcome":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"pseudonym":{"type":"string","nullable":true},"bio":{"type":"string","nullable":true},"profileImage":{"type":"string","nullable":true},"profileImageOptimized":{"type":"string","nullable":true}}},"PredictionWalletActivityResponse":{"type":"object","description":"Paginated wallet activity-feed response.","required":["data","pagination"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/PredictionWalletActivity"}},"pagination":{"$ref":"#/components/schemas/PredictionOffsetPagination"}}},"PredictionWalletValue":{"type":"object","description":"Total USD notional of a wallet's currently open positions.","required":["user","value"],"properties":{"user":{"type":"string","description":"Wallet address (0x + 40 hex, lowercased).","example":"0x56687bf447db6ffa42ffe2204a05edaa20f55839"},"value":{"type":"number","description":"Total USD notional, rounded to 2 decimal places.","example":5421.18}}},"PredictionWalletValueResponse":{"type":"object","description":"Wallet open-position notional response.","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/PredictionWalletValue"}}},"PredictionWalletMarketsTraded":{"type":"object","description":"Count of distinct markets a wallet has ever traded. Lifetime metric — counts\nmarkets, not individual trades.\n","required":["user","traded"],"properties":{"user":{"type":"string","description":"Wallet address (0x + 40 hex, lowercased).","example":"0x56687bf447db6ffa42ffe2204a05edaa20f55839"},"traded":{"type":"integer","description":"Number of distinct markets traded.","example":142}}},"PredictionWalletMarketsTradedResponse":{"type":"object","description":"Wallet markets-traded count response.","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/PredictionWalletMarketsTraded"}}},"PredictionLeaderboardCategory":{"type":"string","description":"Leaderboard category slice.","enum":["OVERALL","POLITICS","SPORTS","CRYPTO","CULTURE","MENTIONS","WEATHER","ECONOMICS","TECH","FINANCE"],"example":"OVERALL"},"PredictionLeaderboardTimePeriod":{"type":"string","description":"Leaderboard lookback window.","enum":["DAY","WEEK","MONTH","ALL"],"example":"DAY"},"PredictionLeaderboardOrder":{"type":"string","description":"Leaderboard ranking metric. `PNL` = realised + unrealised profit; `VOL` = trading volume.","enum":["PNL","VOL"],"example":"PNL"},"PredictionTopTrader":{"type":"object","description":"One row of the top-traders leaderboard.","required":["rank","proxyWallet","userName","xUsername","verifiedBadge","vol","pnl","profileImage"],"properties":{"rank":{"type":"integer","description":"Continuous 1-indexed position in the leaderboard given the requested\nfilters.\n","example":1},"proxyWallet":{"type":"string","description":"Trader wallet (0x + 40 hex, lowercased).","example":"0x56687bf447db6ffa42ffe2204a05edaa20f55839"},"userName":{"type":"string","nullable":true,"description":"Trader display name, when set.","example":"JaneDoe"},"xUsername":{"type":"string","nullable":true,"description":"Trader's X (Twitter) handle, when linked.","example":"jane_doe_x"},"verifiedBadge":{"type":"boolean","description":"Whether the trader has a verified-badge on their profile.","example":true},"vol":{"type":"number","description":"Trading volume (USD) within the requested `timePeriod` for the requested\n`category`.\n","example":1543200.5},"pnl":{"type":"number","description":"Realised + unrealised PnL (USD) within the requested `timePeriod` for\nthe requested `category`.\n","example":281450.75},"profileImage":{"type":"string","nullable":true,"description":"Trader profile image URL, when set.","example":"https://polymarket.com/avatars/jane.png"}}},"PredictionPageSizePagination":{"type":"object","description":"Minimal pagination metadata used by endpoints that paginate via `offset` +\n`limit` and don't surface a derived `pageNumber`.\n","required":["pageSize"],"properties":{"pageSize":{"type":"integer","description":"Page size of the call that produced this response.","example":25}}},"PredictionTopTradersResponse":{"type":"object","description":"Paginated top-traders leaderboard response.","required":["data","pagination"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/PredictionTopTrader"}},"pagination":{"$ref":"#/components/schemas/PredictionPageSizePagination"}}},"PredictionSearchTag":{"type":"object","description":"One tag row inside the unified-search response.","required":["id","slug","label","eventCount"],"properties":{"id":{"type":"string","nullable":true,"description":"Tag identifier, when the upstream populates it.","example":"101"},"slug":{"type":"string","nullable":true,"description":"URL-friendly tag slug.","example":"us-elections"},"label":{"type":"string","nullable":true,"description":"Human-readable tag label.","example":"US Elections"},"eventCount":{"type":"integer","description":"Authoritative count of events this tag is attached to.","example":42}}},"PredictionSearchProfile":{"type":"object","description":"One profile row inside the unified-search response. Includes only\nidentity-relevant fields — image and bio are not surfaced.\n","required":["proxyWallet","name","pseudonym"],"properties":{"proxyWallet":{"type":"string","description":"Profile wallet (0x + 40 hex, lowercased).","example":"0x56687bf447db6ffa42ffe2204a05edaa20f55839"},"name":{"type":"string","nullable":true,"description":"Profile display name, when set.","example":"JaneDoe"},"pseudonym":{"type":"string","nullable":true,"description":"Profile pseudonym, when set.","example":"WitnessProtection"}}},"PredictionSearchPagination":{"type":"object","description":"Page-based pagination metadata used by the search endpoint. Caller advances\nwith `?page=N+1` and stops when `hasMore` is `false`.\n","required":["hasMore","totalResults"],"properties":{"hasMore":{"type":"boolean","description":"Whether a subsequent page exists.","example":true},"totalResults":{"type":"integer","description":"Total number of results across all pages.","example":184}}},"PredictionSearchResult":{"type":"object","description":"Unified-search payload — events, tags and trader profiles for a single\nquery, with native page-based pagination.\n","required":["events","tags","profiles","pagination"],"properties":{"events":{"type":"array","description":"Matching events. Same shape as the rows returned by `/events`. Empty\nwhen no event matches are found.\n","items":{"$ref":"#/components/schemas/PredictionEvent"}},"tags":{"type":"array","description":"Matching tags. Empty when `searchTags=false` or no tag matches are\nfound.\n","items":{"$ref":"#/components/schemas/PredictionSearchTag"}},"profiles":{"type":"array","description":"Matching trader profiles. Empty when `searchProfiles=false` (default)\nor no profile matches are found.\n","items":{"$ref":"#/components/schemas/PredictionSearchProfile"}},"pagination":{"$ref":"#/components/schemas/PredictionSearchPagination"}}},"PredictionSearchResponse":{"type":"object","description":"Unified-search response.","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/PredictionSearchResult"}}}}}}