One wallet and the traders linked to it as owners. Each owner carries a tier, how sure we are, and the links behind it.
An EVM address matches in any letter case and comes back lowercase.
Owners: strongest tier first, then the earliest firstVerifiedAt, then trader id.
A tier is capped at weak when two or more traders hold the wallet, or the wallet carries a custodial or exchange label.
A wallet we know without an owner answers 200 with an empty owners list.
A link read from the wallet a platform profile shows never counts; every other active link does, at its tier.
Price
The price depends on the answer. The Reveals column says when a reveal is taken.
Answer
Credits
Reveals
An owner holds a tier other than account.
30,000
1
Every owner holds the tier account.
10
0
The wallet has no owner (200 with the envelope), or we never saw it (404).
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 10 credits left gets 402 QUOTA_EXCEEDED before any work.
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/wallets/read-one-wallet-and-who-owns-it","slug":"/v3/api-reference/wallets/read-one-wallet-and-who-owns-it","pageMetadata":{"title":"Read one wallet and who owns it","description":"One wallet and the traders linked to it as owners. Each owner carries a `tier`, how sure we are, and the links behind it.\n\n- An EVM address matches in any letter case and comes back lowercase.\n- Owners: strongest tier first, then the earliest `firstVerifiedAt`, then trader id.\n- A tier is capped at `weak` when two or more traders hold the wallet, or the wallet carries a `custodial` or `exchange` label.\n- A wallet we know without an owner answers 200 with an empty `owners` list.\n- A link read from the wallet a platform profile shows never counts; every other active link does, at its tier.\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| An owner holds a tier other than `account`. | 30,000 | 1 |\n| Every owner holds the tier `account`. | 10 | 0 |\n| The wallet has no owner (200 with the envelope), or we never saw it (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 10 credits left gets 402 `QUOTA_EXCEEDED` before any work.","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","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 wallet and the traders linked to it as owners. Each owner carries a \", _jsx(_components.code, {\n children: \"tier\"\n }), \", how sure we are, and the links behind it.\"]\n }), \"\\n\", _jsxs(_components.ul, {\n children: [\"\\n\", _jsx(_components.li, {\n children: \"An EVM address matches in any letter case and comes back lowercase.\"\n }), \"\\n\", _jsxs(_components.li, {\n children: [\"Owners: strongest tier first, then the earliest \", _jsx(_components.code, {\n children: \"firstVerifiedAt\"\n }), \", then trader id.\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [\"A tier is capped at \", _jsx(_components.code, {\n children: \"weak\"\n }), \" when two or more traders hold the wallet, or the wallet carries a \", _jsx(_components.code, {\n children: \"custodial\"\n }), \" or \", _jsx(_components.code, {\n children: \"exchange\"\n }), \" label.\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [\"A wallet we know without an owner answers 200 with an empty \", _jsx(_components.code, {\n children: \"owners\"\n }), \" list.\"]\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\"]\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: [_jsxs(_components.td, {\n children: [\"An owner holds a tier other than \", _jsx(_components.code, {\n children: \"account\"\n }), \".\"]\n }), _jsx(_components.td, {\n children: \"30,000\"\n }), _jsx(_components.td, {\n children: \"1\"\n })]\n }), _jsxs(_components.tr, {\n children: [_jsxs(_components.td, {\n children: [\"Every owner holds the tier \", _jsx(_components.code, {\n children: \"account\"\n }), \".\"]\n }), _jsx(_components.td, {\n children: \"10\"\n }), _jsx(_components.td, {\n children: \"0\"\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: \"The wallet has no owner (200 with the envelope), or we never saw it (404).\"\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 10 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":"Read one wallet and who owns it","description":"One wallet and the traders linked to it as owners. Each owner carries a `tier`, how sure we are, and the links behind it.\n\n- An EVM address matches in any letter case and comes back lowercase.\n- Owners: strongest tier first, then the earliest `firstVerifiedAt`, then trader id.\n- A tier is capped at `weak` when two or more traders hold the wallet, or the wallet carries a `custodial` or `exchange` label.\n- A wallet we know without an owner answers 200 with an empty `owners` list.\n- A link read from the wallet a platform profile shows never counts; every other active link does, at its tier.\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| An owner holds a tier other than `account`. | 30,000 | 1 |\n| Every owner holds the tier `account`. | 10 | 0 |\n| The wallet has no owner (200 with the envelope), or we never saw it (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 10 credits left gets 402 `QUOTA_EXCEEDED` before any work.","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","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"operationId":"getWallet","summary":"Read one wallet and who owns it","description":"One wallet and the traders linked to it as owners. Each owner carries a `tier`, how sure we are, and the links behind it.\n\n- An EVM address matches in any letter case and comes back lowercase.\n- Owners: strongest tier first, then the earliest `firstVerifiedAt`, then trader id.\n- A tier is capped at `weak` when two or more traders hold the wallet, or the wallet carries a `custodial` or `exchange` label.\n- A wallet we know without an owner answers 200 with an empty `owners` list.\n- A link read from the wallet a platform profile shows never counts; every other active link does, at its tier.\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| An owner holds a tier other than `account`. | 30,000 | 1 |\n| Every owner holds the tier `account`. | 10 | 0 |\n| The wallet has no owner (200 with the envelope), or we never saw it (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 10 credits left gets 402 `QUOTA_EXCEEDED` before any work.","tags":["Wallets"],"x-operation":3,"parameters":["5b707d1d-961f-4575-bd60-9b788af9d4d2","d1a71d29-5047-420c-9983-d7f15e4173ed"],"responses":{"200":"c3680f4a-23e9-47c6-856d-c2aebfe67add","400":"7d7f6a24-ce94-453f-b906-7db1fd6a99e8","401":"c7a4f997-b80d-4729-a011-dc4837ba1fed","402":"3bc33d22-2291-4df0-bb8f-ee506cd2d399","403":"035cb2cf-8916-42fa-8d85-7d3f9255504f","404":"225527fd-e124-4bc3-a8b3-8d0cae05cd7a","429":"78fc778a-e7f2-4087-adfd-8c78029451bd","500":"7ee4c94c-0264-45b1-8b68-4c622cc42424","503":"da52407b-a1cc-49bb-bee8-9ca86ae6ab15"},"method":"get","type":"path","servers":["5fe32091-bca0-4091-894b-0b0476baa441"],"security":["1dae2ee9-4ade-434c-a812-454ff298e096","cc08a9cd-c1f8-4037-b1f0-a8a921734bd0"],"path":"/v3/wallets/{family}/{address}","baseUrlOptions":["https://api.fomoscan.sh"],"title":"Read one wallet and who owns it","codeSamples":[],"requestExampleLanguages":["bash","javascript","python"],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"5b707d1d-961f-4575-bd60-9b788af9d4d2":{"name":"family","in":"path","description":"The address family: `svm` for Solana, `evm` for EVM networks.","required":true,"schema":{"type":"string","enum":["svm","evm"],"isRequired":true,"description":"The address family: `svm` for Solana, `evm` for EVM networks.","uniqueKey":"","typeLabel":"enum\u003cstring>"}},"d1a71d29-5047-420c-9983-d7f15e4173ed":{"name":"address","in":"path","description":"The wallet address. An EVM address matches in any letter case.","required":true,"schema":{"type":"string","minLength":1,"maxLength":128,"isRequired":true,"description":"The wallet address. An EVM address matches in any letter case.","uniqueKey":"","typeLabel":"string"}}},"responses":{"c3680f4a-23e9-47c6-856d-c2aebfe67add":{"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":"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":"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":"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":"canonical.family","typeLabel":"enum\u003cstring>"},"address":{"type":"string","description":"The address. EVM addresses are lowercase.","isRequired":true,"uniqueKey":"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":"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":"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":"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":"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":"canonical.labels.items.[INDEX].platform.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"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":"canonical.labels.items.[INDEX].observedAt","typeLabel":"string\u003cdate-time>"}},"required":["label","platform","observedAt"],"uniqueKey":"canonical.labels.items.[INDEX]","typeLabel":"object"},"description":"What we know the wallet is, if anything.","isRequired":true,"uniqueKey":"canonical.labels","typeLabel":"object[]"},"owners":{"type":"array","items":{"type":"object","properties":{"trader":{"type":"string","description":"The `tdr_` id of the owner.","isRequired":true,"uniqueKey":"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":"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":"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":"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":"canonical.owners.items.[INDEX].links.items.[INDEX].method.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"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":"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":"canonical.owners.items.[INDEX].links.items.[INDEX].lastVerifiedAt","typeLabel":"string\u003cdate-time>"}},"required":["platform","method","firstVerifiedAt","lastVerifiedAt"],"uniqueKey":"canonical.owners.items.[INDEX].links.items.[INDEX]","typeLabel":"object"},"description":"The trader's active links to the wallet.","isRequired":true,"uniqueKey":"canonical.owners.items.[INDEX].links","typeLabel":"object[]"}},"required":["trader","tier","links"],"uniqueKey":"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":"canonical.owners","typeLabel":"object[]"}},"required":["family","address","firstSeenAt","lastSeenAt","labels","owners"],"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":{},"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 wallet address and the traders linked to it as owners, each with a tier.","uniqueKey":"","typeLabel":"object"},"example":{"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":{}},"examples":{"Example":{"title":"Example","value":{"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":{}}}},"exampleType":"examples"}},"exampleType":"examples"},"7d7f6a24-ce94-453f-b906-7db1fd6a99e8":{"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 of `family`.","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"},"c7a4f997-b80d-4729-a011-dc4837ba1fed":{"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"},"3bc33d22-2291-4df0-bb8f-ee506cd2d399":{"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"},"035cb2cf-8916-42fa-8d85-7d3f9255504f":{"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"},"225527fd-e124-4bc3-a8b3-8d0cae05cd7a":{"description":"`NOT_FOUND`. We never saw this wallet.","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"},"78fc778a-e7f2-4087-adfd-8c78029451bd":{"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"},"7ee4c94c-0264-45b1-8b68-4c622cc42424":{"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"},"da52407b-a1cc-49bb-bee8-9ca86ae6ab15":{"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 wallet and who owns it - FomoScan","navMaps":{"firstHrefInVersion":{"v2":{"href":"/api-reference/identities/read-a-wallet-free-stored-profile","matchLevel":2},"v3":{"href":"/v3/api-reference/wallets/read-one-wallet-and-who-owns-it","matchLevel":0}},"firstHrefInLanguage":{}},"lastModified":"2026-11-04T20:47:33.987Z","originalFileLocation":"v3/api-reference/wallets/read-one-wallet-and-who-owns-it.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 wallet and the traders linked to it as owners. Each owner carries a tier, how sure we are, and the links behind it. - An EVM address matches in any letter case and comes back lowercase. - Owners: strongest tier first, then the earliest firstVerifiedAt, then trader id. - A tier is capped at weak when two or more traders hold the wallet, or the wallet carries a custodial or exchange label. - A wallet we know without an owner answers 200 with an empty owners list. - A link read from the wallet a platform profile shows never counts; every other active link does, at its tier. ## Price The price depends on the answer. The Reveals column says when a reveal is taken. | Answer | Credits | Reveals | | --- | --- | --- | | An owner holds a tier other than account. | 30,000 | 1 | | Every owner holds the tier account. | 10 | 0 | | The wallet has no owner (200 with the envelope), or we never saw it (404). | 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 10 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=\"Read one wallet and who owns it - FomoScan\">\u003cmeta data-mint-head property=\"og:description\" content=\"One wallet and the traders linked to it as owners. Each owner carries a tier, how sure we are, and the links behind it. - An EVM address matches in any letter case and comes back lowercase. - Owners: strongest tier first, then the earliest firstVerifiedAt, then trader id. - A tier is capped at weak when two or more traders hold the wallet, or the wallet carries a custodial or exchange label. - A wallet we know without an owner answers 200 with an empty owners list. - A link read from the wallet a platform profile shows never counts; every other active link does, at its tier. ## Price The price depends on the answer. The Reveals column says when a reveal is taken. | Answer | Credits | Reveals | | --- | --- | --- | | An owner holds a tier other than account. | 30,000 | 1 | | Every owner holds the tier account. | 10 | 0 | | The wallet has no owner (200 with the envelope), or we never saw it (404). | 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 10 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/wallets/read-one-wallet-and-who-owns-it\">\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=Wallets\u0026amp;title=Read+one+wallet+and+who+owns+it\u0026amp;description=One+wallet+and+the+traders+linked+to+it+as+owners.+Each+owner+carries+a+%60tier%60%2C+how+sure+we+are%2C+and+the+links+behind+it.%0A%0A-+An+EVM+address+matches+in+any+lette\u0026amp;theme=eee421e92d714c8c3b4eb52f\u0026amp;signature=384842405260e7ae8663855805285414bb73d813a410b50d6c590ec423778aa6\">\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 wallet and who owns it - FomoScan\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"One wallet and the traders linked to it as owners. Each owner carries a tier, how sure we are, and the links behind it. - An EVM address matches in any letter case and comes back lowercase. - Owners: strongest tier first, then the earliest firstVerifiedAt, then trader id. - A tier is capped at weak when two or more traders hold the wallet, or the wallet carries a custodial or exchange label. - A wallet we know without an owner answers 200 with an empty owners list. - A link read from the wallet a platform profile shows never counts; every other active link does, at its tier. ## Price The price depends on the answer. The Reveals column says when a reveal is taken. | Answer | Credits | Reveals | | --- | --- | --- | | An owner holds a tier other than account. | 30,000 | 1 | | Every owner holds the tier account. | 10 | 0 | | The wallet has no owner (200 with the envelope), or we never saw it (404). | 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 10 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=Wallets\u0026amp;title=Read+one+wallet+and+who+owns+it\u0026amp;description=One+wallet+and+the+traders+linked+to+it+as+owners.+Each+owner+carries+a+%60tier%60%2C+how+sure+we+are%2C+and+the+links+behind+it.%0A%0A-+An+EVM+address+matches+in+any+lette\u0026amp;theme=eee421e92d714c8c3b4eb52f\u0026amp;signature=384842405260e7ae8663855805285414bb73d813a410b50d6c590ec423778aa6\">\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/wallets/read-one-wallet-and-who-owns-it\">\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/wallets/read-one-wallet-and-who-owns-it.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/wallets/read-one-wallet-and-who-owns-it#webpage\",\"url\":\"https://docs.fomoscan.sh/v3/api-reference/wallets/read-one-wallet-and-who-owns-it\",\"name\":\"Read one wallet and who owns it\",\"description\":\"One wallet and the traders linked to it as owners. Each owner carries a tier, how sure we are, and the links behind it. - An EVM address matches in any letter case and comes back lowercase. - Owners: strongest tier first, then the earliest firstVerifiedAt, then trader id. - A tier is capped at weak when two or more traders hold the wallet, or the wallet carries a custodial or exchange label. - A wallet we know without an owner answers 200 with an empty owners list. - A link read from the wallet a platform profile shows never counts; every other active link does, at its tier. ## Price The price depends on the answer. The Reveals column says when a reveal is taken. | Answer | Credits | Reveals | | --- | --- | --- | | An owner holds a tier other than account. | 30,000 | 1 | | Every owner holds the tier account. | 10 | 0 | | The wallet has no owner (200 with the envelope), or we never saw it (404). | 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 10 credits left gets 402 QUOTA_EXCEEDED before any work.\",\"dateModified\":\"2026-11-04T20:47:33.987Z\",\"isPartOf\":{\"@id\":\"https://docs.fomoscan.sh#website\"},\"breadcrumb\":{\"@id\":\"https://docs.fomoscan.sh/v3/api-reference/wallets/read-one-wallet-and-who-owns-it#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.fomoscan.sh/v3/api-reference/wallets/read-one-wallet-and-who-owns-it#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 wallet and who owns it\",\"item\":\"https://docs.fomoscan.sh/v3/api-reference/wallets/read-one-wallet-and-who-owns-it\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.fomoscan.sh/v3/api-reference/wallets/read-one-wallet-and-who-owns-it#apireference\",\"headline\":\"Read one wallet and who owns it\",\"name\":\"Read one wallet and who owns it\",\"description\":\"One wallet and the traders linked to it as owners. Each owner carries a tier, how sure we are, and the links behind it. - An EVM address matches in any letter case and comes back lowercase. - Owners: strongest tier first, then the earliest firstVerifiedAt, then trader id. - A tier is capped at weak when two or more traders hold the wallet, or the wallet carries a custodial or exchange label. - A wallet we know without an owner answers 200 with an empty owners list. - A link read from the wallet a platform profile shows never counts; every other active link does, at its tier. ## Price The price depends on the answer. The Reveals column says when a reveal is taken. | Answer | Credits | Reveals | | --- | --- | --- | | An owner holds a tier other than account. | 30,000 | 1 | | Every owner holds the tier account. | 10 | 0 | | The wallet has no owner (200 with the envelope), or we never saw it (404). | 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 10 credits left gets 402 QUOTA_EXCEEDED before any work.\",\"url\":\"https://docs.fomoscan.sh/v3/api-reference/wallets/read-one-wallet-and-who-owns-it\",\"mainEntityOfPage\":{\"@id\":\"https://docs.fomoscan.sh/v3/api-reference/wallets/read-one-wallet-and-who-owns-it#webpage\"},\"dateModified\":\"2026-11-04T20:47:33.987Z\",\"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","description":"The traders this trader follows, as trader envelopes, with the platform of each edge and the time a crawl last saw it.\n\n- The list covers every account of the trader on a platform with a follow graph (`followGraph` in `GET /v3/capabilities`).\n- One item per edge: a trader on the other side of two platforms appears twice, once per platform.\n- An edge between two accounts of the same trader is left out, so a merge never makes a trader follow itself.\n- `counts` holds, per platform, the platform's own count (`reported`) and the edges we hold (`stored`). Every page carries it.\n- Order: `observedAt` newest first, then the account ids. A page boundary inside a tie neither drops nor repeats an edge.\n- 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| 404: no trader has this id. | 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 200 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}/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","description":"The profit and loss of one wallet in the windows of `GET /v3/traders/{traderId}/pnl`. `24h`, `7d`, `30d` and `unrealized` come from our data provider for this wallet; `all` is ours, computed from the trades we index.\n\n- `status`, `retryAfterSeconds`, `asOf`, `nextUpdateAt`, `stale` and `window` follow the rules of `GET /v3/traders/{traderId}/pnl`. `no_wallet` cannot occur.\n- `wallets` names the wallets the figures cover, Solana first. When a platform keys this wallet to accounts of one trader, the wallet of the other family that trader holds as an account key on that platform joins it, and every figure covers both. It is listed whatever the status and takes no reveal.\n- `boards` says where the accounts keyed by these wallets stand on the newest capture of each platform board that ranks accounts, as the platform shows it.\n- Any wallet we hold answers, mapped to a trader or not. The document names no owner: `GET /v3/wallets/{family}/{address}` does.\n- `all` is `null` when we hold no figure of the wallet. Its `realized` and `unrealized` are ours, from the trades we index, and `total` is their sum. Its `rank` is `null`: no ranking lists wallets.\n\n## Price\n\nThe price depends on the answer.\n\n| Answer | Credits | Reveals |\n| --- | --- | --- |\n| `status` is `ready`. | 500 | 0 |\n| Any other `status`, or 404 for a wallet we never saw. | 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 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/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":"Read one wallet and who owns it - 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"]}