One token: network, address, symbol, name, decimals and our copy of its image, with a market block per platform that shows the token and the market across trading venues in canonical.market.
market.price is USD per whole token with 18 decimals; the other market values are USD with 6. holders is a count of wallets, priceChange24h a change in percent.
Each market block is the newest reading we hold from that platform, as of its observedAt. A field the platform never fills (unfilled in GET /v3/capabilities) is always null.
When no platform shows the token, we read its market from our market data provider during the call, at most once every 5 minutes per token, on Solana, Ethereum, Base, BNB Chain, Robinhood and Arc. A token we had not seen before is answered from that read. The price of the call does not change.
We hold the token, or our market data provider read it within the wait.
100
0
404: we never saw the token, and the provider did not know it within the wait.
100
0
Limits
2,000 requests per minute from one address on this operation, beside the per-minute limit of the key.
A key with less than 100 credits left gets 402 QUOTA_EXCEEDED before any work.
When no platform shows the token, a read of our market data provider runs up to 2 seconds inside the call. Past that the call answers with what we hold, and the read finishes for your next call.
Capability blocks keyed by platform. A platform key is absent when the object has no side on that platform. A block is absent when the platform cannot provide it (GET /v3/capabilities lists which can) or we hold no reading of it yet. A field is null when the platform left it empty at observedAt or never fills it (unfilled in GET /v3/capabilities). Skip platform keys and blocks you do not know.
Show child attributes
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"FomoScan","colors":{"primary":"#2D6BF5","light":"#3B78FF","dark":"#2D6BF5"},"logo":{"light":"https://mintcdn.com/socialscan/HNyN-bTZ1IatgGfu/images/mark.png?fit=max\u0026auto=format\u0026n=HNyN-bTZ1IatgGfu\u0026q=85\u0026s=d477c368ad11635c9133ca701da2f527","dark":"https://mintcdn.com/socialscan/HNyN-bTZ1IatgGfu/images/mark.png?fit=max\u0026auto=format\u0026n=HNyN-bTZ1IatgGfu\u0026q=85\u0026s=d477c368ad11635c9133ca701da2f527"},"favicon":"https://mintcdn.com/socialscan/HNyN-bTZ1IatgGfu/images/mark.png?fit=max\u0026auto=format\u0026n=HNyN-bTZ1IatgGfu\u0026q=85\u0026s=d477c368ad11635c9133ca701da2f527","api":{"playground":{"display":"interactive"},"examples":{"languages":["curl","javascript","python"]}},"appearance":{"default":"dark"},"background":{"color":{"dark":"#08090C"}},"navbar":{"links":[{"href":"https://partner.fomoscan.sh/login","label":"Log in"}],"primary":{"type":"button","label":"Get an API key","href":"https://partner.fomoscan.sh/signup"}},"footer":{"socials":{"website":"https://fomoscan.sh"}},"contextual":{"options":["copy","view","chatgpt","claude","cursor","mcp"],"display":"header"},"styling":{"latex":false},"navigation":{"global":{"anchors":[{"anchor":"Partner portal","icon":"key","href":"https://partner.fomoscan.sh"},{"anchor":"OpenAPI spec","icon":"code","href":"https://api.fomoscan.sh/openapi.json"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"socialscan","hasAudioNarration":false,"actualSubdomain":"socialscan","customDomains":["docs.fomoscan.sh"],"gitSource":{"type":"github","owner":"funny-development-org","repo":"fomoscan-monorepo","deployBranch":"main","contentDirectory":"apps/web/docs","isPrivate":true,"mountPath":"","label":"","_id":"6aeb9444574a98914de25354"},"chroma":{"latestBuiltDeploymentHistoryId":"6aeba1c79a06eb92c7d964e2","collectionId":"ebaf5f04-b731-4f1f-be6c-a698b18b49c8","liveDeploymentHistoryId":"6aeba1c79a06eb92c7d964e2","schemaVersion":"v3"},"entitlements":{"AI_CHAT":{"status":"DISABLED"},"WEB_MCP":{"status":"DISABLED"},"NARRATION":{"status":"DISABLED"}},"buildId":"6aeba1c79a06eb92c7d964e2","clientVersion":"0.0.4064","searchFilterCounts":[{"language":"default","tag":"API reference","count":56},{"language":"default","tag":"Endpoints","count":49},{"language":"default","tag":"Overview","count":26},{"language":"default","tag":"Core concepts","count":10},{"language":"default","tag":"Examples","count":10},{"language":"default","tag":"Identities","count":9},{"language":"default","tag":"WebSocket","count":7},{"language":"default","tag":"Pump","count":7},{"language":"default","tag":"Traders","count":7},{"language":"default","tag":"Get started","count":6}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","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":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","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":"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":"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":"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":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","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":"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":"workos-sso-scim","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},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"v3/api-reference/tokens/read-one-token","slug":"/v3/api-reference/tokens/read-one-token","pageMetadata":{"title":"Read one token","description":"One token: network, address, symbol, name, decimals and our copy of its image, with a `market` block per platform that shows the token and the market across trading venues in `canonical.market`.\n\n- `market.price` is USD per whole token with 18 decimals; the other market values are USD with 6. `holders` is a count of wallets, `priceChange24h` a change in percent.\n- Each `market` block is the newest reading we hold from that platform, as of its `observedAt`. A field the platform never fills (`unfilled` in `GET /v3/capabilities`) is always `null`.\n- When no platform shows the token, we read its market from our market data provider during the call, at most once every 5 minutes per token, on Solana, Ethereum, Base, BNB Chain, Robinhood and Arc. A token we had not seen before is answered from that read. The price of the call does not change.\n- Trades (`GET /v3/trades`) carry token quantities only. Read prices here.\n\n## Price\n\nThe price depends on the answer.\n\n| Answer | Credits | Reveals |\n| --- | --- | --- |\n| We hold the token, or our market data provider read it within the wait. | 100 | 0 |\n| 404: we never saw the token, and the provider did not know it within the wait. | 100 | 0 |\n\n## Limits\n\n- 2,000 requests per minute from one address on this operation, beside the per-minute limit of the key.\n- A key with less than 100 credits left gets 402 `QUOTA_EXCEEDED` before any work.\n- When no platform shows the token, a read of our market data provider runs up to 2 seconds inside the call. Past that the call answers with what we hold, and the read finishes for your next call.","deprecated":null,"version":null,"openapi":"https://api.fomoscan.sh/v3/openapi.json get /v3/tokens/{network}/{address}","href":"/v3/api-reference/tokens/read-one-token","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n h2: \"h2\",\n li: \"li\",\n p: \"p\",\n table: \"table\",\n tbody: \"tbody\",\n td: \"td\",\n th: \"th\",\n thead: \"thead\",\n tr: \"tr\",\n ul: \"ul\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsxs(_components.p, {\n children: [\"One token: network, address, symbol, name, decimals and our copy of its image, with a \", _jsx(_components.code, {\n children: \"market\"\n }), \" block per platform that shows the token and the market across trading venues in \", _jsx(_components.code, {\n children: \"canonical.market\"\n }), \".\"]\n }), \"\\n\", _jsxs(_components.ul, {\n children: [\"\\n\", _jsxs(_components.li, {\n children: [_jsx(_components.code, {\n children: \"market.price\"\n }), \" is USD per whole token with 18 decimals; the other market values are USD with 6. \", _jsx(_components.code, {\n children: \"holders\"\n }), \" is a count of wallets, \", _jsx(_components.code, {\n children: \"priceChange24h\"\n }), \" a change in percent.\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [\"Each \", _jsx(_components.code, {\n children: \"market\"\n }), \" block is the newest reading we hold from that platform, as of its \", _jsx(_components.code, {\n children: \"observedAt\"\n }), \". A field the platform never fills (\", _jsx(_components.code, {\n children: \"unfilled\"\n }), \" in \", _jsx(_components.code, {\n children: \"GET /v3/capabilities\"\n }), \") is always \", _jsx(_components.code, {\n children: \"null\"\n }), \".\"]\n }), \"\\n\", _jsx(_components.li, {\n children: \"When no platform shows the token, we read its market from our market data provider during the call, at most once every 5 minutes per token, on Solana, Ethereum, Base, BNB Chain, Robinhood and Arc. A token we had not seen before is answered from that read. The price of the call does not change.\"\n }), \"\\n\", _jsxs(_components.li, {\n children: [\"Trades (\", _jsx(_components.code, {\n children: \"GET /v3/trades\"\n }), \") carry token quantities only. Read prices here.\"]\n }), \"\\n\"]\n }), \"\\n\", _jsx(_components.h2, {\n children: \"Price\"\n }), \"\\n\", _jsx(_components.p, {\n children: \"The price depends on the answer.\"\n }), \"\\n\", _jsxs(_components.table, {\n children: [_jsx(_components.thead, {\n children: _jsxs(_components.tr, {\n children: [_jsx(_components.th, {\n children: \"Answer\"\n }), _jsx(_components.th, {\n children: \"Credits\"\n }), _jsx(_components.th, {\n children: \"Reveals\"\n })]\n })\n }), _jsxs(_components.tbody, {\n children: [_jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: \"We hold the token, or our market data provider read it within the wait.\"\n }), _jsx(_components.td, {\n children: \"100\"\n }), _jsx(_components.td, {\n children: \"0\"\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: \"404: we never saw the token, and the provider did not know it within the wait.\"\n }), _jsx(_components.td, {\n children: \"100\"\n }), _jsx(_components.td, {\n children: \"0\"\n })]\n })]\n })]\n }), \"\\n\", _jsx(_components.h2, {\n children: \"Limits\"\n }), \"\\n\", _jsxs(_components.ul, {\n children: [\"\\n\", _jsx(_components.li, {\n children: \"2,000 requests per minute from one address on this operation, beside the per-minute limit of the key.\"\n }), \"\\n\", _jsxs(_components.li, {\n children: [\"A key with less than 100 credits left gets 402 \", _jsx(_components.code, {\n children: \"QUOTA_EXCEEDED\"\n }), \" before any work.\"]\n }), \"\\n\", _jsx(_components.li, {\n children: \"When no platform shows the token, a read of our market data provider runs up to 2 seconds inside the call. Past that the call answers with what we hold, and the read finishes for your next call.\"\n }), \"\\n\"]\n })]\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":"Read one token","description":"One token: network, address, symbol, name, decimals and our copy of its image, with a `market` block per platform that shows the token and the market across trading venues in `canonical.market`.\n\n- `market.price` is USD per whole token with 18 decimals; the other market values are USD with 6. `holders` is a count of wallets, `priceChange24h` a change in percent.\n- Each `market` block is the newest reading we hold from that platform, as of its `observedAt`. A field the platform never fills (`unfilled` in `GET /v3/capabilities`) is always `null`.\n- When no platform shows the token, we read its market from our market data provider during the call, at most once every 5 minutes per token, on Solana, Ethereum, Base, BNB Chain, Robinhood and Arc. A token we had not seen before is answered from that read. The price of the call does not change.\n- Trades (`GET /v3/trades`) carry token quantities only. Read prices here.\n\n## Price\n\nThe price depends on the answer.\n\n| Answer | Credits | Reveals |\n| --- | --- | --- |\n| We hold the token, or our market data provider read it within the wait. | 100 | 0 |\n| 404: we never saw the token, and the provider did not know it within the wait. | 100 | 0 |\n\n## Limits\n\n- 2,000 requests per minute from one address on this operation, beside the per-minute limit of the key.\n- A key with less than 100 credits left gets 402 `QUOTA_EXCEEDED` before any work.\n- When no platform shows the token, a read of our market data provider runs up to 2 seconds inside the call. Past that the call answers with what we hold, and the read finishes for your next call.","deprecated":null,"version":null,"openapi":"https://api.fomoscan.sh/v3/openapi.json get /v3/tokens/{network}/{address}","href":"/v3/api-reference/tokens/read-one-token","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"operationId":"getToken","summary":"Read one token","description":"One token: network, address, symbol, name, decimals and our copy of its image, with a `market` block per platform that shows the token and the market across trading venues in `canonical.market`.\n\n- `market.price` is USD per whole token with 18 decimals; the other market values are USD with 6. `holders` is a count of wallets, `priceChange24h` a change in percent.\n- Each `market` block is the newest reading we hold from that platform, as of its `observedAt`. A field the platform never fills (`unfilled` in `GET /v3/capabilities`) is always `null`.\n- When no platform shows the token, we read its market from our market data provider during the call, at most once every 5 minutes per token, on Solana, Ethereum, Base, BNB Chain, Robinhood and Arc. A token we had not seen before is answered from that read. The price of the call does not change.\n- Trades (`GET /v3/trades`) carry token quantities only. Read prices here.\n\n## Price\n\nThe price depends on the answer.\n\n| Answer | Credits | Reveals |\n| --- | --- | --- |\n| We hold the token, or our market data provider read it within the wait. | 100 | 0 |\n| 404: we never saw the token, and the provider did not know it within the wait. | 100 | 0 |\n\n## Limits\n\n- 2,000 requests per minute from one address on this operation, beside the per-minute limit of the key.\n- A key with less than 100 credits left gets 402 `QUOTA_EXCEEDED` before any work.\n- When no platform shows the token, a read of our market data provider runs up to 2 seconds inside the call. Past that the call answers with what we hold, and the read finishes for your next call.","tags":["Tokens"],"x-operation":12,"parameters":["a1a3b456-a13e-409c-9f29-1651f6ff235b","1f274af7-18e6-44ad-871a-494fbb17135f"],"responses":{"200":"8b677960-4cf3-4d4c-8b6d-be0236a09898","400":"b50e75c7-23fa-4b66-894d-07041b922c0d","401":"cc42748b-e3e3-4251-8d45-50775db9c140","402":"098f6c4d-cb91-4be2-8a5e-75c7d0ad3057","403":"14b76dae-9a79-45c5-8a74-72182bf57444","404":"2667c462-9044-477f-922e-819d9768d5b2","429":"a4809a14-4590-4593-b0c5-3db5a182e2ce","500":"2b481094-0fc4-4889-9471-78bc075b7b10","503":"dc1efe95-5717-451d-ae9f-c08bd017181d"},"method":"get","type":"path","servers":["5fe32091-bca0-4091-894b-0b0476baa441"],"security":["1dae2ee9-4ade-434c-a812-454ff298e096","cc08a9cd-c1f8-4037-b1f0-a8a921734bd0"],"path":"/v3/tokens/{network}/{address}","baseUrlOptions":["https://api.fomoscan.sh"],"title":"Read one token","codeSamples":[],"requestExampleLanguages":["bash","javascript","python"],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"a1a3b456-a13e-409c-9f29-1651f6ff235b":{"name":"network","in":"path","description":"The network the token lives on.","required":true,"schema":{"type":"string","enum":["solana","ethereum","base","bsc","arbitrum","optimism","polygon","robinhood","hyperevm","monad","arc","xlayer","ink","hyperliquid"],"isRequired":true,"description":"The network the token lives on.","uniqueKey":"","typeLabel":"enum\u003cstring>"}},"1f274af7-18e6-44ad-871a-494fbb17135f":{"name":"address","in":"path","description":"The token address on that network: the mint on Solana.","required":true,"schema":{"type":"string","minLength":1,"maxLength":128,"isRequired":true,"description":"The token address on that network: the mint on Solana.","uniqueKey":"","typeLabel":"string"}}},"responses":{"8b677960-4cf3-4d4c-8b6d-be0236a09898":{"description":"OK","headers":{"X-Request-Id":{"description":"The id of this request, as in our logs.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Requests per minute allowed for the key.","schema":{"type":"integer","minimum":0}},"RateLimit-Remaining":{"description":"Requests left in the current minute.","schema":{"type":"integer","minimum":0}},"RateLimit-Reset":{"description":"Seconds until the current minute ends.","schema":{"type":"integer","minimum":0}}},"content":{"application/json":{"schema":{"type":"object","properties":{"kind":{"type":"string","const":"token","description":"The kind of object, `token` here, and the only field to switch on. Skip objects whose kind you do not know.","isRequired":true,"uniqueKey":"kind","typeLabel":"string"},"id":{"type":"string","description":"Our id of the object, `tok_\u003cnetwork>_\u003caddress>`. Store it: it stays the same across calls and never holds a platform's own id.","isRequired":true,"uniqueKey":"id","typeLabel":"string"},"canonical":{"type":"object","properties":{"network":{"type":"string","enum":["solana","ethereum","base","bsc","arbitrum","optimism","polygon","robinhood","hyperevm","monad","arc","xlayer","ink","hyperliquid"],"description":"The network the token lives on.","isRequired":true,"uniqueKey":"canonical.network","typeLabel":"enum\u003cstring>"},"address":{"type":"string","description":"The token address on that network (the mint on Solana).","isRequired":true,"uniqueKey":"canonical.address","typeLabel":"string"},"symbol":{"oneOf":[{"description":"The token symbol.","type":"string","isRequired":true,"uniqueKey":"canonical.symbol.oneOf.0","typeLabel":"string"},{"description":"The token symbol.","type":"null","isRequired":true,"uniqueKey":"canonical.symbol.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"canonical.symbol","typeLabel":"string | null"},"name":{"oneOf":[{"description":"The token name.","type":"string","isRequired":true,"uniqueKey":"canonical.name.oneOf.0","typeLabel":"string"},{"description":"The token name.","type":"null","isRequired":true,"uniqueKey":"canonical.name.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"canonical.name","typeLabel":"string | null"},"decimals":{"oneOf":[{"type":"integer","description":"Decimals of the token: base units per whole token as a power of ten.","maximum":9007199254740991,"minimum":-9007199254740991,"isRequired":true,"uniqueKey":"canonical.decimals.oneOf.0","typeLabel":"integer"},{"type":"null","description":"Decimals of the token: base units per whole token as a power of ten.","isRequired":true,"uniqueKey":"canonical.decimals.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"canonical.decimals","typeLabel":"integer | null"},"imageUrl":{"oneOf":[{"description":"Our mirrored copy of the token image.","type":"string","isRequired":true,"uniqueKey":"canonical.imageUrl.oneOf.0","typeLabel":"string"},{"description":"Our mirrored copy of the token image.","type":"null","isRequired":true,"uniqueKey":"canonical.imageUrl.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"canonical.imageUrl","typeLabel":"string | null"},"firstSeenAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d\\.\\d{3}(?:Z))$","description":"When we first saw the token.","isRequired":true,"uniqueKey":"canonical.firstSeenAt","typeLabel":"string\u003cdate-time>"},"market":{"oneOf":[{"type":"object","description":"The token market across trading venues as our market data provider read it, every field as the provider sent it; `null` when we hold no such reading. `GET /v3/tokens/{network}/{address}` reads it when no platform shows the token and the reading we hold is missing or older than 5 minutes; every other answer serves the reading we hold. `observedAt` says how old it is.","required":["price","marketCap","fdv","liquidity","volume24h","holders","priceChange24h","observedAt"],"properties":{"price":{"oneOf":[{"type":"object","description":"USD for one whole token, with 18 decimals.","required":["value","decimals","currency"],"properties":{"value":{"type":"string","pattern":"^(0|-?[1-9]\\d*)$","description":"An integer in base units, as a string, and negative below zero. Read it with a decimal or big integer type; a float loses digits.","isRequired":true,"uniqueKey":"canonical.market.oneOf.0.price.oneOf.0.value","typeLabel":"string"},"decimals":{"type":"integer","minimum":0,"maximum":36,"description":"The power of ten between base units and one whole unit: `value` ÷ 10^`decimals`.","isRequired":true,"uniqueKey":"canonical.market.oneOf.0.price.oneOf.0.decimals","typeLabel":"integer"},"currency":{"type":"string","minLength":1,"description":"`USD`, or the token id (`tok_\u003cnetwork>_\u003caddress>`) of a token quantity.","isRequired":true,"uniqueKey":"canonical.market.oneOf.0.price.oneOf.0.currency","typeLabel":"string"},"priceAsOf":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d\\.\\d{3}(?:Z))$","description":"The time of the price we converted the value with. Absent when no price was used.","uniqueKey":"canonical.market.oneOf.0.price.oneOf.0.priceAsOf","typeLabel":"string\u003cdate-time>"}},"isRequired":true,"uniqueKey":"canonical.market.oneOf.0.price.oneOf.0","typeLabel":"object"},{"type":"null","description":"USD for one whole token, with 18 decimals.","isRequired":true,"uniqueKey":"canonical.market.oneOf.0.price.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"canonical.market.oneOf.0.price","typeLabel":"object | null"},"marketCap":{"oneOf":[{"type":"object","description":"Market cap in USD, with 6 decimals.","required":["value","decimals","currency"],"properties":{"value":{"type":"string","pattern":"^(0|-?[1-9]\\d*)$","description":"An integer in base units, as a string, and negative below zero. Read it with a decimal or big integer type; a float loses digits.","isRequired":true,"uniqueKey":"canonical.market.oneOf.0.marketCap.oneOf.0.value","typeLabel":"string"},"decimals":{"type":"integer","minimum":0,"maximum":36,"description":"The power of ten between base units and one whole unit: `value` ÷ 10^`decimals`.","isRequired":true,"uniqueKey":"canonical.market.oneOf.0.marketCap.oneOf.0.decimals","typeLabel":"integer"},"currency":{"type":"string","minLength":1,"description":"`USD`, or the token id (`tok_\u003cnetwork>_\u003caddress>`) of a token quantity.","isRequired":true,"uniqueKey":"canonical.market.oneOf.0.marketCap.oneOf.0.currency","typeLabel":"string"},"priceAsOf":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d\\.\\d{3}(?:Z))$","description":"The time of the price we converted the value with. Absent when no price was used.","uniqueKey":"canonical.market.oneOf.0.marketCap.oneOf.0.priceAsOf","typeLabel":"string\u003cdate-time>"}},"isRequired":true,"uniqueKey":"canonical.market.oneOf.0.marketCap.oneOf.0","typeLabel":"object"},{"type":"null","description":"Market cap in USD, with 6 decimals.","isRequired":true,"uniqueKey":"canonical.market.oneOf.0.marketCap.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"canonical.market.oneOf.0.marketCap","typeLabel":"object | null"},"fdv":{"oneOf":[{"type":"object","description":"Fully diluted value in USD, with 6 decimals.","required":["value","decimals","currency"],"properties":{"value":{"type":"string","pattern":"^(0|-?[1-9]\\d*)$","description":"An integer in base units, as a string, and negative below zero. Read it with a decimal or big integer type; a float loses digits.","isRequired":true,"uniqueKey":"canonical.market.oneOf.0.fdv.oneOf.0.value","typeLabel":"string"},"decimals":{"type":"integer","minimum":0,"maximum":36,"description":"The power of ten between base units and one whole unit: `value` ÷ 10^`decimals`.","isRequired":true,"uniqueKey":"canonical.market.oneOf.0.fdv.oneOf.0.decimals","typeLabel":"integer"},"currency":{"type":"string","minLength":1,"description":"`USD`, or the token id (`tok_\u003cnetwork>_\u003caddress>`) of a token quantity.","isRequired":true,"uniqueKey":"canonical.market.oneOf.0.fdv.oneOf.0.currency","typeLabel":"string"},"priceAsOf":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d\\.\\d{3}(?:Z))$","description":"The time of the price we converted the value with. Absent when no price was used.","uniqueKey":"canonical.market.oneOf.0.fdv.oneOf.0.priceAsOf","typeLabel":"string\u003cdate-time>"}},"isRequired":true,"uniqueKey":"canonical.market.oneOf.0.fdv.oneOf.0","typeLabel":"object"},{"type":"null","description":"Fully diluted value in USD, with 6 decimals.","isRequired":true,"uniqueKey":"canonical.market.oneOf.0.fdv.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"canonical.market.oneOf.0.fdv","typeLabel":"object | null"},"liquidity":{"oneOf":[{"type":"object","description":"Liquidity in USD, with 6 decimals.","required":["value","decimals","currency"],"properties":{"value":{"type":"string","pattern":"^(0|-?[1-9]\\d*)$","description":"An integer in base units, as a string, and negative below zero. Read it with a decimal or big integer type; a float loses digits.","isRequired":true,"uniqueKey":"canonical.market.oneOf.0.liquidity.oneOf.0.value","typeLabel":"string"},"decimals":{"type":"integer","minimum":0,"maximum":36,"description":"The power of ten between base units and one whole unit: `value` ÷ 10^`decimals`.","isRequired":true,"uniqueKey":"canonical.market.oneOf.0.liquidity.oneOf.0.decimals","typeLabel":"integer"},"currency":{"type":"string","minLength":1,"description":"`USD`, or the token id (`tok_\u003cnetwork>_\u003caddress>`) of a token quantity.","isRequired":true,"uniqueKey":"canonical.market.oneOf.0.liquidity.oneOf.0.currency","typeLabel":"string"},"priceAsOf":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d\\.\\d{3}(?:Z))$","description":"The time of the price we converted the value with. Absent when no price was used.","uniqueKey":"canonical.market.oneOf.0.liquidity.oneOf.0.priceAsOf","typeLabel":"string\u003cdate-time>"}},"isRequired":true,"uniqueKey":"canonical.market.oneOf.0.liquidity.oneOf.0","typeLabel":"object"},{"type":"null","description":"Liquidity in USD, with 6 decimals.","isRequired":true,"uniqueKey":"canonical.market.oneOf.0.liquidity.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"canonical.market.oneOf.0.liquidity","typeLabel":"object | null"},"volume24h":{"oneOf":[{"type":"object","description":"Traded volume of the last 24 hours in USD, with 6 decimals.","required":["value","decimals","currency"],"properties":{"value":{"type":"string","pattern":"^(0|-?[1-9]\\d*)$","description":"An integer in base units, as a string, and negative below zero. Read it with a decimal or big integer type; a float loses digits.","isRequired":true,"uniqueKey":"canonical.market.oneOf.0.volume24h.oneOf.0.value","typeLabel":"string"},"decimals":{"type":"integer","minimum":0,"maximum":36,"description":"The power of ten between base units and one whole unit: `value` ÷ 10^`decimals`.","isRequired":true,"uniqueKey":"canonical.market.oneOf.0.volume24h.oneOf.0.decimals","typeLabel":"integer"},"currency":{"type":"string","minLength":1,"description":"`USD`, or the token id (`tok_\u003cnetwork>_\u003caddress>`) of a token quantity.","isRequired":true,"uniqueKey":"canonical.market.oneOf.0.volume24h.oneOf.0.currency","typeLabel":"string"},"priceAsOf":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d\\.\\d{3}(?:Z))$","description":"The time of the price we converted the value with. Absent when no price was used.","uniqueKey":"canonical.market.oneOf.0.volume24h.oneOf.0.priceAsOf","typeLabel":"string\u003cdate-time>"}},"isRequired":true,"uniqueKey":"canonical.market.oneOf.0.volume24h.oneOf.0","typeLabel":"object"},{"type":"null","description":"Traded volume of the last 24 hours in USD, with 6 decimals.","isRequired":true,"uniqueKey":"canonical.market.oneOf.0.volume24h.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"canonical.market.oneOf.0.volume24h","typeLabel":"object | null"},"holders":{"oneOf":[{"type":"integer","description":"The number of wallets that hold the token.","maximum":9007199254740991,"minimum":-9007199254740991,"isRequired":true,"uniqueKey":"canonical.market.oneOf.0.holders.oneOf.0","typeLabel":"integer"},{"type":"null","description":"The number of wallets that hold the token.","isRequired":true,"uniqueKey":"canonical.market.oneOf.0.holders.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"canonical.market.oneOf.0.holders","typeLabel":"integer | null"},"priceChange24h":{"oneOf":[{"description":"Change of the price over the last 24 hours in percent, rounded to 8 decimals: `12.5` is a rise of 12.5 %, `-40` a fall of 40 %.","type":"number","isRequired":true,"uniqueKey":"canonical.market.oneOf.0.priceChange24h.oneOf.0","typeLabel":"number"},{"description":"Change of the price over the last 24 hours in percent, rounded to 8 decimals: `12.5` is a rise of 12.5 %, `-40` a fall of 40 %.","type":"null","isRequired":true,"uniqueKey":"canonical.market.oneOf.0.priceChange24h.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"canonical.market.oneOf.0.priceChange24h","typeLabel":"number | null"},"observedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d\\.\\d{3}(?:Z))$","description":"When we read this block. Every value in the block is as of this time.","isRequired":true,"uniqueKey":"canonical.market.oneOf.0.observedAt","typeLabel":"string\u003cdate-time>"}},"isRequired":true,"uniqueKey":"canonical.market.oneOf.0","typeLabel":"object"},{"type":"null","description":"The token market across trading venues as our market data provider read it, every field as the provider sent it; `null` when we hold no such reading. `GET /v3/tokens/{network}/{address}` reads it when no platform shows the token and the reading we hold is missing or older than 5 minutes; every other answer serves the reading we hold. `observedAt` says how old it is.","isRequired":true,"uniqueKey":"canonical.market.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"canonical.market","typeLabel":"object | null"}},"required":["network","address","symbol","name","decimals","imageUrl","firstSeenAt","market"],"description":"Fields that mean the same on every platform.","isRequired":true,"uniqueKey":"canonical","typeLabel":"object"},"sources":{"type":"object","propertyNames":{"type":"string","enum":["fomo","pump","hyperliquid","markets","polymarket","legend","risex"]},"additionalProperties":{"type":"object","properties":{"market":{"oneOf":[{"type":"object","description":"Price, market cap, liquidity, volume, holders and price change as the platform showed them in the newest reading we hold. A token keeps its last reading after it leaves the platform boards we read; `observedAt` says how old it is. A field listed under `unfilled` in `GET /v3/capabilities` is always `null`.","required":["price","marketCap","fdv","liquidity","volume24h","holders","priceChange24h","observedAt"],"properties":{"price":{"oneOf":[{"type":"object","description":"USD for one whole token, with 18 decimals.","required":["value","decimals","currency"],"properties":{"value":{"type":"string","pattern":"^(0|-?[1-9]\\d*)$","description":"An integer in base units, as a string, and negative below zero. Read it with a decimal or big integer type; a float loses digits.","isRequired":true,"uniqueKey":"sources.additionalProperties.market.oneOf.0.price.oneOf.0.value","typeLabel":"string"},"decimals":{"type":"integer","minimum":0,"maximum":36,"description":"The power of ten between base units and one whole unit: `value` ÷ 10^`decimals`.","isRequired":true,"uniqueKey":"sources.additionalProperties.market.oneOf.0.price.oneOf.0.decimals","typeLabel":"integer"},"currency":{"type":"string","minLength":1,"description":"`USD`, or the token id (`tok_\u003cnetwork>_\u003caddress>`) of a token quantity.","isRequired":true,"uniqueKey":"sources.additionalProperties.market.oneOf.0.price.oneOf.0.currency","typeLabel":"string"},"priceAsOf":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d\\.\\d{3}(?:Z))$","description":"The time of the price we converted the value with. Absent when no price was used.","uniqueKey":"sources.additionalProperties.market.oneOf.0.price.oneOf.0.priceAsOf","typeLabel":"string\u003cdate-time>"}},"isRequired":true,"uniqueKey":"sources.additionalProperties.market.oneOf.0.price.oneOf.0","typeLabel":"object"},{"type":"null","description":"USD for one whole token, with 18 decimals.","isRequired":true,"uniqueKey":"sources.additionalProperties.market.oneOf.0.price.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"sources.additionalProperties.market.oneOf.0.price","typeLabel":"object | null"},"marketCap":{"oneOf":[{"type":"object","description":"Market cap in USD, with 6 decimals.","required":["value","decimals","currency"],"properties":{"value":{"type":"string","pattern":"^(0|-?[1-9]\\d*)$","description":"An integer in base units, as a string, and negative below zero. Read it with a decimal or big integer type; a float loses digits.","isRequired":true,"uniqueKey":"sources.additionalProperties.market.oneOf.0.marketCap.oneOf.0.value","typeLabel":"string"},"decimals":{"type":"integer","minimum":0,"maximum":36,"description":"The power of ten between base units and one whole unit: `value` ÷ 10^`decimals`.","isRequired":true,"uniqueKey":"sources.additionalProperties.market.oneOf.0.marketCap.oneOf.0.decimals","typeLabel":"integer"},"currency":{"type":"string","minLength":1,"description":"`USD`, or the token id (`tok_\u003cnetwork>_\u003caddress>`) of a token quantity.","isRequired":true,"uniqueKey":"sources.additionalProperties.market.oneOf.0.marketCap.oneOf.0.currency","typeLabel":"string"},"priceAsOf":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d\\.\\d{3}(?:Z))$","description":"The time of the price we converted the value with. Absent when no price was used.","uniqueKey":"sources.additionalProperties.market.oneOf.0.marketCap.oneOf.0.priceAsOf","typeLabel":"string\u003cdate-time>"}},"isRequired":true,"uniqueKey":"sources.additionalProperties.market.oneOf.0.marketCap.oneOf.0","typeLabel":"object"},{"type":"null","description":"Market cap in USD, with 6 decimals.","isRequired":true,"uniqueKey":"sources.additionalProperties.market.oneOf.0.marketCap.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"sources.additionalProperties.market.oneOf.0.marketCap","typeLabel":"object | null"},"fdv":{"oneOf":[{"type":"object","description":"Fully diluted value in USD, with 6 decimals.","required":["value","decimals","currency"],"properties":{"value":{"type":"string","pattern":"^(0|-?[1-9]\\d*)$","description":"An integer in base units, as a string, and negative below zero. Read it with a decimal or big integer type; a float loses digits.","isRequired":true,"uniqueKey":"sources.additionalProperties.market.oneOf.0.fdv.oneOf.0.value","typeLabel":"string"},"decimals":{"type":"integer","minimum":0,"maximum":36,"description":"The power of ten between base units and one whole unit: `value` ÷ 10^`decimals`.","isRequired":true,"uniqueKey":"sources.additionalProperties.market.oneOf.0.fdv.oneOf.0.decimals","typeLabel":"integer"},"currency":{"type":"string","minLength":1,"description":"`USD`, or the token id (`tok_\u003cnetwork>_\u003caddress>`) of a token quantity.","isRequired":true,"uniqueKey":"sources.additionalProperties.market.oneOf.0.fdv.oneOf.0.currency","typeLabel":"string"},"priceAsOf":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d\\.\\d{3}(?:Z))$","description":"The time of the price we converted the value with. Absent when no price was used.","uniqueKey":"sources.additionalProperties.market.oneOf.0.fdv.oneOf.0.priceAsOf","typeLabel":"string\u003cdate-time>"}},"isRequired":true,"uniqueKey":"sources.additionalProperties.market.oneOf.0.fdv.oneOf.0","typeLabel":"object"},{"type":"null","description":"Fully diluted value in USD, with 6 decimals.","isRequired":true,"uniqueKey":"sources.additionalProperties.market.oneOf.0.fdv.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"sources.additionalProperties.market.oneOf.0.fdv","typeLabel":"object | null"},"liquidity":{"oneOf":[{"type":"object","description":"Liquidity in USD, with 6 decimals.","required":["value","decimals","currency"],"properties":{"value":{"type":"string","pattern":"^(0|-?[1-9]\\d*)$","description":"An integer in base units, as a string, and negative below zero. Read it with a decimal or big integer type; a float loses digits.","isRequired":true,"uniqueKey":"sources.additionalProperties.market.oneOf.0.liquidity.oneOf.0.value","typeLabel":"string"},"decimals":{"type":"integer","minimum":0,"maximum":36,"description":"The power of ten between base units and one whole unit: `value` ÷ 10^`decimals`.","isRequired":true,"uniqueKey":"sources.additionalProperties.market.oneOf.0.liquidity.oneOf.0.decimals","typeLabel":"integer"},"currency":{"type":"string","minLength":1,"description":"`USD`, or the token id (`tok_\u003cnetwork>_\u003caddress>`) of a token quantity.","isRequired":true,"uniqueKey":"sources.additionalProperties.market.oneOf.0.liquidity.oneOf.0.currency","typeLabel":"string"},"priceAsOf":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d\\.\\d{3}(?:Z))$","description":"The time of the price we converted the value with. Absent when no price was used.","uniqueKey":"sources.additionalProperties.market.oneOf.0.liquidity.oneOf.0.priceAsOf","typeLabel":"string\u003cdate-time>"}},"isRequired":true,"uniqueKey":"sources.additionalProperties.market.oneOf.0.liquidity.oneOf.0","typeLabel":"object"},{"type":"null","description":"Liquidity in USD, with 6 decimals.","isRequired":true,"uniqueKey":"sources.additionalProperties.market.oneOf.0.liquidity.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"sources.additionalProperties.market.oneOf.0.liquidity","typeLabel":"object | null"},"volume24h":{"oneOf":[{"type":"object","description":"Traded volume of the last 24 hours in USD, with 6 decimals.","required":["value","decimals","currency"],"properties":{"value":{"type":"string","pattern":"^(0|-?[1-9]\\d*)$","description":"An integer in base units, as a string, and negative below zero. Read it with a decimal or big integer type; a float loses digits.","isRequired":true,"uniqueKey":"sources.additionalProperties.market.oneOf.0.volume24h.oneOf.0.value","typeLabel":"string"},"decimals":{"type":"integer","minimum":0,"maximum":36,"description":"The power of ten between base units and one whole unit: `value` ÷ 10^`decimals`.","isRequired":true,"uniqueKey":"sources.additionalProperties.market.oneOf.0.volume24h.oneOf.0.decimals","typeLabel":"integer"},"currency":{"type":"string","minLength":1,"description":"`USD`, or the token id (`tok_\u003cnetwork>_\u003caddress>`) of a token quantity.","isRequired":true,"uniqueKey":"sources.additionalProperties.market.oneOf.0.volume24h.oneOf.0.currency","typeLabel":"string"},"priceAsOf":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d\\.\\d{3}(?:Z))$","description":"The time of the price we converted the value with. Absent when no price was used.","uniqueKey":"sources.additionalProperties.market.oneOf.0.volume24h.oneOf.0.priceAsOf","typeLabel":"string\u003cdate-time>"}},"isRequired":true,"uniqueKey":"sources.additionalProperties.market.oneOf.0.volume24h.oneOf.0","typeLabel":"object"},{"type":"null","description":"Traded volume of the last 24 hours in USD, with 6 decimals.","isRequired":true,"uniqueKey":"sources.additionalProperties.market.oneOf.0.volume24h.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"sources.additionalProperties.market.oneOf.0.volume24h","typeLabel":"object | null"},"holders":{"oneOf":[{"type":"integer","description":"The number of wallets that hold the token.","maximum":9007199254740991,"minimum":-9007199254740991,"isRequired":true,"uniqueKey":"sources.additionalProperties.market.oneOf.0.holders.oneOf.0","typeLabel":"integer"},{"type":"null","description":"The number of wallets that hold the token.","isRequired":true,"uniqueKey":"sources.additionalProperties.market.oneOf.0.holders.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"sources.additionalProperties.market.oneOf.0.holders","typeLabel":"integer | null"},"priceChange24h":{"oneOf":[{"description":"Change of the price over the last 24 hours in percent, rounded to 8 decimals: `12.5` is a rise of 12.5 %, `-40` a fall of 40 %.","type":"number","isRequired":true,"uniqueKey":"sources.additionalProperties.market.oneOf.0.priceChange24h.oneOf.0","typeLabel":"number"},{"description":"Change of the price over the last 24 hours in percent, rounded to 8 decimals: `12.5` is a rise of 12.5 %, `-40` a fall of 40 %.","type":"null","isRequired":true,"uniqueKey":"sources.additionalProperties.market.oneOf.0.priceChange24h.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"sources.additionalProperties.market.oneOf.0.priceChange24h","typeLabel":"number | null"},"observedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d\\.\\d{3}(?:Z))$","description":"When we read this block. Every value in the block is as of this time.","isRequired":true,"uniqueKey":"sources.additionalProperties.market.oneOf.0.observedAt","typeLabel":"string\u003cdate-time>"}},"uniqueKey":"sources.additionalProperties.market.oneOf.0","typeLabel":"object"},{"type":"object","description":"Price, market cap, liquidity, volume, holders and price change as the platform showed them in the newest reading we hold. A token keeps its last reading after it leaves the platform boards we read; `observedAt` says how old it is. A field listed under `unfilled` in `GET /v3/capabilities` is always `null`.","required":["status","retryable"],"properties":{"status":{"type":"string","const":"unavailable","description":"Always `unavailable`.","isRequired":true,"uniqueKey":"sources.additionalProperties.market.oneOf.1.status","typeLabel":"string"},"retryable":{"type":"boolean","description":"`true` when a later call can return the block.","isRequired":true,"uniqueKey":"sources.additionalProperties.market.oneOf.1.retryable","typeLabel":"boolean"}},"uniqueKey":"sources.additionalProperties.market.oneOf.1","typeLabel":"object"}],"uniqueKey":"sources.additionalProperties.market","typeLabel":"object"}},"uniqueKey":"sources.additionalProperties","typeLabel":"object"},"description":"Capability blocks keyed by platform. A platform key is absent when the object has no side on that platform. A block is absent when the platform cannot provide it (`GET /v3/capabilities` lists which can) or we hold no reading of it yet. A field is `null` when the platform left it empty at `observedAt` or never fills it (`unfilled` in `GET /v3/capabilities`). Skip platform keys and blocks you do not know.","isRequired":true,"uniqueKey":"sources","typeLabel":"object"}},"required":["kind","id","canonical","sources"],"description":"A token on one network.","uniqueKey":"","typeLabel":"object"},"example":{"kind":"token","id":"tok_solana_DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263","canonical":{"network":"solana","address":"DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263","symbol":"BONK","name":"Bonk","decimals":5,"imageUrl":"https://img.example.com/a/4c2e8a1f7b3d9e6a0f5c1b8d2e7a4f3c.webp","firstSeenAt":"2025-01-09T00:12:40.000Z","market":{"price":{"value":"18741200000000","decimals":18,"currency":"USD"},"marketCap":{"value":"1544807000000000","decimals":6,"currency":"USD"},"fdv":{"value":"1663510000000000","decimals":6,"currency":"USD"},"liquidity":{"value":"38102440000000","decimals":6,"currency":"USD"},"volume24h":{"value":"241905300000000","decimals":6,"currency":"USD"},"holders":991027,"priceChange24h":-4.76310482,"observedAt":"2026-11-01T08:55:00.000Z"}},"sources":{"fomo":{"market":{"price":{"value":"18734000000000","decimals":18,"currency":"USD"},"marketCap":{"value":"1544210000000000","decimals":6,"currency":"USD"},"fdv":null,"liquidity":{"value":"21480320000000","decimals":6,"currency":"USD"},"volume24h":{"value":"187340100000000","decimals":6,"currency":"USD"},"holders":982114,"priceChange24h":-4.81726533,"observedAt":"2026-11-01T08:55:00.000Z"}}}},"examples":{"Example":{"title":"Example","value":{"kind":"token","id":"tok_solana_DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263","canonical":{"network":"solana","address":"DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263","symbol":"BONK","name":"Bonk","decimals":5,"imageUrl":"https://img.example.com/a/4c2e8a1f7b3d9e6a0f5c1b8d2e7a4f3c.webp","firstSeenAt":"2025-01-09T00:12:40.000Z","market":{"price":{"value":"18741200000000","decimals":18,"currency":"USD"},"marketCap":{"value":"1544807000000000","decimals":6,"currency":"USD"},"fdv":{"value":"1663510000000000","decimals":6,"currency":"USD"},"liquidity":{"value":"38102440000000","decimals":6,"currency":"USD"},"volume24h":{"value":"241905300000000","decimals":6,"currency":"USD"},"holders":991027,"priceChange24h":-4.76310482,"observedAt":"2026-11-01T08:55:00.000Z"}},"sources":{"fomo":{"market":{"price":{"value":"18734000000000","decimals":18,"currency":"USD"},"marketCap":{"value":"1544210000000000","decimals":6,"currency":"USD"},"fdv":null,"liquidity":{"value":"21480320000000","decimals":6,"currency":"USD"},"volume24h":{"value":"187340100000000","decimals":6,"currency":"USD"},"holders":982114,"priceChange24h":-4.81726533,"observedAt":"2026-11-01T08:55:00.000Z"}}}}}},"exampleType":"examples"}},"exampleType":"examples"},"b50e75c7-23fa-4b66-894d-07041b922c0d":{"description":"`INVALID_ARGUMENT`: a parameter, an id, a cursor or the body is malformed, or the operation does not take it.\n\n- `address` is not a valid address on `network`.","headers":{"X-Request-Id":{"description":"The id of this request, as in our logs.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string","enum":["invalid_request","authentication","quota","permission","rate_limit","internal","overloaded"],"description":"The group of the error. Each `code` belongs to one type.","isRequired":true,"uniqueKey":"error.type","typeLabel":"enum\u003cstring>"},"code":{"type":"string","enum":["INVALID_ARGUMENT","UNAUTHENTICATED","QUOTA_EXCEEDED","REVEAL_LIMIT_REACHED","PERMISSION_DENIED","PLAN_REQUIRED","NOT_FOUND","RATE_LIMITED","INTERNAL","OVERLOADED"],"description":"What went wrong, from a closed list. Act on this field.","isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"A sentence for people. It can change; never parse it.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"requestId":{"type":"string","description":"The id of the request, equal to `X-Request-Id`. Quote it when you write to us.","isRequired":true,"uniqueKey":"error.requestId","typeLabel":"string"}},"required":["type","code","message","requestId"],"description":"The error.","isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"description":"The body of every error answer.","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"type":"invalid_request","code":"INVALID_ARGUMENT","message":"\u003cstring>","requestId":"\u003cstring>"}}}},"exampleType":"generated"}},"exampleType":"generated"},"cc42748b-e3e3-4251-8d45-50775db9c140":{"description":"`UNAUTHENTICATED`: no key, or the key is unknown, revoked or expired.","headers":{"X-Request-Id":{"description":"The id of this request, as in our logs.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string","enum":["invalid_request","authentication","quota","permission","rate_limit","internal","overloaded"],"description":"The group of the error. Each `code` belongs to one type.","isRequired":true,"uniqueKey":"error.type","typeLabel":"enum\u003cstring>"},"code":{"type":"string","enum":["INVALID_ARGUMENT","UNAUTHENTICATED","QUOTA_EXCEEDED","REVEAL_LIMIT_REACHED","PERMISSION_DENIED","PLAN_REQUIRED","NOT_FOUND","RATE_LIMITED","INTERNAL","OVERLOADED"],"description":"What went wrong, from a closed list. Act on this field.","isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"A sentence for people. It can change; never parse it.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"requestId":{"type":"string","description":"The id of the request, equal to `X-Request-Id`. Quote it when you write to us.","isRequired":true,"uniqueKey":"error.requestId","typeLabel":"string"}},"required":["type","code","message","requestId"],"description":"The error.","isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"description":"The body of every error answer.","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"type":"invalid_request","code":"INVALID_ARGUMENT","message":"\u003cstring>","requestId":"\u003cstring>"}}}},"exampleType":"generated"}},"exampleType":"generated"},"098f6c4d-cb91-4be2-8a5e-75c7d0ad3057":{"description":"`QUOTA_EXCEEDED`: the credit balance cannot pay for the call.","headers":{"X-Request-Id":{"description":"The id of this request, as in our logs.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string","enum":["invalid_request","authentication","quota","permission","rate_limit","internal","overloaded"],"description":"The group of the error. Each `code` belongs to one type.","isRequired":true,"uniqueKey":"error.type","typeLabel":"enum\u003cstring>"},"code":{"type":"string","enum":["INVALID_ARGUMENT","UNAUTHENTICATED","QUOTA_EXCEEDED","REVEAL_LIMIT_REACHED","PERMISSION_DENIED","PLAN_REQUIRED","NOT_FOUND","RATE_LIMITED","INTERNAL","OVERLOADED"],"description":"What went wrong, from a closed list. Act on this field.","isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"A sentence for people. It can change; never parse it.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"requestId":{"type":"string","description":"The id of the request, equal to `X-Request-Id`. Quote it when you write to us.","isRequired":true,"uniqueKey":"error.requestId","typeLabel":"string"}},"required":["type","code","message","requestId"],"description":"The error.","isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"description":"The body of every error answer.","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"type":"invalid_request","code":"INVALID_ARGUMENT","message":"\u003cstring>","requestId":"\u003cstring>"}}}},"exampleType":"generated"}},"exampleType":"generated"},"14b76dae-9a79-45c5-8a74-72182bf57444":{"description":"`PERMISSION_DENIED`: the key may not make this call.","headers":{"X-Request-Id":{"description":"The id of this request, as in our logs.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string","enum":["invalid_request","authentication","quota","permission","rate_limit","internal","overloaded"],"description":"The group of the error. Each `code` belongs to one type.","isRequired":true,"uniqueKey":"error.type","typeLabel":"enum\u003cstring>"},"code":{"type":"string","enum":["INVALID_ARGUMENT","UNAUTHENTICATED","QUOTA_EXCEEDED","REVEAL_LIMIT_REACHED","PERMISSION_DENIED","PLAN_REQUIRED","NOT_FOUND","RATE_LIMITED","INTERNAL","OVERLOADED"],"description":"What went wrong, from a closed list. Act on this field.","isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"A sentence for people. It can change; never parse it.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"requestId":{"type":"string","description":"The id of the request, equal to `X-Request-Id`. Quote it when you write to us.","isRequired":true,"uniqueKey":"error.requestId","typeLabel":"string"}},"required":["type","code","message","requestId"],"description":"The error.","isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"description":"The body of every error answer.","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"type":"invalid_request","code":"INVALID_ARGUMENT","message":"\u003cstring>","requestId":"\u003cstring>"}}}},"exampleType":"generated"}},"exampleType":"generated"},"2667c462-9044-477f-922e-819d9768d5b2":{"description":"`NOT_FOUND`. We never saw this token, and our market data provider did not know it within the wait.","headers":{"X-Request-Id":{"description":"The id of this request, as in our logs.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string","enum":["invalid_request","authentication","quota","permission","rate_limit","internal","overloaded"],"description":"The group of the error. Each `code` belongs to one type.","isRequired":true,"uniqueKey":"error.type","typeLabel":"enum\u003cstring>"},"code":{"type":"string","enum":["INVALID_ARGUMENT","UNAUTHENTICATED","QUOTA_EXCEEDED","REVEAL_LIMIT_REACHED","PERMISSION_DENIED","PLAN_REQUIRED","NOT_FOUND","RATE_LIMITED","INTERNAL","OVERLOADED"],"description":"What went wrong, from a closed list. Act on this field.","isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"A sentence for people. It can change; never parse it.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"requestId":{"type":"string","description":"The id of the request, equal to `X-Request-Id`. Quote it when you write to us.","isRequired":true,"uniqueKey":"error.requestId","typeLabel":"string"}},"required":["type","code","message","requestId"],"description":"The error.","isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"description":"The body of every error answer.","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"type":"invalid_request","code":"INVALID_ARGUMENT","message":"\u003cstring>","requestId":"\u003cstring>"}}}},"exampleType":"generated"}},"exampleType":"generated"},"a4809a14-4590-4593-b0c5-3db5a182e2ce":{"description":"`RATE_LIMITED`: too many requests. Retry after the seconds in `Retry-After`.","headers":{"X-Request-Id":{"description":"The id of this request, as in our logs.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string","enum":["invalid_request","authentication","quota","permission","rate_limit","internal","overloaded"],"description":"The group of the error. Each `code` belongs to one type.","isRequired":true,"uniqueKey":"error.type","typeLabel":"enum\u003cstring>"},"code":{"type":"string","enum":["INVALID_ARGUMENT","UNAUTHENTICATED","QUOTA_EXCEEDED","REVEAL_LIMIT_REACHED","PERMISSION_DENIED","PLAN_REQUIRED","NOT_FOUND","RATE_LIMITED","INTERNAL","OVERLOADED"],"description":"What went wrong, from a closed list. Act on this field.","isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"A sentence for people. It can change; never parse it.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"requestId":{"type":"string","description":"The id of the request, equal to `X-Request-Id`. Quote it when you write to us.","isRequired":true,"uniqueKey":"error.requestId","typeLabel":"string"}},"required":["type","code","message","requestId"],"description":"The error.","isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"description":"The body of every error answer.","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"type":"invalid_request","code":"INVALID_ARGUMENT","message":"\u003cstring>","requestId":"\u003cstring>"}}}},"exampleType":"generated"}},"exampleType":"generated"},"2b481094-0fc4-4889-9471-78bc075b7b10":{"description":"`INTERNAL`: the call failed on our side.","headers":{"X-Request-Id":{"description":"The id of this request, as in our logs.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string","enum":["invalid_request","authentication","quota","permission","rate_limit","internal","overloaded"],"description":"The group of the error. Each `code` belongs to one type.","isRequired":true,"uniqueKey":"error.type","typeLabel":"enum\u003cstring>"},"code":{"type":"string","enum":["INVALID_ARGUMENT","UNAUTHENTICATED","QUOTA_EXCEEDED","REVEAL_LIMIT_REACHED","PERMISSION_DENIED","PLAN_REQUIRED","NOT_FOUND","RATE_LIMITED","INTERNAL","OVERLOADED"],"description":"What went wrong, from a closed list. Act on this field.","isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"A sentence for people. It can change; never parse it.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"requestId":{"type":"string","description":"The id of the request, equal to `X-Request-Id`. Quote it when you write to us.","isRequired":true,"uniqueKey":"error.requestId","typeLabel":"string"}},"required":["type","code","message","requestId"],"description":"The error.","isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"description":"The body of every error answer.","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"type":"invalid_request","code":"INVALID_ARGUMENT","message":"\u003cstring>","requestId":"\u003cstring>"}}}},"exampleType":"generated"}},"exampleType":"generated"},"dc1efe95-5717-451d-ae9f-c08bd017181d":{"description":"`OVERLOADED`: the API holds too many requests at once. Retry after the seconds in `Retry-After`.","headers":{"X-Request-Id":{"description":"The id of this request, as in our logs.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string","enum":["invalid_request","authentication","quota","permission","rate_limit","internal","overloaded"],"description":"The group of the error. Each `code` belongs to one type.","isRequired":true,"uniqueKey":"error.type","typeLabel":"enum\u003cstring>"},"code":{"type":"string","enum":["INVALID_ARGUMENT","UNAUTHENTICATED","QUOTA_EXCEEDED","REVEAL_LIMIT_REACHED","PERMISSION_DENIED","PLAN_REQUIRED","NOT_FOUND","RATE_LIMITED","INTERNAL","OVERLOADED"],"description":"What went wrong, from a closed list. Act on this field.","isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"A sentence for people. It can change; never parse it.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"requestId":{"type":"string","description":"The id of the request, equal to `X-Request-Id`. Quote it when you write to us.","isRequired":true,"uniqueKey":"error.requestId","typeLabel":"string"}},"required":["type","code","message","requestId"],"description":"The error.","isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"description":"The body of every error answer.","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"type":"invalid_request","code":"INVALID_ARGUMENT","message":"\u003cstring>","requestId":"\u003cstring>"}}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"1dae2ee9-4ade-434c-a812-454ff298e096":{"bearerAuth":{"type":"http","scheme":"bearer","scopes":[],"schemeName":"bearerAuth"}},"cc08a9cd-c1f8-4037-b1f0-a8a921734bd0":{"apiKeyHeader":{"type":"apiKey","in":"header","name":"X-Api-Key","scopes":[],"schemeName":"apiKeyHeader"}}},"servers":{"5fe32091-bca0-4091-894b-0b0476baa441":{"url":"https://api.fomoscan.sh","description":"The API host"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","scopes":[],"schemeName":"bearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Bearer authentication header of the form `Bearer \u003ctoken>`, where `\u003ctoken>` is your auth token.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearerAuth","name":"Authorization"}],"title":"bearerAuth"},{"schemes":[{"scheme":{"type":"apiKey","in":"header","name":"X-Api-Key","scopes":[],"schemeName":"apiKeyHeader"},"schema":{"title":"X-Api-Key","type":"string","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"apiKeyHeader","name":"X-Api-Key"}],"title":"apiKeyHeader"}]},"originalFileLocation":"https://api.fomoscan.sh/v3/openapi.json"},"subdomain":"socialscan","siteName":"FomoScan","title":"Read one token - FomoScan","navMaps":{"firstHrefInVersion":{"v2":{"href":"/api-reference/identities/read-a-wallet-free-stored-profile","matchLevel":2},"v3":{"href":"/v3/api-reference/tokens/read-one-token","matchLevel":0}},"firstHrefInLanguage":{}},"lastModified":"2026-11-04T20:47:34.073Z","originalFileLocation":"v3/api-reference/tokens/read-one-token.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=\"dark\"}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=\"One token: network, address, symbol, name, decimals and our copy of its image, with a market block per platform that shows the token and the market across trading venues in canonical.market. - market.price is USD per whole token with 18 decimals; the other market values are USD with 6. holders is a count of wallets, priceChange24h a change in percent. - Each market block is the newest reading we hold from that platform, as of its observedAt. A field the platform never fills (unfilled in GET /v3/capabilities) is always null. - When no platform shows the token, we read its market from our market data provider during the call, at most once every 5 minutes per token, on Solana, Ethereum, Base, BNB Chain, Robinhood and Arc. A token we had not seen before is answered from that read. The price of the call does not change. - Trades (GET /v3/trades) carry token quantities only. Read prices here. ## Price The price depends on the answer. | Answer | Credits | Reveals | | --- | --- | --- | | We hold the token, or our market data provider read it within the wait. | 100 | 0 | | 404: we never saw the token, and the provider did not know it within the wait. | 100 | 0 | ## Limits - 2,000 requests per minute from one address on this operation, beside the per-minute limit of the key. - A key with less than 100 credits left gets 402 QUOTA_EXCEEDED before any work. - When no platform shows the token, a read of our market data provider runs up to 2 seconds inside the call. Past that the call answers with what we hold, and the read finishes for your next call.\">\u003cmeta data-mint-head name=\"application-name\" content=\"FomoScan\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/socialscan/Akelxu7vD__0Z47A/_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/socialscan/Akelxu7vD__0Z47A/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/socialscan/Akelxu7vD__0Z47A/_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/socialscan/Akelxu7vD__0Z47A/_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/socialscan/Akelxu7vD__0Z47A/_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/socialscan/Akelxu7vD__0Z47A/_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/socialscan/Akelxu7vD__0Z47A/_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/socialscan/Akelxu7vD__0Z47A/_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/socialscan/Akelxu7vD__0Z47A/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Read one token - FomoScan\">\u003cmeta data-mint-head property=\"og:description\" content=\"One token: network, address, symbol, name, decimals and our copy of its image, with a market block per platform that shows the token and the market across trading venues in canonical.market. - market.price is USD per whole token with 18 decimals; the other market values are USD with 6. holders is a count of wallets, priceChange24h a change in percent. - Each market block is the newest reading we hold from that platform, as of its observedAt. A field the platform never fills (unfilled in GET /v3/capabilities) is always null. - When no platform shows the token, we read its market from our market data provider during the call, at most once every 5 minutes per token, on Solana, Ethereum, Base, BNB Chain, Robinhood and Arc. A token we had not seen before is answered from that read. The price of the call does not change. - Trades (GET /v3/trades) carry token quantities only. Read prices here. ## Price The price depends on the answer. | Answer | Credits | Reveals | | --- | --- | --- | | We hold the token, or our market data provider read it within the wait. | 100 | 0 | | 404: we never saw the token, and the provider did not know it within the wait. | 100 | 0 | ## Limits - 2,000 requests per minute from one address on this operation, beside the per-minute limit of the key. - A key with less than 100 credits left gets 402 QUOTA_EXCEEDED before any work. - When no platform shows the token, a read of our market data provider runs up to 2 seconds inside the call. Past that the call answers with what we hold, and the read finishes for your next call.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"FomoScan\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.fomoscan.sh/v3/api-reference/tokens/read-one-token\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://socialscan.mintlify.app/_mintlify/api/og/v2?division=Tokens\u0026amp;title=Read+one+token\u0026amp;description=One+token%3A+network%2C+address%2C+symbol%2C+name%2C+decimals+and+our+copy+of+its+image%2C+with+a+%60market%60+block+per+platform+that+shows+the+token+and+the+market+across+tra\u0026amp;theme=eee421e92d714c8c3b4eb52f\u0026amp;signature=6eddea90c60c5db83c9e0efe0cc9e3ad54c1e9801efc3bc7f5f95f5bbcc4f1a4\">\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=\"Read one token - FomoScan\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"One token: network, address, symbol, name, decimals and our copy of its image, with a market block per platform that shows the token and the market across trading venues in canonical.market. - market.price is USD per whole token with 18 decimals; the other market values are USD with 6. holders is a count of wallets, priceChange24h a change in percent. - Each market block is the newest reading we hold from that platform, as of its observedAt. A field the platform never fills (unfilled in GET /v3/capabilities) is always null. - When no platform shows the token, we read its market from our market data provider during the call, at most once every 5 minutes per token, on Solana, Ethereum, Base, BNB Chain, Robinhood and Arc. A token we had not seen before is answered from that read. The price of the call does not change. - Trades (GET /v3/trades) carry token quantities only. Read prices here. ## Price The price depends on the answer. | Answer | Credits | Reveals | | --- | --- | --- | | We hold the token, or our market data provider read it within the wait. | 100 | 0 | | 404: we never saw the token, and the provider did not know it within the wait. | 100 | 0 | ## Limits - 2,000 requests per minute from one address on this operation, beside the per-minute limit of the key. - A key with less than 100 credits left gets 402 QUOTA_EXCEEDED before any work. - When no platform shows the token, a read of our market data provider runs up to 2 seconds inside the call. Past that the call answers with what we hold, and the read finishes for your next call.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://socialscan.mintlify.app/_mintlify/api/og/v2?division=Tokens\u0026amp;title=Read+one+token\u0026amp;description=One+token%3A+network%2C+address%2C+symbol%2C+name%2C+decimals+and+our+copy+of+its+image%2C+with+a+%60market%60+block+per+platform+that+shows+the+token+and+the+market+across+tra\u0026amp;theme=eee421e92d714c8c3b4eb52f\u0026amp;signature=6eddea90c60c5db83c9e0efe0cc9e3ad54c1e9801efc3bc7f5f95f5bbcc4f1a4\">\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/socialscan/Akelxu7vD__0Z47A/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"FomoScan\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#2D6BF5\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.fomoscan.sh/v3/api-reference/tokens/read-one-token\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/v3/api-reference/tokens/read-one-token.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.fomoscan.sh/#organization\",\"name\":\"FomoScan\",\"url\":\"https://docs.fomoscan.sh\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/socialscan/HNyN-bTZ1IatgGfu/images/mark.png?fit=max\u0026auto=format\u0026n=HNyN-bTZ1IatgGfu\u0026q=85\u0026s=d477c368ad11635c9133ca701da2f527\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.fomoscan.sh#website\",\"name\":\"FomoScan\",\"url\":\"https://docs.fomoscan.sh\",\"publisher\":{\"@id\":\"https://docs.fomoscan.sh/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.fomoscan.sh/v3/api-reference/tokens/read-one-token#webpage\",\"url\":\"https://docs.fomoscan.sh/v3/api-reference/tokens/read-one-token\",\"name\":\"Read one token\",\"description\":\"One token: network, address, symbol, name, decimals and our copy of its image, with a market block per platform that shows the token and the market across trading venues in canonical.market. - market.price is USD per whole token with 18 decimals; the other market values are USD with 6. holders is a count of wallets, priceChange24h a change in percent. - Each market block is the newest reading we hold from that platform, as of its observedAt. A field the platform never fills (unfilled in GET /v3/capabilities) is always null. - When no platform shows the token, we read its market from our market data provider during the call, at most once every 5 minutes per token, on Solana, Ethereum, Base, BNB Chain, Robinhood and Arc. A token we had not seen before is answered from that read. The price of the call does not change. - Trades (GET /v3/trades) carry token quantities only. Read prices here. ## Price The price depends on the answer. | Answer | Credits | Reveals | | --- | --- | --- | | We hold the token, or our market data provider read it within the wait. | 100 | 0 | | 404: we never saw the token, and the provider did not know it within the wait. | 100 | 0 | ## Limits - 2,000 requests per minute from one address on this operation, beside the per-minute limit of the key. - A key with less than 100 credits left gets 402 QUOTA_EXCEEDED before any work. - When no platform shows the token, a read of our market data provider runs up to 2 seconds inside the call. Past that the call answers with what we hold, and the read finishes for your next call.\",\"dateModified\":\"2026-11-04T20:47:34.073Z\",\"isPartOf\":{\"@id\":\"https://docs.fomoscan.sh#website\"},\"breadcrumb\":{\"@id\":\"https://docs.fomoscan.sh/v3/api-reference/tokens/read-one-token#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.fomoscan.sh/v3/api-reference/tokens/read-one-token#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Endpoints\",\"item\":\"https://docs.fomoscan.sh/v3/api-reference/traders/read-one-trader\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Read one token\",\"item\":\"https://docs.fomoscan.sh/v3/api-reference/tokens/read-one-token\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.fomoscan.sh/v3/api-reference/tokens/read-one-token#apireference\",\"headline\":\"Read one token\",\"name\":\"Read one token\",\"description\":\"One token: network, address, symbol, name, decimals and our copy of its image, with a market block per platform that shows the token and the market across trading venues in canonical.market. - market.price is USD per whole token with 18 decimals; the other market values are USD with 6. holders is a count of wallets, priceChange24h a change in percent. - Each market block is the newest reading we hold from that platform, as of its observedAt. A field the platform never fills (unfilled in GET /v3/capabilities) is always null. - When no platform shows the token, we read its market from our market data provider during the call, at most once every 5 minutes per token, on Solana, Ethereum, Base, BNB Chain, Robinhood and Arc. A token we had not seen before is answered from that read. The price of the call does not change. - Trades (GET /v3/trades) carry token quantities only. Read prices here. ## Price The price depends on the answer. | Answer | Credits | Reveals | | --- | --- | --- | | We hold the token, or our market data provider read it within the wait. | 100 | 0 | | 404: we never saw the token, and the provider did not know it within the wait. | 100 | 0 | ## Limits - 2,000 requests per minute from one address on this operation, beside the per-minute limit of the key. - A key with less than 100 credits left gets 402 QUOTA_EXCEEDED before any work. - When no platform shows the token, a read of our market data provider runs up to 2 seconds inside the call. Past that the call answers with what we hold, and the read finishes for your next call.\",\"url\":\"https://docs.fomoscan.sh/v3/api-reference/tokens/read-one-token\",\"mainEntityOfPage\":{\"@id\":\"https://docs.fomoscan.sh/v3/api-reference/tokens/read-one-token#webpage\"},\"dateModified\":\"2026-11-04T20:47:34.073Z\",\"publisher\":{\"@id\":\"https://docs.fomoscan.sh/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.fomoscan.sh#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"FomoScan\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"FomoScan","nav":{"global":{"anchors":[{"anchor":"Partner portal","icon":"key","href":"https://partner.fomoscan.sh"},{"anchor":"OpenAPI spec","icon":"code","href":"https://api.fomoscan.sh/openapi.json"}]},"versions":[{"version":"v2","default":true,"pages":[{"title":"v2","href":"/api-reference/identities/read-a-wallet-free-stored-profile"}]},{"version":"v3","tag":"New","tabs":[{"tab":"Overview","pages":[{"title":"Overview","href":"/v3"}]},{"tab":"API reference","groups":[{"group":"Overview","pages":[{"title":"API reference","href":"/v3/api-reference/introduction"},{"title":"Traders, wallets and PnL","href":"/v3/guides/traders"},{"title":"Posts","href":"/v3/guides/posts"},{"title":"Leaderboards and rankings","href":"/v3/guides/boards"}]},{"group":"Endpoints","pages":[{"group":"Traders","pages":[{"title":"Read one trader","deprecated":null,"version":null,"openapi":"https://api.fomoscan.sh/v3/openapi.json get /v3/traders/{traderId}","href":"/v3/api-reference/traders/read-one-trader"},{"title":"Find traders by handle","deprecated":null,"version":null,"openapi":"https://api.fomoscan.sh/v3/openapi.json get /v3/traders/lookup","href":"/v3/api-reference/traders/find-traders-by-handle"},{"title":"List the wallets of a trader","deprecated":null,"version":null,"openapi":"https://api.fomoscan.sh/v3/openapi.json get /v3/traders/{traderId}/wallets","href":"/v3/api-reference/traders/list-the-wallets-of-a-trader"},{"title":"Read a trader's PnL across whole wallets","deprecated":null,"version":null,"openapi":"https://api.fomoscan.sh/v3/openapi.json get /v3/traders/{traderId}/pnl","href":"/v3/api-reference/traders/read-a-traders-pnl-across-whole-wallets"},{"title":"Read the PnL of up to 100 traders","deprecated":null,"version":null,"openapi":"https://api.fomoscan.sh/v3/openapi.json post /v3/traders/pnl","href":"/v3/api-reference/traders/read-the-pnl-of-up-to-100-traders"},{"title":"List the traders who follow a trader","deprecated":null,"version":null,"openapi":"https://api.fomoscan.sh/v3/openapi.json get /v3/traders/{traderId}/followers","href":"/v3/api-reference/traders/list-the-traders-who-follow-a-trader"},{"title":"List the traders a trader follows","deprecated":null,"version":null,"openapi":"https://api.fomoscan.sh/v3/openapi.json get /v3/traders/{traderId}/following","href":"/v3/api-reference/traders/list-the-traders-a-trader-follows"}]},{"group":"Wallets","pages":[{"title":"Read one wallet and who owns it","deprecated":null,"version":null,"openapi":"https://api.fomoscan.sh/v3/openapi.json get /v3/wallets/{family}/{address}","href":"/v3/api-reference/wallets/read-one-wallet-and-who-owns-it"},{"title":"Read one wallet's PnL across the whole wallet","deprecated":null,"version":null,"openapi":"https://api.fomoscan.sh/v3/openapi.json get /v3/wallets/{family}/{address}/pnl","href":"/v3/api-reference/wallets/read-one-wallets-pnl-across-the-whole-wallet"},{"title":"Read the PnL of up to 100 wallets","deprecated":null,"version":null,"openapi":"https://api.fomoscan.sh/v3/openapi.json post /v3/wallets/pnl","href":"/v3/api-reference/wallets/read-the-pnl-of-up-to-100-wallets"}]},{"group":"Posts","pages":[{"title":"Read the post feed","deprecated":null,"version":null,"openapi":"https://api.fomoscan.sh/v3/openapi.json get /v3/posts","href":"/v3/api-reference/posts/read-the-post-feed"},{"title":"Read the posts about a token","deprecated":null,"version":null,"openapi":"https://api.fomoscan.sh/v3/openapi.json get /v3/tokens/{network}/{address}/posts","href":"/v3/api-reference/posts/read-the-posts-about-a-token"},{"title":"Read the posts of a trader","description":"The posts of one trader over every account the trader holds, newest first.\n\n- `token` keeps the posts about one token.\n- Order as in `GET /v3/posts`. Paged with `cursor` and `limit` (default 20, maximum 100). Follow `nextCursor` to read older rows.\n\n## Price\n\n**200 credits per started 20 rows of `limit`**, on every call. A short or empty page costs the same as a full one.\n\n| Answer | Credits | Reveals |\n| --- | --- | --- |\n| `limit` 1. | 200 | 0 |\n| `limit` 20 (the default). | 200 | 0 |\n| `limit` 50. | 600 | 0 |\n| `limit` 100 (the maximum). | 1,000 | 0 |\n| `platform=pump`, any `limit`. | 10 | 0 |\n| 404: no trader has this id. Flat as above with `platform=pump`. | 200 | 0 |\n\n## Limits\n\n- 2,000 requests per minute from one address on this operation, beside the per-minute limit of the key.\n- A key with less than 10 credits left gets 402 `QUOTA_EXCEEDED` before any work.","deprecated":null,"version":null,"openapi":"https://api.fomoscan.sh/v3/openapi.json get /v3/traders/{traderId}/posts","href":"/v3/api-reference/posts/read-the-posts-of-a-trader"}]},{"group":"Tokens","pages":[{"title":"Read one token","deprecated":null,"version":null,"openapi":"https://api.fomoscan.sh/v3/openapi.json get /v3/tokens/{network}/{address}","href":"/v3/api-reference/tokens/read-one-token"}]},{"group":"Leaderboards","pages":[{"title":"List the leaderboards platforms publish","description":"Every leaderboard a platform publishes that we capture, with its windows and the time of its newest capture.\n\n- Order: platform, then board name.\n- A board whose `latestCapturedAt` is `null` has no capture yet: `GET /v3/leaderboards/{platform}/{board}` answers 404 for it.\n- Paged with `cursor` and `limit` (default 50, maximum 200).\n\n## Price\n\n**Free.** The call needs a key and takes no credits.\n\n| Answer | Credits | Reveals |\n| --- | --- | --- |\n| Every call. | 0 | 0 |\n\n## Limits\n\n- 2,000 requests per minute from one address on this operation, beside the per-minute limit of the key.","deprecated":null,"version":null,"openapi":"https://api.fomoscan.sh/v3/openapi.json get /v3/leaderboards","href":"/v3/api-reference/leaderboards/list-the-leaderboards-platforms-publish"},{"title":"Read one capture of a platform leaderboard","deprecated":null,"version":null,"openapi":"https://api.fomoscan.sh/v3/openapi.json get /v3/leaderboards/{platform}/{board}","href":"/v3/api-reference/leaderboards/read-one-capture-of-a-platform-leaderboard"}]},{"group":"Rankings","pages":[{"title":"List our rankings","deprecated":null,"version":null,"openapi":"https://api.fomoscan.sh/v3/openapi.json get /v3/rankings","href":"/v3/api-reference/rankings/list-our-rankings"},{"title":"Read the newest snapshot of one of our rankings","deprecated":null,"version":null,"openapi":"https://api.fomoscan.sh/v3/openapi.json get /v3/rankings/{key}","href":"/v3/api-reference/rankings/read-the-newest-snapshot-of-one-of-our-rankings"}]},{"group":"Account","pages":[{"title":"Read the calling key, its plan and its usage","deprecated":null,"version":null,"openapi":"https://api.fomoscan.sh/v3/openapi.json get /v3/me","href":"/v3/api-reference/account/read-the-calling-key-its-plan-and-its-usage"},{"title":"Read which platform provides which block","deprecated":null,"version":null,"openapi":"https://api.fomoscan.sh/v3/openapi.json get /v3/capabilities","href":"/v3/api-reference/account/read-which-platform-provides-which-block"}]},{"group":"Trades","pages":[{"title":"Read the newest trades of the traders we mapped","deprecated":null,"version":null,"openapi":"https://api.fomoscan.sh/v3/openapi.json get /v3/trades","href":"/v3/api-reference/trades/read-the-newest-trades-of-the-traders-we-mapped"},{"title":"Read the trades of a trader's wallets","deprecated":null,"version":null,"openapi":"https://api.fomoscan.sh/v3/openapi.json get /v3/traders/{traderId}/trades","href":"/v3/api-reference/trades/read-the-trades-of-a-traders-wallets"},{"title":"Read the trades of one wallet","deprecated":null,"version":null,"openapi":"https://api.fomoscan.sh/v3/openapi.json get /v3/wallets/{family}/{address}/trades","href":"/v3/api-reference/trades/read-the-trades-of-one-wallet"}]},{"group":"WebSocket","pages":[{"title":"Live posts (WebSocket)","deprecated":null,"version":null,"openapi":"https://api.fomoscan.sh/v3/openapi.json get /v3","href":"/v3/api-reference/websocket/live-posts-websocket"}]}]}]},{"tab":"WebSocket","pages":[{"title":"WebSocket","href":"/v3/websocket/overview"}]}]}]},"basePath":"","title":"Read one token - FomoScan","buildId":"dpl_2gSLkbMoF5kkLsBqYzq9KWtDyJRo","deploymentId":"dpl_2gSLkbMoF5kkLsBqYzq9KWtDyJRo","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-hfTk6MZX.js","utils-Bfp7HcY4.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-D8dSW7yV.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-CFgQXcZO.js","snippetPresets-dMW1-pV3.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-DyrCOido.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-Bwwdcyh3.js","shallow-drVXTg79.js","getApiPlaygroundDisplay-GMPxUzWV.js","CodeSnippet-wTmV0wP6.js","CodeSnippets-D_QxCJEq.js","Page-BsZAA8xk.js","getPastedJson-Dev-X0Xy.js","icon-7L2WL0jD.js","MethodPill-Ble59Dl_.js","DuplicateIcon-r-98uLGh.js","createIcon-DaFzipjW.js","DynamicMarkdown-Jk8YAWGN.js","SectionHeading-nLgrCDOg.js","axios-vUo_bRtp.js","Markdown-_QGow1Wo.js","clsx-v8ssfMzu.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-CjboTi0T.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-DkAyo-p5.js"]}