{
"message": "Payment service temporarily unavailable"
}
Stablecoins
Get supply-flow detail for one token
Case-insensitive symbol lookup. For symbols that collide across tokens, send chain + address (strongest) or canonicalId to pin a deterministic row, or tokenType as a soft disambiguator. Without a pin, the largest-supply token wins and, when the symbol matches more than one distinct token, the response carries collision: true plus a candidates list so callers can re-query pinned. Returns 404 when the symbol is absent from a resolved snapshot, or when canonicalId is supplied but no row matches that {symbol, canonicalId} pair. During partial outage (stale cache, known symbol) the response carries stale: true; during total outage (fallback cache also empty) returns 200 with token: null, stale: true, degraded: true, the same outage envelope as the list endpoint, so clients can distinguish a retryable outage from a permanent 404.
GET
/
rwa
/
supply
/
{symbol}
Get supply-flow detail for a single token by symbol
curl --request GET \ --url https://api.webacy.com/rwa/supply/{symbol} \ --header 'x-api-key: <api-key>'
Chain of the exact contract to resolve (pair with address). Strongest disambiguator: send chain + address so a same-symbol, different-contract row is never returned.
Contract address of the exact deployment (pair with chain). When the feed does not track this contract separately, the response is { token: null, address_unmatched: true } (no flows) rather than another same-symbol contract's flows.
Response
Supply-flow row for the resolved token plus envelope. During total outage token is null and degraded is true.
true only during a total supply-pipeline outage (stale snapshot AND zero tokens). When true, token is null — retry later rather than treating the response as a permanent miss. Same field on SupplyListResponse.
Present and true when chain + address was supplied but the feed does not track that exact contract. token is null and no flows are attributed, instead of returning another same-symbol contract's flows. Distinct from an outage (degraded).
Present and true when the symbol matches more than one distinct token and no pin (canonicalId or chain + address) was supplied. token still resolves to the largest-supply row, but callers should disambiguate via candidates.
All same-symbol candidate rows when collision is true.
Show child attributes
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Webacy Docs","colors":{"primary":"#00d66f","light":"#33cb8b","dark":"#279b71"},"logo":{"light":"https://mintcdn.com/webacy/PZHkbk8qJrPsQSaC/logo/light.png?fit=max\u0026auto=format\u0026n=PZHkbk8qJrPsQSaC\u0026q=85\u0026s=c1933879883f6b01ff46a6e51cfd687f","dark":"https://mintcdn.com/webacy/cDgYsLUzSZsNJNEk/logo/dark.svg?fit=max\u0026auto=format\u0026n=cDgYsLUzSZsNJNEk\u0026q=85\u0026s=e8da7717da0f291d63cc90a4cb4a91af"},"favicon":"https://mintcdn.com/webacy/LaWycqKCQaZgOW1n/favicon.ico?fit=max\u0026auto=format\u0026n=LaWycqKCQaZgOW1n\u0026q=85\u0026s=2a29ac070865d3fb96939b7c595406f9","api":{},"navbar":{"primary":{"type":"button","label":"Dashboard","href":"https://dapp.webacy.com"}},"footer":{"socials":{"x":"https://x.com/mywebacy","github":"https://github.com/Webacy-Prod"}},"contextual":{"options":["copy","claude","chatgpt","cursor"],"display":"header"},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"webacy","hasAudioNarration":false,"actualSubdomain":"webacy","customDomains":["docs.webacy.com"],"gitSource":{"type":"github","owner":"webacy-prod","repo":"mintlify-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae8ecb6836908827fcbf1bb","collectionId":"66e18ebf-94c6-4036-aa62-b155623954b4","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae8ecb6836908827fcbf1bb"},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6ae8ecb6836908827fcbf1bb","clientVersion":"0.0.4045","searchFilterCounts":[{"language":"default","tag":"Build","count":61},{"language":"default","tag":"API Reference","count":49},{"language":"default","tag":"Overview","count":29},{"language":"default","tag":"Glossary","count":25},{"language":"default","tag":"Risk Intelligence","count":21},{"language":"default","tag":"Learn","count":18},{"language":"default","tag":"Integrations","count":15},{"language":"default","tag":"Stablecoins","count":11},{"language":"default","tag":"Contract Security","count":9},{"language":"default","tag":"SDK","count":8}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","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":"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":"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":"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":"billing-updated-9-15","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}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":".gb{display:inline-block;min-width:2.2em;padding:2px 9px;border-radius:6px;font-weight:700;font-size:.85em;line-height:1.35;text-align:center;letter-spacing:.02em;white-space:nowrap}.gb-a{background:#047857;color:#fff}.gb-b{background:#1d4ed8;color:#fff}.gb-c{background:#f59e0b;color:#1f2937}.gb-d{background:#c2410c;color:#fff}.gb-f{background:#b91c1c;color:#fff}"}],"page":{"pagePath":"api-reference/supply-flows/get-supply-flow-detail","slug":"/api-reference/supply-flows/get-supply-flow-detail","pageMetadata":{"title":"Get supply-flow detail for one token","openapi":"GET /rwa/supply/{symbol}","description":"Case-insensitive symbol lookup. For symbols that collide across tokens, send `chain` + `address` (strongest) or `canonicalId` to pin a deterministic row, or `tokenType` as a soft disambiguator. Without a pin, the largest-supply token wins and, when the symbol matches more than one distinct token, the response carries `collision: true` plus a `candidates` list so callers can re-query pinned. Returns 404 when the symbol is absent from a resolved snapshot, or when `canonicalId` is supplied but no row matches that `{symbol, canonicalId}` pair. During partial outage (stale cache, known symbol) the response carries `stale: true`; during total outage (fallback cache also empty) returns 200 with `token: null, stale: true, degraded: true`, the same outage envelope as the list endpoint, so clients can distinguish a retryable outage from a permanent 404.","href":"/api-reference/supply-flows/get-supply-flow-detail"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_components.p, {\n children: [\"Case-insensitive symbol lookup. For symbols that collide across tokens, send \", _jsx(_components.code, {\n children: \"chain\"\n }), \" + \", _jsx(_components.code, {\n children: \"address\"\n }), \" (strongest) or \", _jsx(_components.code, {\n children: \"canonicalId\"\n }), \" to pin a deterministic row, or \", _jsx(_components.code, {\n children: \"tokenType\"\n }), \" as a soft disambiguator. Without a pin, the largest-supply token wins and, when the symbol matches more than one distinct token, the response carries \", _jsx(_components.code, {\n children: \"collision: true\"\n }), \" plus a \", _jsx(_components.code, {\n children: \"candidates\"\n }), \" list so callers can re-query pinned. Returns 404 when the symbol is absent from a resolved snapshot, or when \", _jsx(_components.code, {\n children: \"canonicalId\"\n }), \" is supplied but no row matches that \", _jsx(_components.code, {\n children: \"{symbol, canonicalId}\"\n }), \" pair. During partial outage (stale cache, known symbol) the response carries \", _jsx(_components.code, {\n children: \"stale: true\"\n }), \"; during total outage (fallback cache also empty) returns 200 with \", _jsx(_components.code, {\n children: \"token: null, stale: true, degraded: true\"\n }), \", the same outage envelope as the list endpoint, so clients can distinguish a retryable outage from a permanent 404.\"]\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":"Get supply-flow detail for one token","openapi":"GET /rwa/supply/{symbol}","description":"Case-insensitive symbol lookup. For symbols that collide across tokens, send `chain` + `address` (strongest) or `canonicalId` to pin a deterministic row, or `tokenType` as a soft disambiguator. Without a pin, the largest-supply token wins and, when the symbol matches more than one distinct token, the response carries `collision: true` plus a `candidates` list so callers can re-query pinned. Returns 404 when the symbol is absent from a resolved snapshot, or when `canonicalId` is supplied but no row matches that `{symbol, canonicalId}` pair. During partial outage (stale cache, known symbol) the response carries `stale: true`; during total outage (fallback cache also empty) returns 200 with `token: null, stale: true, degraded: true`, the same outage envelope as the list endpoint, so clients can distinguish a retryable outage from a permanent 404.","href":"/api-reference/supply-flows/get-supply-flow-detail"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"summary":"Get supply-flow detail for a single token by symbol","description":"Case-insensitive symbol lookup. For symbols that collide across tokens, send `chain` + `address` (strongest) or `canonicalId` to pin a deterministic row, or `tokenType` as a soft disambiguator. Without a pin, the largest-supply token wins and, when the symbol matches more than one distinct token, the response carries `collision: true` plus a `candidates` list so callers can re-query pinned. Returns 404 when the symbol is absent from a resolved snapshot, or when `canonicalId` is supplied but no row matches that `{symbol, canonicalId}` pair. During partial outage (stale cache, known symbol) the response carries `stale: true`; during total outage (fallback cache also empty) returns 200 with `token: null, stale: true, degraded: true`, the same outage envelope as the list endpoint, so clients can distinguish a retryable outage from a permanent 404.","operationId":"getSupplyToken","tags":["RWA \u0026 Pegged Tokens"],"parameters":["30ed6b0a-ec4e-4d44-9bc8-e82203f543f6","930ac0a2-d83a-409f-b338-53e534f24f8a","672c2149-f09d-43fd-8f4b-73da84cb46e0","2b692609-af8a-466b-995a-32599f1aac0c","e7161544-2588-4fd6-975c-a68a454d5e13"],"responses":{"200":"d1261990-c3df-4b4c-95a7-823166ea1b4f","400":"00d6b29f-a970-4816-8e86-e8695abe71b8","401":"75ab69b7-637f-4514-b8aa-da4d8a1da6d0","402":"b06221de-49ec-488b-9911-1062972d68e4","404":"b2b0e952-a028-4b2a-8ad3-785822244c04","503":"77a7bbaf-8226-422f-8229-4371d3713523"},"security":["086e3059-ca6c-4f5c-98b1-c966098ea67e"],"method":"get","type":"path","servers":["fc0b7da1-74c5-4274-8588-fe57c6e13f7a","da385d44-e63f-43f6-8880-a921d943fe71","8076712c-258a-4a8a-a8c8-798d8227b259"],"path":"/rwa/supply/{symbol}","baseUrlOptions":["https://api.webacy.com","https://api-development.webacy.com","http://0.0.0.0:3030/api/v1/risk-score"],"title":"Get supply-flow detail for a single token by symbol","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"30ed6b0a-ec4e-4d44-9bc8-e82203f543f6":{"name":"symbol","in":"path","required":true,"schema":{"type":"string","isRequired":true,"description":"Token symbol (case-insensitive, e.g. `USDT`)","uniqueKey":"","typeLabel":"string"},"description":"Token symbol (case-insensitive, e.g. `USDT`)"},"930ac0a2-d83a-409f-b338-53e534f24f8a":{"name":"canonicalId","in":"query","required":false,"schema":{"type":"string","isRequired":false,"description":"Canonical override — pins the response to the row with this canonical id. Use for stable URLs on long-tail symbols that may collide later.","uniqueKey":"","typeLabel":"string"},"description":"Canonical override — pins the response to the row with this canonical id. Use for stable URLs on long-tail symbols that may collide later."},"672c2149-f09d-43fd-8f4b-73da84cb46e0":{"name":"tokenType","in":"query","required":false,"schema":{"type":"string","description":"Soft disambiguator when `canonicalId` is not supplied\nBacking mechanism derived by the pipeline from the upstream peg mechanism.","enum":["fiat","crypto","synthetic","other"],"isRequired":false,"uniqueKey":"","typeLabel":"enum\u003cstring>"},"description":"Soft disambiguator when `canonicalId` is not supplied"},"2b692609-af8a-466b-995a-32599f1aac0c":{"name":"chain","in":"query","required":false,"schema":{"type":"string","isRequired":false,"description":"Chain of the exact contract to resolve (pair with `address`). Strongest disambiguator: send `chain` + `address` so a same-symbol, different-contract row is never returned.","uniqueKey":"","typeLabel":"string"},"example":"eth","description":"Chain of the exact contract to resolve (pair with `address`). Strongest disambiguator: send `chain` + `address` so a same-symbol, different-contract row is never returned."},"e7161544-2588-4fd6-975c-a68a454d5e13":{"name":"address","in":"query","required":false,"schema":{"type":"string","isRequired":false,"description":"Contract address of the exact deployment (pair with `chain`). When the feed does not track this contract separately, the response is `{ token: null, address_unmatched: true }` (no flows) rather than another same-symbol contract's flows.","uniqueKey":"","typeLabel":"string"},"example":"0xdac17f958d2ee523a2206206994597c13d831ec7","description":"Contract address of the exact deployment (pair with `chain`). When the feed does not track this contract separately, the response is `{ token: null, address_unmatched: true }` (no flows) rather than another same-symbol contract's flows."}},"responses":{"d1261990-c3df-4b4c-95a7-823166ea1b4f":{"headers":{"x-credit-token":{"description":"Opaque bearer token for a prepaid x402 CU balance. Send it as `x-credit-token` to spend that balance. If the balance is insufficient and a payment for its verified payer settles, the same token is topped up and returned; otherwise the paid call returns a new independent token.","schema":{"type":"string"}},"x-credit-balance-cu":{"description":"CU remaining for the returned or presented credit token after this call.","schema":{"type":"integer","minimum":0,"example":480}}},"description":"Supply-flow row for the resolved token plus envelope. During total outage `token` is null and `degraded` is true.","content":{"application/json":{"schema":{"type":"object","required":["token","generated_at","stale","degraded"],"properties":{"token":{"oneOf":[{"type":"object","description":"null when `degraded` is true (total outage, no snapshot to resolve the symbol against) or when `address_unmatched` is true.","required":["symbol","name","canonical_id","token_type","peg_type","supply","net_24h","net_7d","net_30d","net_90d","minted_24h","burned_24h","minted_7d","burned_7d","net_24h_pct","net_7d_pct","net_30d_pct","pressure_vs_30d","risk_score_as_of_generated_at","risk_tier_as_of_generated_at","has_bridged_data","total_native_supply","total_bridged_supply","bridged_fraction","organic_net_24h","bridge_flow_pct","chains"],"properties":{"symbol":{"type":"string","isRequired":true,"uniqueKey":"token.oneOf.0.symbol","typeLabel":"string"},"name":{"type":"string","isRequired":true,"uniqueKey":"token.oneOf.0.name","typeLabel":"string"},"canonical_id":{"type":"string","description":"Canonical pegged-token id — stable across pipeline runs. Supply to `/rwa/supply/{symbol}?canonicalId=\u003cid>` to pin a deterministic row when a symbol collision exists.","isRequired":true,"uniqueKey":"token.oneOf.0.canonical_id","typeLabel":"string"},"token_type":{"type":"string","description":"Backing mechanism derived by the pipeline from the upstream peg mechanism.","enum":["fiat","crypto","synthetic","other"],"isRequired":true,"uniqueKey":"token.oneOf.0.token_type","typeLabel":"enum\u003cstring>"},"peg_type":{"type":"string","description":"Peg type (e.g. `peggedUSD`, `peggedEUR`).","isRequired":true,"uniqueKey":"token.oneOf.0.peg_type","typeLabel":"string"},"supply":{"type":"number","format":"double","isRequired":true,"uniqueKey":"token.oneOf.0.supply","typeLabel":"number\u003cdouble>"},"net_24h":{"type":"number","format":"double","isRequired":true,"uniqueKey":"token.oneOf.0.net_24h","typeLabel":"number\u003cdouble>"},"net_7d":{"type":"number","format":"double","isRequired":true,"uniqueKey":"token.oneOf.0.net_7d","typeLabel":"number\u003cdouble>"},"net_30d":{"type":"number","format":"double","isRequired":true,"uniqueKey":"token.oneOf.0.net_30d","typeLabel":"number\u003cdouble>"},"net_90d":{"oneOf":[{"type":"number","format":"double","isRequired":true,"uniqueKey":"token.oneOf.0.net_90d.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","isRequired":true,"uniqueKey":"token.oneOf.0.net_90d.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"token.oneOf.0.net_90d","typeLabel":"number\u003cdouble> | null"},"minted_24h":{"type":"number","format":"double","isRequired":true,"uniqueKey":"token.oneOf.0.minted_24h","typeLabel":"number\u003cdouble>"},"burned_24h":{"type":"number","format":"double","isRequired":true,"uniqueKey":"token.oneOf.0.burned_24h","typeLabel":"number\u003cdouble>"},"minted_7d":{"type":"number","format":"double","isRequired":true,"uniqueKey":"token.oneOf.0.minted_7d","typeLabel":"number\u003cdouble>"},"burned_7d":{"type":"number","format":"double","isRequired":true,"uniqueKey":"token.oneOf.0.burned_7d","typeLabel":"number\u003cdouble>"},"net_24h_pct":{"oneOf":[{"type":"number","format":"double","description":"24h net flow as a fraction of t-1d supply.","isRequired":true,"uniqueKey":"token.oneOf.0.net_24h_pct.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","description":"24h net flow as a fraction of t-1d supply.","isRequired":true,"uniqueKey":"token.oneOf.0.net_24h_pct.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"token.oneOf.0.net_24h_pct","typeLabel":"number\u003cdouble> | null"},"net_7d_pct":{"oneOf":[{"type":"number","format":"double","isRequired":true,"uniqueKey":"token.oneOf.0.net_7d_pct.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","isRequired":true,"uniqueKey":"token.oneOf.0.net_7d_pct.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"token.oneOf.0.net_7d_pct","typeLabel":"number\u003cdouble> | null"},"net_30d_pct":{"oneOf":[{"type":"number","format":"double","isRequired":true,"uniqueKey":"token.oneOf.0.net_30d_pct.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","isRequired":true,"uniqueKey":"token.oneOf.0.net_30d_pct.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"token.oneOf.0.net_30d_pct","typeLabel":"number\u003cdouble> | null"},"pressure_vs_30d":{"type":"number","format":"double","description":"Today's 24h net flow vs the 30d daily baseline, as a fraction of current supply.","isRequired":true,"uniqueKey":"token.oneOf.0.pressure_vs_30d","typeLabel":"number\u003cdouble>"},"risk_score_as_of_generated_at":{"oneOf":[{"type":"integer","description":"Risk score denormalized from the risk-monitor pipeline at the supply snapshot's generated_at. Not live — can lag /rwa/peg-canary by up to 25h. null when the upstream snapshot had no entry for this token.","isRequired":true,"uniqueKey":"token.oneOf.0.risk_score_as_of_generated_at.oneOf.0","typeLabel":"integer"},{"type":"null","description":"Risk score denormalized from the risk-monitor pipeline at the supply snapshot's generated_at. Not live — can lag /rwa/peg-canary by up to 25h. null when the upstream snapshot had no entry for this token.","isRequired":true,"uniqueKey":"token.oneOf.0.risk_score_as_of_generated_at.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"token.oneOf.0.risk_score_as_of_generated_at","typeLabel":"integer | null"},"risk_tier_as_of_generated_at":{"oneOf":[{"type":"string","description":"Risk tier denormalized from the risk-monitor pipeline at the supply snapshot's generated_at (not live).","enum":["critical","warning","watch","ok"],"isRequired":true,"uniqueKey":"token.oneOf.0.risk_tier_as_of_generated_at.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"string","enum":[null],"isRequired":true,"uniqueKey":"token.oneOf.0.risk_tier_as_of_generated_at.oneOf.1","typeLabel":"enum\u003cstring>"},{"type":"null","enum":[null],"isRequired":true,"uniqueKey":"token.oneOf.0.risk_tier_as_of_generated_at.oneOf.2","typeLabel":"null"}],"isRequired":true,"uniqueKey":"token.oneOf.0.risk_tier_as_of_generated_at","typeLabel":"enum\u003cstring> · enum\u003cstring> · null"},"has_bridged_data":{"type":"boolean","isRequired":true,"uniqueKey":"token.oneOf.0.has_bridged_data","typeLabel":"boolean"},"total_native_supply":{"type":"number","format":"double","isRequired":true,"uniqueKey":"token.oneOf.0.total_native_supply","typeLabel":"number\u003cdouble>"},"total_bridged_supply":{"type":"number","format":"double","isRequired":true,"uniqueKey":"token.oneOf.0.total_bridged_supply","typeLabel":"number\u003cdouble>"},"bridged_fraction":{"oneOf":[{"type":"number","format":"double","description":"Bridged supply as a fraction of total supply. null when `has_bridged_data` is false.","isRequired":true,"uniqueKey":"token.oneOf.0.bridged_fraction.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","description":"Bridged supply as a fraction of total supply. null when `has_bridged_data` is false.","isRequired":true,"uniqueKey":"token.oneOf.0.bridged_fraction.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"token.oneOf.0.bridged_fraction","typeLabel":"number\u003cdouble> | null"},"organic_net_24h":{"oneOf":[{"type":"number","format":"double","isRequired":true,"uniqueKey":"token.oneOf.0.organic_net_24h.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","isRequired":true,"uniqueKey":"token.oneOf.0.organic_net_24h.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"token.oneOf.0.organic_net_24h","typeLabel":"number\u003cdouble> | null"},"bridge_flow_pct":{"oneOf":[{"type":"number","format":"double","description":"Absolute bridge contribution to 24h net flow, as a fraction of |net_24h|. null when `has_bridged_data` is false or net_24h is zero.","isRequired":true,"uniqueKey":"token.oneOf.0.bridge_flow_pct.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","description":"Absolute bridge contribution to 24h net flow, as a fraction of |net_24h|. null when `has_bridged_data` is false or net_24h is zero.","isRequired":true,"uniqueKey":"token.oneOf.0.bridge_flow_pct.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"token.oneOf.0.bridge_flow_pct","typeLabel":"number\u003cdouble> | null"},"chains":{"type":"object","description":"Per-chain supply breakdown keyed by internal Chain slug (e.g. `eth`, `arb`, `tron`). Upstream chain names are rewritten on read; chains without an internal Chain counterpart are dropped. `sum(chains)` may be less than `supply` when per-chain attribution is incomplete.","additionalProperties":{"type":"number","format":"double","uniqueKey":"token.oneOf.0.chains.additionalProperties","typeLabel":"number\u003cdouble>"},"isRequired":true,"uniqueKey":"token.oneOf.0.chains","typeLabel":"object"},"llama_id":{"type":"string","deprecated":true,"description":"DEPRECATED — use `canonical_id`. Mirror of `canonical_id` retained for one release for back-compat; will be removed.","uniqueKey":"token.oneOf.0.llama_id","typeLabel":"string"}},"isRequired":true,"uniqueKey":"token.oneOf.0","typeLabel":"object"},{"type":"object","description":"null when `degraded` is true (total outage, no snapshot to resolve the symbol against) or when `address_unmatched` is true.","enum":[null],"isRequired":true,"uniqueKey":"token.oneOf.1","typeLabel":"object"},{"type":"null","description":"null when `degraded` is true (total outage, no snapshot to resolve the symbol against) or when `address_unmatched` is true.","enum":[null],"isRequired":true,"uniqueKey":"token.oneOf.2","typeLabel":"null"}],"isRequired":true,"uniqueKey":"token","typeLabel":"object · object · null"},"generated_at":{"oneOf":[{"type":"string","format":"date-time","isRequired":true,"uniqueKey":"generated_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","isRequired":true,"uniqueKey":"generated_at.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"generated_at","typeLabel":"string\u003cdate-time> | null"},"stale":{"type":"boolean","description":"true when the snapshot is older than 25h or served from the fallback cache during an upstream data outage.","isRequired":true,"uniqueKey":"stale","typeLabel":"boolean"},"degraded":{"type":"boolean","description":"true only during a total supply-pipeline outage (stale snapshot AND zero tokens). When true, `token` is null — retry later rather than treating the response as a permanent miss. Same field on `SupplyListResponse`.","isRequired":true,"uniqueKey":"degraded","typeLabel":"boolean"},"address_unmatched":{"type":"boolean","description":"Present and true when `chain` + `address` was supplied but the feed does not track that exact contract. `token` is null and no flows are attributed, instead of returning another same-symbol contract's flows. Distinct from an outage (`degraded`).","uniqueKey":"address_unmatched","typeLabel":"boolean"},"collision":{"type":"boolean","description":"Present and true when the symbol matches more than one distinct token and no pin (`canonicalId` or `chain` + `address`) was supplied. `token` still resolves to the largest-supply row, but callers should disambiguate via `candidates`.","uniqueKey":"collision","typeLabel":"boolean"},"candidates":{"type":"array","items":{"type":"object","description":"Compact identity row for a symbol-collision candidate: enough to re-query pinned by `canonicalId` or `chain` + `address`.","required":["canonical_id","symbol","name","token_type","supply","addresses"],"properties":{"canonical_id":{"type":"string","isRequired":true,"uniqueKey":"candidates.items.[INDEX].canonical_id","typeLabel":"string"},"symbol":{"type":"string","isRequired":true,"uniqueKey":"candidates.items.[INDEX].symbol","typeLabel":"string"},"name":{"type":"string","isRequired":true,"uniqueKey":"candidates.items.[INDEX].name","typeLabel":"string"},"token_type":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"candidates.items.[INDEX].token_type.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"candidates.items.[INDEX].token_type.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"candidates.items.[INDEX].token_type","typeLabel":"string | null"},"supply":{"type":"number","isRequired":true,"uniqueKey":"candidates.items.[INDEX].supply","typeLabel":"number"},"addresses":{"type":"object","additionalProperties":{"type":"string","uniqueKey":"candidates.items.[INDEX].addresses.additionalProperties","typeLabel":"string"},"description":"Per-chain contract addresses (chain slug → address)","isRequired":true,"uniqueKey":"candidates.items.[INDEX].addresses","typeLabel":"object"}},"uniqueKey":"candidates.items.[INDEX]","typeLabel":"object"},"description":"All same-symbol candidate rows when `collision` is true.","uniqueKey":"candidates","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"token":{"symbol":"\u003cstring>","name":"\u003cstring>","canonical_id":"\u003cstring>","token_type":"fiat","peg_type":"\u003cstring>","supply":123,"net_24h":123,"net_7d":123,"net_30d":123,"net_90d":123,"minted_24h":123,"burned_24h":123,"minted_7d":123,"burned_7d":123,"net_24h_pct":123,"net_7d_pct":123,"net_30d_pct":123,"pressure_vs_30d":123,"risk_score_as_of_generated_at":123,"risk_tier_as_of_generated_at":"critical","has_bridged_data":true,"total_native_supply":123,"total_bridged_supply":123,"bridged_fraction":123,"organic_net_24h":123,"bridge_flow_pct":123,"chains":{},"llama_id":"\u003cstring>"},"generated_at":"2023-11-07T05:31:56Z","stale":true,"degraded":true,"address_unmatched":true,"collision":true,"candidates":[{"canonical_id":"\u003cstring>","symbol":"\u003cstring>","name":"\u003cstring>","token_type":"\u003cstring>","supply":123,"addresses":{}}]}}},"exampleType":"generated"}},"exampleType":"generated"},"00d6b29f-a970-4816-8e86-e8695abe71b8":{"description":"Invalid tokenType, an unknown chain, or an address supplied without its chain","content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}},"75ab69b7-637f-4514-b8aa-da4d8a1da6d0":{"description":"Authorization information is missing or invalid","content":{"application/json":{"example":{"message":"Unauthorized"},"examples":{"Example":{"title":"Example","value":{"message":"Unauthorized"}}},"exampleType":"examples"}},"exampleType":"examples"},"b06221de-49ec-488b-9911-1062972d68e4":{"description":"Keyless x402 payment required. Returned for a keyless caller (gateway entry `x-webacy-entry: x402`) with no prepaid CU balance or insufficient CU on the presented credit token. Identified by the base64 `PAYMENT-REQUIRED` response header; the body carries the x402 challenge (a USDC price on Base and a Stripe-minted deposit address). Pay it, then retry with the `PAYMENT-SIGNATURE` header to unlock the resource and receive a credit token. An authenticated api-key caller with a past_due/unpaid subscription may instead receive a different 402 (`Subscription payment required`, plain JSON, no `PAYMENT-REQUIRED` header).","headers":{"PAYMENT-REQUIRED":{"description":"Base64-encoded x402 challenge (network, asset, amount, payTo, resource.url). The edge rollout supplies the canonical public request path through a valid gateway claim; missing or invalid claims safely fall back to the public origin plus an internal path identifier. resource.url is not yet suitable for publishing to a public x402 discovery catalog (Coinbase's Bazaar): route-specific declarations and live paid validation are still pending.","schema":{"type":"string"}}},"content":{"application/json":{"example":{"x402Version":1,"error":"payment required"},"examples":{"Example":{"title":"Example","value":{"x402Version":1,"error":"payment required"}}},"exampleType":"examples"}},"exampleType":"examples"},"b2b0e952-a028-4b2a-8ad3-785822244c04":{"description":"Symbol not found in supply dataset (or {symbol, canonicalId} pair mismatch)","content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}},"77a7bbaf-8226-422f-8229-4371d3713523":{"description":"x402 paywall fails CLOSED: if payment configuration is incomplete or invalid, the x402 route unexpectedly has no payment requirement, or the facilitator, credit store, or settlement is unavailable, a gated keyless request returns 503 (`Payment service temporarily unavailable`) rather than serving the resource unpaid.","content":{"application/json":{"example":{"message":"Payment service temporarily unavailable"},"examples":{"Example":{"title":"Example","value":{"message":"Payment service temporarily unavailable"}}},"exampleType":"examples"}},"exampleType":"examples"}},"security":{"086e3059-ca6c-4f5c-98b1-c966098ea67e":{"api_key":{"type":"apiKey","in":"header","name":"x-api-key","scopes":[],"schemeName":"api_key"}}},"servers":{"fc0b7da1-74c5-4274-8588-fe57c6e13f7a":{"url":"https://api.webacy.com","description":"Webacy Risk Score API (Production)"},"da385d44-e63f-43f6-8880-a921d943fe71":{"url":"https://api-development.webacy.com","description":"Webacy Risk Score API (Development)"},"8076712c-258a-4a8a-a8c8-798d8227b259":{"url":"http://0.0.0.0:3030/api/v1/risk-score","description":"Webacy Risk Score API - Local"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"apiKey","in":"header","name":"x-api-key","scopes":[],"schemeName":"api_key"},"schema":{"title":"x-api-key","type":"string","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"api_key","name":"x-api-key"}],"title":"api_key"}]},"originalFileLocation":"openapi.json"},"subdomain":"webacy","siteName":"Webacy Docs","title":"Get supply-flow detail for one token - Webacy Docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-13T19:37:37.920Z","originalFileLocation":"api-reference/supply-flows/get-supply-flow-detail.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Case-insensitive symbol lookup. For symbols that collide across tokens, send chain + address (strongest) or canonicalId to pin a deterministic row, or tokenType as a soft disambiguator. Without a pin, the largest-supply token wins and, when the symbol matches more than one distinct token, the response carries collision: true plus a candidates list so callers can re-query pinned. Returns 404 when the symbol is absent from a resolved snapshot, or when canonicalId is supplied but no row matches that {symbol, canonicalId} pair. During partial outage (stale cache, known symbol) the response carries stale: true; during total outage (fallback cache also empty) returns 200 with token: null, stale: true, degraded: true, the same outage envelope as the list endpoint, so clients can distinguish a retryable outage from a permanent 404.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Webacy Docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/webacy/BDwg8pUd_cx6RnJh/_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/webacy/BDwg8pUd_cx6RnJh/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/webacy/BDwg8pUd_cx6RnJh/_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/webacy/BDwg8pUd_cx6RnJh/_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/webacy/BDwg8pUd_cx6RnJh/_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/webacy/BDwg8pUd_cx6RnJh/_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/webacy/BDwg8pUd_cx6RnJh/_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/webacy/BDwg8pUd_cx6RnJh/_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/webacy/BDwg8pUd_cx6RnJh/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Get supply-flow detail for one token - Webacy Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Case-insensitive symbol lookup. For symbols that collide across tokens, send chain + address (strongest) or canonicalId to pin a deterministic row, or tokenType as a soft disambiguator. Without a pin, the largest-supply token wins and, when the symbol matches more than one distinct token, the response carries collision: true plus a candidates list so callers can re-query pinned. Returns 404 when the symbol is absent from a resolved snapshot, or when canonicalId is supplied but no row matches that {symbol, canonicalId} pair. During partial outage (stale cache, known symbol) the response carries stale: true; during total outage (fallback cache also empty) returns 200 with token: null, stale: true, degraded: true, the same outage envelope as the list endpoint, so clients can distinguish a retryable outage from a permanent 404.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Webacy Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.webacy.com/api-reference/supply-flows/get-supply-flow-detail\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://webacy.mintlify.app/_mintlify/api/og/v2?division=Stablecoins\u0026amp;title=Get+supply-flow+detail+for+one+token\u0026amp;description=Case-insensitive+symbol+lookup.+For+symbols+that+collide+across+tokens%2C+send+%60chain%60+%2B+%60address%60+%28strongest%29+or+%60canonicalId%60+to+pin+a+deterministic+row%2C+or+%60to\u0026amp;theme=13dc342d05893d147dc93219\u0026amp;signature=7dd89484561e005698d7e25e7ab8c557844a27ef2f1b082ce9a8f65d663f4c74\">\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=\"Get supply-flow detail for one token - Webacy Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Case-insensitive symbol lookup. For symbols that collide across tokens, send chain + address (strongest) or canonicalId to pin a deterministic row, or tokenType as a soft disambiguator. Without a pin, the largest-supply token wins and, when the symbol matches more than one distinct token, the response carries collision: true plus a candidates list so callers can re-query pinned. Returns 404 when the symbol is absent from a resolved snapshot, or when canonicalId is supplied but no row matches that {symbol, canonicalId} pair. During partial outage (stale cache, known symbol) the response carries stale: true; during total outage (fallback cache also empty) returns 200 with token: null, stale: true, degraded: true, the same outage envelope as the list endpoint, so clients can distinguish a retryable outage from a permanent 404.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://webacy.mintlify.app/_mintlify/api/og/v2?division=Stablecoins\u0026amp;title=Get+supply-flow+detail+for+one+token\u0026amp;description=Case-insensitive+symbol+lookup.+For+symbols+that+collide+across+tokens%2C+send+%60chain%60+%2B+%60address%60+%28strongest%29+or+%60canonicalId%60+to+pin+a+deterministic+row%2C+or+%60to\u0026amp;theme=13dc342d05893d147dc93219\u0026amp;signature=7dd89484561e005698d7e25e7ab8c557844a27ef2f1b082ce9a8f65d663f4c74\">\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/webacy/BDwg8pUd_cx6RnJh/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Webacy Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#00d66f\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.webacy.com/api-reference/supply-flows/get-supply-flow-detail\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/supply-flows/get-supply-flow-detail.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.webacy.com/#organization\",\"name\":\"Webacy Docs\",\"url\":\"https://docs.webacy.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/webacy/PZHkbk8qJrPsQSaC/logo/light.png?fit=max\u0026auto=format\u0026n=PZHkbk8qJrPsQSaC\u0026q=85\u0026s=c1933879883f6b01ff46a6e51cfd687f\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.webacy.com#website\",\"name\":\"Webacy Docs\",\"url\":\"https://docs.webacy.com\",\"publisher\":{\"@id\":\"https://docs.webacy.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.webacy.com/api-reference/supply-flows/get-supply-flow-detail#webpage\",\"url\":\"https://docs.webacy.com/api-reference/supply-flows/get-supply-flow-detail\",\"name\":\"Get supply-flow detail for one token\",\"description\":\"Case-insensitive symbol lookup. For symbols that collide across tokens, send chain + address (strongest) or canonicalId to pin a deterministic row, or tokenType as a soft disambiguator. Without a pin, the largest-supply token wins and, when the symbol matches more than one distinct token, the response carries collision: true plus a candidates list so callers can re-query pinned. Returns 404 when the symbol is absent from a resolved snapshot, or when canonicalId is supplied but no row matches that {symbol, canonicalId} pair. During partial outage (stale cache, known symbol) the response carries stale: true; during total outage (fallback cache also empty) returns 200 with token: null, stale: true, degraded: true, the same outage envelope as the list endpoint, so clients can distinguish a retryable outage from a permanent 404.\",\"dateModified\":\"2026-10-13T19:37:37.920Z\",\"isPartOf\":{\"@id\":\"https://docs.webacy.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.webacy.com/api-reference/supply-flows/get-supply-flow-detail#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.webacy.com/api-reference/supply-flows/get-supply-flow-detail#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Stablecoins\",\"item\":\"https://docs.webacy.com/api-reference/depeg-monitor\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Get supply-flow detail for one token\",\"item\":\"https://docs.webacy.com/api-reference/supply-flows/get-supply-flow-detail\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.webacy.com/api-reference/supply-flows/get-supply-flow-detail#apireference\",\"headline\":\"Get supply-flow detail for one token\",\"name\":\"Get supply-flow detail for one token\",\"description\":\"Case-insensitive symbol lookup. For symbols that collide across tokens, send chain + address (strongest) or canonicalId to pin a deterministic row, or tokenType as a soft disambiguator. Without a pin, the largest-supply token wins and, when the symbol matches more than one distinct token, the response carries collision: true plus a candidates list so callers can re-query pinned. Returns 404 when the symbol is absent from a resolved snapshot, or when canonicalId is supplied but no row matches that {symbol, canonicalId} pair. During partial outage (stale cache, known symbol) the response carries stale: true; during total outage (fallback cache also empty) returns 200 with token: null, stale: true, degraded: true, the same outage envelope as the list endpoint, so clients can distinguish a retryable outage from a permanent 404.\",\"url\":\"https://docs.webacy.com/api-reference/supply-flows/get-supply-flow-detail\",\"mainEntityOfPage\":{\"@id\":\"https://docs.webacy.com/api-reference/supply-flows/get-supply-flow-detail#webpage\"},\"dateModified\":\"2026-10-13T19:37:37.920Z\",\"publisher\":{\"@id\":\"https://docs.webacy.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.webacy.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Webacy Docs\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Webacy Docs","nav":{"global":null,"tabs":[{"tab":"Overview","pages":[{"title":"Overview","href":"/introduction"}]},{"tab":"Build","pages":[{"title":"Build","href":"/getting-started"}]},{"tab":"Learn","pages":[{"title":"Learn","href":"/use-cases-guides-walkthroughs"}]},{"tab":"API Reference","groups":[{"group":"Overview","pages":[{"title":"API Introduction","href":"/api-reference/introduction"},{"title":"Authenticate with the Webacy API using API keys","href":"/api-reference/authentication"},{"title":"Get current API usage","openapi":"GET /usage/current","href":"/api-reference/api-usage/get-current-api-usage"},{"title":"Get API usage for specified dates","openapi":"GET /usage","href":"/api-reference/api-usage/get-api-usage-for-specified-dates"},{"title":"Get current CU usage","openapi":"GET /usage/cu","href":"/api-reference/api-usage/get-current-cu-usage"},{"title":"Get daily CU usage","openapi":"GET /usage/cu/daily","href":"/api-reference/api-usage/get-daily-cu-usage"}]},{"group":"Stablecoins","pages":[{"title":"Depeg Monitor","href":"/api-reference/depeg-monitor"},{"title":"List pegged tokens — stablecoins \u0026 RWAs","openapi":"GET /rwa","href":"/api-reference/depeg-monitor/list-pegged-tokens-with-depeg-risk"},{"title":"Get risk detail for a single stablecoin","openapi":"GET /rwa/{address}","href":"/api-reference/depeg-monitor/get-depeg-risk-detail-for-a-pegged-token"},{"title":"List Stablecoins","openapi":"GET /v3/stablecoins","href":"/api-reference/stablecoins/list-stablecoins"},{"title":"List Stablecoin Grades","openapi":"GET /v3/stablecoins/grades","href":"/api-reference/stablecoins/get-stablecoin-grades"},{"title":"Get Stablecoin Risk Detail","openapi":"GET /v3/stablecoins/{address}","href":"/api-reference/stablecoins/get-stablecoin-detail"},{"title":"Holder Concentration Index API","href":"/api-reference/holder-concentration"},{"title":"List all stablecoin and rwa holder data","openapi":"GET /rwa/hci","href":"/api-reference/holder-concentration/list-holder-concentration-index"},{"title":"Get holder concentration history for one token","openapi":"GET /rwa/hci/history","href":"/api-reference/holder-concentration/get-holder-concentration-index-history"},{"title":"List stablecoin supply flows","openapi":"GET /rwa/supply","description":"Returns paginated per-token supply-flow rows plus an aggregates envelope carrying the hero metrics (bank_run_gauge, minting_pressure, supply_by_category, network_count, stress_tokens, mcap_7d_pct). Aggregates are computed over the filtered set before pagination; `mcap_7d_pct` and `stress_tokens` pass through from the pipeline's universe-level totals. Data is refreshed daily — responses carry `stale: true` when the snapshot is older than 25h or served from the fallback cache during an upstream data outage, and `degraded: true` only during a total outage (stale snapshot AND zero tokens) — an empty `items` with `degraded: false` is genuinely empty.","href":"/api-reference/supply-flows/list-supply-flows"},{"title":"Get supply-flow detail for one token","openapi":"GET /rwa/supply/{symbol}","href":"/api-reference/supply-flows/get-supply-flow-detail"}]},{"group":"RWA","pages":[{"title":"RWA Risk (v3)","description":"Use the Webacy V3 RWA endpoints for structural risk on stablecoins and tokenized real-world assets — composite grades, category scores, and coverage.","href":"/api-reference/rwa-v3"},{"title":"Get risk detail for a single RWA","openapi":"GET /v3/rwa/{address}","href":"/api-reference/rwa-v3/get-rwa-risk-detail"},{"title":"List RWA \u0026 stablecoin grades","openapi":"GET /v3/rwa/grades","href":"/api-reference/rwa-v3/get-rwa-grades"},{"title":"Batch structural risk data for RWAs","openapi":"POST /v3/rwa/batch/structural-health","href":"/api-reference/rwa-v3/post-batch-structural-health"}]},{"group":"Vault Risk V3","pages":[{"title":"V3 Vault Risk API Overview","href":"/api-reference/vault-risk-v3/v3-overview"},{"title":"V3 Framework Methodology","href":"/api-reference/vault-risk-v3/framework-methodology"},{"title":"Get risk data for a single vault","openapi":"GET /v3/vaults/{address}","href":"/api-reference/vault-risk-v3/get-vault-risk-detail-v3"},{"title":"Batch vault ratings","openapi":"POST /v3/vaults/batch/grades","href":"/api-reference/vault-risk-v3/get-vault-grades-batch"},{"title":"Get vault risk data framework and taxonomy","openapi":"GET /v3/framework","href":"/api-reference/vault-risk-v3/get-framework"}]},{"group":"Vault History","pages":[{"title":"Get Vault TVL History","openapi":"GET /vaults/{address}/tvl-history","href":"/api-reference/vault-risk/get-vault-tvl-history"},{"title":"Get Vault Share Price History","openapi":"GET /vaults/{address}/share-price-history","href":"/api-reference/vault-risk/get-vault-share-price-history"}]},{"group":"Risk Intelligence","pages":[{"title":"Risk Due Diligence","href":"/api-reference/riskdd"},{"title":"Trading Due Diligence","href":"/api-reference/tradingdd"},{"title":"Risk intelligence for an address","openapi":"GET /addresses/{address}","href":"/api-reference/threat-risks/threat-considerations-for-an-address"},{"group":"Wallet","pages":[{"title":"Check if a wallet address is sanctioned","openapi":"GET /addresses/sanctioned/{walletAddress}","href":"/api-reference/sanction-checks/check-if-wallet-address-is-sanctioned"},{"title":"Detect address poisoning on a wallet address","openapi":"GET /addresses/{address}/poisoning","href":"/api-reference/address-poisoning/detect-address-poisoning-for-a-specific-wallet-address"},{"title":"Get open approvals with risk data on a wallet address","openapi":"GET /addresses/{address}/approvals","href":"/api-reference/approval-risks/approvals-with-threat-risks"},{"title":"Get the risk profile and exposure of a wallet address","openapi":"GET /quick-profile/{walletAddress}","href":"/api-reference/exposure-risk/understand-the-risk-profile-risk-exposure-of-an-address"}]},{"group":"Transaction","pages":[{"title":"Get risk details for a transaction hash","openapi":"GET /transactions/{txHash}","href":"/api-reference/transaction-risks/risk-details-for-a-transaction"},{"title":"Simulate a raw EVM transaction for security risks","openapi":"POST /scan/{fromAddress}/transactions","href":"/api-reference/transaction-scanning/scan-raw-evm-transaction-for-security-risks"},{"title":"Simulate an EIP-712 signed message for security risks","openapi":"POST /scan/{fromAddress}/eip712","href":"/api-reference/transaction-scanning/scan-eip-712-signed-message-for-security-risks"}]},{"group":"Token","pages":[{"title":"Get economic history for a token","openapi":"GET /tokens/{tokenAddress}","href":"/api-reference/token-analysis/get-token-economic-history"},{"title":"Get pools with risk assessment for a token","openapi":"GET /tokens/{tokenAddress}/pools","href":"/api-reference/token-analysis/get-token-pools-with-risk-assessment"},{"title":"Get trending tokens with risk analysis","openapi":"GET /tokens/trending","href":"/api-reference/token-analysis/get-trending-cryptocurrencies-with-risk-analysis"},{"title":"Get Solana token risk with security indicators","openapi":"GET /trading-lite/{address}","href":"/api-reference/trading-lite/get-simplified-token-analysis-with-security-indicators"},{"title":"Get detailed early holder analysis for a token","openapi":"GET /holder-analysis/{address}","href":"/api-reference/holder-analysis/get-detailed-early-holder-analysis-for-a-token"},{"title":"Get trending liquidity pools with risk data","openapi":"GET /tokens/pools/trending","href":"/api-reference/pool-analysis/get-trending-pools-with-risk-analysis"},{"title":"Get OHLCV and risk data for a liquidity pool","openapi":"GET /tokens/pools/{poolAddress}","href":"/api-reference/pool-analysis/get-pool-ohlcv-data-with-risk-assessment"}]},{"group":"Smart Contract","pages":[{"title":"Get full risk analysis for a contract address","openapi":"GET /contracts/{contractAddress}","href":"/api-reference/contract-risk/get-a-real-time-analysis-for-a-given-contract-address"},{"title":"Get only the source-code findings for a contract address","openapi":"GET /contracts/{contractAddress}/code-analysis","href":"/api-reference/contract-risk/get-source-code-analysis-for-a-contract"},{"title":"Get verified source code for a contract address","openapi":"GET /source-code/{contractAddress}","href":"/api-reference/contract-risk/get-verified-source-code-for-a-contract"}]},{"group":"URL","pages":[{"title":"Get risk analysis of a URL","openapi":"POST /url","href":"/api-reference/url-risks/project-url-risk-analysis"}]}]}]}]},"basePath":"","title":"Get supply-flow detail for one token - Webacy Docs","buildId":"dpl_36EDyZCDfRuoUD9af5CH4M1bqY2h","deploymentId":"dpl_36EDyZCDfRuoUD9af5CH4M1bqY2h","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-DCDCdBVX.js","utils-ME8dDnLe.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-0e84ACsd.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-wgRBj-ia.js","snippetPresets-C11Sgb-o.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-C0lapOpP.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-ZeRQV8fF.js","shallow-BupWh095.js","getApiPlaygroundDisplay-BnYQO2Ss.js","CodeSnippet-RKKOc8c_.js","CodeSnippets-Drf_m8wS.js","Page-Bevw23-4.js","getPastedJson-u6QiPzNZ.js","icon-Bb-CBSxO.js","MethodPill-F7l5AI7V.js","DuplicateIcon-IiAXkdSg.js","createIcon-FliI8EBc.js","DynamicMarkdown-B62XqCSI.js","SectionHeading-Dj31pT03.js","axios-vUo_bRtp.js","Markdown-BOgQCTwD.js","clsx-BIWXJmsZ.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-DKZWslLH.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-UDqbR6xh.js"]}