Resolve a handle to its wallets (temporarily unavailable)
Temporarily unavailable. Live resolution is paused.
A handle we already hold a wallet for is answered from our data: 200 with the
ordinary user record and x-fomoscan-resolve: cached, at the usual hit price.
A request for a handle we do not already hold answers 202{ pending: true, reason: "unavailable", retryable: false } and is not charged.
This paused response includes a message explaining that no job was queued and cached wallet lookups remain available.
When live resolution runs, it returns the wallet we hold for this handle, and looks for
one when we hold none:
200 returns the ordinary user record.
202{ pending: true, reason } means the answer is not ready, not that the call
failed. retryAfterSeconds says when to ask again. Asking again does not start a
second resolve, it joins the one already running.
404 when no such FOMO user exists, as opposed to a 202, which means we could not
answer yet.
A live answer can take several seconds, so allow for it in your client timeout.
x-fomoscan-resolve: cached on a response answered from a wallet we already held, live when we went and looked.
Refused with 402 before any work starts when the key cannot pay for a hit.
Rate limited to 10/minute per IP, separately from your plan rate.
A response that carries a wallet counts as one of the plan’s monthly reveals.
Price: 30,000 CU on a hit, 200 CU on a 202 or a 404. A paused lookup (202 with reason unavailable and retryable false) is not charged.
POST
/
v2
/
user
/
handle
/
{handle}
/
resolve
Resolve a handle to its wallets (temporarily unavailable)
Cover photo URL on our image host, or null. The path is /a/<key>.webp. A new picture gets a new URL. A picture added in the last few minutes can show a neutral placeholder until it is ready.
Avatar URL on our image host, or null. The path is /a/<key>.webp. A new picture gets a new URL. A picture added in the last few minutes can show a neutral placeholder until it is ready.
Canonical X profile link, https://x.com/<handle>, or null. Normalised from whatever the user typed on FOMO; null when that could not be reduced to a plausible handle. Self-declared and NOT verified by us — a claim, not a proof.
Verified social account links. Present only when social account links are enabled on the API. Absent, not null, when they are not.
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","deployBranch":"docs/mintlify","contentDirectory":"apps/docs","isPrivate":true,"mountPath":"","label":""},"chroma":{"latestBuiltDeploymentHistoryId":"6ad9b8401cd014c88d97bc9d","collectionId":"c186b78b-a7c0-4e23-b1cb-ae4e03460857","liveDeploymentHistoryId":"6ad9b8401cd014c88d97bc9d","schemaVersion":"v3"},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6adf2f4be705fd92bf16659a","clientVersion":"0.0.3966","searchFilterCounts":[{"language":"default","tag":"API reference","count":22},{"language":"default","tag":"Endpoints","count":19},{"language":"default","tag":"Overview","count":12},{"language":"default","tag":"Examples","count":10},{"language":"default","tag":"WebSockets","count":6},{"language":"default","tag":"Identities","count":6},{"language":"default","tag":"Pump","count":6},{"language":"default","tag":"Core concepts","count":4},{"language":"default","tag":"Thesis Feed","count":4},{"language":"default","tag":"Get started","count":3}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-v7-file-tree","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-nav-generations","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"isAtlas":false,"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/identities/resolve-a-handle-to-its-wallets-temporarily-unavailable","slug":"/api-reference/identities/resolve-a-handle-to-its-wallets-temporarily-unavailable","pageMetadata":{"title":"Resolve a handle to its wallets (temporarily unavailable)","description":"**Temporarily unavailable.** Live resolution is paused.\n\n- A handle we already hold a wallet for is answered from our data: **200** with the\n ordinary user record and `x-fomoscan-resolve: cached`, at the usual hit price.\n- A request for a handle we do not already hold answers **202**\n `{ pending: true, reason: \"unavailable\", retryable: false }` and is not charged.\n- This paused response includes a `message` explaining that no job was queued and cached wallet lookups remain available.\n\nWhen live resolution runs, it returns the wallet we hold for this handle, and looks for\none when we hold none:\n\n- **200** returns the ordinary user record.\n- **202** `{ pending: true, reason }` means the answer is not ready, not that the call\n failed. `retryAfterSeconds` says when to ask again. Asking again does not start a\n second resolve, it joins the one already running.\n- **404** when no such FOMO user exists, as opposed to a 202, which means we could not\n answer yet.\n- A live answer can take several seconds, so allow for it in your client timeout.\n- `x-fomoscan-resolve: cached` on a response answered from a wallet we already held, `live` when we went and looked.\n- Refused with **402** before any work starts when the key cannot pay for a hit.\n- Rate limited to **10/minute** per IP, separately from your plan rate.\n\nA response that carries a wallet counts as one of the plan’s monthly reveals.\n\n**Price:** 30,000 CU on a hit, 200 CU on a 202 or a 404. A paused lookup (202 with reason unavailable and retryable false) is not charged.","deprecated":null,"version":null,"openapi":"https://api.fomoscan.sh/openapi.json post /v2/user/handle/{handle}/resolve","href":"/api-reference/identities/resolve-a-handle-to-its-wallets-temporarily-unavailable","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 li: \"li\",\n p: \"p\",\n strong: \"strong\",\n ul: \"ul\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: \"Temporarily unavailable.\"\n }), \" Live resolution is paused.\"]\n }), \"\\n\", _jsxs(_components.ul, {\n children: [\"\\n\", _jsxs(_components.li, {\n children: [\"A handle we already hold a wallet for is answered from our data: \", _jsx(_components.strong, {\n children: \"200\"\n }), \" with the\\nordinary user record and \", _jsx(_components.code, {\n children: \"x-fomoscan-resolve: cached\"\n }), \", at the usual hit price.\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [\"A request for a handle we do not already hold answers \", _jsx(_components.strong, {\n children: \"202\"\n }), \"\\n\", _jsx(_components.code, {\n children: \"{ pending: true, reason: \\\"unavailable\\\", retryable: false }\"\n }), \" and is not charged.\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [\"This paused response includes a \", _jsx(_components.code, {\n children: \"message\"\n }), \" explaining that no job was queued and cached wallet lookups remain available.\"]\n }), \"\\n\"]\n }), \"\\n\", _jsx(_components.p, {\n children: \"When live resolution runs, it returns the wallet we hold for this handle, and looks for\\none when we hold none:\"\n }), \"\\n\", _jsxs(_components.ul, {\n children: [\"\\n\", _jsxs(_components.li, {\n children: [_jsx(_components.strong, {\n children: \"200\"\n }), \" returns the ordinary user record.\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [_jsx(_components.strong, {\n children: \"202\"\n }), \" \", _jsx(_components.code, {\n children: \"{ pending: true, reason }\"\n }), \" means the answer is not ready, not that the call\\nfailed. \", _jsx(_components.code, {\n children: \"retryAfterSeconds\"\n }), \" says when to ask again. Asking again does not start a\\nsecond resolve, it joins the one already running.\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [_jsx(_components.strong, {\n children: \"404\"\n }), \" when no such FOMO user exists, as opposed to a 202, which means we could not\\nanswer yet.\"]\n }), \"\\n\", _jsx(_components.li, {\n children: \"A live answer can take several seconds, so allow for it in your client timeout.\"\n }), \"\\n\", _jsxs(_components.li, {\n children: [_jsx(_components.code, {\n children: \"x-fomoscan-resolve: cached\"\n }), \" on a response answered from a wallet we already held, \", _jsx(_components.code, {\n children: \"live\"\n }), \" when we went and looked.\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [\"Refused with \", _jsx(_components.strong, {\n children: \"402\"\n }), \" before any work starts when the key cannot pay for a hit.\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [\"Rate limited to \", _jsx(_components.strong, {\n children: \"10/minute\"\n }), \" per IP, separately from your plan rate.\"]\n }), \"\\n\"]\n }), \"\\n\", _jsx(_components.p, {\n children: \"A response that carries a wallet counts as one of the plan’s monthly reveals.\"\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: \"Price:\"\n }), \" 30,000 CU on a hit, 200 CU on a 202 or a 404. A paused lookup (202 with reason unavailable and retryable false) is not charged.\"]\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":"Resolve a handle to its wallets (temporarily unavailable)","description":"**Temporarily unavailable.** Live resolution is paused.\n\n- A handle we already hold a wallet for is answered from our data: **200** with the\n ordinary user record and `x-fomoscan-resolve: cached`, at the usual hit price.\n- A request for a handle we do not already hold answers **202**\n `{ pending: true, reason: \"unavailable\", retryable: false }` and is not charged.\n- This paused response includes a `message` explaining that no job was queued and cached wallet lookups remain available.\n\nWhen live resolution runs, it returns the wallet we hold for this handle, and looks for\none when we hold none:\n\n- **200** returns the ordinary user record.\n- **202** `{ pending: true, reason }` means the answer is not ready, not that the call\n failed. `retryAfterSeconds` says when to ask again. Asking again does not start a\n second resolve, it joins the one already running.\n- **404** when no such FOMO user exists, as opposed to a 202, which means we could not\n answer yet.\n- A live answer can take several seconds, so allow for it in your client timeout.\n- `x-fomoscan-resolve: cached` on a response answered from a wallet we already held, `live` when we went and looked.\n- Refused with **402** before any work starts when the key cannot pay for a hit.\n- Rate limited to **10/minute** per IP, separately from your plan rate.\n\nA response that carries a wallet counts as one of the plan’s monthly reveals.\n\n**Price:** 30,000 CU on a hit, 200 CU on a 202 or a 404. A paused lookup (202 with reason unavailable and retryable false) is not charged.","deprecated":null,"version":null,"openapi":"https://api.fomoscan.sh/openapi.json post /v2/user/handle/{handle}/resolve","href":"/api-reference/identities/resolve-a-handle-to-its-wallets-temporarily-unavailable","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"summary":"Resolve a handle to its wallets (temporarily unavailable)","tags":["Identities"],"description":"**Temporarily unavailable.** Live resolution is paused.\n\n- A handle we already hold a wallet for is answered from our data: **200** with the\n ordinary user record and `x-fomoscan-resolve: cached`, at the usual hit price.\n- A request for a handle we do not already hold answers **202**\n `{ pending: true, reason: \"unavailable\", retryable: false }` and is not charged.\n- This paused response includes a `message` explaining that no job was queued and cached wallet lookups remain available.\n\nWhen live resolution runs, it returns the wallet we hold for this handle, and looks for\none when we hold none:\n\n- **200** returns the ordinary user record.\n- **202** `{ pending: true, reason }` means the answer is not ready, not that the call\n failed. `retryAfterSeconds` says when to ask again. Asking again does not start a\n second resolve, it joins the one already running.\n- **404** when no such FOMO user exists, as opposed to a 202, which means we could not\n answer yet.\n- A live answer can take several seconds, so allow for it in your client timeout.\n- `x-fomoscan-resolve: cached` on a response answered from a wallet we already held, `live` when we went and looked.\n- Refused with **402** before any work starts when the key cannot pay for a hit.\n- Rate limited to **10/minute** per IP, separately from your plan rate.\n\nA response that carries a wallet counts as one of the plan’s monthly reveals.\n\n**Price:** 30,000 CU on a hit, 200 CU on a 202 or a 404. A paused lookup (202 with reason unavailable and retryable false) is not charged.","parameters":["aad6c970-cc03-4338-880e-1e3d4d093125"],"security":["aa49e861-89af-425c-adc5-3f4383703c0c"],"responses":{"200":"99e8537a-5f5e-4a8b-b235-ceb1142a80e3","202":"3dda1d96-680a-48d0-9a3a-c67a566e8730","404":"157f616d-aa00-4bcd-b2f3-9dadeb0f88fb","429":"942fd5b3-fd40-46fb-8ad3-20fe1a7c392c"},"method":"post","type":"path","servers":["b77ad147-c485-42b8-aa9a-cac81c6dba4f"],"path":"/v2/user/handle/{handle}/resolve","baseUrlOptions":["https://api.fomoscan.sh"],"title":"Resolve a handle to its wallets (temporarily unavailable)","codeSamples":[],"requestExampleLanguages":["bash","javascript","python"],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"aad6c970-cc03-4338-880e-1e3d4d093125":{"schema":{"type":"string","minLength":1,"maxLength":64,"isRequired":true,"description":"FOMO handle (case-insensitive; leading @ is stripped).","uniqueKey":"","typeLabel":"string"},"example":"tradername","in":"path","name":"handle","required":true,"description":"FOMO handle (case-insensitive; leading @ is stripped)."}},"responses":{"99e8537a-5f5e-4a8b-b235-ceb1142a80e3":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["id","handle","name","bio","banner","profilePicture","twitter","solanaAddress","evmAddress"],"properties":{"id":{"type":"string","format":"uuid","description":"Stable FOMO user id. Unlike `handle` it never changes, so it is the key to store.","isRequired":true,"uniqueKey":"id","typeLabel":"string\u003cuuid>"},"handle":{"type":"string","description":"The canonical handle. Users rename — do not key on it.","isRequired":true,"uniqueKey":"handle","typeLabel":"string"},"name":{"oneOf":[{"type":"null","description":"Display name.","isRequired":true,"uniqueKey":"name.oneOf.0","typeLabel":"null"},{"type":"string","description":"Display name.","isRequired":true,"uniqueKey":"name.oneOf.1","typeLabel":"string"}],"isRequired":true,"uniqueKey":"name","typeLabel":"null | string"},"bio":{"oneOf":[{"type":"null","description":"Profile blurb as written by the user, or null if they have none.","isRequired":true,"uniqueKey":"bio.oneOf.0","typeLabel":"null"},{"type":"string","description":"Profile blurb as written by the user, or null if they have none.","isRequired":true,"uniqueKey":"bio.oneOf.1","typeLabel":"string"}],"isRequired":true,"uniqueKey":"bio","typeLabel":"null | string"},"banner":{"oneOf":[{"type":"null","description":"Cover photo URL on our image host, or null. The path is `/a/\u003ckey>.webp`. A new picture gets a new URL. A picture added in the last few minutes can show a neutral placeholder until it is ready.","isRequired":true,"uniqueKey":"banner.oneOf.0","typeLabel":"null"},{"type":"string","description":"Cover photo URL on our image host, or null. The path is `/a/\u003ckey>.webp`. A new picture gets a new URL. A picture added in the last few minutes can show a neutral placeholder until it is ready.","isRequired":true,"uniqueKey":"banner.oneOf.1","typeLabel":"string"}],"isRequired":true,"uniqueKey":"banner","typeLabel":"null | string"},"profilePicture":{"oneOf":[{"type":"null","description":"Avatar URL on our image host, or null. The path is `/a/\u003ckey>.webp`. A new picture gets a new URL. A picture added in the last few minutes can show a neutral placeholder until it is ready.","isRequired":true,"uniqueKey":"profilePicture.oneOf.0","typeLabel":"null"},{"type":"string","description":"Avatar URL on our image host, or null. The path is `/a/\u003ckey>.webp`. A new picture gets a new URL. A picture added in the last few minutes can show a neutral placeholder until it is ready.","isRequired":true,"uniqueKey":"profilePicture.oneOf.1","typeLabel":"string"}],"isRequired":true,"uniqueKey":"profilePicture","typeLabel":"null | string"},"twitter":{"oneOf":[{"type":"null","description":"Canonical X profile link, `https://x.com/\u003chandle>`, or null. Normalised from whatever the user typed on FOMO; null when that could not be reduced to a plausible handle. Self-declared and NOT verified by us — a claim, not a proof.","example":"https://x.com/tradername","isRequired":true,"uniqueKey":"twitter.oneOf.0","typeLabel":"null"},{"type":"string","description":"Canonical X profile link, `https://x.com/\u003chandle>`, or null. Normalised from whatever the user typed on FOMO; null when that could not be reduced to a plausible handle. Self-declared and NOT verified by us — a claim, not a proof.","example":"https://x.com/tradername","isRequired":true,"uniqueKey":"twitter.oneOf.1","typeLabel":"string"}],"isRequired":true,"uniqueKey":"twitter","typeLabel":"null | string"},"solanaAddress":{"oneOf":[{"type":"null","description":"Verified Solana address (base58), or null.","isRequired":true,"uniqueKey":"solanaAddress.oneOf.0","typeLabel":"null"},{"type":"string","description":"Verified Solana address (base58), or null.","isRequired":true,"uniqueKey":"solanaAddress.oneOf.1","typeLabel":"string"}],"isRequired":true,"uniqueKey":"solanaAddress","typeLabel":"null | string"},"evmAddress":{"oneOf":[{"type":"null","description":"Verified EVM address, `0x`-prefixed, or null.","isRequired":true,"uniqueKey":"evmAddress.oneOf.0","typeLabel":"null"},{"type":"string","description":"Verified EVM address, `0x`-prefixed, or null.","isRequired":true,"uniqueKey":"evmAddress.oneOf.1","typeLabel":"string"}],"isRequired":true,"uniqueKey":"evmAddress","typeLabel":"null | string"},"socials":{"type":"array","description":"Verified social account links. Present only when social account links are enabled on the API. Absent, not null, when they are not.","items":{"type":"object","required":["provider","subject","handle"],"properties":{"provider":{"type":"string","description":"Platform identifier: 'x', 'telegram', 'youtube', 'reddit', etc.","isRequired":true,"uniqueKey":"socials.items.[INDEX].provider","typeLabel":"string"},"subject":{"type":"string","description":"Platform-stable user id (e.g. Twitter numeric id '12345678'). Stable across renames; use this as your join key.","isRequired":true,"uniqueKey":"socials.items.[INDEX].subject","typeLabel":"string"},"handle":{"oneOf":[{"type":"null","description":"Display username at verification time. May change; do not key on it.","isRequired":true,"uniqueKey":"socials.items.[INDEX].handle.oneOf.0","typeLabel":"null"},{"type":"string","description":"Display username at verification time. May change; do not key on it.","isRequired":true,"uniqueKey":"socials.items.[INDEX].handle.oneOf.1","typeLabel":"string"}],"isRequired":true,"uniqueKey":"socials.items.[INDEX].handle","typeLabel":"null | string"}},"uniqueKey":"socials.items.[INDEX]","typeLabel":"object"},"uniqueKey":"socials","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"id":"3c90c3cc-0d44-4b50-8888-8dd25736052a","handle":"\u003cstring>","name":"\u003cstring>","bio":"\u003cstring>","banner":"\u003cstring>","profilePicture":"\u003cstring>","twitter":"https://x.com/tradername","solanaAddress":"\u003cstring>","evmAddress":"\u003cstring>","socials":[{"provider":"\u003cstring>","subject":"\u003cstring>","handle":"\u003cstring>"}]}}},"exampleType":"generated"}},"exampleType":"generated"},"3dda1d96-680a-48d0-9a3a-c67a566e8730":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["pending","reason"],"properties":{"pending":{"type":"boolean","enum":[true],"isRequired":true,"uniqueKey":"pending","typeLabel":"enum\u003cboolean>"},"reason":{"type":"string","enum":["queued","timeout","unavailable","rate_limited","no_preview","not_ingested"],"description":"`queued` — accepted. The answer is not ready yet.\n`timeout` — the answer did not arrive in time. Ask again.\n`unavailable` — no answer can be produced right now.\n`rate_limited` — the request was not accepted. Ask again later.\n`no_preview` — no wallet can be attested for this user. Retrying rarely helps.\n`not_ingested` — the record is not readable yet. Ask again shortly.","isRequired":true,"uniqueKey":"reason","typeLabel":"enum\u003cstring>"},"message":{"type":"string","uniqueKey":"message","typeLabel":"string"},"retryable":{"type":"boolean","description":"False for `no_preview`, where a prompt retry is wasted effort, and for `unavailable` while live resolution is paused.","uniqueKey":"retryable","typeLabel":"boolean"},"retryAfterSeconds":{"type":"integer","description":"Seconds to wait before asking again. Present on `queued` and `rate_limited`.","uniqueKey":"retryAfterSeconds","typeLabel":"integer"},"position":{"type":"integer","description":"On `queued` only: the rank of this request. 1 is next up.","uniqueKey":"position","typeLabel":"integer"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"pending":true,"reason":"queued","message":"\u003cstring>","retryable":true,"retryAfterSeconds":123,"position":123}}},"exampleType":"generated"}},"exampleType":"generated"},"157f616d-aa00-4bcd-b2f3-9dadeb0f88fb":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable, lower-snake-case error code.","enum":["BAD_REQUEST","B2B_DISABLED","CONFLICT","FORBIDDEN","FORBIDDEN_SCOPE","FREE_TIER_DISABLED","INTERNAL_ERROR","NOT_FOUND","OVERLOADED","QUOTA_EXCEEDED","RATE_LIMITED","REVEAL_LIMIT_REACHED","SAMPLE_SET_ONLY","TIMEOUT","UNAUTHORIZED","VALIDATION_ERROR","WEBSOCKET_PLAN_REQUIRED"],"isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"retryAfter":{"type":"integer","description":"Seconds; only on RATE_LIMITED.","uniqueKey":"error.retryAfter","typeLabel":"integer"},"addUrl":{"type":"string","description":"Hint URL, present on some NOT_FOUND responses.","uniqueKey":"error.addUrl","typeLabel":"string"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"title":"ErrorBody","uniqueKey":"","typeLabel":"ErrorBody · object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"BAD_REQUEST","message":"\u003cstring>","retryAfter":123,"addUrl":"\u003cstring>"}}}},"exampleType":"generated"}},"exampleType":"generated"},"942fd5b3-fd40-46fb-8ad3-20fe1a7c392c":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable, lower-snake-case error code.","enum":["BAD_REQUEST","B2B_DISABLED","CONFLICT","FORBIDDEN","FORBIDDEN_SCOPE","FREE_TIER_DISABLED","INTERNAL_ERROR","NOT_FOUND","OVERLOADED","QUOTA_EXCEEDED","RATE_LIMITED","REVEAL_LIMIT_REACHED","SAMPLE_SET_ONLY","TIMEOUT","UNAUTHORIZED","VALIDATION_ERROR","WEBSOCKET_PLAN_REQUIRED"],"isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"retryAfter":{"type":"integer","description":"Seconds; only on RATE_LIMITED.","uniqueKey":"error.retryAfter","typeLabel":"integer"},"addUrl":{"type":"string","description":"Hint URL, present on some NOT_FOUND responses.","uniqueKey":"error.addUrl","typeLabel":"string"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"title":"ErrorBody","uniqueKey":"","typeLabel":"ErrorBody · object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"BAD_REQUEST","message":"\u003cstring>","retryAfter":123,"addUrl":"\u003cstring>"}}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"aa49e861-89af-425c-adc5-3f4383703c0c":{"b2bApiKey":{"type":"http","scheme":"bearer","description":"B2B API key (`fsk_live_…` / `fsk_test_…`), issued by FomoScan. Also accepted via `X-Api-Key`.","scopes":[],"schemeName":"b2bApiKey"}}},"servers":{"b77ad147-c485-42b8-aa9a-cac81c6dba4f":{"url":"https://api.fomoscan.sh","description":"Production"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","description":"B2B API key (`fsk_live_…` / `fsk_test_…`), issued by FomoScan. Also accepted via `X-Api-Key`.","scopes":[],"schemeName":"b2bApiKey"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"B2B API key (`fsk_live_…` / `fsk_test_…`), issued by FomoScan. Also accepted via `X-Api-Key`.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"b2bApiKey","name":"Authorization"}],"title":"b2bApiKey"}]},"originalFileLocation":"https://api.fomoscan.sh/openapi.json"},"subdomain":"socialscan","siteName":"FomoScan","title":"Resolve a handle to its wallets (temporarily unavailable) - FomoScan","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-26T10:45:35.898Z","originalFileLocation":"api-reference/identities/resolve-a-handle-to-its-wallets-temporarily-unavailable.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=\"Temporarily unavailable. Live resolution is paused. - A handle we already hold a wallet for is answered from our data: 200 with the ordinary user record and x-fomoscan-resolve: cached, at the usual hit price. - A request for a handle we do not already hold answers 202 { pending: true, reason: \u0026quot;unavailable\u0026quot;, retryable: false } and is not charged. - This paused response includes a message explaining that no job was queued and cached wallet lookups remain available. When live resolution runs, it returns the wallet we hold for this handle, and looks for one when we hold none: - 200 returns the ordinary user record. - 202 { pending: true, reason } means the answer is not ready, not that the call failed. retryAfterSeconds says when to ask again. Asking again does not start a second resolve, it joins the one already running. - 404 when no such FOMO user exists, as opposed to a 202, which means we could not answer yet. - A live answer can take several seconds, so allow for it in your client timeout. - x-fomoscan-resolve: cached on a response answered from a wallet we already held, live when we went and looked. - Refused with 402 before any work starts when the key cannot pay for a hit. - Rate limited to 10/minute per IP, separately from your plan rate. A response that carries a wallet counts as one of the plan’s monthly reveals. Price: 30,000 CU on a hit, 200 CU on a 202 or a 404. A paused lookup (202 with reason unavailable and retryable false) is not charged.\">\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=\"Resolve a handle to its wallets (temporarily unavailable) - FomoScan\">\u003cmeta data-mint-head property=\"og:description\" content=\"Temporarily unavailable. Live resolution is paused. - A handle we already hold a wallet for is answered from our data: 200 with the ordinary user record and x-fomoscan-resolve: cached, at the usual hit price. - A request for a handle we do not already hold answers 202 { pending: true, reason: \u0026quot;unavailable\u0026quot;, retryable: false } and is not charged. - This paused response includes a message explaining that no job was queued and cached wallet lookups remain available. When live resolution runs, it returns the wallet we hold for this handle, and looks for one when we hold none: - 200 returns the ordinary user record. - 202 { pending: true, reason } means the answer is not ready, not that the call failed. retryAfterSeconds says when to ask again. Asking again does not start a second resolve, it joins the one already running. - 404 when no such FOMO user exists, as opposed to a 202, which means we could not answer yet. - A live answer can take several seconds, so allow for it in your client timeout. - x-fomoscan-resolve: cached on a response answered from a wallet we already held, live when we went and looked. - Refused with 402 before any work starts when the key cannot pay for a hit. - Rate limited to 10/minute per IP, separately from your plan rate. A response that carries a wallet counts as one of the plan’s monthly reveals. Price: 30,000 CU on a hit, 200 CU on a 202 or a 404. A paused lookup (202 with reason unavailable and retryable false) is not charged.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"FomoScan\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.fomoscan.sh/api-reference/identities/resolve-a-handle-to-its-wallets-temporarily-unavailable\">\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=Identities\u0026amp;title=Resolve+a+handle+to+its+wallets+%28temporarily+unavailable%29\u0026amp;description=**Temporarily+unavailable.**+Live+resolution+is+paused.%0A%0A-+A+handle+we+already+hold+a+wallet+for+is+answered+from+our+data%3A+**200**+with+the%0A++ordinary+user+rec\u0026amp;theme=eee421e92d714c8c3b4eb52f\u0026amp;signature=45c4c05933cb78be44a0a93dd5f13b9864dc54d530f480bf8bd9aa030a0b6d9f\">\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=\"Resolve a handle to its wallets (temporarily unavailable) - FomoScan\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Temporarily unavailable. Live resolution is paused. - A handle we already hold a wallet for is answered from our data: 200 with the ordinary user record and x-fomoscan-resolve: cached, at the usual hit price. - A request for a handle we do not already hold answers 202 { pending: true, reason: \u0026quot;unavailable\u0026quot;, retryable: false } and is not charged. - This paused response includes a message explaining that no job was queued and cached wallet lookups remain available. When live resolution runs, it returns the wallet we hold for this handle, and looks for one when we hold none: - 200 returns the ordinary user record. - 202 { pending: true, reason } means the answer is not ready, not that the call failed. retryAfterSeconds says when to ask again. Asking again does not start a second resolve, it joins the one already running. - 404 when no such FOMO user exists, as opposed to a 202, which means we could not answer yet. - A live answer can take several seconds, so allow for it in your client timeout. - x-fomoscan-resolve: cached on a response answered from a wallet we already held, live when we went and looked. - Refused with 402 before any work starts when the key cannot pay for a hit. - Rate limited to 10/minute per IP, separately from your plan rate. A response that carries a wallet counts as one of the plan’s monthly reveals. Price: 30,000 CU on a hit, 200 CU on a 202 or a 404. A paused lookup (202 with reason unavailable and retryable false) is not charged.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://socialscan.mintlify.app/_mintlify/api/og/v2?division=Identities\u0026amp;title=Resolve+a+handle+to+its+wallets+%28temporarily+unavailable%29\u0026amp;description=**Temporarily+unavailable.**+Live+resolution+is+paused.%0A%0A-+A+handle+we+already+hold+a+wallet+for+is+answered+from+our+data%3A+**200**+with+the%0A++ordinary+user+rec\u0026amp;theme=eee421e92d714c8c3b4eb52f\u0026amp;signature=45c4c05933cb78be44a0a93dd5f13b9864dc54d530f480bf8bd9aa030a0b6d9f\">\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/api-reference/identities/resolve-a-handle-to-its-wallets-temporarily-unavailable\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/identities/resolve-a-handle-to-its-wallets-temporarily-unavailable.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/api-reference/identities/resolve-a-handle-to-its-wallets-temporarily-unavailable#webpage\",\"url\":\"https://docs.fomoscan.sh/api-reference/identities/resolve-a-handle-to-its-wallets-temporarily-unavailable\",\"name\":\"Resolve a handle to its wallets (temporarily unavailable)\",\"description\":\"Temporarily unavailable. Live resolution is paused. - A handle we already hold a wallet for is answered from our data: 200 with the ordinary user record and x-fomoscan-resolve: cached, at the usual hit price. - A request for a handle we do not already hold answers 202 { pending: true, reason: \\\"unavailable\\\", retryable: false } and is not charged. - This paused response includes a message explaining that no job was queued and cached wallet lookups remain available. When live resolution runs, it returns the wallet we hold for this handle, and looks for one when we hold none: - 200 returns the ordinary user record. - 202 { pending: true, reason } means the answer is not ready, not that the call failed. retryAfterSeconds says when to ask again. Asking again does not start a second resolve, it joins the one already running. - 404 when no such FOMO user exists, as opposed to a 202, which means we could not answer yet. - A live answer can take several seconds, so allow for it in your client timeout. - x-fomoscan-resolve: cached on a response answered from a wallet we already held, live when we went and looked. - Refused with 402 before any work starts when the key cannot pay for a hit. - Rate limited to 10/minute per IP, separately from your plan rate. A response that carries a wallet counts as one of the plan’s monthly reveals. Price: 30,000 CU on a hit, 200 CU on a 202 or a 404. A paused lookup (202 with reason unavailable and retryable false) is not charged.\",\"dateModified\":\"2026-10-26T10:45:35.898Z\",\"isPartOf\":{\"@id\":\"https://docs.fomoscan.sh#website\"},\"breadcrumb\":{\"@id\":\"https://docs.fomoscan.sh/api-reference/identities/resolve-a-handle-to-its-wallets-temporarily-unavailable#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.fomoscan.sh/api-reference/identities/resolve-a-handle-to-its-wallets-temporarily-unavailable#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Endpoints\",\"item\":\"https://docs.fomoscan.sh/api-reference/identities/resolve-a-fomo-handle-to-the-user-and-their-verified-wallet\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Identities\",\"item\":\"https://docs.fomoscan.sh/api-reference/identities/resolve-a-fomo-handle-to-the-user-and-their-verified-wallet\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Resolve a handle to its wallets (temporarily unavailable)\",\"item\":\"https://docs.fomoscan.sh/api-reference/identities/resolve-a-handle-to-its-wallets-temporarily-unavailable\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.fomoscan.sh/api-reference/identities/resolve-a-handle-to-its-wallets-temporarily-unavailable#apireference\",\"headline\":\"Resolve a handle to its wallets (temporarily unavailable)\",\"name\":\"Resolve a handle to its wallets (temporarily unavailable)\",\"description\":\"Temporarily unavailable. Live resolution is paused. - A handle we already hold a wallet for is answered from our data: 200 with the ordinary user record and x-fomoscan-resolve: cached, at the usual hit price. - A request for a handle we do not already hold answers 202 { pending: true, reason: \\\"unavailable\\\", retryable: false } and is not charged. - This paused response includes a message explaining that no job was queued and cached wallet lookups remain available. When live resolution runs, it returns the wallet we hold for this handle, and looks for one when we hold none: - 200 returns the ordinary user record. - 202 { pending: true, reason } means the answer is not ready, not that the call failed. retryAfterSeconds says when to ask again. Asking again does not start a second resolve, it joins the one already running. - 404 when no such FOMO user exists, as opposed to a 202, which means we could not answer yet. - A live answer can take several seconds, so allow for it in your client timeout. - x-fomoscan-resolve: cached on a response answered from a wallet we already held, live when we went and looked. - Refused with 402 before any work starts when the key cannot pay for a hit. - Rate limited to 10/minute per IP, separately from your plan rate. A response that carries a wallet counts as one of the plan’s monthly reveals. Price: 30,000 CU on a hit, 200 CU on a 202 or a 404. A paused lookup (202 with reason unavailable and retryable false) is not charged.\",\"url\":\"https://docs.fomoscan.sh/api-reference/identities/resolve-a-handle-to-its-wallets-temporarily-unavailable\",\"mainEntityOfPage\":{\"@id\":\"https://docs.fomoscan.sh/api-reference/identities/resolve-a-handle-to-its-wallets-temporarily-unavailable#webpage\"},\"dateModified\":\"2026-10-26T10:45:35.898Z\",\"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"}]},"tabs":[{"tab":"Overview","pages":[{"title":"Overview","href":""}]},{"tab":"API reference","groups":[{"group":"Overview","pages":[{"title":"API reference","href":"/api-reference/introduction"},{"title":"Identity and PnL","href":"/api/identity"},{"title":"Theses and pump.fun","href":"/api/theses"}]},{"group":"Endpoints","pages":[{"group":"Identities","pages":[{"title":"Resolve a FOMO handle to the user and their verified wallet","deprecated":null,"version":null,"openapi":"https://api.fomoscan.sh/openapi.json get /v2/user/handle/{handle}","href":"/api-reference/identities/resolve-a-fomo-handle-to-the-user-and-their-verified-wallet"},{"title":"Resolve a wallet address to the user(s) behind it","deprecated":null,"version":null,"openapi":"https://api.fomoscan.sh/openapi.json get /v2/user/wallet/{address}","href":"/api-reference/identities/resolve-a-wallet-address-to-the-users-behind-it"},{"title":"Resolve a FOMO user id to the user and their verified wallet","description":"Looks a user up by the `id` from a previous response. `id` is stable\nwhere `handle` is not, so it is the value to store against your own\nrecords and come back with.\n\n- **404** when we do not know the id.\n- A **200** with both addresses null means we hold no verified wallet\n for this user.\n\nA response that carries a wallet counts as one of the plan’s monthly reveals.\n\n**Price:** 100 CU on a hit, 200 CU on a 404.","deprecated":null,"version":null,"openapi":"https://api.fomoscan.sh/openapi.json get /v2/user/id/{id}","href":"/api-reference/identities/resolve-a-fomo-user-id-to-the-user-and-their-verified-wallet"},{"title":"Resolve a handle to its wallets (temporarily unavailable)","deprecated":null,"version":null,"openapi":"https://api.fomoscan.sh/openapi.json post /v2/user/handle/{handle}/resolve","href":"/api-reference/identities/resolve-a-handle-to-its-wallets-temporarily-unavailable"},{"title":"One trader's realized and unrealized profit across their whole wallet","description":"Profit and trading activity across one account's whole wallet: every venue, Solana and EVM together.\n\n- `24h`, `7d` and `30d`: realized profit (`netUsd`), return, buy and sell volume, trade\n counts and tokens traded.\n- `all`: FOMO trades only, as cash flow (sold minus bought) with its `rank`, plus\n whole-wallet realized and unrealized profit since 1 January 2025.\n- Every window carries `realizedPnlUsd`, `unrealizedPnlUsd` and `totalPnlUsd`, one\n formula across 24h, 7d, 30d and all: realized profit on average cost plus the\n unrealized profit of positions last traded in the window.\n- `unrealized`: profit on what the wallets hold now. It has no window, and it leaves\n out spam, pools under $10,000 of liquidity and positions larger than their pool.\n- Each window carries its own `status` and `updatedAt`. A window that is due to be\n read again is read while you wait, up to 8 seconds; if the read does not finish in\n time, the previous figures are served with their older `updatedAt`.\n- The first call for an account reads it live. A window that does not finish within\n 8 seconds comes back `pending` with null figures and is ready on the next call.\n- `status` is `pending` only when nothing could be read in time. Only a `ready`\n answer is charged the hit price; every other answer is charged the miss price.\n- A handle the user renamed to is found through their theses of the last 30 days;\n `handle` in the answer is the handle we hold for them.\n- **404** when we do not hold the handle.\n\nA response with `status` `ready` carries a wallet and counts as one of the plan’s monthly reveals.\n\n**Price:** 30,000 CU on a hit, 200 CU on any answer that is not ready, and on a 404.","deprecated":null,"version":null,"openapi":"https://api.fomoscan.sh/openapi.json get /v2/user/handle/{handle}/pnl","href":"/api-reference/identities/one-traders-realized-and-unrealized-profit-across-their-whole-wallet"},{"title":"Whole-wallet profit for up to 100 traders in one call","deprecated":null,"version":null,"openapi":"https://api.fomoscan.sh/openapi.json post /v2/user/handles/pnl","href":"/api-reference/identities/whole-wallet-profit-for-up-to-100-traders-in-one-call"}]},{"group":"Thesis Feed","pages":[{"title":"Every thesis, newest first — the unfiltered feed","deprecated":null,"version":null,"openapi":"https://api.fomoscan.sh/openapi.json get /v2/thesis","href":"/api-reference/thesis-feed/every-thesis-newest-first-—-the-unfiltered-feed"},{"title":"Theses for a token, newest first, ask on a timer for a live feed","deprecated":null,"version":null,"openapi":"https://api.fomoscan.sh/openapi.json get /v2/thesis/token/{tokenAddress}","href":"/api-reference/thesis-feed/theses-for-a-token-newest-first-ask-on-a-timer-for-a-live-feed"},{"title":"Theses by a user, newest first, ask on a timer for their feed","deprecated":null,"version":null,"openapi":"https://api.fomoscan.sh/openapi.json get /v2/thesis/user/{id}","href":"/api-reference/thesis-feed/theses-by-a-user-newest-first-ask-on-a-timer-for-their-feed"},{"title":"Theses by a user about one token","deprecated":null,"version":null,"openapi":"https://api.fomoscan.sh/openapi.json get /v2/thesis/user/{id}/token/{tokenAddress}","href":"/api-reference/thesis-feed/theses-by-a-user-about-one-token"}]},{"group":"Account","pages":[{"title":"Introspect the calling API key","deprecated":null,"version":null,"openapi":"https://api.fomoscan.sh/openapi.json get /v2/me","href":"/api-reference/account/introspect-the-calling-api-key"}]},{"group":"Pump","pages":[{"title":"A pump.fun user by wallet","deprecated":null,"version":null,"openapi":"https://api.fomoscan.sh/openapi.json get /v2/pump/user/wallet/{wallet}","href":"/api-reference/pump/a-pumpfun-user-by-wallet"},{"title":"Every pump.fun callout, newest first","deprecated":null,"version":null,"openapi":"https://api.fomoscan.sh/openapi.json get /v2/pump/thesis","href":"/api-reference/pump/every-pumpfun-callout-newest-first"},{"title":"A coin's callout wall, newest first","deprecated":null,"version":null,"openapi":"https://api.fomoscan.sh/openapi.json get /v2/pump/thesis/token/{mint}","href":"/api-reference/pump/a-coins-callout-wall-newest-first"},{"title":"A wallet's callouts, newest first","deprecated":null,"version":null,"openapi":"https://api.fomoscan.sh/openapi.json get /v2/pump/thesis/wallet/{wallet}","href":"/api-reference/pump/a-wallets-callouts-newest-first"},{"title":"The pump.fun PnL leaderboard","deprecated":null,"version":null,"openapi":"https://api.fomoscan.sh/openapi.json get /v2/pump/leaderboard/traders","href":"/api-reference/pump/the-pumpfun-pnl-leaderboard"},{"title":"One pump.fun wallet's realized and unrealized profit","deprecated":null,"version":null,"openapi":"https://api.fomoscan.sh/openapi.json get /v2/pump/user/wallet/{wallet}/pnl","href":"/api-reference/pump/one-pumpfun-wallets-realized-and-unrealized-profit"}]},{"group":"WebSocket","pages":[{"title":"Live theses, every token or a token list (WebSocket)","deprecated":null,"version":null,"openapi":"https://api.fomoscan.sh/openapi.json get /v2/ws","href":"/api-reference/websocket/live-theses-every-token-or-a-token-list-websocket"},{"title":"Live pump.fun callouts, every token or a token list (WebSocket)","deprecated":null,"version":null,"openapi":"https://api.fomoscan.sh/openapi.json get /v2/ws/pump","href":"/api-reference/websocket/live-pumpfun-callouts-every-token-or-a-token-list-websocket"}]}]}]},{"tab":"WebSockets","pages":[{"title":"WebSockets","href":"/websockets/overview"}]},{"tab":"Examples","pages":[{"title":"Examples","href":"/examples/overview"}]},{"tab":"Changelog","pages":[{"title":"Changelog","href":"/changelog"}]}]},"title":"Resolve a handle to its wallets (temporarily unavailable) - FomoScan","buildId":"dpl_cadrRc5H9XQiJQbDFN5mcYRs2PAj","deploymentId":"dpl_cadrRc5H9XQiJQbDFN5mcYRs2PAj","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-DKJwRUt2.js","utils-CWD_VS3u.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-oFjciODD.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-C76WsxC3.js","snippetPresets-DvPMxpX_.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-CuNQfndH.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-BVFpVUoF.js","shallow-t59Jg5Kr.js","getApiPlaygroundDisplay-C_JZ4amX.js","CodeSnippet-CLRDnx_h.js","CodeSnippets-C2myU4kc.js","Page-7TwLLapg.js","getPastedJson-B-JaVXw7.js","icon-BA-iDhH3.js","MethodPill-D4qZABFp.js","DuplicateIcon-THIDKO1O.js","createIcon-CYYJwgFd.js","DynamicMarkdown-UGQuxDKp.js","SectionHeading-jYELb23h.js","axios-vUo_bRtp.js","Markdown-DKsLa3wy.js","clsx-CefdjKz2.js","lib--scc4DXi.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-BaREnp3o.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-sgx_0XzF.js"]}