A price in US dollars for every asset GET /assets lists on one network — to show an
amount in dollars next to its base units. For display only: Citadel locks no rate, and
nothing is charged or settled at this price.
usd is the median of the recent quotes of the asset’s market from the price sources your
installation asks, as a decimal string; as_of is the time of the oldest quote it is made
of. Quotes older than the installation’s freshness limit (10 minutes unless configured
otherwise) are not used: an asset with no recent quote has usd: null, never a guess. Your
approval rules judge their dollar steps by the highest recent quote, not this median, so the
two can differ slightly. A test network’s tokens are priced as the market they stand for.
An API key minted in the console (ctd_…). Authenticates; never authorizes funds. A key
carries scopes (read, wallets.write, transactions.write, events.write,
webhooks.write, policy.write) and may be limited to vaults, to IP addresses, and in
lifetime — see Authentication.
The network the data lives on. Required — there is no default network: without it,
422 network_required. A wallet named by its id on another network: 422 network_mismatch.
The network the data lives on. Required wherever it appears in a request — there is no
default network. One your installation does not serve: 422 network_not_served.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Citadel API","colors":{"primary":"#1F5BD8","light":"#5B8BEF","dark":"#163F99"},"api":{"playground":{"display":"interactive"},"examples":{"languages":["curl","javascript","python","go"]}},"integrations":{"telemetry":{"enabled":false}},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"hasAudioNarration":false,"customDomains":[],"gitSource":{"type":"github","owner":"local","repo":"local","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":"local","isBase":true},"buildId":"local","clientVersion":"0.0.4088"},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[],"googleFontsInlined":false,"isLoggedInCli":false,"mintExport":{}},"customCss":[],"page":{"pagePath":"api-reference/reference/list-asset-prices","slug":"/api-reference/reference/list-asset-prices","pageMetadata":{"openapi":"/openapi.yaml get /prices","description":"A price in US dollars for every asset `GET /assets` lists on one network — to show an\namount in dollars next to its base units. For display only: Citadel locks no rate, and\nnothing is charged or settled at this price.\n\n`usd` is the median of the recent quotes of the asset's market from the price sources your\ninstallation asks, as a decimal string; `as_of` is the time of the oldest quote it is made\nof. Quotes older than the installation's freshness limit (10 minutes unless configured\notherwise) are not used: an asset with no recent quote has `usd: null`, never a guess. Your\napproval rules judge their dollar steps by the highest recent quote, not this median, so the\ntwo can differ slightly. A test network's tokens are priced as the market they stand for.\n\n`network` is required. Needs the `read` scope.\n","href":"/api-reference/reference/list-asset-prices","title":"List asset prices"},"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 p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsxs(_components.p, {\n children: [\"A price in US dollars for every asset \", _jsx(_components.code, {\n children: \"GET /assets\"\n }), \" lists on one network — to show an\\namount in dollars next to its base units. For display only: Citadel locks no rate, and\\nnothing is charged or settled at this price.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.code, {\n children: \"usd\"\n }), \" is the median of the recent quotes of the asset’s market from the price sources your\\ninstallation asks, as a decimal string; \", _jsx(_components.code, {\n children: \"as_of\"\n }), \" is the time of the oldest quote it is made\\nof. Quotes older than the installation’s freshness limit (10 minutes unless configured\\notherwise) are not used: an asset with no recent quote has \", _jsx(_components.code, {\n children: \"usd: null\"\n }), \", never a guess. Your\\napproval rules judge their dollar steps by the highest recent quote, not this median, so the\\ntwo can differ slightly. A test network’s tokens are priced as the market they stand for.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.code, {\n children: \"network\"\n }), \" is required. Needs the \", _jsx(_components.code, {\n children: \"read\"\n }), \" scope.\"]\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":{"openapi":"/openapi.yaml get /prices","description":"A price in US dollars for every asset `GET /assets` lists on one network — to show an\namount in dollars next to its base units. For display only: Citadel locks no rate, and\nnothing is charged or settled at this price.\n\n`usd` is the median of the recent quotes of the asset's market from the price sources your\ninstallation asks, as a decimal string; `as_of` is the time of the oldest quote it is made\nof. Quotes older than the installation's freshness limit (10 minutes unless configured\notherwise) are not used: an asset with no recent quote has `usd: null`, never a guess. Your\napproval rules judge their dollar steps by the highest recent quote, not this median, so the\ntwo can differ slightly. A test network's tokens are priced as the market they stand for.\n\n`network` is required. Needs the `read` scope.\n","href":"/api-reference/reference/list-asset-prices","title":"List asset prices"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"tags":["Reference"],"operationId":"listPrices","summary":"List asset prices","description":"A price in US dollars for every asset `GET /assets` lists on one network — to show an\namount in dollars next to its base units. For display only: Citadel locks no rate, and\nnothing is charged or settled at this price.\n\n`usd` is the median of the recent quotes of the asset's market from the price sources your\ninstallation asks, as a decimal string; `as_of` is the time of the oldest quote it is made\nof. Quotes older than the installation's freshness limit (10 minutes unless configured\notherwise) are not used: an asset with no recent quote has `usd: null`, never a guess. Your\napproval rules judge their dollar steps by the highest recent quote, not this median, so the\ntwo can differ slightly. A test network's tokens are priced as the market they stand for.\n\n`network` is required. Needs the `read` scope.\n","parameters":["819bbe3f-c2e2-45ad-82b1-ec45aee5b8dd","d18bf6f0-4e17-48a3-aba2-55189eba4342"],"responses":{"200":"e69542b2-11b0-4db6-8053-85aa0373af2f","401":"85b6782c-65c5-4c11-86e6-c1e26c93b452","403":"157864bc-2ef2-4499-ad2c-1723b333a5ff","422":"cca453d0-255c-4d09-ac18-4977f1325eea"},"method":"get","type":"path","servers":["825d9789-7332-4a65-b039-b330384d4003"],"security":["24aebd70-fdbd-4dae-a4a9-d627e2d2711f"],"path":"/prices","baseUrlOptions":["https://api.citadel.example/api/v1"],"title":"List asset prices","codeSamples":[],"requestExampleLanguages":["bash","javascript","python","go"],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"819bbe3f-c2e2-45ad-82b1-ec45aee5b8dd":{"name":"network","in":"query","required":true,"description":"The network the data lives on. Required — there is no default network: without it,\n`422 network_required`. A wallet named by its id on another network: `422 network_mismatch`.\n","schema":{"type":"string","enum":["mainnet","testnet"],"description":"The network the data lives on. Required — there is no default network: without it,\n`422 network_required`. A wallet named by its id on another network: `422 network_mismatch`.\n\nThe network the data lives on. Required wherever it appears in a request — there is no\ndefault network. One your installation does not serve: `422 network_not_served`.\n","isRequired":true,"uniqueKey":"","typeLabel":"enum\u003cstring>"}},"d18bf6f0-4e17-48a3-aba2-55189eba4342":{"name":"chain","in":"query","required":false,"description":"Only the assets of this chain.","schema":{"type":"string","enum":["tron","evm","solana","ton"],"isRequired":false,"description":"Only the assets of this chain.","uniqueKey":"","typeLabel":"enum\u003cstring>"}}},"responses":{"e69542b2-11b0-4db6-8053-85aa0373af2f":{"description":"A price per asset credited.","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"type":"object","required":["asset","contract","chain","instance","usd","as_of"],"properties":{"asset":{"type":"string","description":"The catalog symbol, as `GET /assets` lists it.","isRequired":true,"uniqueKey":"data.items.[INDEX].asset","typeLabel":"string"},"contract":{"oneOf":[{"type":"string","description":"The token's contract, as `GET /assets` spells it; `null` for the native coin.","isRequired":true,"uniqueKey":"data.items.[INDEX].contract.oneOf.0","typeLabel":"string"},{"type":"null","description":"The token's contract, as `GET /assets` spells it; `null` for the native coin.","isRequired":true,"uniqueKey":"data.items.[INDEX].contract.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.items.[INDEX].contract","typeLabel":"string | null"},"chain":{"type":"string","enum":["tron","evm","solana","ton"],"isRequired":true,"uniqueKey":"data.items.[INDEX].chain","typeLabel":"enum\u003cstring>"},"instance":{"type":"string","isRequired":true,"uniqueKey":"data.items.[INDEX].instance","typeLabel":"string"},"usd":{"oneOf":[{"type":"string","description":"US dollars for one whole unit of the asset, as a decimal string of up to 10 decimal places (`\"0.9998\"`). `null` — no recent quote.","isRequired":true,"uniqueKey":"data.items.[INDEX].usd.oneOf.0","typeLabel":"string"},{"type":"null","description":"US dollars for one whole unit of the asset, as a decimal string of up to 10 decimal places (`\"0.9998\"`). `null` — no recent quote.","isRequired":true,"uniqueKey":"data.items.[INDEX].usd.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.items.[INDEX].usd","typeLabel":"string | null"},"as_of":{"oneOf":[{"type":"string","format":"date-time","description":"The time of the oldest quote the price is made of.","isRequired":true,"uniqueKey":"data.items.[INDEX].as_of.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","description":"The time of the oldest quote the price is made of.","isRequired":true,"uniqueKey":"data.items.[INDEX].as_of.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.items.[INDEX].as_of","typeLabel":"string\u003cdate-time> | null"}},"uniqueKey":"data.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"data","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"example":{"data":[{"asset":"TRX","contract":null,"chain":"tron","instance":"tron","usd":"0.2412","as_of":"2026-10-08T12:00:00Z"},{"asset":"USDT","contract":"TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t","chain":"tron","instance":"tron","usd":"0.9998","as_of":"2026-10-08T12:00:00Z"},{"asset":"USDD","contract":"TPYmHEhy5n8TCEfYGqW2rPxsghSfzghPDn","chain":"tron","instance":"tron","usd":null,"as_of":null}]},"examples":{"Example":{"title":"Example","value":{"data":[{"asset":"TRX","contract":null,"chain":"tron","instance":"tron","usd":"0.2412","as_of":"2026-10-08T12:00:00Z"},{"asset":"USDT","contract":"TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t","chain":"tron","instance":"tron","usd":"0.9998","as_of":"2026-10-08T12:00:00Z"},{"asset":"USDD","contract":"TPYmHEhy5n8TCEfYGqW2rPxsghSfzghPDn","chain":"tron","instance":"tron","usd":null,"as_of":null}]}}},"exampleType":"examples"}},"exampleType":"examples"},"85b6782c-65c5-4c11-86e6-c1e26c93b452":{"description":"Missing, unknown, revoked or expired API key.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Human-readable; not stable.","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"code":{"type":"string","description":"Stable machine code, where one exists.","uniqueKey":"code","typeLabel":"string"},"retryable":{"type":"boolean","uniqueKey":"retryable","typeLabel":"boolean"}},"uniqueKey":"","typeLabel":"object"},"example":{"error":"unauthorized"},"examples":{"Example":{"title":"Example","value":{"error":"unauthorized"}}},"exampleType":"examples"}},"exampleType":"examples"},"157864bc-2ef2-4499-ad2c-1723b333a5ff":{"description":"The key may not make this call. Nothing was created or reserved. `code`:\n`ip_not_allowed` — the call came from an address outside the key's IP allowlist;\n`scope_missing` — the key lacks the scope the endpoint needs;\n`vault_limited` — the key is limited to vaults and the wallet is outside them, or the\nendpoint drives or lists workflows, manages webhook endpoints, reads webhook deliveries,\nreads or changes the policy document, or asks for or reads a report.\n","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Human-readable; not stable.","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"code":{"type":"string","description":"Stable machine code, where one exists.","uniqueKey":"code","typeLabel":"string"},"retryable":{"type":"boolean","uniqueKey":"retryable","typeLabel":"boolean"}},"uniqueKey":"","typeLabel":"object"},"examples":{"ip_not_allowed":{"title":"ip_not_allowed","value":{"error":"request from 198.51.100.1 is not allowed for this key","code":"ip_not_allowed"}},"scope_missing":{"title":"scope_missing","value":{"error":"this key lacks the transactions.write scope","code":"scope_missing"}},"vault_limited":{"title":"vault_limited","value":{"error":"wallet is outside this key's vaults","code":"vault_limited"}}},"exampleType":"examples"}},"exampleType":"examples"},"cca453d0-255c-4d09-ac18-4977f1325eea":{"description":"The request was understood and refused. Nothing was created or reserved. A request\nwithout `network` is refused with `network_required`, a network your installation does\nnot serve with `network_not_served`, a wallet id from another network with\n`network_mismatch`. A list refuses a cursor it did not issue with `invalid_cursor`, and an\nunknown filter value, a filter sent as a list or an object instead of one string, or a\n`limit` out of range without a `code`; so does a webhook retry of a period without `from`.\n","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Human-readable; not stable.","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"code":{"type":"string","description":"Stable machine code, where one exists.","uniqueKey":"code","typeLabel":"string"},"retryable":{"type":"boolean","uniqueKey":"retryable","typeLabel":"boolean"}},"uniqueKey":"","typeLabel":"object"},"examples":{"refused":{"title":"refused","value":{"error":"wallet has no address yet"}},"network_required":{"title":"network_required","value":{"error":"network is required (mainnet, testnet)","code":"network_required"}},"network_not_served":{"title":"network_not_served","value":{"error":"network \"devnet\" is not served here (mainnet, testnet)","code":"network_not_served"}},"network_mismatch":{"title":"network_mismatch","value":{"error":"wallet 0199a3c4-7f1e-7b11-9c2e-3f4a5b6c7d8e lives on testnet, not mainnet","code":"network_mismatch"}},"invalid_cursor":{"title":"invalid_cursor","value":{"error":"cursor is not one this API issued","code":"invalid_cursor"}},"invalid_filter":{"title":"invalid_filter","value":{"error":"unknown status settled (created, aml_pending, awaiting_approval, …)"}}},"exampleType":"examples"}},"exampleType":"examples"}},"security":{"24aebd70-fdbd-4dae-a4a9-d627e2d2711f":{"bearerAuth":{"type":"http","scheme":"bearer","description":"An API key minted in the console (`ctd_…`). Authenticates; never authorizes funds. A key\ncarries scopes (`read`, `wallets.write`, `transactions.write`, `events.write`,\n`webhooks.write`, `policy.write`) and may be limited to vaults, to IP addresses, and in\nlifetime — see Authentication.\n","scopes":[],"schemeName":"bearerAuth"}}},"servers":{"825d9789-7332-4a65-b039-b330384d4003":{"url":"https://api.citadel.example/api/v1"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","description":"An API key minted in the console (`ctd_…`). Authenticates; never authorizes funds. A key\ncarries scopes (`read`, `wallets.write`, `transactions.write`, `events.write`,\n`webhooks.write`, `policy.write`) and may be limited to vaults, to IP addresses, and in\nlifetime — see Authentication.\n","scopes":[],"schemeName":"bearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"An API key minted in the console (`ctd_…`). Authenticates; never authorizes funds. A key\ncarries scopes (`read`, `wallets.write`, `transactions.write`, `events.write`,\n`webhooks.write`, `policy.write`) and may be limited to vaults, to IP addresses, and in\nlifetime — see Authentication.\n","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearerAuth","name":"Authorization"}],"title":"bearerAuth"}]},"originalFileLocation":"openapi.yaml"},"subdomain":"localhost","siteName":"Citadel API","title":"List asset prices - Citadel API","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"originalFileLocation":"api-reference/reference/list-asset-prices.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=\"A price in US dollars for every asset GET /assets lists on one network — to show an amount in dollars next to its base units. For display only: Citadel locks no rate, and nothing is charged or settled at this price. usd is the median of the recent quotes of the asset\u0026#x27;s market from the price sources your installation asks, as a decimal string; as_of is the time of the oldest quote it is made of. Quotes older than the installation\u0026#x27;s freshness limit (10 minutes unless configured otherwise) are not used: an asset with no recent quote has usd: null, never a guess. Your approval rules judge their dollar steps by the highest recent quote, not this median, so the two can differ slightly. A test network\u0026#x27;s tokens are priced as the market they stand for. network is required. Needs the read scope.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Citadel API\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"https://mintlify.s3.us-west-1.amazonaws.com/local/_generated/favicon/apple-touch-icon.png?v=3\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"https://mintlify.s3.us-west-1.amazonaws.com/local/_generated/favicon/favicon-32x32.png?v=3\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"https://mintlify.s3.us-west-1.amazonaws.com/local/_generated/favicon/favicon-16x16.png?v=3\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"https://mintlify.s3.us-west-1.amazonaws.com/local/_generated/favicon/favicon.ico?v=3\">\u003cmeta data-mint-head property=\"og:title\" content=\"List asset prices - Citadel API\">\u003cmeta data-mint-head property=\"og:description\" content=\"A price in US dollars for every asset GET /assets lists on one network — to show an amount in dollars next to its base units. For display only: Citadel locks no rate, and nothing is charged or settled at this price. usd is the median of the recent quotes of the asset\u0026#x27;s market from the price sources your installation asks, as a decimal string; as_of is the time of the oldest quote it is made of. Quotes older than the installation\u0026#x27;s freshness limit (10 minutes unless configured otherwise) are not used: an asset with no recent quote has usd: null, never a guess. Your approval rules judge their dollar steps by the highest recent quote, not this median, so the two can differ slightly. A test network\u0026#x27;s tokens are priced as the market they stand for. network is required. Needs the read scope.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Citadel API\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://local./api-reference/reference/list-asset-prices\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"List asset prices - Citadel API\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"A price in US dollars for every asset GET /assets lists on one network — to show an amount in dollars next to its base units. For display only: Citadel locks no rate, and nothing is charged or settled at this price. usd is the median of the recent quotes of the asset\u0026#x27;s market from the price sources your installation asks, as a decimal string; as_of is the time of the oldest quote it is made of. Quotes older than the installation\u0026#x27;s freshness limit (10 minutes unless configured otherwise) are not used: an asset with no recent quote has usd: null, never a guess. Your approval rules judge their dollar steps by the highest recent quote, not this median, so the two can differ slightly. A test network\u0026#x27;s tokens are priced as the market they stand for. network is required. Needs the read scope.\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"https://mintlify.s3.us-west-1.amazonaws.com/local/_generated/favicon/browserconfig.xml?v=3\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Citadel API\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#1F5BD8\">\u003clink data-mint-head rel=\"canonical\" href=\"https://local./api-reference/reference/list-asset-prices\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/reference/list-asset-prices.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Citadel API\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Citadel API","nav":{"tabs":[{"tab":"Guides","pages":[{"title":"Guides","href":""}]},{"tab":"API reference","groups":[{"group":"Wallets","pages":[{"title":"List wallets","openapi":"/openapi.yaml get /wallets","href":"/api-reference/wallets/list-wallets"},{"title":"Issue a deposit wallet","openapi":"/openapi.yaml post /wallets","href":"/api-reference/wallets/issue-a-deposit-wallet"},{"title":"Issue wallets in a batch","openapi":"/openapi.yaml post /wallets/batch","href":"/api-reference/wallets/issue-wallets-in-a-batch"},{"title":"Get a wallet","openapi":"/openapi.yaml get /wallets/{reference}","href":"/api-reference/wallets/get-a-wallet"},{"title":"Update a wallet","openapi":"/openapi.yaml patch /wallets/{reference}","href":"/api-reference/wallets/update-a-wallet"},{"title":"Retire a wallet","openapi":"/openapi.yaml post /wallets/{reference}/retire","href":"/api-reference/wallets/retire-a-wallet"},{"title":"Get a wallet balance","openapi":"/openapi.yaml get /wallets/{reference}/balance","href":"/api-reference/wallets/get-a-wallet-balance"},{"title":"Get a wallet's limits","openapi":"/openapi.yaml get /wallets/{reference}/limits","href":"/api-reference/wallets/get-a-wallets-limits"}]},{"group":"Transactions","pages":[{"title":"List transactions","openapi":"/openapi.yaml get /transactions","href":"/api-reference/transactions/list-transactions"},{"title":"Send a transaction","openapi":"/openapi.yaml post /transactions","href":"/api-reference/transactions/send-a-transaction"},{"title":"Estimate a transaction","openapi":"/openapi.yaml post /transactions/estimate","href":"/api-reference/transactions/estimate-a-transaction"},{"title":"Get a transaction","openapi":"/openapi.yaml get /transactions/{id}","href":"/api-reference/transactions/get-a-transaction"},{"title":"Cancel a transaction","openapi":"/openapi.yaml post /transactions/{id}/cancel","href":"/api-reference/transactions/cancel-a-transaction"},{"title":"Speed up a stuck EVM transaction","openapi":"/openapi.yaml post /transactions/{id}/speedup","href":"/api-reference/transactions/speed-up-a-stuck-evm-transaction"},{"title":"Validate an address","openapi":"/openapi.yaml get /addresses/validate","href":"/api-reference/transactions/validate-an-address"}]},{"group":"Transfers","pages":[{"title":"List transfers","openapi":"/openapi.yaml get /transfers","href":"/api-reference/transfers/list-transfers"},{"title":"Get a transfer","openapi":"/openapi.yaml get /transfers/{tx_hash}","href":"/api-reference/transfers/get-a-transfer"}]},{"group":"Reference","pages":[{"title":"List networks and chains","openapi":"/openapi.yaml get /networks","href":"/api-reference/reference/list-networks-and-chains"},{"title":"List assets","description":"What Citadel credits on one network, per chain instance: the symbol, the contract that\nidentifies a token (`null` for the native coin), and the `decimals` every base-unit amount\nof that asset is scaled by. A token not listed is not credited.\n\n`network` is required. Needs the `read` scope.\n","openapi":"/openapi.yaml get /assets","href":"/api-reference/reference/list-assets"},{"title":"List asset prices","openapi":"/openapi.yaml get /prices","href":"/api-reference/reference/list-asset-prices"},{"title":"Get network status","description":"How each chain of one network is doing now: whether Citadel's index keeps up with the\nchain, and whether Citadel has a chain node to build and send transactions through. Look\nhere when deposits arrive late or sends fail with `rpc_unavailable`, to tell a chain or\nindex delay from a problem on your side.\n\n`indexing.state`:\n\n| `state` | |\n|---|---|\n| `live` | The index keeps up with the chain. |\n| `catching_up` | Behind, past a quarter of the chain's lag threshold; deposits arrive later than usual. |\n| `stalled` | Far behind the chain head, or not advancing. |\n| `backfilling` | Indexing a stretch of blocks it missed; deposits from it arrive as it goes. |\n| `unreachable` | The chain cannot be reached. |\n| `stale` | No recent word from the indexer; the figures are as of `as_of`. |\n\n`head` is the chain's latest block as Citadel's nodes see it, `indexed` the last block\nCitadel has indexed, `lag_blocks` the difference. `since` is when the current trouble began\n(`null` when there is none). `nodes` is `available` with a node in rotation, `degraded` when\nonly slow or lagging nodes are left, `unavailable` when there is none: a transaction cannot\nbe built or sent on that chain until one is back.\n\n`network` is required. Needs the `read` scope.\n","openapi":"/openapi.yaml get /status","href":"/api-reference/reference/get-network-status"}]},{"group":"Organization","pages":[{"title":"List vaults","openapi":"/openapi.yaml get /vaults","href":"/api-reference/organization/list-vaults"},{"title":"Get organization balances","openapi":"/openapi.yaml get /balances","href":"/api-reference/organization/get-organization-balances"},{"title":"Get the calling key","openapi":"/openapi.yaml get /me","href":"/api-reference/organization/get-the-calling-key"},{"title":"Get the billing balance","openapi":"/openapi.yaml get /billing/balance","href":"/api-reference/organization/get-the-billing-balance"}]},{"group":"Approvals","pages":[{"title":"List approvals","openapi":"/openapi.yaml get /approvals","href":"/api-reference/approvals/list-approvals"}]},{"group":"Policy","pages":[{"title":"Get the policy document","openapi":"/openapi.yaml get /policy","href":"/api-reference/policy/get-the-policy-document"},{"title":"Draft the policy document","openapi":"/openapi.yaml post /policy/drafts","href":"/api-reference/policy/draft-the-policy-document"},{"title":"Get a policy draft","openapi":"/openapi.yaml get /policy/drafts/{version}","href":"/api-reference/policy/get-a-policy-draft"},{"title":"Publish a signed policy draft","openapi":"/openapi.yaml post /policy/publish","href":"/api-reference/policy/publish-a-signed-policy-draft"}]},{"group":"Workflows","pages":[{"title":"Start workflows by event","openapi":"/openapi.yaml post /events/{name}","href":"/api-reference/workflows/start-workflows-by-event"},{"title":"List workflow runs","openapi":"/openapi.yaml get /runs","href":"/api-reference/workflows/list-workflow-runs"},{"title":"Get a workflow run","openapi":"/openapi.yaml get /runs/{id}","href":"/api-reference/workflows/get-a-workflow-run"},{"title":"Cancel a workflow run","openapi":"/openapi.yaml post /runs/{id}/cancel","href":"/api-reference/workflows/cancel-a-workflow-run"},{"title":"List workflows","openapi":"/openapi.yaml get /workflows","href":"/api-reference/workflows/list-workflows"}]},{"group":"Webhook endpoints","pages":[{"title":"List webhook endpoints","openapi":"/openapi.yaml get /webhook_endpoints","href":"/api-reference/webhook-endpoints/list-webhook-endpoints"},{"title":"Add a webhook endpoint","openapi":"/openapi.yaml post /webhook_endpoints","href":"/api-reference/webhook-endpoints/add-a-webhook-endpoint"},{"title":"Get a webhook endpoint","openapi":"/openapi.yaml get /webhook_endpoints/{id}","href":"/api-reference/webhook-endpoints/get-a-webhook-endpoint"},{"title":"Remove a webhook endpoint","openapi":"/openapi.yaml delete /webhook_endpoints/{id}","href":"/api-reference/webhook-endpoints/remove-a-webhook-endpoint"},{"title":"Change a webhook endpoint","openapi":"/openapi.yaml patch /webhook_endpoints/{id}","href":"/api-reference/webhook-endpoints/change-a-webhook-endpoint"},{"title":"Send a test delivery","openapi":"/openapi.yaml post /webhook_endpoints/{id}/test","href":"/api-reference/webhook-endpoints/send-a-test-delivery"},{"title":"Rotate the signing secret","openapi":"/openapi.yaml post /webhook_endpoints/{id}/rotate_secret","href":"/api-reference/webhook-endpoints/rotate-the-signing-secret"}]},{"group":"Webhook deliveries","pages":[{"title":"List webhook deliveries","openapi":"/openapi.yaml get /webhook_deliveries","href":"/api-reference/webhook-deliveries/list-webhook-deliveries"},{"title":"Retry a failed delivery","openapi":"/openapi.yaml post /webhook_deliveries/{id}/retry","href":"/api-reference/webhook-deliveries/retry-a-failed-delivery"},{"title":"Retry the failed deliveries of a period","openapi":"/openapi.yaml post /webhook_deliveries/retry","href":"/api-reference/webhook-deliveries/retry-the-failed-deliveries-of-a-period"}]},{"group":"Reports","pages":[{"title":"Ask for a report","openapi":"/openapi.yaml post /reports","href":"/api-reference/reports/ask-for-a-report"},{"title":"Get a report","openapi":"/openapi.yaml get /reports/{id}","href":"/api-reference/reports/get-a-report"},{"title":"Download a report's file","openapi":"/openapi.yaml get /reports/{id}/file","href":"/api-reference/reports/download-a-reports-file"}]},{"group":"API Reference","pages":[{"title":"Operation*","openapi":"/openapi.yaml webhook operation","href":"/api-reference/operation*"},{"title":"Blockchain event*","openapi":"/openapi.yaml webhook blockchain_event","href":"/api-reference/blockchain_event*"},{"title":"Run*","openapi":"/openapi.yaml webhook run","href":"/api-reference/run*"},{"title":"Wallet*","openapi":"/openapi.yaml webhook wallet","href":"/api-reference/wallet*"}]}]}]},"basePath":"","title":"List asset prices - Citadel API","buildId":"3c5c97139bf8","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-DGp7Pxzx.js","utils-8Jv-1L07.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-CLSsw4wM.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-RrVIaDh7.js","snippetPresets-DSI4wgEf.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","ApiExamples-W2e9g_oX.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-CDpwfEDw.js","shallow-Dq5-SwG1.js","getApiPlaygroundDisplay-basMZYRO.js","CodeSnippet-CWKJfCQt.js","CodeSnippets-xDLW1FEv.js","Page-Dc5qkJG8.js","getPastedJson-DObxGgIR.js","icon-HMNWawTa.js","MethodPill-DA_6XsWN.js","DuplicateIcon-DK5o2DOi.js","createIcon-BhUMOhLi.js","DynamicMarkdown-Dokq7GGW.js","SectionHeading-DSaxk-9e.js","axios-vUo_bRtp.js","Markdown-BDO6y5hF.js","clsx-DfU2JnNK.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-BRVLaqXg.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-CxOoiG7S.js"]}