The wallets of a trader, each as a wallet envelope whose owners lists this trader alone.
The list covers every account of the trader on every platform, merges included.
Order: tier strongest first, then the earliest firstVerifiedAt, then family and address.
A link read from the wallet a platform profile shows never counts; every other active link does, at its tier.
A trader without wallets answers 200 with an empty page.
Paged with cursor and limit (default 50, maximum 200).
Price
The price depends on the answer. The Reveals column says when a reveal is taken.
Answer
Credits
Reveals
The page lists at least one wallet.
100
1
The page lists no wallet.
100
0
404: no trader has this id.
200
0
Reveals count against a key with a monthly reveal cap. When the answer needs more reveals than the key has left, the call is refused before any credit is taken: 402 REVEAL_LIMIT_REACHED, or 403 PERMISSION_DENIED for a key on a free plan without reveals.
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.
The nextCursor of the previous page, sent back as it came. Leave it out for the first page. A cursor belongs to the query that produced it: sent with other parameters it answers 400 INVALID_ARGUMENT.
The cursor of the next page (c_…), or null on the last page. Treat it as opaque: send it back as cursor, never parse or build it.
{"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/traders/list-the-wallets-of-a-trader","slug":"/v3/api-reference/traders/list-the-wallets-of-a-trader","pageMetadata":{"title":"List the wallets of a trader","description":"The wallets of a trader, each as a wallet envelope whose `owners` lists this trader alone.\n\n- The list covers every account of the trader on every platform, merges included.\n- Order: tier strongest first, then the earliest `firstVerifiedAt`, then family and address.\n- A link read from the wallet a platform profile shows never counts; every other active link does, at its tier.\n- A trader without wallets answers 200 with an empty page.\n- Paged with `cursor` and `limit` (default 50, maximum 200).\n\n## Price\n\nThe price depends on the answer. The Reveals column says when a reveal is taken.\n\n| Answer | Credits | Reveals |\n| --- | --- | --- |\n| The page lists at least one wallet. | 100 | 1 |\n| The page lists no wallet. | 100 | 0 |\n| 404: no trader has this id. | 200 | 0 |\n\nReveals count against a key with a monthly reveal cap. When the answer needs more reveals than the key has left, the call is refused before any credit is taken: 402 `REVEAL_LIMIT_REACHED`, or 403 `PERMISSION_DENIED` for a key on a free plan without reveals.\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.","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","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: [\"The wallets of a trader, each as a wallet envelope whose \", _jsx(_components.code, {\n children: \"owners\"\n }), \" lists this trader alone.\"]\n }), \"\\n\", _jsxs(_components.ul, {\n children: [\"\\n\", _jsx(_components.li, {\n children: \"The list covers every account of the trader on every platform, merges included.\"\n }), \"\\n\", _jsxs(_components.li, {\n children: [\"Order: tier strongest first, then the earliest \", _jsx(_components.code, {\n children: \"firstVerifiedAt\"\n }), \", then family and address.\"]\n }), \"\\n\", _jsx(_components.li, {\n children: \"A link read from the wallet a platform profile shows never counts; every other active link does, at its tier.\"\n }), \"\\n\", _jsx(_components.li, {\n children: \"A trader without wallets answers 200 with an empty page.\"\n }), \"\\n\", _jsxs(_components.li, {\n children: [\"Paged with \", _jsx(_components.code, {\n children: \"cursor\"\n }), \" and \", _jsx(_components.code, {\n children: \"limit\"\n }), \" (default 50, maximum 200).\"]\n }), \"\\n\"]\n }), \"\\n\", _jsx(_components.h2, {\n children: \"Price\"\n }), \"\\n\", _jsx(_components.p, {\n children: \"The price depends on the answer. The Reveals column says when a reveal is taken.\"\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: \"The page lists at least one wallet.\"\n }), _jsx(_components.td, {\n children: \"100\"\n }), _jsx(_components.td, {\n children: \"1\"\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: \"The page lists no wallet.\"\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: no trader has this id.\"\n }), _jsx(_components.td, {\n children: \"200\"\n }), _jsx(_components.td, {\n children: \"0\"\n })]\n })]\n })]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Reveals count against a key with a monthly reveal cap. When the answer needs more reveals than the key has left, the call is refused before any credit is taken: 402 \", _jsx(_components.code, {\n children: \"REVEAL_LIMIT_REACHED\"\n }), \", or 403 \", _jsx(_components.code, {\n children: \"PERMISSION_DENIED\"\n }), \" for a key on a free plan without reveals.\"]\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\"]\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":"List the wallets of a trader","description":"The wallets of a trader, each as a wallet envelope whose `owners` lists this trader alone.\n\n- The list covers every account of the trader on every platform, merges included.\n- Order: tier strongest first, then the earliest `firstVerifiedAt`, then family and address.\n- A link read from the wallet a platform profile shows never counts; every other active link does, at its tier.\n- A trader without wallets answers 200 with an empty page.\n- Paged with `cursor` and `limit` (default 50, maximum 200).\n\n## Price\n\nThe price depends on the answer. The Reveals column says when a reveal is taken.\n\n| Answer | Credits | Reveals |\n| --- | --- | --- |\n| The page lists at least one wallet. | 100 | 1 |\n| The page lists no wallet. | 100 | 0 |\n| 404: no trader has this id. | 200 | 0 |\n\nReveals count against a key with a monthly reveal cap. When the answer needs more reveals than the key has left, the call is refused before any credit is taken: 402 `REVEAL_LIMIT_REACHED`, or 403 `PERMISSION_DENIED` for a key on a free plan without reveals.\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.","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","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"operationId":"listTraderWallets","summary":"List the wallets of a trader","description":"The wallets of a trader, each as a wallet envelope whose `owners` lists this trader alone.\n\n- The list covers every account of the trader on every platform, merges included.\n- Order: tier strongest first, then the earliest `firstVerifiedAt`, then family and address.\n- A link read from the wallet a platform profile shows never counts; every other active link does, at its tier.\n- A trader without wallets answers 200 with an empty page.\n- Paged with `cursor` and `limit` (default 50, maximum 200).\n\n## Price\n\nThe price depends on the answer. The Reveals column says when a reveal is taken.\n\n| Answer | Credits | Reveals |\n| --- | --- | --- |\n| The page lists at least one wallet. | 100 | 1 |\n| The page lists no wallet. | 100 | 0 |\n| 404: no trader has this id. | 200 | 0 |\n\nReveals count against a key with a monthly reveal cap. When the answer needs more reveals than the key has left, the call is refused before any credit is taken: 402 `REVEAL_LIMIT_REACHED`, or 403 `PERMISSION_DENIED` for a key on a free plan without reveals.\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.","tags":["Traders"],"x-operation":4,"parameters":["764ae11e-31f5-42e4-8223-e85d6b428b3f","6b6c1958-0f96-4188-a2da-49e44915252b","9c6b36f2-6047-48ed-a1a2-7ff2f569476e"],"responses":{"200":"483abbbf-0562-49c3-9d29-c0ced2880073","400":"fb7bea2a-6be8-4685-96fc-532f2089d8c7","401":"bb4737b9-c161-4155-87ce-62f50c532d9d","402":"e012a724-5bd0-4d38-b616-b66cd1405664","403":"66c7963d-ba4e-448e-8c3d-cf57fc261f22","404":"52d60f87-7371-46ad-8b31-7384ff769a64","429":"25db5d83-f6fd-4f39-a740-3a284da8197d","500":"22fde49b-4a8f-448f-8639-e18f149dea2f","503":"14729adf-7645-4383-af3a-93eb6bde8103"},"method":"get","type":"path","servers":["5fe32091-bca0-4091-894b-0b0476baa441"],"security":["1dae2ee9-4ade-434c-a812-454ff298e096","cc08a9cd-c1f8-4037-b1f0-a8a921734bd0"],"path":"/v3/traders/{traderId}/wallets","baseUrlOptions":["https://api.fomoscan.sh"],"title":"List the wallets of a trader","codeSamples":[],"requestExampleLanguages":["bash","javascript","python"],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"764ae11e-31f5-42e4-8223-e85d6b428b3f":{"name":"traderId","in":"path","description":"A trader id: `tdr_` and 26 characters. `GET /v3/traders/lookup` finds it by handle.","required":true,"schema":{"type":"string","pattern":"^tdr_[0-7][0-9a-hjkmnp-tv-z]{25}$","isRequired":true,"description":"A trader id: `tdr_` and 26 characters. `GET /v3/traders/lookup` finds it by handle.","uniqueKey":"","typeLabel":"string"}},"6b6c1958-0f96-4188-a2da-49e44915252b":{"name":"cursor","in":"query","description":"The `nextCursor` of the previous page, sent back as it came. Leave it out for the first page. A cursor belongs to the query that produced it: sent with other parameters it answers 400 `INVALID_ARGUMENT`.","required":false,"schema":{"type":"string","minLength":3,"maxLength":1024,"isRequired":false,"description":"The `nextCursor` of the previous page, sent back as it came. Leave it out for the first page. A cursor belongs to the query that produced it: sent with other parameters it answers 400 `INVALID_ARGUMENT`.","uniqueKey":"","typeLabel":"string"}},"9c6b36f2-6047-48ed-a1a2-7ff2f569476e":{"name":"limit","in":"query","description":"Rows per page, 1 to 200. 50 when left out.","required":false,"schema":{"default":50,"type":"integer","minimum":1,"maximum":200,"isRequired":false,"description":"Rows per page, 1 to 200. 50 when left out.","uniqueKey":"","typeLabel":"integer"}}},"responses":{"483abbbf-0562-49c3-9d29-c0ced2880073":{"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":{"items":{"type":"array","items":{"type":"object","properties":{"kind":{"type":"string","const":"wallet","description":"The kind of object, `wallet` here, and the only field to switch on. Skip objects whose kind you do not know.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].kind","typeLabel":"string"},"id":{"type":"string","description":"Our id of the object, `wal_\u003cfamily>_\u003caddress>`, family `svm` or `evm`. Store it: it stays the same across calls and never holds a platform's own id.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].id","typeLabel":"string"},"canonical":{"type":"object","properties":{"family":{"type":"string","enum":["svm","evm"],"description":"`svm` for Solana addresses, `evm` for EVM addresses.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].canonical.family","typeLabel":"enum\u003cstring>"},"address":{"type":"string","description":"The address. EVM addresses are lowercase.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].canonical.address","typeLabel":"string"},"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 wallet.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].canonical.firstSeenAt","typeLabel":"string\u003cdate-time>"},"lastSeenAt":{"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 last saw the wallet act or appear.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].canonical.lastSeenAt","typeLabel":"string\u003cdate-time>"},"labels":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string","enum":["treasury","fee_receiver","router","cosigner","custodial","exchange"],"description":"What the wallet is.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].canonical.labels.items.[INDEX].label","typeLabel":"enum\u003cstring>"},"platform":{"oneOf":[{"type":"string","description":"The platform the label belongs to, or `null` for a label of no platform.","enum":["fomo","pump","hyperliquid","markets","polymarket","legend","risex"],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].canonical.labels.items.[INDEX].platform.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"The platform the label belongs to, or `null` for a label of no platform.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].canonical.labels.items.[INDEX].platform.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].canonical.labels.items.[INDEX].platform","typeLabel":"enum\u003cstring> | 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 set or last confirmed the label.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].canonical.labels.items.[INDEX].observedAt","typeLabel":"string\u003cdate-time>"}},"required":["label","platform","observedAt"],"uniqueKey":"\\items.items.[INDEX].canonical.labels.items.[INDEX]","typeLabel":"object"},"description":"What we know the wallet is, if anything.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].canonical.labels","typeLabel":"object[]"},"owners":{"type":"array","items":{"type":"object","properties":{"trader":{"type":"string","description":"The `tdr_` id of the owner.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].canonical.owners.items.[INDEX].trader","typeLabel":"string"},"tier":{"type":"string","enum":["proven","account","partial","weak","unverified"],"description":"How sure we are that the trader owns the wallet, strongest first: `proven` (an on-chain proof), `account` (the wallet is the key of the platform account), `partial` (a one-sided proof), `weak` (an ambiguous or imported link), `unverified`. The strongest tier over the trader's links, capped at `weak` when another trader also holds the wallet or the wallet carries a `custodial` or `exchange` label.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].canonical.owners.items.[INDEX].tier","typeLabel":"enum\u003cstring>"},"links":{"type":"array","items":{"type":"object","properties":{"platform":{"type":"string","enum":["fomo","pump","hyperliquid","markets","polymarket","legend","risex"],"description":"The platform of the account that holds the link.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].canonical.owners.items.[INDEX].links.items.[INDEX].platform","typeLabel":"enum\u003cstring>"},"method":{"oneOf":[{"description":"The method behind the link, such as `svm_dual_proof`. It sets the tier. `null` for an unverified link.","type":"string","isRequired":true,"uniqueKey":"\\items.items.[INDEX].canonical.owners.items.[INDEX].links.items.[INDEX].method.oneOf.0","typeLabel":"string"},{"description":"The method behind the link, such as `svm_dual_proof`. It sets the tier. `null` for an unverified link.","type":"null","isRequired":true,"uniqueKey":"\\items.items.[INDEX].canonical.owners.items.[INDEX].links.items.[INDEX].method.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].canonical.owners.items.[INDEX].links.items.[INDEX].method","typeLabel":"string | null"},"firstVerifiedAt":{"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 verified the link.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].canonical.owners.items.[INDEX].links.items.[INDEX].firstVerifiedAt","typeLabel":"string\u003cdate-time>"},"lastVerifiedAt":{"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 last verified the link.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].canonical.owners.items.[INDEX].links.items.[INDEX].lastVerifiedAt","typeLabel":"string\u003cdate-time>"}},"required":["platform","method","firstVerifiedAt","lastVerifiedAt"],"uniqueKey":"\\items.items.[INDEX].canonical.owners.items.[INDEX].links.items.[INDEX]","typeLabel":"object"},"description":"The trader's active links to the wallet.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].canonical.owners.items.[INDEX].links","typeLabel":"object[]"}},"required":["trader","tier","links"],"uniqueKey":"\\items.items.[INDEX].canonical.owners.items.[INDEX]","typeLabel":"object"},"description":"The traders who own the wallet: strongest tier first, then the earliest `firstVerifiedAt`, then trader id.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].canonical.owners","typeLabel":"object[]"}},"required":["family","address","firstSeenAt","lastSeenAt","labels","owners"],"description":"Fields that mean the same on every platform.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].canonical","typeLabel":"object"},"sources":{"type":"object","propertyNames":{"type":"string","enum":["fomo","pump","hyperliquid","markets","polymarket","legend","risex"]},"additionalProperties":{"type":"object","properties":{},"uniqueKey":"\\items.items.[INDEX].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":"\\items.items.[INDEX].sources","typeLabel":"object"}},"required":["kind","id","canonical","sources"],"description":"A wallet address and the traders linked to it as owners, each with a tier.","uniqueKey":"\\items.items.[INDEX]","typeLabel":"object"},"description":"The rows of this page, in the order the operation states.","isRequired":true,"uniqueKey":"\\items","typeLabel":"object[]"},"hasMore":{"type":"boolean","description":"`true` when another page follows this one.","isRequired":true,"uniqueKey":"hasMore","typeLabel":"boolean"},"nextCursor":{"oneOf":[{"description":"The cursor of the next page (`c_…`), or `null` on the last page. Treat it as opaque: send it back as `cursor`, never parse or build it.","type":"string","isRequired":true,"uniqueKey":"nextCursor.oneOf.0","typeLabel":"string"},{"description":"The cursor of the next page (`c_…`), or `null` on the last page. Treat it as opaque: send it back as `cursor`, never parse or build it.","type":"null","isRequired":true,"uniqueKey":"nextCursor.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"nextCursor","typeLabel":"string | null"}},"required":["items","hasMore","nextCursor"],"description":"One page of a list. Pass `nextCursor` back as `cursor` for the next page.","uniqueKey":"","typeLabel":"object"},"example":{"items":[{"kind":"wallet","id":"wal_svm_9WzDXwBbmkg8ZTbNMqUxvQRAyrZzDsGYdLVL9zYtAWWM","canonical":{"family":"svm","address":"9WzDXwBbmkg8ZTbNMqUxvQRAyrZzDsGYdLVL9zYtAWWM","firstSeenAt":"2025-03-14T16:20:05.412Z","lastSeenAt":"2026-11-01T08:57:12.000Z","labels":[],"owners":[{"trader":"tdr_01jbst8pvcfp79y0938nkrkayd","tier":"proven","links":[{"platform":"fomo","method":"svm_dual_proof","firstVerifiedAt":"2025-06-02T10:41:17.006Z","lastVerifiedAt":"2026-10-29T03:12:55.810Z"}]}]},"sources":{}},{"kind":"wallet","id":"wal_evm_0x52908400098527886e0f7030069857d2e4169ee7","canonical":{"family":"evm","address":"0x52908400098527886e0f7030069857d2e4169ee7","firstSeenAt":"2025-09-30T07:15:00.000Z","lastSeenAt":"2026-10-31T19:04:27.000Z","labels":[],"owners":[{"trader":"tdr_01jbst8pvcfp79y0938nkrkayd","tier":"partial","links":[{"platform":"fomo","method":"evm_single_relay","firstVerifiedAt":"2025-10-01T11:20:31.442Z","lastVerifiedAt":"2026-10-31T19:05:02.118Z"}]}]},"sources":{}}],"hasMore":false,"nextCursor":null},"examples":{"Example":{"title":"Example","value":{"items":[{"kind":"wallet","id":"wal_svm_9WzDXwBbmkg8ZTbNMqUxvQRAyrZzDsGYdLVL9zYtAWWM","canonical":{"family":"svm","address":"9WzDXwBbmkg8ZTbNMqUxvQRAyrZzDsGYdLVL9zYtAWWM","firstSeenAt":"2025-03-14T16:20:05.412Z","lastSeenAt":"2026-11-01T08:57:12.000Z","labels":[],"owners":[{"trader":"tdr_01jbst8pvcfp79y0938nkrkayd","tier":"proven","links":[{"platform":"fomo","method":"svm_dual_proof","firstVerifiedAt":"2025-06-02T10:41:17.006Z","lastVerifiedAt":"2026-10-29T03:12:55.810Z"}]}]},"sources":{}},{"kind":"wallet","id":"wal_evm_0x52908400098527886e0f7030069857d2e4169ee7","canonical":{"family":"evm","address":"0x52908400098527886e0f7030069857d2e4169ee7","firstSeenAt":"2025-09-30T07:15:00.000Z","lastSeenAt":"2026-10-31T19:04:27.000Z","labels":[],"owners":[{"trader":"tdr_01jbst8pvcfp79y0938nkrkayd","tier":"partial","links":[{"platform":"fomo","method":"evm_single_relay","firstVerifiedAt":"2025-10-01T11:20:31.442Z","lastVerifiedAt":"2026-10-31T19:05:02.118Z"}]}]},"sources":{}}],"hasMore":false,"nextCursor":null}}},"exampleType":"examples"}},"exampleType":"examples"},"fb7bea2a-6be8-4685-96fc-532f2089d8c7":{"description":"`INVALID_ARGUMENT`: a parameter, an id, a cursor or the body is malformed, or the operation does not take it.","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"},"bb4737b9-c161-4155-87ce-62f50c532d9d":{"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"},"e012a724-5bd0-4d38-b616-b66cd1405664":{"description":"`QUOTA_EXCEEDED`: the credit balance cannot pay for the call.\n\n`REVEAL_LIMIT_REACHED`: the answer needs a reveal and the key has used every reveal this month. Nothing is charged.","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"},"66c7963d-ba4e-448e-8c3d-cf57fc261f22":{"description":"`PERMISSION_DENIED`: the key may not make this call.\n\n`PERMISSION_DENIED` also when a key on a free plan without reveals asks for an answer that needs one. Nothing is charged.","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"},"52d60f87-7371-46ad-8b31-7384ff769a64":{"description":"`NOT_FOUND`. No trader has this id, merges included.","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"},"25db5d83-f6fd-4f39-a740-3a284da8197d":{"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"},"22fde49b-4a8f-448f-8639-e18f149dea2f":{"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"},"14729adf-7645-4383-af3a-93eb6bde8103":{"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":"List the wallets of a trader - FomoScan","navMaps":{"firstHrefInVersion":{"v2":{"href":"/api-reference/identities/read-a-wallet-free-stored-profile","matchLevel":2},"v3":{"href":"/v3/api-reference/traders/list-the-wallets-of-a-trader","matchLevel":0}},"firstHrefInLanguage":{}},"lastModified":"2026-11-04T20:47:33.999Z","originalFileLocation":"v3/api-reference/traders/list-the-wallets-of-a-trader.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=\"The wallets of a trader, each as a wallet envelope whose owners lists this trader alone. - The list covers every account of the trader on every platform, merges included. - Order: tier strongest first, then the earliest firstVerifiedAt, then family and address. - A link read from the wallet a platform profile shows never counts; every other active link does, at its tier. - A trader without wallets answers 200 with an empty page. - Paged with cursor and limit (default 50, maximum 200). ## Price The price depends on the answer. The Reveals column says when a reveal is taken. | Answer | Credits | Reveals | | --- | --- | --- | | The page lists at least one wallet. | 100 | 1 | | The page lists no wallet. | 100 | 0 | | 404: no trader has this id. | 200 | 0 | Reveals count against a key with a monthly reveal cap. When the answer needs more reveals than the key has left, the call is refused before any credit is taken: 402 REVEAL_LIMIT_REACHED, or 403 PERMISSION_DENIED for a key on a free plan without reveals. ## 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.\">\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=\"List the wallets of a trader - FomoScan\">\u003cmeta data-mint-head property=\"og:description\" content=\"The wallets of a trader, each as a wallet envelope whose owners lists this trader alone. - The list covers every account of the trader on every platform, merges included. - Order: tier strongest first, then the earliest firstVerifiedAt, then family and address. - A link read from the wallet a platform profile shows never counts; every other active link does, at its tier. - A trader without wallets answers 200 with an empty page. - Paged with cursor and limit (default 50, maximum 200). ## Price The price depends on the answer. The Reveals column says when a reveal is taken. | Answer | Credits | Reveals | | --- | --- | --- | | The page lists at least one wallet. | 100 | 1 | | The page lists no wallet. | 100 | 0 | | 404: no trader has this id. | 200 | 0 | Reveals count against a key with a monthly reveal cap. When the answer needs more reveals than the key has left, the call is refused before any credit is taken: 402 REVEAL_LIMIT_REACHED, or 403 PERMISSION_DENIED for a key on a free plan without reveals. ## 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.\">\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/traders/list-the-wallets-of-a-trader\">\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=Traders\u0026amp;title=List+the+wallets+of+a+trader\u0026amp;description=The+wallets+of+a+trader%2C+each+as+a+wallet+envelope+whose+%60owners%60+lists+this+trader+alone.%0A%0A-+The+list+covers+every+account+of+the+trader+on+every+platform%2C+mer\u0026amp;theme=eee421e92d714c8c3b4eb52f\u0026amp;signature=76eeae8b6cb07a9542ea390d05457138a764cdb8d641f39aef1f3580b96bbff1\">\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=\"List the wallets of a trader - FomoScan\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"The wallets of a trader, each as a wallet envelope whose owners lists this trader alone. - The list covers every account of the trader on every platform, merges included. - Order: tier strongest first, then the earliest firstVerifiedAt, then family and address. - A link read from the wallet a platform profile shows never counts; every other active link does, at its tier. - A trader without wallets answers 200 with an empty page. - Paged with cursor and limit (default 50, maximum 200). ## Price The price depends on the answer. The Reveals column says when a reveal is taken. | Answer | Credits | Reveals | | --- | --- | --- | | The page lists at least one wallet. | 100 | 1 | | The page lists no wallet. | 100 | 0 | | 404: no trader has this id. | 200 | 0 | Reveals count against a key with a monthly reveal cap. When the answer needs more reveals than the key has left, the call is refused before any credit is taken: 402 REVEAL_LIMIT_REACHED, or 403 PERMISSION_DENIED for a key on a free plan without reveals. ## 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.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://socialscan.mintlify.app/_mintlify/api/og/v2?division=Traders\u0026amp;title=List+the+wallets+of+a+trader\u0026amp;description=The+wallets+of+a+trader%2C+each+as+a+wallet+envelope+whose+%60owners%60+lists+this+trader+alone.%0A%0A-+The+list+covers+every+account+of+the+trader+on+every+platform%2C+mer\u0026amp;theme=eee421e92d714c8c3b4eb52f\u0026amp;signature=76eeae8b6cb07a9542ea390d05457138a764cdb8d641f39aef1f3580b96bbff1\">\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/traders/list-the-wallets-of-a-trader\">\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/traders/list-the-wallets-of-a-trader.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/traders/list-the-wallets-of-a-trader#webpage\",\"url\":\"https://docs.fomoscan.sh/v3/api-reference/traders/list-the-wallets-of-a-trader\",\"name\":\"List the wallets of a trader\",\"description\":\"The wallets of a trader, each as a wallet envelope whose owners lists this trader alone. - The list covers every account of the trader on every platform, merges included. - Order: tier strongest first, then the earliest firstVerifiedAt, then family and address. - A link read from the wallet a platform profile shows never counts; every other active link does, at its tier. - A trader without wallets answers 200 with an empty page. - Paged with cursor and limit (default 50, maximum 200). ## Price The price depends on the answer. The Reveals column says when a reveal is taken. | Answer | Credits | Reveals | | --- | --- | --- | | The page lists at least one wallet. | 100 | 1 | | The page lists no wallet. | 100 | 0 | | 404: no trader has this id. | 200 | 0 | Reveals count against a key with a monthly reveal cap. When the answer needs more reveals than the key has left, the call is refused before any credit is taken: 402 REVEAL_LIMIT_REACHED, or 403 PERMISSION_DENIED for a key on a free plan without reveals. ## 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.\",\"dateModified\":\"2026-11-04T20:47:33.999Z\",\"isPartOf\":{\"@id\":\"https://docs.fomoscan.sh#website\"},\"breadcrumb\":{\"@id\":\"https://docs.fomoscan.sh/v3/api-reference/traders/list-the-wallets-of-a-trader#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.fomoscan.sh/v3/api-reference/traders/list-the-wallets-of-a-trader#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\":\"Traders\",\"item\":\"https://docs.fomoscan.sh/v3/api-reference/traders/read-one-trader\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"List the wallets of a trader\",\"item\":\"https://docs.fomoscan.sh/v3/api-reference/traders/list-the-wallets-of-a-trader\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.fomoscan.sh/v3/api-reference/traders/list-the-wallets-of-a-trader#apireference\",\"headline\":\"List the wallets of a trader\",\"name\":\"List the wallets of a trader\",\"description\":\"The wallets of a trader, each as a wallet envelope whose owners lists this trader alone. - The list covers every account of the trader on every platform, merges included. - Order: tier strongest first, then the earliest firstVerifiedAt, then family and address. - A link read from the wallet a platform profile shows never counts; every other active link does, at its tier. - A trader without wallets answers 200 with an empty page. - Paged with cursor and limit (default 50, maximum 200). ## Price The price depends on the answer. The Reveals column says when a reveal is taken. | Answer | Credits | Reveals | | --- | --- | --- | | The page lists at least one wallet. | 100 | 1 | | The page lists no wallet. | 100 | 0 | | 404: no trader has this id. | 200 | 0 | Reveals count against a key with a monthly reveal cap. When the answer needs more reveals than the key has left, the call is refused before any credit is taken: 402 REVEAL_LIMIT_REACHED, or 403 PERMISSION_DENIED for a key on a free plan without reveals. ## 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.\",\"url\":\"https://docs.fomoscan.sh/v3/api-reference/traders/list-the-wallets-of-a-trader\",\"mainEntityOfPage\":{\"@id\":\"https://docs.fomoscan.sh/v3/api-reference/traders/list-the-wallets-of-a-trader#webpage\"},\"dateModified\":\"2026-11-04T20:47:33.999Z\",\"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","description":"The traders whose handle on a platform matches `handle`. Look a trader up once, then store our id and use it from then on.\n\n- The match covers the handle each account holds now and every handle it held in the last 30 days, so a renamed account still answers.\n- Order: traders whose current handle matches first, then traders who held it in the last 30 days. Inside each group, the newest profile `observedAt` first, then trader id.\n- One handle can match several traders, for example two people with the same handle on two platforms. Check `canonical.platforms` and `sources` before you pick one.\n- `canonical.walletAvailable` is `true` when `GET /v3/traders/{traderId}/wallets` lists at least one wallet for the trader and `false` when it lists none, so you know before you pay its reveal whether an address will come back. It never carries the address and takes no reveal.\n- No match answers 200 with an empty page. This operation never answers 404.\n- The first page of a miss carries `suggestions`: up to 5 traders whose handle or name looks like `handle` (a typo, a repeated letter, spaces) or whose handle starts with it, closest first, with a small lift for followed traders. Each names the platform, handle and name of the account that matched.\n- With `match=closest` that miss answers with the first suggestion as the only item and `match: \"closest\"`. Check it before you store the id: a close handle is a guess, not proof.\n- Paged with `cursor` and `limit` (default 50, maximum 200).\n\n## Price\n\nThe price depends on the answer.\n\n| Answer | Credits | Reveals |\n| --- | --- | --- |\n| At least one trader holds or held the handle. | 100 | 0 |\n| None does, and `match=closest` answers with the first suggestion. | 100 | 0 |\n| None does, and no trader answers: an empty page with `suggestions`. | 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 100 credits left gets 402 `QUOTA_EXCEEDED` before any work.","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","description":"A trader's profit and loss over the wallets we verified for them. `24h`, `7d`, `30d` and `unrealized` come from our data provider and cover the whole wallets on every venue; `all` is ours, computed from the ranking of net flow.\n\nRead `status` first:\n\n| `status` | Meaning | What to do |\n| --- | --- | --- |\n| `ready` | The figures are present, and `wallets` lists the wallets they cover. | Use them. When `stale` is `true`, a call after `nextUpdateAt` can carry newer figures. |\n| `pending` | No reading exists yet, and a read is running. Every provider value is `null`. | Call again after `retryAfterSeconds` (30). |\n| `failed` | The last read of our data provider failed. | Call again after `retryAfterSeconds`. |\n| `no_wallet` | The trader holds no wallet that passes the wallet rule below. | Nothing to wait for. |\n| `unavailable` | Provider reads are switched off, or this month's provider budget is spent and we hold no reading of the last 7 days. | Call again next month or ask us; `all` can still hold figures. |\n\n- Wallet rule: verified links only (tiers `proven`, `account`, `partial`), one wallet per address family, and none that another trader also holds. Per family the strongest tier wins, then the newest `lastVerifiedAt`.\n- `wallets` is empty for every status but `ready`.\n- When no fresh reading exists, the call asks our data provider for one and waits for it. A read that misses the wait finishes and serves your next call.\n- A call that cannot read a figure again serves the stored one, at most 7 days old, with `stale` `true`. `nextUpdateAt` is when the first provider figure falls due to be read again.\n- `window` keeps one key in `windows`. `status` stays the same.\n- Every window carries `realized`, `unrealized` and `total` (`realized` plus `unrealized`). On `24h`, `7d` and `30d`, `unrealized` covers the open positions last traded inside the window, on UTC calendar days.\n- When our data provider fails to read a window, the call counts it from per-token totals of the positions and marks it `approximate`; the next reading replaces it. When that fails too, the window waits an hour before it is read again.\n- `all` takes `netFlow`, `volume`, `tradeCount`, `returnPct` and `rank` from the ranking `traders_net_flow_all`; its `realized`, `unrealized` and `total` are `null`. It is `null` when that ranking does not list the trader.\n\n## Price\n\nThe price depends on the answer. The Reveals column says when a reveal is taken.\n\n| Answer | Credits | Reveals |\n| --- | --- | --- |\n| `status` is `ready`. | 30,000 | 1 |\n| Any other `status`, or 404. | 200 | 0 |\n\nReveals count against a key with a monthly reveal cap. When the answer needs more reveals than the key has left, the call is refused before any credit is taken: 402 `REVEAL_LIMIT_REACHED`, or 403 `PERMISSION_DENIED` for a key on a free plan without reveals.\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 200 credits left gets 402 `QUOTA_EXCEEDED` before any work.\n- A read of our data provider runs up to 8 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/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","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","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":"List the wallets of a trader - 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"]}