The latest balance of each named wallet, per chain and asset.
wallets names 1 to 100 addresses. chains narrows the scope, and every spot chain is
read when it is absent. Each row holds the balance after the last transaction that moved
it. A few movements write no row, such as Solana rent, so a balance can lag until the
next one. Each wallet comes back in canonical form: base58 on Solana, lowercase hex on
EVM chains.
GET
/
v1
/
wallets
/
balances
The latest balance of each named wallet, per chain and asset.
Send an API key, or a session token a key minted, as Authorization: Bearer <credential>. A browser opening /v1/stream offers its session token in Sec-WebSocket-Protocol instead.
One row per observed wallet and asset, ordered by chain, wallet, then asset.
Show child attributes
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Metastreams API","description":"Real-time and historical spot market data: tokens, OHLCV candles, trades, discovery boards and live streams.","colors":{"primary":"#2563EB","light":"#60A5FA","dark":"#1D4ED8"},"favicon":"https://mintcdn.com/metastreams-prod/JdlWV-spcCy8pt8j/favicon.svg?fit=max\u0026auto=format\u0026n=JdlWV-spcCy8pt8j\u0026q=85\u0026s=c7cd89b16d24d9370f0522e9a010f5af","contextual":{"options":["copy","view","chatgpt","claude","mcp","cursor","vscode"],"display":"header"},"styling":{"latex":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"metastreams-prod","hasAudioNarration":false,"actualSubdomain":"metastreams-prod","customDomains":["docs.metastreams.io"],"gitSource":{"type":"github","owner":"tradeonapex","repo":"metastreams-docs","deployBranch":"production","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"latestBuiltDeploymentHistoryId":"6ac3f33ac249ebd4bbff8158","collectionId":"b571c6d0-031d-41d2-a605-981f75eca985","liveDeploymentHistoryId":"6ac3f33ac249ebd4bbff8158","schemaVersion":"v3"},"entitlements":{},"buildId":"6ade50f9b128bc39b5e6911b","clientVersion":"0.0.3966","searchFilterCounts":[{"language":"default","tag":"Docs","count":16},{"language":"default","tag":"API reference","count":13},{"language":"default","tag":"REST","count":10},{"language":"default","tag":"Get started","count":4},{"language":"default","tag":"Streams","count":4},{"language":"default","tag":"Core concepts","count":3},{"language":"default","tag":"Recipes","count":3},{"language":"default","tag":"Resources","count":3},{"language":"default","tag":"Migration guides","count":2},{"language":"default","tag":"trades","count":2}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-v7-file-tree","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-nav-generations","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"isAtlas":false,"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/wallets/the-latest-balance-of-each-named-wallet-per-chain-and-asset","slug":"/api-reference/wallets/the-latest-balance-of-each-named-wallet-per-chain-and-asset","pageMetadata":{"title":"The latest balance of each named wallet, per chain and asset.","description":"`wallets` names 1 to 100 addresses. `chains` narrows the scope, and every spot chain is\nread when it is absent. Each row holds the balance after the last transaction that moved\nit. A few movements write no row, such as Solana rent, so a balance can lag until the\nnext one. Each `wallet` comes back in canonical form: base58 on Solana, lowercase hex on\nEVM chains.","deprecated":null,"version":null,"openapi":"/specs/openapi.json get /v1/wallets/balances","href":"/api-reference/wallets/the-latest-balance-of-each-named-wallet-per-chain-and-asset","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_components.p, {\n children: [_jsx(_components.code, {\n children: \"wallets\"\n }), \" names 1 to 100 addresses. \", _jsx(_components.code, {\n children: \"chains\"\n }), \" narrows the scope, and every spot chain is\\nread when it is absent. Each row holds the balance after the last transaction that moved\\nit. A few movements write no row, such as Solana rent, so a balance can lag until the\\nnext one. Each \", _jsx(_components.code, {\n children: \"wallet\"\n }), \" comes back in canonical form: base58 on Solana, lowercase hex on\\nEVM chains.\"]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"The latest balance of each named wallet, per chain and asset.","description":"`wallets` names 1 to 100 addresses. `chains` narrows the scope, and every spot chain is\nread when it is absent. Each row holds the balance after the last transaction that moved\nit. A few movements write no row, such as Solana rent, so a balance can lag until the\nnext one. Each `wallet` comes back in canonical form: base58 on Solana, lowercase hex on\nEVM chains.","deprecated":null,"version":null,"openapi":"/specs/openapi.json get /v1/wallets/balances","href":"/api-reference/wallets/the-latest-balance-of-each-named-wallet-per-chain-and-asset","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"tags":["wallets"],"summary":"The latest balance of each named wallet, per chain and asset.","description":"`wallets` names 1 to 100 addresses. `chains` narrows the scope, and every spot chain is\nread when it is absent. Each row holds the balance after the last transaction that moved\nit. A few movements write no row, such as Solana rent, so a balance can lag until the\nnext one. Each `wallet` comes back in canonical form: base58 on Solana, lowercase hex on\nEVM chains.","operationId":"wallet_balances","parameters":["4b836f9a-a620-43c9-a38b-4875a3b7b33d","dafbe71b-d3b0-474c-a2fa-d8a416674775"],"responses":{"200":"73f609e3-997f-47b7-8b7e-2c7be150b8fb","400":"55d08f8e-dcdb-49b5-a8b9-0a7cf3b1f8e0","401":"58ed8e20-a494-482c-ac45-6d5720b14144","402":"fcd5378c-e4d1-4804-9e77-5c710d3191b1","403":"c9d8af93-c375-4463-af22-af8619c9d05a","429":"39f4c24e-79ec-4430-b0fe-4b133dcab38b","500":"89abb968-022c-419e-abdb-d55e5d9b9a6a","503":"6665cca4-34ae-46b2-8732-0728390c3b93"},"method":"get","type":"path","servers":["583dafd9-2e40-4bab-8b7e-b807c8f219de"],"security":["744ac6ae-8a74-4d87-a0bd-0a1d1cf62a38"],"path":"/v1/wallets/balances","baseUrlOptions":["https://{host}"],"title":"The latest balance of each named wallet, per chain and asset.","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"4b836f9a-a620-43c9-a38b-4875a3b7b33d":{"name":"wallets","in":"query","description":"Wallet addresses, CSV; one to 100.","required":true,"schema":{"type":"string","isRequired":true,"description":"Wallet addresses, CSV; one to 100.","uniqueKey":"","typeLabel":"string"},"example":"9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"},"dafbe71b-d3b0-474c-a2fa-d8a416674775":{"name":"chains","in":"query","description":"Chains to scope to, CSV of the chain slugs. Absent means every spot chain.","required":false,"schema":{"type":"string","isRequired":false,"description":"Chains to scope to, CSV of the chain slugs. Absent means every spot chain.","uniqueKey":"","typeLabel":"string"},"example":"solana,base"}},"responses":{"73f609e3-997f-47b7-8b7e-2c7be150b8fb":{"description":"The latest balance of each named wallet and asset. A pair with no observed balance has no row, which is not a zero.","headers":{"X-Credits-Cost":{"schema":{"type":"integer"},"description":"Credits charged for this request. Zero on any non-2xx. Sent on a metered tier only."},"X-Credits-Remaining":{"schema":{"type":"integer"},"description":"Credit balance after this request. Sent on a metered tier only."},"X-RateLimit-Remaining":{"schema":{"type":"integer"},"description":"Requests left in the bucket this request spent from. Not sent with a 401."},"X-Request-ID":{"schema":{"type":"string"},"description":"This request's trace ID. Echoed from the request, or generated when it sent none."}},"content":{"application/json":{"schema":{"type":"object","description":"The latest balance of each wallet and asset a read named.","required":["balances"],"properties":{"balances":{"type":"array","items":{"type":"object","description":"One wallet's balance of one asset, as of the transaction that last moved it.","required":["chain","wallet","asset","balance","trigger","blockNumber","signature","txIndex","updatedAt"],"properties":{"asset":{"type":"string","description":"The asset the balance is in. This is an open enumeration: keep a value you do not recognize.","examples":["SOL","ETH","BNB","POL","USDC","TRX","USDT","USDG","PUSD"],"isRequired":true,"uniqueKey":"balances.items.[INDEX].asset","typeLabel":"string"},"balance":{"type":"string","format":"decimal","description":"Post-transaction balance, human units.","example":"123.456789","isRequired":true,"uniqueKey":"balances.items.[INDEX].balance","typeLabel":"string\u003cdecimal>"},"blockNumber":{"type":"integer","format":"int64","description":"Block or Solana slot where the balance was observed.","minimum":0,"isRequired":true,"uniqueKey":"balances.items.[INDEX].blockNumber","typeLabel":"integer\u003cint64>"},"chain":{"type":"string","description":"Chain the balance lives on.","enum":["solana","base","bsc","robinhood","arc"],"isRequired":true,"uniqueKey":"balances.items.[INDEX].chain","typeLabel":"enum\u003cstring>"},"signature":{"type":"string","description":"Transaction that moved it.","isRequired":true,"uniqueKey":"balances.items.[INDEX].signature","typeLabel":"string"},"trigger":{"type":"string","description":"What moved the balance. This is an open enumeration: keep a value you do not recognize.","examples":["trade","deposit","withdrawal","failed_tx"],"isRequired":true,"uniqueKey":"balances.items.[INDEX].trigger","typeLabel":"string"},"txIndex":{"type":"integer","format":"int64","description":"Transaction index within the observed block or slot.","minimum":0,"isRequired":true,"uniqueKey":"balances.items.[INDEX].txIndex","typeLabel":"integer\u003cint64>"},"updatedAt":{"type":"integer","format":"int64","description":"Block time of the transaction that moved it.","isRequired":true,"uniqueKey":"balances.items.[INDEX].updatedAt","typeLabel":"integer\u003cint64>"},"wallet":{"type":"string","description":"Wallet holding it.","isRequired":true,"uniqueKey":"balances.items.[INDEX].wallet","typeLabel":"string"}},"uniqueKey":"balances.items.[INDEX]","typeLabel":"object"},"description":"One row per observed wallet and asset, ordered by chain, wallet, then asset.","isRequired":true,"uniqueKey":"balances","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"balances":[{"asset":"SOL","balance":"123.456789","blockNumber":1,"chain":"solana","signature":"\u003cstring>","trigger":"trade","txIndex":1,"updatedAt":123,"wallet":"\u003cstring>"}]}}},"exampleType":"generated"}},"exampleType":"generated"},"55d08f8e-dcdb-49b5-a8b9-0a7cf3b1f8e0":{"description":"Unsupported chain, a malformed wallet address, a wallet count outside 1-100, or a malformed parameter.","headers":{"X-Credits-Cost":{"schema":{"type":"integer"},"description":"Credits charged for this request. Zero on any non-2xx. Sent on a metered tier only."},"X-Credits-Remaining":{"schema":{"type":"integer"},"description":"Credit balance after this request. Sent on a metered tier only."},"X-RateLimit-Remaining":{"schema":{"type":"integer"},"description":"Requests left in the bucket this request spent from. Not sent with a 401."},"X-Request-ID":{"schema":{"type":"string"},"description":"This request's trace ID. Echoed from the request, or generated when it sent none."}},"content":{"application/json":{"schema":{"type":"object","description":"The complete error response body — every error is exactly this.","required":["error"],"properties":{"error":{"type":"object","description":"The error.","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable, machine-readable. Clients switch on this, never on `message`.","enum":["UNAUTHORIZED","FORBIDDEN","VALIDATION_ERROR","UNSUPPORTED_CHAIN","NOT_FOUND","RATE_LIMITED","CREDITS_EXHAUSTED","INTERNAL_ERROR","SERVICE_UNAVAILABLE","RANGE_TOO_LARGE","INVALID_CREDENTIALS","ORIGIN_NOT_ALLOWED","NOT_ORG_MEMBER","MEMBERSHIP_INACTIVE","EMAIL_NOT_VERIFIED","EMAIL_TAKEN","ALREADY_MEMBER","INVITATION_ALREADY_SENT","INVITATION_ALREADY_ACCEPTED","LAST_ADMIN","CANNOT_REMOVE_SELF","KEY_LIMIT_REACHED","TOKEN_EXPIRED","PAYLOAD_TOO_LARGE","UNSUPPORTED_MEDIA_TYPE","IMAGE_TOO_LARGE"],"isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"Human-readable, written for the integrating developer:\n`[What happened]. [What to do next — if actionable].`","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"description":"Optional; shape is fixed per code.","uniqueKey":"error.details","typeLabel":"any"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"UNAUTHORIZED","message":"\u003cstring>","details":"\u003cunknown>"}}}},"exampleType":"generated"}},"exampleType":"generated"},"58ed8e20-a494-482c-ac45-6d5720b14144":{"description":"Missing or invalid credential: an API key, or a session token a key minted.","headers":{"X-Credits-Cost":{"schema":{"type":"integer"},"description":"Credits charged for this request. Zero on any non-2xx. Sent on a metered tier only."},"X-Credits-Remaining":{"schema":{"type":"integer"},"description":"Credit balance after this request. Sent on a metered tier only."},"X-RateLimit-Remaining":{"schema":{"type":"integer"},"description":"Requests left in the bucket this request spent from. Not sent with a 401."},"X-Request-ID":{"schema":{"type":"string"},"description":"This request's trace ID. Echoed from the request, or generated when it sent none."}},"content":{"application/json":{"schema":{"type":"object","description":"The complete error response body — every error is exactly this.","required":["error"],"properties":{"error":{"type":"object","description":"The error.","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable, machine-readable. Clients switch on this, never on `message`.","enum":["UNAUTHORIZED","FORBIDDEN","VALIDATION_ERROR","UNSUPPORTED_CHAIN","NOT_FOUND","RATE_LIMITED","CREDITS_EXHAUSTED","INTERNAL_ERROR","SERVICE_UNAVAILABLE","RANGE_TOO_LARGE","INVALID_CREDENTIALS","ORIGIN_NOT_ALLOWED","NOT_ORG_MEMBER","MEMBERSHIP_INACTIVE","EMAIL_NOT_VERIFIED","EMAIL_TAKEN","ALREADY_MEMBER","INVITATION_ALREADY_SENT","INVITATION_ALREADY_ACCEPTED","LAST_ADMIN","CANNOT_REMOVE_SELF","KEY_LIMIT_REACHED","TOKEN_EXPIRED","PAYLOAD_TOO_LARGE","UNSUPPORTED_MEDIA_TYPE","IMAGE_TOO_LARGE"],"isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"Human-readable, written for the integrating developer:\n`[What happened]. [What to do next — if actionable].`","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"description":"Optional; shape is fixed per code.","uniqueKey":"error.details","typeLabel":"any"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"UNAUTHORIZED","message":"\u003cstring>","details":"\u003cunknown>"}}}},"exampleType":"generated"}},"exampleType":"generated"},"fcd5378c-e4d1-4804-9e77-5c710d3191b1":{"description":"The organization's credits this billing period reach its plan's limit.","headers":{"X-Credits-Cost":{"schema":{"type":"integer"},"description":"Credits charged for this request. Zero on any non-2xx. Sent on a metered tier only."},"X-Credits-Remaining":{"schema":{"type":"integer"},"description":"Credit balance after this request. Sent on a metered tier only."},"X-RateLimit-Remaining":{"schema":{"type":"integer"},"description":"Requests left in the bucket this request spent from. Not sent with a 401."},"X-Request-ID":{"schema":{"type":"string"},"description":"This request's trace ID. Echoed from the request, or generated when it sent none."}},"content":{"application/json":{"schema":{"type":"object","description":"The complete error response body — every error is exactly this.","required":["error"],"properties":{"error":{"type":"object","description":"The error.","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable, machine-readable. Clients switch on this, never on `message`.","enum":["UNAUTHORIZED","FORBIDDEN","VALIDATION_ERROR","UNSUPPORTED_CHAIN","NOT_FOUND","RATE_LIMITED","CREDITS_EXHAUSTED","INTERNAL_ERROR","SERVICE_UNAVAILABLE","RANGE_TOO_LARGE","INVALID_CREDENTIALS","ORIGIN_NOT_ALLOWED","NOT_ORG_MEMBER","MEMBERSHIP_INACTIVE","EMAIL_NOT_VERIFIED","EMAIL_TAKEN","ALREADY_MEMBER","INVITATION_ALREADY_SENT","INVITATION_ALREADY_ACCEPTED","LAST_ADMIN","CANNOT_REMOVE_SELF","KEY_LIMIT_REACHED","TOKEN_EXPIRED","PAYLOAD_TOO_LARGE","UNSUPPORTED_MEDIA_TYPE","IMAGE_TOO_LARGE"],"isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"Human-readable, written for the integrating developer:\n`[What happened]. [What to do next — if actionable].`","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"description":"Optional; shape is fixed per code.","uniqueKey":"error.details","typeLabel":"any"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"UNAUTHORIZED","message":"\u003cstring>","details":"\u003cunknown>"}}}},"exampleType":"generated"}},"exampleType":"generated"},"c9d8af93-c375-4463-af22-af8619c9d05a":{"description":"A key whose plan excludes this endpoint gets `FORBIDDEN`. A session token from an\norigin it does not name gets `ORIGIN_NOT_ALLOWED`.","headers":{"X-Credits-Cost":{"schema":{"type":"integer"},"description":"Credits charged for this request. Zero on any non-2xx. Sent on a metered tier only."},"X-Credits-Remaining":{"schema":{"type":"integer"},"description":"Credit balance after this request. Sent on a metered tier only."},"X-RateLimit-Remaining":{"schema":{"type":"integer"},"description":"Requests left in the bucket this request spent from. Not sent with a 401."},"X-Request-ID":{"schema":{"type":"string"},"description":"This request's trace ID. Echoed from the request, or generated when it sent none."}},"content":{"application/json":{"schema":{"type":"object","description":"The complete error response body — every error is exactly this.","required":["error"],"properties":{"error":{"type":"object","description":"The error.","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable, machine-readable. Clients switch on this, never on `message`.","enum":["UNAUTHORIZED","FORBIDDEN","VALIDATION_ERROR","UNSUPPORTED_CHAIN","NOT_FOUND","RATE_LIMITED","CREDITS_EXHAUSTED","INTERNAL_ERROR","SERVICE_UNAVAILABLE","RANGE_TOO_LARGE","INVALID_CREDENTIALS","ORIGIN_NOT_ALLOWED","NOT_ORG_MEMBER","MEMBERSHIP_INACTIVE","EMAIL_NOT_VERIFIED","EMAIL_TAKEN","ALREADY_MEMBER","INVITATION_ALREADY_SENT","INVITATION_ALREADY_ACCEPTED","LAST_ADMIN","CANNOT_REMOVE_SELF","KEY_LIMIT_REACHED","TOKEN_EXPIRED","PAYLOAD_TOO_LARGE","UNSUPPORTED_MEDIA_TYPE","IMAGE_TOO_LARGE"],"isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"Human-readable, written for the integrating developer:\n`[What happened]. [What to do next — if actionable].`","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"description":"Optional; shape is fixed per code.","uniqueKey":"error.details","typeLabel":"any"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"UNAUTHORIZED","message":"\u003cstring>","details":"\u003cunknown>"}}}},"exampleType":"generated"}},"exampleType":"generated"},"39f4c24e-79ec-4430-b0fe-4b133dcab38b":{"description":"Rate limit exceeded.","headers":{"Retry-After":{"schema":{"type":"integer"},"description":"Seconds to wait before retrying."},"X-Credits-Cost":{"schema":{"type":"integer"},"description":"Credits charged for this request. Zero on any non-2xx. Sent on a metered tier only."},"X-Credits-Remaining":{"schema":{"type":"integer"},"description":"Credit balance after this request. Sent on a metered tier only."},"X-RateLimit-Remaining":{"schema":{"type":"integer"},"description":"Requests left in the bucket this request spent from. Not sent with a 401."},"X-Request-ID":{"schema":{"type":"string"},"description":"This request's trace ID. Echoed from the request, or generated when it sent none."}},"content":{"application/json":{"schema":{"type":"object","description":"The complete error response body — every error is exactly this.","required":["error"],"properties":{"error":{"type":"object","description":"The error.","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable, machine-readable. Clients switch on this, never on `message`.","enum":["UNAUTHORIZED","FORBIDDEN","VALIDATION_ERROR","UNSUPPORTED_CHAIN","NOT_FOUND","RATE_LIMITED","CREDITS_EXHAUSTED","INTERNAL_ERROR","SERVICE_UNAVAILABLE","RANGE_TOO_LARGE","INVALID_CREDENTIALS","ORIGIN_NOT_ALLOWED","NOT_ORG_MEMBER","MEMBERSHIP_INACTIVE","EMAIL_NOT_VERIFIED","EMAIL_TAKEN","ALREADY_MEMBER","INVITATION_ALREADY_SENT","INVITATION_ALREADY_ACCEPTED","LAST_ADMIN","CANNOT_REMOVE_SELF","KEY_LIMIT_REACHED","TOKEN_EXPIRED","PAYLOAD_TOO_LARGE","UNSUPPORTED_MEDIA_TYPE","IMAGE_TOO_LARGE"],"isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"Human-readable, written for the integrating developer:\n`[What happened]. [What to do next — if actionable].`","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"description":"Optional; shape is fixed per code.","uniqueKey":"error.details","typeLabel":"any"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"UNAUTHORIZED","message":"\u003cstring>","details":"\u003cunknown>"}}}},"exampleType":"generated"}},"exampleType":"generated"},"89abb968-022c-419e-abdb-d55e5d9b9a6a":{"description":"Unexpected server failure.","headers":{"X-Credits-Cost":{"schema":{"type":"integer"},"description":"Credits charged for this request. Zero on any non-2xx. Sent on a metered tier only."},"X-Credits-Remaining":{"schema":{"type":"integer"},"description":"Credit balance after this request. Sent on a metered tier only."},"X-RateLimit-Remaining":{"schema":{"type":"integer"},"description":"Requests left in the bucket this request spent from. Not sent with a 401."},"X-Request-ID":{"schema":{"type":"string"},"description":"This request's trace ID. Echoed from the request, or generated when it sent none."}},"content":{"application/json":{"schema":{"type":"object","description":"The complete error response body — every error is exactly this.","required":["error"],"properties":{"error":{"type":"object","description":"The error.","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable, machine-readable. Clients switch on this, never on `message`.","enum":["UNAUTHORIZED","FORBIDDEN","VALIDATION_ERROR","UNSUPPORTED_CHAIN","NOT_FOUND","RATE_LIMITED","CREDITS_EXHAUSTED","INTERNAL_ERROR","SERVICE_UNAVAILABLE","RANGE_TOO_LARGE","INVALID_CREDENTIALS","ORIGIN_NOT_ALLOWED","NOT_ORG_MEMBER","MEMBERSHIP_INACTIVE","EMAIL_NOT_VERIFIED","EMAIL_TAKEN","ALREADY_MEMBER","INVITATION_ALREADY_SENT","INVITATION_ALREADY_ACCEPTED","LAST_ADMIN","CANNOT_REMOVE_SELF","KEY_LIMIT_REACHED","TOKEN_EXPIRED","PAYLOAD_TOO_LARGE","UNSUPPORTED_MEDIA_TYPE","IMAGE_TOO_LARGE"],"isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"Human-readable, written for the integrating developer:\n`[What happened]. [What to do next — if actionable].`","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"description":"Optional; shape is fixed per code.","uniqueKey":"error.details","typeLabel":"any"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"UNAUTHORIZED","message":"\u003cstring>","details":"\u003cunknown>"}}}},"exampleType":"generated"}},"exampleType":"generated"},"6665cca4-34ae-46b2-8732-0728390c3b93":{"description":"Dependency down or maintenance.","headers":{"X-Credits-Cost":{"schema":{"type":"integer"},"description":"Credits charged for this request. Zero on any non-2xx. Sent on a metered tier only."},"X-Credits-Remaining":{"schema":{"type":"integer"},"description":"Credit balance after this request. Sent on a metered tier only."},"X-RateLimit-Remaining":{"schema":{"type":"integer"},"description":"Requests left in the bucket this request spent from. Not sent with a 401."},"X-Request-ID":{"schema":{"type":"string"},"description":"This request's trace ID. Echoed from the request, or generated when it sent none."}},"content":{"application/json":{"schema":{"type":"object","description":"The complete error response body — every error is exactly this.","required":["error"],"properties":{"error":{"type":"object","description":"The error.","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable, machine-readable. Clients switch on this, never on `message`.","enum":["UNAUTHORIZED","FORBIDDEN","VALIDATION_ERROR","UNSUPPORTED_CHAIN","NOT_FOUND","RATE_LIMITED","CREDITS_EXHAUSTED","INTERNAL_ERROR","SERVICE_UNAVAILABLE","RANGE_TOO_LARGE","INVALID_CREDENTIALS","ORIGIN_NOT_ALLOWED","NOT_ORG_MEMBER","MEMBERSHIP_INACTIVE","EMAIL_NOT_VERIFIED","EMAIL_TAKEN","ALREADY_MEMBER","INVITATION_ALREADY_SENT","INVITATION_ALREADY_ACCEPTED","LAST_ADMIN","CANNOT_REMOVE_SELF","KEY_LIMIT_REACHED","TOKEN_EXPIRED","PAYLOAD_TOO_LARGE","UNSUPPORTED_MEDIA_TYPE","IMAGE_TOO_LARGE"],"isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"Human-readable, written for the integrating developer:\n`[What happened]. [What to do next — if actionable].`","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"description":"Optional; shape is fixed per code.","uniqueKey":"error.details","typeLabel":"any"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"UNAUTHORIZED","message":"\u003cstring>","details":"\u003cunknown>"}}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"744ac6ae-8a74-4d87-a0bd-0a1d1cf62a38":{"bearerKey":{"type":"http","scheme":"bearer","description":"Send an API key, or a session token a key minted, as `Authorization: Bearer \u003ccredential>`. A browser opening `/v1/stream` offers its session token in `Sec-WebSocket-Protocol` instead.","scopes":[],"schemeName":"bearerKey"}}},"servers":{"583dafd9-2e40-4bab-8b7e-b807c8f219de":{"url":"https://{host}","variables":{"host":{"default":"api.metastreams.io","description":"API host."}}}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","description":"Send an API key, or a session token a key minted, as `Authorization: Bearer \u003ccredential>`. A browser opening `/v1/stream` offers its session token in `Sec-WebSocket-Protocol` instead.","scopes":[],"schemeName":"bearerKey"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Send an API key, or a session token a key minted, as `Authorization: Bearer \u003ccredential>`. A browser opening `/v1/stream` offers its session token in `Sec-WebSocket-Protocol` instead.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearerKey","name":"Authorization"}],"title":"bearerKey"}]},"originalFileLocation":"specs/openapi.json"},"subdomain":"metastreams-prod","siteName":"Metastreams API","title":"The latest balance of each named wallet, per chain and asset. - Metastreams API","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-25T18:57:03.776Z","originalFileLocation":"api-reference/wallets/the-latest-balance-of-each-named-wallet-per-chain-and-asset.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"wallets names 1 to 100 addresses. chains narrows the scope, and every spot chain is read when it is absent. Each row holds the balance after the last transaction that moved it. A few movements write no row, such as Solana rent, so a balance can lag until the next one. Each wallet comes back in canonical form: base58 on Solana, lowercase hex on EVM chains.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Metastreams API\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/metastreams-prod/ontrOlgyWPlFJWQ-/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/metastreams-prod/ontrOlgyWPlFJWQ-/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/metastreams-prod/ontrOlgyWPlFJWQ-/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/metastreams-prod/ontrOlgyWPlFJWQ-/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/metastreams-prod/ontrOlgyWPlFJWQ-/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/metastreams-prod/ontrOlgyWPlFJWQ-/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/metastreams-prod/ontrOlgyWPlFJWQ-/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/metastreams-prod/ontrOlgyWPlFJWQ-/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/metastreams-prod/ontrOlgyWPlFJWQ-/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"The latest balance of each named wallet, per chain and asset. - Metastreams API\">\u003cmeta data-mint-head property=\"og:description\" content=\"wallets names 1 to 100 addresses. chains narrows the scope, and every spot chain is read when it is absent. Each row holds the balance after the last transaction that moved it. A few movements write no row, such as Solana rent, so a balance can lag until the next one. Each wallet comes back in canonical form: base58 on Solana, lowercase hex on EVM chains.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Metastreams API\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.metastreams.io/api-reference/wallets/the-latest-balance-of-each-named-wallet-per-chain-and-asset\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://metastreams-prod.mintlify.app/_mintlify/api/og/v2?division=wallets\u0026amp;title=The+latest+balance+of+each+named+wallet%2C+per+chain+and+asset.\u0026amp;description=%60wallets%60+names+1+to+100+addresses.+%60chains%60+narrows+the+scope%2C+and+every+spot+chain+is%0Aread+when+it+is+absent.+Each+row+holds+the+balance+after+the+last+transa\u0026amp;theme=f93f9f41876bb5c60e936f10\u0026amp;signature=99973de2e116ec7ea07e2f639e6599eb56517802e5af8b91461a1a0526edada1\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"The latest balance of each named wallet, per chain and asset. - Metastreams API\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"wallets names 1 to 100 addresses. chains narrows the scope, and every spot chain is read when it is absent. Each row holds the balance after the last transaction that moved it. A few movements write no row, such as Solana rent, so a balance can lag until the next one. Each wallet comes back in canonical form: base58 on Solana, lowercase hex on EVM chains.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://metastreams-prod.mintlify.app/_mintlify/api/og/v2?division=wallets\u0026amp;title=The+latest+balance+of+each+named+wallet%2C+per+chain+and+asset.\u0026amp;description=%60wallets%60+names+1+to+100+addresses.+%60chains%60+narrows+the+scope%2C+and+every+spot+chain+is%0Aread+when+it+is+absent.+Each+row+holds+the+balance+after+the+last+transa\u0026amp;theme=f93f9f41876bb5c60e936f10\u0026amp;signature=99973de2e116ec7ea07e2f639e6599eb56517802e5af8b91461a1a0526edada1\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/metastreams-prod/ontrOlgyWPlFJWQ-/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Metastreams API\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#2563EB\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.metastreams.io/api-reference/wallets/the-latest-balance-of-each-named-wallet-per-chain-and-asset\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/wallets/the-latest-balance-of-each-named-wallet-per-chain-and-asset.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.metastreams.io/#organization\",\"name\":\"Metastreams API\",\"url\":\"https://docs.metastreams.io\"},{\"@type\":\"WebSite\",\"@id\":\"https://docs.metastreams.io#website\",\"name\":\"Metastreams API\",\"url\":\"https://docs.metastreams.io\",\"publisher\":{\"@id\":\"https://docs.metastreams.io/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.metastreams.io/api-reference/wallets/the-latest-balance-of-each-named-wallet-per-chain-and-asset#webpage\",\"url\":\"https://docs.metastreams.io/api-reference/wallets/the-latest-balance-of-each-named-wallet-per-chain-and-asset\",\"name\":\"The latest balance of each named wallet, per chain and asset.\",\"description\":\"wallets names 1 to 100 addresses. chains narrows the scope, and every spot chain is read when it is absent. Each row holds the balance after the last transaction that moved it. A few movements write no row, such as Solana rent, so a balance can lag until the next one. Each wallet comes back in canonical form: base58 on Solana, lowercase hex on EVM chains.\",\"dateModified\":\"2026-10-25T18:57:03.776Z\",\"isPartOf\":{\"@id\":\"https://docs.metastreams.io#website\"},\"breadcrumb\":{\"@id\":\"https://docs.metastreams.io/api-reference/wallets/the-latest-balance-of-each-named-wallet-per-chain-and-asset#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.metastreams.io/api-reference/wallets/the-latest-balance-of-each-named-wallet-per-chain-and-asset#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"REST\",\"item\":\"https://docs.metastreams.io/reference/rest/token-details\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"wallets\",\"item\":\"https://docs.metastreams.io/api-reference/wallets/one-page-of-the-named-wallets-spot-positions\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"The latest balance of each named wallet, per chain and asset.\",\"item\":\"https://docs.metastreams.io/api-reference/wallets/the-latest-balance-of-each-named-wallet-per-chain-and-asset\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.metastreams.io/api-reference/wallets/the-latest-balance-of-each-named-wallet-per-chain-and-asset#apireference\",\"headline\":\"The latest balance of each named wallet, per chain and asset.\",\"name\":\"The latest balance of each named wallet, per chain and asset.\",\"description\":\"wallets names 1 to 100 addresses. chains narrows the scope, and every spot chain is read when it is absent. Each row holds the balance after the last transaction that moved it. A few movements write no row, such as Solana rent, so a balance can lag until the next one. Each wallet comes back in canonical form: base58 on Solana, lowercase hex on EVM chains.\",\"url\":\"https://docs.metastreams.io/api-reference/wallets/the-latest-balance-of-each-named-wallet-per-chain-and-asset\",\"mainEntityOfPage\":{\"@id\":\"https://docs.metastreams.io/api-reference/wallets/the-latest-balance-of-each-named-wallet-per-chain-and-asset#webpage\"},\"dateModified\":\"2026-10-25T18:57:03.776Z\",\"publisher\":{\"@id\":\"https://docs.metastreams.io/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.metastreams.io#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Metastreams API\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Metastreams API","nav":{"global":null,"tabs":[{"tab":"Docs","pages":[{"title":"Docs","href":""}]},{"tab":"API reference","groups":[{"group":"REST","pages":[{"title":"Token details","openapi":"specs/openapi.json GET /v1/tokens/{chain}/{address}","href":"/reference/rest/token-details"},{"title":"OHLCV candles","openapi":"specs/openapi.json GET /v1/tokens/{chain}/{address}/ohlcv","href":"/reference/rest/token-ohlcv"},{"title":"Token trades","openapi":"specs/openapi.json GET /v1/tokens/{chain}/{address}/trades","href":"/reference/rest/token-trades"},{"title":"Token holders","openapi":"specs/openapi.json GET /v1/tokens/{chain}/{address}/holders","href":"/reference/rest/token-holders"},{"title":"Identity trades","openapi":"specs/openapi.json GET /v1/trades","href":"/reference/rest/identity-trades"},{"title":"Discovery boards","openapi":"specs/openapi.json POST /v1/discovery","href":"/reference/rest/discovery"},{"title":"Wallet balances","openapi":"specs/openapi.json GET /v1/wallets/balances","href":"/reference/rest/wallet-balances"},{"title":"Positions","openapi":"specs/openapi.json GET /v1/positions","href":"/reference/rest/positions"},{"title":"Native prices","openapi":"specs/openapi.json GET /v1/native-prices","href":"/reference/rest/native-prices"},{"title":"Trending","openapi":"specs/openapi.json POST /v1/trending","href":"/reference/rest/trending"},{"title":"Session tokens","openapi":"specs/openapi.json POST /v1/session-tokens","href":"/reference/rest/session-tokens"},{"group":"discovery","pages":[{"title":"The discovery boards.","deprecated":null,"version":null,"openapi":"/specs/openapi.json post /v1/discovery","href":"/api-reference/discovery/the-discovery-boards"}]},{"group":"prices","pages":[{"title":"The newest USD price of each chain's gas asset: SOL, ETH or BNB.","deprecated":null,"version":null,"openapi":"/specs/openapi.json get /v1/native-prices","href":"/api-reference/prices/the-newest-usd-price-of-each-chains-gas-asset:-sol-eth-or-bnb"}]},{"group":"wallets","pages":[{"title":"One page of the named wallets' spot positions.","description":"`wallets` names 1 to 100 addresses. `lifecycle` picks open or closed positions, and\n`chain` with `token` narrows the page to one token. Values and PnL use each token's latest\nprice. The cost basis is the average cost of the tokens held. A token that arrives without\na buy costs nothing, and fees never enter PnL. Page with `cursor` until `hasMore` is\nfalse; a cursor continues only the filters and sort that made it.","deprecated":null,"version":null,"openapi":"/specs/openapi.json get /v1/positions","href":"/api-reference/wallets/one-page-of-the-named-wallets-spot-positions"},{"title":"The latest balance of each named wallet, per chain and asset.","deprecated":null,"version":null,"openapi":"/specs/openapi.json get /v1/wallets/balances","href":"/api-reference/wallets/the-latest-balance-of-each-named-wallet-per-chain-and-asset"}]},{"group":"sessionTokens","pages":[{"title":"Mint a session token for a browser or app user.","description":"A backend calls this with its API key, once per signed-in user, and hands the token to\nthe page. The page then calls the API directly, from the named origins, until the token\nexpires. Nothing refreshes a token, so mint the next one before the current one expires.\nA token spends its key's credits within its key's limits. Revoking the key ends every\ntoken it minted.","deprecated":null,"version":null,"openapi":"/specs/openapi.json post /v1/session-tokens","href":"/api-reference/sessiontokens/mint-a-session-token-for-a-browser-or-app-user"}]},{"group":"tokens","pages":[{"title":"Token details.","deprecated":null,"version":null,"openapi":"/specs/openapi.json get /v1/tokens/{chain}/{address}","href":"/api-reference/tokens/token-details"},{"title":"A token's current holders, largest balance first, optionally narrowed to wallet classifications.","deprecated":null,"version":null,"openapi":"/specs/openapi.json get /v1/tokens/{chain}/{address}/holders","href":"/api-reference/tokens/a-tokens-current-holders-largest-balance-first-optionally-narrowed-to-wallet-classifications"}]},{"group":"ohlcv","pages":[{"title":"OHLCV candles at one timeframe, oldest first.","deprecated":null,"version":null,"openapi":"/specs/openapi.json get /v1/tokens/{chain}/{address}/ohlcv","href":"/api-reference/ohlcv/ohlcv-candles-at-one-timeframe-oldest-first"}]},{"group":"trades","pages":[{"title":"Recent trades on the token, newest first, optionally narrowed to wallet classifications.","deprecated":null,"version":null,"openapi":"/specs/openapi.json get /v1/tokens/{chain}/{address}/trades","href":"/api-reference/trades/recent-trades-on-the-token-newest-first-optionally-narrowed-to-wallet-classifications"},{"title":"Recent trades by a notable identity, across every chain and token.","deprecated":null,"version":null,"openapi":"/specs/openapi.json get /v1/trades","href":"/api-reference/trades/recent-trades-by-a-notable-identity-across-every-chain-and-token"}]},{"group":"trending","pages":[{"title":"Tokens ranked by trending score.","deprecated":null,"version":null,"openapi":"/specs/openapi.json post /v1/trending","href":"/api-reference/trending/tokens-ranked-by-trending-score"}]}]},{"group":"Streams","pages":[{"title":"spot.trades","href":"/reference/streams/spot-trades"},{"title":"spot.transfers","href":"/reference/streams/spot-transfers"},{"title":"spot.candles","href":"/reference/streams/spot-candles"},{"title":"spot.tokens","href":"/reference/streams/spot-tokens"},{"title":"wallet.balances","href":"/reference/streams/wallet-balances"},{"title":"spot.positions","href":"/reference/streams/spot-positions"},{"title":"spot.holders","href":"/reference/streams/spot-holders"},{"title":"chain.nativePrices","href":"/reference/streams/native-prices"},{"title":"spot.trending","href":"/reference/streams/spot-trending"}]}]}]},"title":"The latest balance of each named wallet, per chain and asset. - Metastreams API","buildId":"dpl_cadrRc5H9XQiJQbDFN5mcYRs2PAj","deploymentId":"dpl_cadrRc5H9XQiJQbDFN5mcYRs2PAj","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-DKJwRUt2.js","utils-CWD_VS3u.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-oFjciODD.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-C76WsxC3.js","snippetPresets-DvPMxpX_.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-CuNQfndH.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-BVFpVUoF.js","shallow-t59Jg5Kr.js","getApiPlaygroundDisplay-C_JZ4amX.js","CodeSnippet-CLRDnx_h.js","CodeSnippets-C2myU4kc.js","Page-7TwLLapg.js","getPastedJson-B-JaVXw7.js","icon-BA-iDhH3.js","MethodPill-D4qZABFp.js","DuplicateIcon-THIDKO1O.js","createIcon-CYYJwgFd.js","DynamicMarkdown-UGQuxDKp.js","SectionHeading-jYELb23h.js","axios-vUo_bRtp.js","Markdown-DKsLa3wy.js","clsx-CefdjKz2.js","lib--scc4DXi.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-BaREnp3o.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-sgx_0XzF.js"]}