How each chain of one network is doing now: whether Citadel’s index keeps up with the
chain, and whether Citadel has a chain node to build and send transactions through. Look
here when deposits arrive late or sends fail with rpc_unavailable, to tell a chain or
index delay from a problem on your side.
indexing.state:
state
live
The index keeps up with the chain.
catching_up
Behind, past a quarter of the chain’s lag threshold; deposits arrive later than usual.
stalled
Far behind the chain head, or not advancing.
backfilling
Indexing a stretch of blocks it missed; deposits from it arrive as it goes.
unreachable
The chain cannot be reached.
stale
No recent word from the indexer; the figures are as of as_of.
head is the chain’s latest block as Citadel’s nodes see it, indexed the last block
Citadel has indexed, lag_blocks the difference. since is when the current trouble began
(null when there is none). nodes is available with a node in rotation, degraded when
only slow or lagging nodes are left, unavailable when there is none: a transaction cannot
be built or sent on that chain until one is back.
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.
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/get-network-status","slug":"/api-reference/reference/get-network-status","pageMetadata":{"openapi":"/openapi.yaml get /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","href":"/api-reference/reference/get-network-status","title":"Get network status"},"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 table: \"table\",\n tbody: \"tbody\",\n td: \"td\",\n th: \"th\",\n thead: \"thead\",\n tr: \"tr\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsxs(_components.p, {\n children: [\"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 \", _jsx(_components.code, {\n children: \"rpc_unavailable\"\n }), \", to tell a chain or\\nindex delay from a problem on your side.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.code, {\n children: \"indexing.state\"\n }), \":\"]\n }), \"\\n\", _jsxs(_components.table, {\n children: [_jsx(_components.thead, {\n children: _jsxs(_components.tr, {\n children: [_jsx(_components.th, {\n children: _jsx(_components.code, {\n children: \"state\"\n })\n }), _jsx(_components.th, {})]\n })\n }), _jsxs(_components.tbody, {\n children: [_jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: _jsx(_components.code, {\n children: \"live\"\n })\n }), _jsx(_components.td, {\n children: \"The index keeps up with the chain.\"\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: _jsx(_components.code, {\n children: \"catching_up\"\n })\n }), _jsx(_components.td, {\n children: \"Behind, past a quarter of the chain’s lag threshold; deposits arrive later than usual.\"\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: _jsx(_components.code, {\n children: \"stalled\"\n })\n }), _jsx(_components.td, {\n children: \"Far behind the chain head, or not advancing.\"\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: _jsx(_components.code, {\n children: \"backfilling\"\n })\n }), _jsx(_components.td, {\n children: \"Indexing a stretch of blocks it missed; deposits from it arrive as it goes.\"\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: _jsx(_components.code, {\n children: \"unreachable\"\n })\n }), _jsx(_components.td, {\n children: \"The chain cannot be reached.\"\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: _jsx(_components.code, {\n children: \"stale\"\n })\n }), _jsxs(_components.td, {\n children: [\"No recent word from the indexer; the figures are as of \", _jsx(_components.code, {\n children: \"as_of\"\n }), \".\"]\n })]\n })]\n })]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.code, {\n children: \"head\"\n }), \" is the chain’s latest block as Citadel’s nodes see it, \", _jsx(_components.code, {\n children: \"indexed\"\n }), \" the last block\\nCitadel has indexed, \", _jsx(_components.code, {\n children: \"lag_blocks\"\n }), \" the difference. \", _jsx(_components.code, {\n children: \"since\"\n }), \" is when the current trouble began\\n(\", _jsx(_components.code, {\n children: \"null\"\n }), \" when there is none). \", _jsx(_components.code, {\n children: \"nodes\"\n }), \" is \", _jsx(_components.code, {\n children: \"available\"\n }), \" with a node in rotation, \", _jsx(_components.code, {\n children: \"degraded\"\n }), \" when\\nonly slow or lagging nodes are left, \", _jsx(_components.code, {\n children: \"unavailable\"\n }), \" when there is none: a transaction cannot\\nbe built or sent on that chain until one is back.\"]\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 /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","href":"/api-reference/reference/get-network-status","title":"Get network status"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"tags":["Reference"],"operationId":"getStatus","summary":"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","parameters":["213cc611-4a9b-4ee5-92f1-ffd361f43955"],"responses":{"200":"157f35eb-a9ea-42a3-a82d-576dceaa9172","401":"9ca5e103-f72c-4e39-aa20-d0696e9c1fd6","403":"5568969e-c0f4-4b5c-bef5-28dccba551ee","422":"cc3e511f-bcb4-46d6-8b45-e7aacea6730c"},"method":"get","type":"path","servers":["825d9789-7332-4a65-b039-b330384d4003"],"security":["24aebd70-fdbd-4dae-a4a9-d627e2d2711f"],"path":"/status","baseUrlOptions":["https://api.citadel.example/api/v1"],"title":"Get network status","codeSamples":[],"requestExampleLanguages":["bash","javascript","python","go"],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"213cc611-4a9b-4ee5-92f1-ffd361f43955":{"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>"}}},"responses":{"157f35eb-a9ea-42a3-a82d-576dceaa9172":{"description":"Each chain of the network.","content":{"application/json":{"schema":{"type":"object","required":["network","chains","checked_at"],"properties":{"network":{"type":"string","enum":["mainnet","testnet"],"description":"The 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":"network","typeLabel":"enum\u003cstring>"},"chains":{"type":"array","items":{"type":"object","required":["chain","instance","indexing","nodes"],"properties":{"chain":{"type":"string","enum":["tron","evm","solana","ton"],"isRequired":true,"uniqueKey":"chains.items.[INDEX].chain","typeLabel":"enum\u003cstring>"},"instance":{"type":"string","description":"The chain instance, as `GET /networks` names it.","isRequired":true,"uniqueKey":"chains.items.[INDEX].instance","typeLabel":"string"},"indexing":{"type":"object","required":["state","head","indexed","lag_blocks","since","as_of"],"properties":{"state":{"type":"string","enum":["live","catching_up","stalled","backfilling","unreachable","stale"],"isRequired":true,"uniqueKey":"chains.items.[INDEX].indexing.state","typeLabel":"enum\u003cstring>"},"head":{"type":"integer","description":"The chain's latest block, as Citadel's nodes see it.","isRequired":true,"uniqueKey":"chains.items.[INDEX].indexing.head","typeLabel":"integer"},"indexed":{"type":"integer","description":"The last block Citadel has indexed.","isRequired":true,"uniqueKey":"chains.items.[INDEX].indexing.indexed","typeLabel":"integer"},"lag_blocks":{"type":"integer","description":"`head - indexed`, never below `0`.","isRequired":true,"uniqueKey":"chains.items.[INDEX].indexing.lag_blocks","typeLabel":"integer"},"since":{"oneOf":[{"type":"string","format":"date-time","description":"When the current trouble began; `null` when there is none.","isRequired":true,"uniqueKey":"chains.items.[INDEX].indexing.since.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","description":"When the current trouble began; `null` when there is none.","isRequired":true,"uniqueKey":"chains.items.[INDEX].indexing.since.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"chains.items.[INDEX].indexing.since","typeLabel":"string\u003cdate-time> | null"},"as_of":{"oneOf":[{"type":"string","format":"date-time","description":"When the indexer last reported; `null` if it never did.","isRequired":true,"uniqueKey":"chains.items.[INDEX].indexing.as_of.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","description":"When the indexer last reported; `null` if it never did.","isRequired":true,"uniqueKey":"chains.items.[INDEX].indexing.as_of.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"chains.items.[INDEX].indexing.as_of","typeLabel":"string\u003cdate-time> | null"}},"isRequired":true,"uniqueKey":"chains.items.[INDEX].indexing","typeLabel":"object"},"nodes":{"type":"string","enum":["available","degraded","unavailable"],"description":"Whether Citadel has a chain node to build and send transactions through: `unavailable` — none now.","isRequired":true,"uniqueKey":"chains.items.[INDEX].nodes","typeLabel":"enum\u003cstring>"}},"uniqueKey":"chains.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"chains","typeLabel":"object[]"},"checked_at":{"type":"string","format":"date-time","isRequired":true,"uniqueKey":"checked_at","typeLabel":"string\u003cdate-time>"}},"uniqueKey":"","typeLabel":"object"},"example":{"network":"mainnet","chains":[{"chain":"evm","instance":"base","indexing":{"state":"live","head":22841903,"indexed":22841901,"lag_blocks":2,"since":null,"as_of":"2026-10-08T12:00:00Z"},"nodes":"available"},{"chain":"tron","instance":"tron","indexing":{"state":"catching_up","head":76119240,"indexed":76119221,"lag_blocks":19,"since":null,"as_of":"2026-10-08T12:00:00Z"},"nodes":"degraded"}],"checked_at":"2026-10-08T12:00:20Z"},"examples":{"Example":{"title":"Example","value":{"network":"mainnet","chains":[{"chain":"evm","instance":"base","indexing":{"state":"live","head":22841903,"indexed":22841901,"lag_blocks":2,"since":null,"as_of":"2026-10-08T12:00:00Z"},"nodes":"available"},{"chain":"tron","instance":"tron","indexing":{"state":"catching_up","head":76119240,"indexed":76119221,"lag_blocks":19,"since":null,"as_of":"2026-10-08T12:00:00Z"},"nodes":"degraded"}],"checked_at":"2026-10-08T12:00:20Z"}}},"exampleType":"examples"}},"exampleType":"examples"},"9ca5e103-f72c-4e39-aa20-d0696e9c1fd6":{"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"},"5568969e-c0f4-4b5c-bef5-28dccba551ee":{"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"},"cc3e511f-bcb4-46d6-8b45-e7aacea6730c":{"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":"Get network status - Citadel API","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"originalFileLocation":"api-reference/reference/get-network-status.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=\"How each chain of one network is doing now: whether Citadel\u0026#x27;s index keeps up with the chain, and whether Citadel has a chain node to build and send transactions through. Look here when deposits arrive late or sends fail with rpc_unavailable, to tell a chain or index delay from a problem on your side. indexing.state: | state | | |---|---| | live | The index keeps up with the chain. | | catching_up | Behind, past a quarter of the chain\u0026#x27;s lag threshold; deposits arrive later than usual. | | stalled | Far behind the chain head, or not advancing. | | backfilling | Indexing a stretch of blocks it missed; deposits from it arrive as it goes. | | unreachable | The chain cannot be reached. | | stale | No recent word from the indexer; the figures are as of as_of. | head is the chain\u0026#x27;s latest block as Citadel\u0026#x27;s nodes see it, indexed the last block Citadel has indexed, lag_blocks the difference. since is when the current trouble began (null when there is none). nodes is available with a node in rotation, degraded when only slow or lagging nodes are left, unavailable when there is none: a transaction cannot be built or sent on that chain until one is back. 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=\"Get network status - Citadel API\">\u003cmeta data-mint-head property=\"og:description\" content=\"How each chain of one network is doing now: whether Citadel\u0026#x27;s index keeps up with the chain, and whether Citadel has a chain node to build and send transactions through. Look here when deposits arrive late or sends fail with rpc_unavailable, to tell a chain or index delay from a problem on your side. indexing.state: | state | | |---|---| | live | The index keeps up with the chain. | | catching_up | Behind, past a quarter of the chain\u0026#x27;s lag threshold; deposits arrive later than usual. | | stalled | Far behind the chain head, or not advancing. | | backfilling | Indexing a stretch of blocks it missed; deposits from it arrive as it goes. | | unreachable | The chain cannot be reached. | | stale | No recent word from the indexer; the figures are as of as_of. | head is the chain\u0026#x27;s latest block as Citadel\u0026#x27;s nodes see it, indexed the last block Citadel has indexed, lag_blocks the difference. since is when the current trouble began (null when there is none). nodes is available with a node in rotation, degraded when only slow or lagging nodes are left, unavailable when there is none: a transaction cannot be built or sent on that chain until one is back. 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/get-network-status\">\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=\"Get network status - Citadel API\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"How each chain of one network is doing now: whether Citadel\u0026#x27;s index keeps up with the chain, and whether Citadel has a chain node to build and send transactions through. Look here when deposits arrive late or sends fail with rpc_unavailable, to tell a chain or index delay from a problem on your side. indexing.state: | state | | |---|---| | live | The index keeps up with the chain. | | catching_up | Behind, past a quarter of the chain\u0026#x27;s lag threshold; deposits arrive later than usual. | | stalled | Far behind the chain head, or not advancing. | | backfilling | Indexing a stretch of blocks it missed; deposits from it arrive as it goes. | | unreachable | The chain cannot be reached. | | stale | No recent word from the indexer; the figures are as of as_of. | head is the chain\u0026#x27;s latest block as Citadel\u0026#x27;s nodes see it, indexed the last block Citadel has indexed, lag_blocks the difference. since is when the current trouble began (null when there is none). nodes is available with a node in rotation, degraded when only slow or lagging nodes are left, unavailable when there is none: a transaction cannot be built or sent on that chain until one is back. 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/get-network-status\">\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/get-network-status.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","openapi":"/openapi.yaml get /assets","href":"/api-reference/reference/list-assets"},{"title":"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","openapi":"/openapi.yaml get /prices","href":"/api-reference/reference/list-asset-prices"},{"title":"Get network status","openapi":"/openapi.yaml get /status","href":"/api-reference/reference/get-network-status"}]},{"group":"Organization","pages":[{"title":"List vaults","description":"Your organization's vaults the key reaches, oldest first — the ids `vault` takes in\n`POST /wallets`, `GET /wallets` and `GET /balances`. The first is where `POST /wallets`\nissues when the request names no `vault`.\n\nTakes no `network`: a vault holds wallets on every network. Needs the `read` scope. A key\nlimited to vaults lists those vaults only.\n","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":"Get network status - 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"]}