{"openapi":"3.1.0","info":{"title":"AML Service","description":"AML service for blockchain address risk checking. Provides risk scoring, category classification, and entity attribution.\n\n**Authentication:** Pass your API key in the `X-API-Key` header.","version":"1.0.0"},"paths":{"/api/v1/health":{"get":{"tags":["System"],"summary":"Health Check","operationId":"health_check_api_v1_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Health Check Api V1 Health Get"}}}}},"security":[{"ApiKeyHeader":[]}]}},"/api/v1/config/public":{"get":{"tags":["System"],"summary":"Public runtime configuration (site keys, base URL)","description":"Returns non-secret keys the client-app SPA needs at runtime.\n\nLets us rotate Turnstile site-keys without rebuilding the bundle.","operationId":"public_config_api_v1_config_public_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Public Config Api V1 Config Public Get"}}}}},"security":[{"ApiKeyHeader":[]}]}},"/api/v1/address/{address}":{"get":{"tags":["Address Check"],"summary":"Check a blockchain address for AML risk","description":"Lookup address risk score, categories, and related entities. Supports TRON, Ethereum, BSC, Polygon, Arbitrum. Use include_details=true for on-chain balance and transaction data.","operationId":"check_single_address_api_v1_address__address__get","parameters":[{"name":"address","in":"path","required":true,"schema":{"type":"string","title":"Address"}},{"name":"blockchain","in":"query","required":false,"schema":{"type":"string","description":"Blockchain network: akash, algorand, aptos, arbitrum, avalanche, base, bitcoin, bitcoin_cash, bitcoin_gold, bitcoin_sv, bsc, cardano, celo, cosmos, dash, digibyte, dogecoin, ethereum, ethereum_classic, fantom, gnosis, hedera, hyperevm, icp, iost, juno, kujira, kusama, linea, lisk, litecoin, monero, near, optimism, osmosis, polkadot, polygon, polygon_zkevm, scroll, secret, sei, siacoin, solana, stargaze, starknet, stellar, sui, sx_network, terra, ton, tron, verge, xrp, zcash","default":"tron","title":"Blockchain"},"description":"Blockchain network: akash, algorand, aptos, arbitrum, avalanche, base, bitcoin, bitcoin_cash, bitcoin_gold, bitcoin_sv, bsc, cardano, celo, cosmos, dash, digibyte, dogecoin, ethereum, ethereum_classic, fantom, gnosis, hedera, hyperevm, icp, iost, juno, kujira, kusama, linea, lisk, litecoin, monero, near, optimism, osmosis, polkadot, polygon, polygon_zkevm, scroll, secret, sei, siacoin, solana, stargaze, starknet, stellar, sui, sx_network, terra, ton, tron, verge, xrp, zcash"},{"name":"include_details","in":"query","required":false,"schema":{"type":"boolean","description":"Include on-chain balance and transaction data","default":false,"title":"Include Details"},"description":"Include on-chain balance and transaction data"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddressCheckResponse"}}}},"400":{"description":"Invalid address format or unsupported blockchain"},"429":{"description":"Rate limit exceeded"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"ApiKeyHeader":[]}]}},"/api/v1/address/batch":{"post":{"tags":["Address Check"],"summary":"Batch check multiple addresses","description":"Check up to 100 addresses at once on the specified blockchain. Set ``include_details: true`` to also receive ``address_info`` and ``direct_exposure`` for every address (mirrors the single-check endpoint). Detailed batches do N live on-chain calls in parallel and bypass the basic-check Redis cache — expect longer responses and tighter upstream rate-limit pressure.","operationId":"check_batch_addresses_api_v1_address_batch_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BatchCheckRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BatchCheckResponse"}}}},"429":{"description":"Rate limit exceeded"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"ApiKeyHeader":[]}]}},"/api/v1/check":{"post":{"tags":["Address Check"],"summary":"Anonymous-flow address check (Phase 4 client-app)","description":"Form-body POST used by the client-app SPA. Wires the Phase 3c anti-bot stack (honeypot / time-on-form / Turnstile / suspicious-IP) to the existing address-check pipeline; suspicious-IP requests are degraded to a quota of 1/month rather than blocked. Anonymous identity = sha256(IP + X-DAOAML-FP).","operationId":"anonymous_check_api_v1_check_post","parameters":[{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"client_session","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Session"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnonCheckRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnonCheckResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"ApiKeyHeader":[]}]}},"/api/v1/check/{check_id}":{"get":{"tags":["Address Check"],"summary":"Fetch a stored check snapshot by id (audience=client, redacted)","description":"Reads a frozen check_results row, applies the standard client-redaction pass (no provider attribution, no internal UUIDs), returns 404 for missing or 410 Gone for soft-deleted.","operationId":"get_snapshot_api_v1_check__check_id__get","parameters":[{"name":"check_id","in":"path","required":true,"schema":{"type":"string","minLength":8,"maxLength":64,"title":"Check Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SnapshotResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"ApiKeyHeader":[]}]}},"/api/v1/address/{chain}/{addr}/transactions":{"get":{"tags":["Address Check"],"summary":"Per-chain transaction history (Phase 5 dispatch)","description":"Paginated transaction list for an address across 25+ chains. Cursor opaque-string is round-tripped to the upstream explorer. Direction filter ``in|out|all``. Token filter (native asset symbol or token contract address) applied per-chain where supported. Cached 90 s in Redis by (chain, address, cursor, direction, token).","operationId":"list_address_transactions_api_v1_address__chain___addr__transactions_get","parameters":[{"name":"chain","in":"path","required":true,"schema":{"type":"string","description":"lowercase chain id, e.g. ``ethereum``, ``tron``, ``btc``","title":"Chain"},"description":"lowercase chain id, e.g. ``ethereum``, ``tron``, ``btc``"},{"name":"addr","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":128,"title":"Addr"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":1024},{"type":"null"}],"description":"Opaque pagination cursor round-tripped from the upstream explorer. Solana before-signature and TON lt+hash composite tokens can run into the hundreds of base58 chars — 1024 is the safe upper bound across all 25+ adapters.","title":"Cursor"},"description":"Opaque pagination cursor round-tripped from the upstream explorer. Solana before-signature and TON lt+hash composite tokens can run into the hundreds of base58 chars — 1024 is the safe upper bound across all 25+ adapters."},{"name":"direction","in":"query","required":false,"schema":{"enum":["in","out","all"],"type":"string","default":"all","title":"Direction"}},{"name":"token","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"description":"Asset symbol or 0x-prefixed token contract","title":"Token"},"description":"Asset symbol or 0x-prefixed token contract"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":25,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TxListPayload"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"ApiKeyHeader":[]}]}},"/api/v1/address/{address}/exposure":{"get":{"tags":["Exposure"],"summary":"Rich exposure breakdown for an address","description":"Returns all canonical risk categories with percentages, counterparties, sources, timestamps, and scoring factors. Zero-exposure categories included by default.","operationId":"address_exposure_api_v1_address__address__exposure_get","parameters":[{"name":"address","in":"path","required":true,"schema":{"type":"string","title":"Address"}},{"name":"blockchain","in":"query","required":false,"schema":{"type":"string","description":"Blockchain: akash, algorand, aptos, arbitrum, avalanche, base, bitcoin, bitcoin_cash, bitcoin_gold, bitcoin_sv, bsc, cardano, celo, cosmos, dash, digibyte, dogecoin, ethereum, ethereum_classic, fantom, gnosis, hedera, hyperevm, icp, iost, juno, kujira, kusama, linea, lisk, litecoin, monero, near, optimism, osmosis, polkadot, polygon, polygon_zkevm, scroll, secret, sei, siacoin, solana, stargaze, starknet, stellar, sui, sx_network, terra, ton, tron, verge, xrp, zcash","default":"tron","title":"Blockchain"},"description":"Blockchain: akash, algorand, aptos, arbitrum, avalanche, base, bitcoin, bitcoin_cash, bitcoin_gold, bitcoin_sv, bsc, cardano, celo, cosmos, dash, digibyte, dogecoin, ethereum, ethereum_classic, fantom, gnosis, hedera, hyperevm, icp, iost, juno, kujira, kusama, linea, lisk, litecoin, monero, near, optimism, osmosis, polkadot, polygon, polygon_zkevm, scroll, secret, sei, siacoin, solana, stargaze, starknet, stellar, sui, sx_network, terra, ton, tron, verge, xrp, zcash"},{"name":"include_zero","in":"query","required":false,"schema":{"type":"boolean","description":"Include zero-exposure categories","default":true,"title":"Include Zero"},"description":"Include zero-exposure categories"},{"name":"sort","in":"query","required":false,"schema":{"enum":["pct_desc","risk_desc","first_seen_asc","last_seen_desc"],"type":"string","default":"pct_desc","title":"Sort"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RichExposureResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"ApiKeyHeader":[]}]}},"/api/v1/address/{address}/risk-events":{"get":{"tags":["Exposure"],"summary":"Triggered risk events for an address","description":"Returns risk-triggering labels with severity, scoring, and provenance. Cursor-paginated.","operationId":"address_risk_events_api_v1_address__address__risk_events_get","parameters":[{"name":"address","in":"path","required":true,"schema":{"type":"string","title":"Address"}},{"name":"blockchain","in":"query","required":false,"schema":{"type":"string","default":"tron","title":"Blockchain"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":25,"title":"Limit"}},{"name":"severity","in":"query","required":false,"schema":{"anyOf":[{"enum":["critical","high","medium","low"],"type":"string"},{"type":"null"}],"title":"Severity"}},{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RiskEventsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"ApiKeyHeader":[]}]}},"/api/v1/address/{address}/category/{slug}":{"get":{"tags":["Exposure"],"summary":"Full drilldown for a single category","operationId":"address_category_detail_api_v1_address__address__category__slug__get","parameters":[{"name":"address","in":"path","required":true,"schema":{"type":"string","title":"Address"}},{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"blockchain","in":"query","required":false,"schema":{"type":"string","default":"tron","title":"Blockchain"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CategoryDetailResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"ApiKeyHeader":[]}]}},"/api/v1/address/{address}/category/{slug}/trend":{"get":{"tags":["Exposure"],"summary":"Historical trend for a category (sparkline data)","operationId":"address_category_trend_api_v1_address__address__category__slug__trend_get","parameters":[{"name":"address","in":"path","required":true,"schema":{"type":"string","title":"Address"}},{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"blockchain","in":"query","required":false,"schema":{"type":"string","default":"tron","title":"Blockchain"}},{"name":"range","in":"query","required":false,"schema":{"enum":["7d","30d","90d"],"type":"string","default":"30d","title":"Range"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CategoryTrendResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"ApiKeyHeader":[]}]}},"/api/v1/entity/{entity_id}":{"get":{"tags":["Entities"],"summary":"Get entity details","operationId":"get_entity_api_v1_entity__entity_id__get","parameters":[{"name":"entity_id","in":"path","required":true,"schema":{"type":"string","title":"Entity Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"description":"Addresses per page","default":20,"title":"Limit"},"description":"Addresses per page"},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EntityDetailResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"ApiKeyHeader":[]}]}},"/api/v1/categories":{"get":{"tags":["Reference"],"summary":"List all risk categories","operationId":"list_categories_api_v1_categories_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/RiskCategoryResponse"},"type":"array","title":"Response List Categories Api V1 Categories Get"}}}}},"security":[{"ApiKeyHeader":[]}]}},"/api/v1/stats":{"get":{"tags":["System"],"summary":"Database statistics","operationId":"get_stats_api_v1_stats_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StatsResponse"}}}}},"security":[{"ApiKeyHeader":[]}]}},"/api/v1/share-links":{"post":{"tags":["Share Links"],"summary":"Create a share link for a check snapshot","operationId":"create_api_v1_share_links_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateShareLinkRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateShareLinkResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"ApiKeyHeader":[]}]}},"/api/v1/share-links/{short_id}":{"get":{"tags":["Share Links"],"summary":"Resolve a share link (recipient side; password via ?p=)","operationId":"resolve_api_v1_share_links__short_id__get","parameters":[{"name":"short_id","in":"path","required":true,"schema":{"type":"string","minLength":4,"maxLength":20,"title":"Short Id"}},{"name":"p","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Password attempt for password-mode links","title":"P"},"description":"Password attempt for password-mode links"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResolveShareLinkResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"ApiKeyHeader":[]}]},"delete":{"tags":["Share Links"],"summary":"Revoke a share link (owner only)","operationId":"revoke_api_v1_share_links__short_id__delete","parameters":[{"name":"short_id","in":"path","required":true,"schema":{"type":"string","minLength":4,"maxLength":20,"title":"Short Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RevokeShareLinkResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"ApiKeyHeader":[]}]}},"/api/v1/checks/{check_id}":{"delete":{"tags":["Share Links"],"summary":"Soft-delete a check (cascade-revokes its share links)","operationId":"soft_delete_api_v1_checks__check_id__delete","parameters":[{"name":"check_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Check Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SoftDeleteCheckResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"ApiKeyHeader":[]}]}},"/api/v1/community-reports":{"post":{"tags":["Community Reports"],"summary":"Submit a community scam report","operationId":"submit_api_v1_community_reports_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubmitReportRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubmitReportResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"ApiKeyHeader":[]}]},"get":{"tags":["Community Reports"],"summary":"List community reports filtered by address / status","operationId":"list_reports_api_v1_community_reports_get","parameters":[{"name":"address","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Address"}},{"name":"blockchain","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":20},{"type":"null"}],"title":"Blockchain"}},{"name":"status","in":"query","required":false,"schema":{"enum":["pending","verified","rejected","duplicate"],"type":"string","default":"verified","title":"Status"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListReportsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"ApiKeyHeader":[]}]}},"/api/v1/community-reports/{report_id}":{"get":{"tags":["Community Reports"],"summary":"Get a single community report by id","operationId":"get_report_api_v1_community_reports__report_id__get","parameters":[{"name":"report_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Report Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReportSummary"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"ApiKeyHeader":[]}]},"patch":{"tags":["Community Reports"],"summary":"Admin moderation — verify / reject / mark duplicate","operationId":"moderate_api_v1_community_reports__report_id__patch","parameters":[{"name":"report_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Report Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ModerateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReportSummary"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"ApiKeyHeader":[]}]}},"/api/v1/defrost/orders":{"post":{"tags":["Defrost"],"summary":"Create a Defrost (SoF attestation) order","operationId":"create_order_api_v1_defrost_orders_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateDefrostOrderRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateDefrostOrderResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"ApiKeyHeader":[]}]}},"/api/v1/defrost/orders/{order_id}":{"get":{"tags":["Defrost"],"summary":"Get a Defrost order by id (owner / admin)","operationId":"get_order_api_v1_defrost_orders__order_id__get","parameters":[{"name":"order_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Order Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DefrostOrderSummary"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"ApiKeyHeader":[]}]}},"/api/v1/defrost/orders/{order_id}/pdf":{"get":{"tags":["Defrost"],"summary":"Download the rendered Defrost PDF (auth-gated)","operationId":"download_pdf_api_v1_defrost_orders__order_id__pdf_get","parameters":[{"name":"order_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Order Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"ApiKeyHeader":[]}]}},"/api/v1/defrost/verify/{order_no}":{"get":{"tags":["Defrost"],"summary":"Public verification of a completed Defrost report (no auth)","description":"Recipient-side verification page — confirms a report exists, when it was issued, and exposes the SHA-256 of the PDF so a recipient can independently compare against their downloaded copy.","operationId":"public_verify_api_v1_defrost_verify__order_no__get","parameters":[{"name":"order_no","in":"path","required":true,"schema":{"type":"string","minLength":8,"maxLength":32,"title":"Order No"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicVerifyResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"ApiKeyHeader":[]}]}},"/api/v1/plans":{"get":{"tags":["Billing"],"summary":"Public plans catalog","operationId":"list_plans_api_v1_plans_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/PlanResponse"},"type":"array","title":"Response List Plans Api V1 Plans Get"}}}}},"security":[{"ApiKeyHeader":[]}]}},"/api/v1/billing/checkout":{"post":{"tags":["Billing"],"summary":"Start a checkout session","operationId":"start_checkout_api_v1_billing_checkout_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StartCheckoutRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StartCheckoutResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"ApiKeyHeader":[]}]}},"/api/v1/me/billing":{"get":{"tags":["Billing"],"summary":"Account billing dashboard","operationId":"get_my_billing_api_v1_me_billing_get","parameters":[{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"client_session","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Session"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BillingStateResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"ApiKeyHeader":[]}]}},"/api/v1/me/api-keys":{"post":{"tags":["API Keys"],"summary":"Create a new account-scoped API key (Business tier)","operationId":"create_api_v1_me_api_keys_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateKeyRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IssuedKeyResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"ApiKeyHeader":[]}]},"get":{"tags":["API Keys"],"summary":"List my account-scoped API keys (no plaintext)","operationId":"list_my_keys_api_v1_me_api_keys_get","parameters":[{"name":"include_revoked","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Include Revoked"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/KeySummaryResponse"},"title":"Response List My Keys Api V1 Me Api Keys Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"ApiKeyHeader":[]}]}},"/api/v1/me/api-keys/{key_id}":{"delete":{"tags":["API Keys"],"summary":"Revoke an account-scoped API key","operationId":"revoke_api_v1_me_api_keys__key_id__delete","parameters":[{"name":"key_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Key Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RevokeKeyResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"ApiKeyHeader":[]}]}},"/api/v1/auth/magic-link":{"post":{"tags":["Auth"],"summary":"Request a magic-link login email","operationId":"request_magic_link_api_v1_auth_magic_link_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MagicLinkRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MagicLinkResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"ApiKeyHeader":[]}]}},"/api/v1/auth/verify":{"get":{"tags":["Auth"],"summary":"Verify a magic-link token, set session cookie, redirect to cabinet","operationId":"verify_magic_link_api_v1_auth_verify_get","parameters":[{"name":"token","in":"query","required":true,"schema":{"type":"string","minLength":8,"maxLength":128,"title":"Token"}},{"name":"redirect","in":"query","required":false,"schema":{"type":"string","maxLength":200,"default":"/me/checks","title":"Redirect"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"ApiKeyHeader":[]}]}},"/api/v1/auth/wallet/nonce":{"post":{"tags":["Auth"],"summary":"SIWE — request signing challenge","operationId":"wallet_nonce_api_v1_auth_wallet_nonce_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WalletNonceRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WalletNonceResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"ApiKeyHeader":[]}]}},"/api/v1/auth/wallet/verify":{"post":{"tags":["Auth"],"summary":"SIWE — verify signature, set session cookie","operationId":"wallet_verify_api_v1_auth_wallet_verify_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WalletVerifyRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WalletVerifyResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"ApiKeyHeader":[]}]}},"/api/v1/auth/password-login":{"post":{"tags":["Auth"],"summary":"Sign in with email + password (issues client_session cookie)","operationId":"password_login_api_v1_auth_password_login_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PasswordLoginRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PasswordLoginResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"ApiKeyHeader":[]}]}},"/api/v1/auth/change-password":{"post":{"tags":["Auth"],"summary":"Self-service password change (requires session cookie)","operationId":"change_password_api_v1_auth_change_password_post","parameters":[{"name":"client_session","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Session"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChangePasswordRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChangePasswordResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"ApiKeyHeader":[]}]}},"/api/v1/auth/logout":{"post":{"tags":["Auth"],"summary":"Revoke the current session cookie","operationId":"logout_api_v1_auth_logout_post","parameters":[{"name":"client_session","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Session"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"ApiKeyHeader":[]}]}},"/api/v1/me/link-wallet":{"post":{"tags":["Me"],"summary":"Bind a SIWE-signed wallet address to the current account","operationId":"link_wallet_api_v1_me_link_wallet_post","parameters":[{"name":"client_session","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Session"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WalletLinkRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WalletLinkResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"ApiKeyHeader":[]}]}},"/api/v1/me":{"get":{"tags":["Me"],"summary":"Current account state (or anonymous)","operationId":"me_api_v1_me_get","parameters":[{"name":"client_session","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Session"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MeResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"ApiKeyHeader":[]}]}},"/api/v1/me/checks":{"get":{"tags":["Me"],"summary":"List my recent checks (excludes soft-deleted)","operationId":"my_checks_api_v1_me_checks_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"client_session","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Session"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckHistoryResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"ApiKeyHeader":[]}]}},"/api/v1/me/reports":{"get":{"tags":["Me"],"summary":"My submitted community scam reports","operationId":"my_reports_api_v1_me_reports_get","parameters":[{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"client_session","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Session"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyReportsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"ApiKeyHeader":[]}]}},"/api/v1/me/defrost":{"get":{"tags":["Me"],"summary":"My Defrost (SoF) orders","operationId":"my_defrost_orders_api_v1_me_defrost_get","parameters":[{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"client_session","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Session"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyDefrostResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"ApiKeyHeader":[]}]}},"/api/v1/me/checks/{check_id}":{"delete":{"tags":["Me"],"summary":"Soft-delete one of my checks (cascades to share-links)","operationId":"delete_my_check_api_v1_me_checks__check_id__delete","parameters":[{"name":"check_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Check Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"client_session","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Session"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Delete My Check Api V1 Me Checks  Check Id  Delete"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"ApiKeyHeader":[]}]}},"/api/v1/me/referrals":{"get":{"tags":["Me"],"summary":"My referral code + list of accounts I invited","description":"Cabinet ``/me/referrals`` payload.\n\nLazy-generates the caller's referral code if missing (legacy rows\nwithout ``referral_code`` get it on first read), then returns the\npublic invite URL (``daoaml.com/r/<code>``) plus the list of\naccounts whose ``referred_by_account_id`` matches the caller.\n\nInviter tile (``inviter``) is included only when this account was\nitself referred — gives a small social proof on the page without\nrequiring a second round-trip.","operationId":"my_referrals_api_v1_me_referrals_get","parameters":[{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"client_session","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Session"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReferralSummaryResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"ApiKeyHeader":[]}]}},"/api/v1/r/{code}":{"get":{"tags":["Referrals"],"summary":"Referral redirect — set 30-day ref cookie, bounce to landing","description":"Resolve the code, drop the cookie, redirect to ``/?welcome=ref``.\n\nUnknown codes still redirect (404 would just confuse a guest who\nclicked a friend's link), but we skip the cookie set so the\nsign-up form doesn't attribute to a non-existent inviter. The\nlanding page still renders normally because no cookie also means\n\"no referrer\", which is the organic-arrival default.","operationId":"referral_redirect_api_v1_r__code__get","parameters":[{"name":"code","in":"path","required":true,"schema":{"type":"string","minLength":4,"maxLength":12,"title":"Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"ApiKeyHeader":[]}]}},"/api/v1/sanctions-check":{"post":{"tags":["Address Check"],"summary":"Public sanctions-list screening (no auth, captcha-gated)","description":"Check a wallet address against OFAC SDN, UK OFSI, and the Tether / Circle stablecoin issuer freeze lists. Returns the list of hits (or empty) — no risk score, no graph exposure. Every call must carry a valid Cloudflare Turnstile token.","operationId":"sanctions_check_api_v1_sanctions_check_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SanctionsCheckRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SanctionsCheckResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"ApiKeyHeader":[]}]}}},"components":{"schemas":{"AccountPasswordResponse":{"properties":{"id":{"type":"string","title":"Id"},"has_password":{"type":"boolean","title":"Has Password"},"message":{"type":"string","title":"Message"}},"type":"object","required":["id","has_password","message"],"title":"AccountPasswordResponse"},"AccountPasswordSet":{"properties":{"new_password":{"type":"string","maxLength":128,"minLength":8,"title":"New Password"}},"type":"object","required":["new_password"],"title":"AccountPasswordSet"},"ActiveTaskItem":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"started_at":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Started At"},"args_preview":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Args Preview"},"kwargs_preview":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Kwargs Preview"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label","description":"Short, UI-friendly subtype derived from the task's first arg for tasks where the same name covers many distinct jobs. Currently set for run_heuristic (heuristic code), backfill (category filter), and other one-arg dispatch tasks."}},"type":"object","required":["id","name"],"title":"ActiveTaskItem"},"ActivityEnrichment":{"properties":{"source":{"type":"string","title":"Source"},"lifetime_tx_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Lifetime Tx Count"},"balance_hint":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Balance Hint"},"recent_counterparties_seen":{"type":"integer","title":"Recent Counterparties Seen","default":0}},"type":"object","required":["source"],"title":"ActivityEnrichment","description":"Basic liveness signal — most useful on long-tail chains (BTC, TON,\nCardano) where we have thin label coverage. Sourced from Tokenview."},"AddressCheckResponse":{"properties":{"address":{"type":"string","title":"Address"},"blockchain":{"type":"string","title":"Blockchain"},"risk_score":{"type":"integer","title":"Risk Score"},"risk_level":{"type":"string","title":"Risk Level"},"risk_categories":{"items":{"$ref":"#/components/schemas/RiskCategoryInfo"},"type":"array","title":"Risk Categories","default":[]},"entities":{"items":{"$ref":"#/components/schemas/EntityInfo"},"type":"array","title":"Entities","default":[]},"address_info":{"anyOf":[{"$ref":"#/components/schemas/AddressInfoDetail"},{"type":"null"}]},"direct_exposure":{"anyOf":[{"$ref":"#/components/schemas/DirectExposure"},{"type":"null"}]},"fund_flow":{"anyOf":[{"$ref":"#/components/schemas/FundFlowBreakdown"},{"type":"null"}]},"external_enrichment":{"anyOf":[{"$ref":"#/components/schemas/ExternalEnrichment"},{"type":"null"}]},"checked_at":{"type":"string","format":"date-time","title":"Checked At"},"check_id":{"type":"string","title":"Check Id"}},"type":"object","required":["address","blockchain","risk_score","risk_level","checked_at","check_id"],"title":"AddressCheckResponse"},"AddressInfoDetail":{"properties":{"balance_native":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Balance Native"},"balance_stablecoin":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Balance Stablecoin"},"native_symbol":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Native Symbol"},"total_tx_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Tx Count"},"first_tx_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"First Tx At"},"last_tx_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Tx At"}},"type":"object","title":"AddressInfoDetail"},"AllTimeBreakdowns":{"properties":{"total_entities":{"type":"integer","title":"Total Entities"},"total_addresses":{"type":"integer","title":"Total Addresses"},"total_checks":{"type":"integer","title":"Total Checks"},"total_categories":{"type":"integer","title":"Total Categories"},"wallets_by_chain":{"additionalProperties":{"type":"integer"},"type":"object","title":"Wallets By Chain"},"addresses_by_source":{"additionalProperties":{"type":"integer"},"type":"object","title":"Addresses By Source"},"addresses_by_category":{"additionalProperties":{"type":"integer"},"type":"object","title":"Addresses By Category"},"wallets_per_day":{"items":{"$ref":"#/components/schemas/TimelinePoint"},"type":"array","title":"Wallets Per Day"}},"type":"object","required":["total_entities","total_addresses","total_checks","total_categories","wallets_by_chain","addresses_by_source","addresses_by_category","wallets_per_day"],"title":"AllTimeBreakdowns"},"AnonCheckRequest":{"properties":{"address":{"type":"string","maxLength":128,"minLength":1,"title":"Address"},"blockchain":{"type":"string","maxLength":20,"title":"Blockchain","default":"tron"},"include_details":{"type":"boolean","title":"Include Details","default":false},"turnstile_token":{"anyOf":[{"type":"string","maxLength":2048},{"type":"null"}],"title":"Turnstile Token"},"__hp":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Hp"},"submitted_at_ms":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Submitted At Ms"},"focused_at_ms":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Focused At Ms"}},"type":"object","required":["address"],"title":"AnonCheckRequest"},"AnonCheckResponse":{"properties":{"result":{"$ref":"#/components/schemas/AddressCheckResponse"},"quota":{"additionalProperties":true,"type":"object","title":"Quota"}},"type":"object","required":["result"],"title":"AnonCheckResponse"},"ApprovalCreate":{"properties":{"kind":{"type":"string","maxLength":50,"minLength":1,"title":"Kind"},"summary":{"type":"string","maxLength":500,"minLength":1,"title":"Summary"},"critical":{"type":"boolean","title":"Critical","default":false},"category":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Category"},"payload":{"additionalProperties":true,"type":"object","title":"Payload"},"diff":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Diff"}},"type":"object","required":["kind","summary"],"title":"ApprovalCreate"},"ApprovalItem":{"properties":{"id":{"type":"string","title":"Id"},"kind":{"type":"string","title":"Kind"},"summary":{"type":"string","title":"Summary"},"critical":{"type":"boolean","title":"Critical"},"category":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"},"state":{"type":"string","enum":["pending_first","pending_second","approved","rejected"],"title":"State"},"requested_by":{"type":"string","title":"Requested By"},"requested_at":{"type":"string","format":"date-time","title":"Requested At"},"first_approver":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"First Approver"},"first_approved_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"First Approved At"},"second_approver":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Second Approver"},"second_approved_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Second Approved At"},"rejected_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Rejected By"},"rejected_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Rejected At"},"reject_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reject Reason"},"applied_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Applied At"},"diff":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Diff"},"payload":{"additionalProperties":true,"type":"object","title":"Payload"}},"type":"object","required":["id","kind","summary","critical","category","state","requested_by","requested_at","first_approver","first_approved_at","second_approver","second_approved_at","rejected_by","rejected_at","reject_reason","applied_at","diff","payload"],"title":"ApprovalItem"},"ApprovalReject":{"properties":{"reason":{"type":"string","maxLength":500,"minLength":1,"title":"Reason"}},"type":"object","required":["reason"],"title":"ApprovalReject"},"AutopilotDecisionRow":{"properties":{"kind":{"type":"string","title":"Kind","description":"'tier1_alias' | 'llm_decision'"},"id":{"type":"integer","title":"Id"},"source_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Key"},"external_value":{"type":"string","title":"External Value"},"canonical_slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Canonical Slug"},"confidence":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Confidence"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"},"model_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Name"},"tentative":{"type":"boolean","title":"Tentative","default":false},"escalated":{"type":"boolean","title":"Escalated","default":false},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["kind","id","source_key","external_value","canonical_slug","confidence","created_by","created_at"],"title":"AutopilotDecisionRow"},"AutopilotHealth":{"properties":{"tier1_auto_resolved_24h":{"type":"integer","title":"Tier1 Auto Resolved 24H","description":"aliases created in 24h by auto_classify/tier1/cross_source"},"llm_auto_applied_24h":{"type":"integer","title":"Llm Auto Applied 24H","description":"llm decisions auto-applied in 24h"},"llm_escalated_24h":{"type":"integer","title":"Llm Escalated 24H","description":"llm decisions escalated to human in 24h"},"llm_tentative_24h":{"type":"integer","title":"Llm Tentative 24H","description":"llm_resolved tentative aliases in 24h"},"llm_cost_usd_24h":{"type":"number","title":"Llm Cost Usd 24H"},"unmapped_new_24h":{"type":"integer","title":"Unmapped New 24H"},"unmapped_backlog":{"type":"integer","title":"Unmapped Backlog","description":"currently pending + llm_queued + human_queued"},"resolved_total":{"type":"integer","title":"Resolved Total","description":"lifetime resolved unmapped_labels"},"hit_rate_24h":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Hit Rate 24H","description":"fraction of labels matched by alias (0..1) in 24h; null if unknown"},"by_source":{"items":{"$ref":"#/components/schemas/AutopilotSourceRow"},"type":"array","title":"By Source"},"worker_healthy":{"type":"boolean","title":"Worker Healthy","description":"auto_classify Celery task seen running"},"last_autopilot_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Autopilot At","description":"most recent auto-created alias timestamp"}},"type":"object","required":["tier1_auto_resolved_24h","llm_auto_applied_24h","llm_escalated_24h","llm_tentative_24h","llm_cost_usd_24h","unmapped_new_24h","unmapped_backlog","resolved_total","hit_rate_24h","by_source","worker_healthy","last_autopilot_at"],"title":"AutopilotHealth"},"AutopilotSourceRow":{"properties":{"source_key":{"type":"string","title":"Source Key"},"auto_created":{"type":"integer","title":"Auto Created"}},"type":"object","required":["source_key","auto_created"],"title":"AutopilotSourceRow"},"BatchCheckRequest":{"properties":{"addresses":{"items":{"type":"string"},"type":"array","title":"Addresses"},"blockchain":{"type":"string","title":"Blockchain","default":"tron"},"include_details":{"type":"boolean","title":"Include Details","default":false}},"type":"object","required":["addresses"],"title":"BatchCheckRequest"},"BatchCheckResponse":{"properties":{"results":{"items":{"$ref":"#/components/schemas/AddressCheckResponse"},"type":"array","title":"Results"},"total":{"type":"integer","title":"Total"},"checked_at":{"type":"string","format":"date-time","title":"Checked At"}},"type":"object","required":["results","total","checked_at"],"title":"BatchCheckResponse"},"BillingStateResponse":{"properties":{"account_id":{"type":"string","title":"Account Id"},"active_subscription":{"anyOf":[{"$ref":"#/components/schemas/PlanResponse"},{"type":"null"}]},"pack_credits_remaining":{"type":"integer","title":"Pack Credits Remaining"},"monthly_quota":{"anyOf":[{"$ref":"#/components/schemas/MonthlyQuotaResponse"},{"type":"null"}]},"next_renewal_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Next Renewal At"},"last_payments":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Last Payments"}},"type":"object","required":["account_id","active_subscription","pack_credits_remaining","next_renewal_at","last_payments"],"title":"BillingStateResponse"},"BrandReviewEntity":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"category":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"},"logo_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Logo Url"},"canonical_domain":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Canonical Domain"},"arkham_slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Arkham Slug"}},"type":"object","required":["id","name","category","logo_url","canonical_domain","arkham_slug"],"title":"BrandReviewEntity"},"BrandReviewItem":{"properties":{"decision_id":{"type":"integer","title":"Decision Id"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"confidence":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Confidence"},"relation":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Relation"},"reasoning":{"type":"string","title":"Reasoning"},"skip_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Skip Reason"},"child":{"$ref":"#/components/schemas/BrandReviewEntity"},"parent":{"anyOf":[{"$ref":"#/components/schemas/BrandReviewEntity"},{"type":"null"}]}},"type":"object","required":["decision_id","created_at","confidence","relation","reasoning","skip_reason","child","parent"],"title":"BrandReviewItem"},"BrandReviewQueueResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/BrandReviewItem"},"type":"array","title":"Items"},"total_pending":{"type":"integer","title":"Total Pending"}},"type":"object","required":["items","total_pending"],"title":"BrandReviewQueueResponse"},"BulkCheckItem":{"properties":{"address":{"type":"string","title":"Address"},"ok":{"type":"boolean","title":"Ok"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"},"result":{"anyOf":[{"$ref":"#/components/schemas/AddressCheckResponse"},{"type":"null"}]}},"type":"object","required":["address","ok"],"title":"BulkCheckItem"},"BulkCheckRequest":{"properties":{"addresses":{"items":{"type":"string"},"type":"array","maxItems":200,"minItems":1,"title":"Addresses"},"blockchain":{"type":"string","title":"Blockchain","default":"eth"},"include_details":{"type":"boolean","title":"Include Details","default":false}},"type":"object","required":["addresses"],"title":"BulkCheckRequest"},"BulkCheckResponse":{"properties":{"blockchain":{"type":"string","title":"Blockchain"},"total":{"type":"integer","title":"Total"},"ok_count":{"type":"integer","title":"Ok Count"},"error_count":{"type":"integer","title":"Error Count"},"items":{"items":{"$ref":"#/components/schemas/BulkCheckItem"},"type":"array","title":"Items"}},"type":"object","required":["blockchain","total","ok_count","error_count","items"],"title":"BulkCheckResponse"},"BulkResolveItemResult":{"properties":{"id":{"type":"integer","title":"Id"},"outcome":{"type":"string","title":"Outcome"},"alias_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Alias Id"},"approval_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Approval Id"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"}},"type":"object","required":["id","outcome"],"title":"BulkResolveItemResult"},"BulkResolveRequest":{"properties":{"ids":{"items":{"type":"integer"},"type":"array","maxItems":50,"minItems":1,"title":"Ids"},"canonical_slug":{"type":"string","maxLength":100,"minLength":1,"title":"Canonical Slug"},"confidence_override":{"anyOf":[{"type":"string","pattern":"^(confirmed|high|medium|probable|low)$"},{"type":"null"}],"title":"Confidence Override"},"risk_score_override":{"anyOf":[{"type":"integer","maximum":100.0,"minimum":0.0},{"type":"null"}],"title":"Risk Score Override"},"notes":{"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}],"title":"Notes"}},"type":"object","required":["ids","canonical_slug"],"title":"BulkResolveRequest"},"BulkResolveResponse":{"properties":{"applied":{"type":"integer","title":"Applied"},"approval_requested":{"type":"integer","title":"Approval Requested"},"skipped":{"type":"integer","title":"Skipped"},"results":{"items":{"$ref":"#/components/schemas/BulkResolveItemResult"},"type":"array","title":"Results"}},"type":"object","required":["applied","approval_requested","skipped","results"],"title":"BulkResolveResponse"},"BulkRevokeFailure":{"properties":{"id":{"type":"string","title":"Id"},"error":{"type":"string","title":"Error"}},"type":"object","required":["id","error"],"title":"BulkRevokeFailure"},"BulkRevokeRequest":{"properties":{"task_ids":{"items":{"type":"string"},"type":"array","maxItems":100,"minItems":1,"title":"Task Ids"},"terminate":{"type":"boolean","title":"Terminate","default":true},"signal":{"type":"string","title":"Signal","default":"SIGTERM"}},"type":"object","required":["task_ids"],"title":"BulkRevokeRequest"},"BulkRevokeResponse":{"properties":{"ok":{"type":"boolean","title":"Ok"},"revoked":{"items":{"type":"string"},"type":"array","title":"Revoked"},"failed":{"items":{"$ref":"#/components/schemas/BulkRevokeFailure"},"type":"array","title":"Failed"}},"type":"object","required":["ok","revoked","failed"],"title":"BulkRevokeResponse"},"BulkStatusRequest":{"properties":{"ids":{"items":{"type":"string"},"type":"array","maxItems":200,"minItems":1,"title":"Ids"},"status":{"type":"string","enum":["active","disabled"],"title":"Status"},"disabled_reason":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Disabled Reason"}},"type":"object","required":["ids","status"],"title":"BulkStatusRequest"},"BulkStatusResponse":{"properties":{"updated":{"type":"integer","title":"Updated"},"status":{"type":"string","title":"Status"}},"type":"object","required":["updated","status"],"title":"BulkStatusResponse"},"CPUBreakdown":{"properties":{"user":{"type":"number","title":"User","description":"% spent in user-mode (incl. niced)"},"system":{"type":"number","title":"System","description":"% spent in kernel-mode"},"iowait":{"type":"number","title":"Iowait","description":"% spent waiting for I/O — high here = disk-bound"},"idle":{"type":"number","title":"Idle"},"other":{"type":"number","title":"Other","description":"irq + softirq + steal combined"}},"type":"object","required":["user","system","iowait","idle","other"],"title":"CPUBreakdown"},"CPUInfo":{"properties":{"cores":{"type":"integer","title":"Cores"},"load_avg_1m":{"type":"number","title":"Load Avg 1M"},"load_avg_5m":{"type":"number","title":"Load Avg 5M"},"load_avg_15m":{"type":"number","title":"Load Avg 15M"},"percent":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Percent"},"breakdown":{"anyOf":[{"$ref":"#/components/schemas/CPUBreakdown"},{"type":"null"}]}},"type":"object","required":["cores","load_avg_1m","load_avg_5m","load_avg_15m"],"title":"CPUInfo"},"CSRFToken":{"properties":{"token":{"type":"string","title":"Token"}},"type":"object","required":["token"],"title":"CSRFToken"},"CategoriesResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/CategoryNode"},"type":"array","title":"Items"},"roots":{"items":{"type":"string"},"type":"array","title":"Roots"}},"type":"object","required":["items","roots"],"title":"CategoriesResponse"},"CategoryBreakdown":{"properties":{"timeframe":{"type":"string","enum":["24h","7d","30d","90d"],"title":"Timeframe"},"items":{"items":{"$ref":"#/components/schemas/CategoryCount"},"type":"array","title":"Items"}},"type":"object","required":["timeframe","items"],"title":"CategoryBreakdown"},"CategoryCount":{"properties":{"category":{"type":"string","title":"Category"},"count":{"type":"integer","title":"Count"}},"type":"object","required":["category","count"],"title":"CategoryCount"},"CategoryDetailCounterparty":{"properties":{"address":{"type":"string","title":"Address"},"chain":{"type":"string","title":"Chain"},"entity_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Name"},"brand_group":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Brand Group"},"logo_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Logo Url"},"category":{"type":"string","title":"Category"},"direction":{"type":"string","title":"Direction"},"tx_count":{"type":"integer","title":"Tx Count","default":0},"risk_score":{"type":"integer","title":"Risk Score","default":0}},"type":"object","required":["address","chain","category","direction"],"title":"CategoryDetailCounterparty"},"CategoryDetailResponse":{"properties":{"slug":{"type":"string","title":"Slug"},"display_name":{"type":"string","title":"Display Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"tier":{"type":"string","title":"Tier"},"critical":{"type":"boolean","title":"Critical","default":false},"risk_weight":{"type":"integer","title":"Risk Weight"},"percentage":{"type":"number","title":"Percentage","default":0.0},"tx_count":{"type":"integer","title":"Tx Count","default":0},"tx_direction":{"$ref":"#/components/schemas/TxDirection","default":{"incoming":0,"outgoing":0,"internal":0}},"counterparties":{"items":{"$ref":"#/components/schemas/CategoryDetailCounterparty"},"type":"array","title":"Counterparties","default":[]},"sources":{"items":{"type":"string"},"type":"array","title":"Sources","default":[]},"label_types":{"$ref":"#/components/schemas/LabelTypeCounts","default":{"primary":0,"external":0,"derived":0}},"first_detected_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"First Detected At"},"last_detected_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Detected At"},"scoring":{"anyOf":[{"$ref":"#/components/schemas/ScoringFactors"},{"type":"null"}]}},"type":"object","required":["slug","display_name","tier","risk_weight"],"title":"CategoryDetailResponse"},"CategoryNode":{"properties":{"slug":{"type":"string","title":"Slug"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"risk_weight":{"type":"integer","maximum":100.0,"minimum":0.0,"title":"Risk Weight"},"parent_slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Slug"},"color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Color"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"aliases_count":{"type":"integer","title":"Aliases Count","default":0},"labels_count":{"type":"integer","title":"Labels Count","default":0},"children":{"items":{"type":"string"},"type":"array","title":"Children"}},"type":"object","required":["slug","name","description","risk_weight","parent_slug","color","created_at","updated_at"],"title":"CategoryNode"},"CategoryOption":{"properties":{"slug":{"type":"string","title":"Slug"},"name":{"type":"string","title":"Name"},"risk_weight":{"type":"integer","title":"Risk Weight"},"color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Color"}},"type":"object","required":["slug","name","risk_weight","color"],"title":"CategoryOption"},"CategoryTrendResponse":{"properties":{"slug":{"type":"string","title":"Slug"},"range":{"type":"string","title":"Range"},"buckets":{"items":{"$ref":"#/components/schemas/TrendBucket"},"type":"array","title":"Buckets","default":[]}},"type":"object","required":["slug","range"],"title":"CategoryTrendResponse"},"CeleryInfo":{"properties":{"ok":{"type":"boolean","title":"Ok"},"workers_responding":{"type":"integer","title":"Workers Responding","default":0},"active_tasks":{"type":"integer","title":"Active Tasks","default":0},"reserved_tasks":{"type":"integer","title":"Reserved Tasks","default":0},"oldest_active_age_seconds":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Oldest Active Age Seconds","description":"age of the longest-running active task across all workers"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"}},"type":"object","required":["ok"],"title":"CeleryInfo"},"CeleryQueueDepths":{"properties":{"celery":{"type":"integer","title":"Celery","description":"pending tasks in the main celery queue"},"heuristics":{"type":"integer","title":"Heuristics","description":"pending tasks in the heuristics queue"},"low_priority":{"type":"integer","title":"Low Priority","description":"pending tasks in the low_priority queue"}},"type":"object","required":["celery","heuristics","low_priority"],"title":"CeleryQueueDepths","description":"Celery queue lengths read directly from Redis — O(1), no worker roundtrip."},"ChainActivity":{"properties":{"timeframe":{"type":"string","enum":["24h","7d","30d","90d"],"title":"Timeframe"},"bucket":{"type":"string","title":"Bucket"},"points":{"items":{"$ref":"#/components/schemas/ChainActivityPoint"},"type":"array","title":"Points"}},"type":"object","required":["timeframe","bucket","points"],"title":"ChainActivity"},"ChainActivityPoint":{"properties":{"bucket_start":{"type":"string","format":"date-time","title":"Bucket Start"},"chain":{"type":"string","title":"Chain"},"count":{"type":"integer","title":"Count"}},"type":"object","required":["bucket_start","chain","count"],"title":"ChainActivityPoint"},"ChangePasswordRequest":{"properties":{"current_password":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Current Password"},"new_password":{"type":"string","maxLength":128,"minLength":8,"title":"New Password"}},"type":"object","required":["new_password"],"title":"ChangePasswordRequest"},"ChangePasswordResponse":{"properties":{"ok":{"type":"boolean","title":"Ok"},"message":{"type":"string","title":"Message"}},"type":"object","required":["ok","message"],"title":"ChangePasswordResponse"},"CheckHistoryItem":{"properties":{"check_id":{"type":"string","format":"uuid","title":"Check Id"},"address":{"type":"string","title":"Address"},"blockchain":{"type":"string","title":"Blockchain"},"risk_score":{"type":"integer","title":"Risk Score"},"risk_level":{"type":"string","title":"Risk Level"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["check_id","address","blockchain","risk_score","risk_level","created_at"],"title":"CheckHistoryItem"},"CheckHistoryResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/CheckHistoryItem"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"}},"type":"object","required":["items","total"],"title":"CheckHistoryResponse"},"CheckRequest":{"properties":{"address":{"type":"string","maxLength":200,"minLength":1,"title":"Address"},"blockchain":{"type":"string","title":"Blockchain","default":"tron"},"include_details":{"type":"boolean","title":"Include Details","default":false}},"type":"object","required":["address"],"title":"CheckRequest"},"ChecksTimeline":{"properties":{"days":{"type":"integer","title":"Days"},"points":{"items":{"$ref":"#/components/schemas/TimelinePoint"},"type":"array","title":"Points"}},"type":"object","required":["days","points"],"title":"ChecksTimeline"},"CollectorDay":{"properties":{"date":{"type":"string","title":"Date"},"sources":{"additionalProperties":{"type":"integer"},"type":"object","title":"Sources"},"total":{"type":"integer","title":"Total"}},"type":"object","required":["date","sources","total"],"title":"CollectorDay"},"CollectorHealth":{"properties":{"collector_type":{"type":"string","title":"Collector Type"},"last_run_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Run At"},"last_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Status"},"runs_30d":{"type":"integer","title":"Runs 30D"},"success_rate_30d":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Success Rate 30D","description":"Fraction of finished runs with status='success', 0..1"},"items_imported_30d":{"type":"integer","title":"Items Imported 30D"},"errors_30d":{"type":"integer","title":"Errors 30D"},"age_hours":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Age Hours"}},"type":"object","required":["collector_type","last_run_at","last_status","runs_30d","items_imported_30d","errors_30d","age_hours"],"title":"CollectorHealth"},"CollectorHistoryPoint":{"properties":{"day":{"type":"string","format":"date-time","title":"Day"},"runs":{"type":"integer","title":"Runs"},"ok":{"type":"integer","title":"Ok"},"failed":{"type":"integer","title":"Failed"},"success_rate":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Success Rate"}},"type":"object","required":["day","runs","ok","failed","success_rate"],"title":"CollectorHistoryPoint"},"CollectorHistoryResponse":{"properties":{"generated_at":{"type":"string","format":"date-time","title":"Generated At"},"days":{"type":"integer","title":"Days"},"series":{"items":{"$ref":"#/components/schemas/CollectorHistorySeries"},"type":"array","title":"Series"}},"type":"object","required":["generated_at","days","series"],"title":"CollectorHistoryResponse"},"CollectorHistorySeries":{"properties":{"collector_type":{"type":"string","title":"Collector Type"},"points":{"items":{"$ref":"#/components/schemas/CollectorHistoryPoint"},"type":"array","title":"Points"},"total_runs":{"type":"integer","title":"Total Runs"},"total_ok":{"type":"integer","title":"Total Ok"},"total_failed":{"type":"integer","title":"Total Failed"}},"type":"object","required":["collector_type","points","total_runs","total_ok","total_failed"],"title":"CollectorHistorySeries"},"CollectorSummary":{"properties":{"days":{"type":"integer","title":"Days"},"items":{"items":{"$ref":"#/components/schemas/CollectorSummaryItem"},"type":"array","title":"Items"},"by_owner":{"items":{"$ref":"#/components/schemas/OwnerTotals"},"type":"array","title":"By Owner"},"den_items":{"items":{"$ref":"#/components/schemas/CollectorSummaryItem"},"type":"array","title":"Den Items"}},"type":"object","required":["days","items","by_owner","den_items"],"title":"CollectorSummary"},"CollectorSummaryItem":{"properties":{"source":{"type":"string","title":"Source"},"owner":{"type":"string","title":"Owner"},"added":{"type":"integer","title":"Added"},"updated":{"type":"integer","title":"Updated"},"runs":{"type":"integer","title":"Runs"}},"type":"object","required":["source","owner","added","updated","runs"],"title":"CollectorSummaryItem"},"CollectorTimeline":{"properties":{"days":{"type":"integer","title":"Days"},"sources":{"items":{"type":"string"},"type":"array","title":"Sources"},"owners":{"items":{"type":"string"},"type":"array","title":"Owners"},"color_map":{"additionalProperties":{"type":"string"},"type":"object","title":"Color Map"},"source_owner":{"additionalProperties":{"type":"string"},"type":"object","title":"Source Owner"},"owner_color":{"additionalProperties":{"type":"string"},"type":"object","title":"Owner Color"},"daily":{"items":{"$ref":"#/components/schemas/CollectorDay"},"type":"array","title":"Daily"}},"type":"object","required":["days","sources","owners","color_map","source_owner","owner_color","daily"],"title":"CollectorTimeline"},"CounterpartyBrief":{"properties":{"address":{"type":"string","title":"Address"},"chain":{"type":"string","title":"Chain"},"entity_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Name"},"brand_group":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Brand Group"},"logo_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Logo Url"},"tx_count":{"type":"integer","title":"Tx Count","default":0}},"type":"object","required":["address","chain"],"title":"CounterpartyBrief"},"CounterpartyInfo":{"properties":{"address":{"type":"string","title":"Address"},"entity_name":{"type":"string","title":"Entity Name"},"category":{"type":"string","title":"Category"},"direction":{"type":"string","title":"Direction"},"tx_count":{"type":"integer","title":"Tx Count"},"usd_volume":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Usd Volume"},"logo_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Logo Url"},"brand_group":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Brand Group"}},"type":"object","required":["address","entity_name","category","direction","tx_count"],"title":"CounterpartyInfo"},"CreateCategoryRequest":{"properties":{"slug":{"type":"string","maxLength":100,"minLength":1,"pattern":"^[a-z0-9_\\-]+$","title":"Slug"},"name":{"type":"string","maxLength":200,"minLength":1,"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"risk_weight":{"type":"integer","maximum":100.0,"minimum":0.0,"title":"Risk Weight"},"parent_slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Slug"},"color":{"anyOf":[{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},{"type":"null"}],"title":"Color"}},"type":"object","required":["slug","name","risk_weight"],"title":"CreateCategoryRequest"},"CreateDefrostOrderRequest":{"properties":{"chain":{"type":"string","maxLength":20,"minLength":1,"title":"Chain"},"tx_hash":{"type":"string","maxLength":128,"minLength":4,"title":"Tx Hash"},"contact_email":{"type":"string","maxLength":255,"pattern":"^[^@\\s]+@[^@\\s]+\\.[^@\\s]+$","title":"Contact Email"},"tier":{"type":"string","enum":["quick","standard","pro"],"title":"Tier"},"frozen_address":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Frozen Address"},"evidence_screenshot_urls":{"items":{"type":"string"},"type":"array","maxItems":10,"title":"Evidence Screenshot Urls"}},"type":"object","required":["chain","tx_hash","contact_email","tier"],"title":"CreateDefrostOrderRequest"},"CreateDefrostOrderResponse":{"properties":{"order":{"$ref":"#/components/schemas/DefrostOrderSummary"},"payment_redirect":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Payment Redirect"},"expected_sla_hours_min":{"type":"integer","title":"Expected Sla Hours Min"},"expected_sla_hours_max":{"type":"integer","title":"Expected Sla Hours Max"}},"type":"object","required":["order","expected_sla_hours_min","expected_sla_hours_max"],"title":"CreateDefrostOrderResponse"},"CreateKeyRequest":{"properties":{"name":{"type":"string","maxLength":120,"minLength":1,"title":"Name","default":"default"},"scopes":{"items":{"type":"string","enum":["check.read","check.run","defrost.create","monitoring.subscribe","billing.read"]},"type":"array","title":"Scopes"}},"type":"object","title":"CreateKeyRequest"},"CreateShareLinkRequest":{"properties":{"check_id":{"type":"string","format":"uuid","title":"Check Id"},"mode":{"type":"string","enum":["public","password","expiring"],"title":"Mode"},"password":{"anyOf":[{"type":"string","maxLength":128,"minLength":4},{"type":"null"}],"title":"Password"},"expires_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Expires At"}},"type":"object","required":["check_id","mode"],"title":"CreateShareLinkRequest"},"CreateShareLinkResponse":{"properties":{"short_id":{"type":"string","title":"Short Id"},"url_path":{"type":"string","title":"Url Path"},"mode":{"type":"string","title":"Mode"},"expires_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Expires At"}},"type":"object","required":["short_id","url_path","mode","expires_at"],"title":"CreateShareLinkResponse"},"CreditAdjustRequest":{"properties":{"delta":{"type":"integer","maximum":10000.0,"minimum":-10000.0,"title":"Delta","description":"Signed credit delta.  Positive grants free pack credits; negative revokes from existing pack rows (oldest first)."},"note":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Note","description":"Free-form note stored on the audit row."}},"type":"object","required":["delta"],"title":"CreditAdjustRequest"},"CreditAdjustResponse":{"properties":{"id":{"type":"string","title":"Id"},"applied_delta":{"type":"integer","title":"Applied Delta","description":"How many credits were actually applied.  Equals ``delta`` for grants; for revocations may be smaller than |delta| if the account didn't have enough credits to cover it."},"pack_credits_remaining":{"type":"integer","title":"Pack Credits Remaining"}},"type":"object","required":["id","applied_delta","pack_credits_remaining"],"title":"CreditAdjustResponse"},"DBInfo":{"properties":{"ok":{"type":"boolean","title":"Ok"},"connections":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Connections"},"max_connections":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Connections"},"size_bytes":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Size Bytes"},"longest_queries":{"items":{"$ref":"#/components/schemas/LongQuery"},"type":"array","title":"Longest Queries"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"}},"type":"object","required":["ok"],"title":"DBInfo"},"DailyReport":{"properties":{"generated_at":{"type":"string","format":"date-time","title":"Generated At"},"labels_total":{"type":"integer","title":"Labels Total"},"labels_added_24h":{"type":"integer","title":"Labels Added 24H"},"labels_added_7d":{"type":"integer","title":"Labels Added 7D"},"distinct_sources":{"type":"integer","title":"Distinct Sources"},"distinct_categories":{"type":"integer","title":"Distinct Categories"},"sanctions_labels":{"type":"integer","title":"Sanctions Labels"}},"type":"object","required":["generated_at","labels_total","labels_added_24h","labels_added_7d","distinct_sources","distinct_categories","sanctions_labels"],"title":"DailyReport"},"DashboardKPI":{"properties":{"value":{"anyOf":[{"type":"integer"},{"type":"number"},{"type":"null"}],"title":"Value"},"delta_pct":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Delta Pct","description":"Change vs previous equivalent window. None if no comparable baseline."}},"type":"object","required":["value"],"title":"DashboardKPI"},"DashboardSummary":{"properties":{"timeframe":{"type":"string","enum":["24h","7d","30d","90d"],"title":"Timeframe"},"generated_at":{"type":"string","format":"date-time","title":"Generated At"},"total_labels":{"$ref":"#/components/schemas/DashboardKPI"},"labels_window":{"$ref":"#/components/schemas/DashboardKPI"},"avg_risk_window":{"$ref":"#/components/schemas/DashboardKPI"},"sanctions_hits_window":{"$ref":"#/components/schemas/DashboardKPI"}},"type":"object","required":["timeframe","generated_at","total_labels","labels_window","avg_risk_window","sanctions_hits_window"],"title":"DashboardSummary"},"DefrostOrderSummary":{"properties":{"order_id":{"type":"string","format":"uuid","title":"Order Id"},"order_no":{"type":"string","title":"Order No"},"tier":{"type":"string","title":"Tier"},"price_rub":{"type":"string","title":"Price Rub"},"price_usd":{"type":"string","title":"Price Usd"},"chain":{"type":"string","title":"Chain"},"tx_hash":{"type":"string","title":"Tx Hash"},"status":{"type":"string","title":"Status"},"paid_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Paid At"},"processing_completed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Processing Completed At"},"pdf_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pdf Url"},"pdf_sha256":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pdf Sha256"},"taint_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Taint Reason"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["order_id","order_no","tier","price_rub","price_usd","chain","tx_hash","status","paid_at","processing_completed_at","pdf_url","pdf_sha256","taint_reason","created_at"],"title":"DefrostOrderSummary"},"DetectChainResponse":{"properties":{"address":{"type":"string","title":"Address"},"detected":{"items":{"type":"string"},"type":"array","title":"Detected","description":"Possible chains, best-guess first"}},"type":"object","required":["address","detected"],"title":"DetectChainResponse"},"DirectExposure":{"properties":{"total_counterparties":{"type":"integer","title":"Total Counterparties","default":0},"known_counterparties":{"items":{"$ref":"#/components/schemas/CounterpartyInfo"},"type":"array","title":"Known Counterparties","default":[]},"exposure_by_category":{"items":{"$ref":"#/components/schemas/ExposureCategory"},"type":"array","title":"Exposure By Category","default":[]},"tx_count_analyzed":{"type":"integer","title":"Tx Count Analyzed","default":0},"usd_volume_analyzed":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Usd Volume Analyzed"},"data_available":{"type":"boolean","title":"Data Available","default":true}},"type":"object","title":"DirectExposure"},"DiskIODevice":{"properties":{"name":{"type":"string","title":"Name"},"read_bytes_per_sec":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Read Bytes Per Sec","description":"read throughput in bytes/sec; null on first sample"},"write_bytes_per_sec":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Write Bytes Per Sec","description":"write throughput in bytes/sec; null on first sample"},"util_percent":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Util Percent","description":"% of time the device was busy (0-100); null on first sample"}},"type":"object","required":["name"],"title":"DiskIODevice"},"DiskIOInfo":{"properties":{"devices":{"items":{"$ref":"#/components/schemas/DiskIODevice"},"type":"array","title":"Devices"}},"type":"object","required":["devices"],"title":"DiskIOInfo"},"DiskInfo":{"properties":{"mount":{"type":"string","title":"Mount"},"total_bytes":{"type":"integer","title":"Total Bytes"},"used_bytes":{"type":"integer","title":"Used Bytes"},"free_bytes":{"type":"integer","title":"Free Bytes"},"percent":{"type":"number","title":"Percent"}},"type":"object","required":["mount","total_bytes","used_bytes","free_bytes","percent"],"title":"DiskInfo"},"EntitiesResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/EntityRow"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"},"limit":{"type":"integer","title":"Limit"},"offset":{"type":"integer","title":"Offset"},"facets":{"additionalProperties":{"additionalProperties":{"type":"integer"},"type":"object"},"type":"object","title":"Facets"}},"type":"object","required":["items","total","limit","offset","facets"],"title":"EntitiesResponse"},"EntityDetailResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"category":{"type":"string","title":"Category"},"subcategory":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subcategory"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"jurisdiction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Jurisdiction"},"website":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Website"},"status":{"type":"string","title":"Status"},"risk_score":{"type":"integer","title":"Risk Score"},"address_count":{"type":"integer","title":"Address Count","default":0},"metadata":{"additionalProperties":true,"type":"object","title":"Metadata","default":{}},"first_seen":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"First Seen"},"last_seen":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Seen"},"addresses":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Addresses","default":[]}},"type":"object","required":["id","name","category","status","risk_score"],"title":"EntityDetailResponse"},"EntityInfo":{"properties":{"entity_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Id"},"name":{"type":"string","title":"Name"},"category":{"type":"string","title":"Category"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"},"brand_group":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Brand Group"},"logo_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Logo Url"},"brand_group_logo_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Brand Group Logo Url"}},"type":"object","required":["name","category"],"title":"EntityInfo"},"EntityRow":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"category":{"type":"string","title":"Category"},"subcategory":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subcategory"},"status":{"type":"string","title":"Status"},"risk_score":{"type":"integer","title":"Risk Score"},"source":{"type":"string","title":"Source"},"source_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Id"},"jurisdiction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Jurisdiction"},"website":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Website"},"address_count":{"type":"integer","title":"Address Count"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"disabled_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Disabled At"},"disabled_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Disabled By"},"disabled_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Disabled Reason"},"logo_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Logo Url"},"brand_group":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Brand Group"}},"type":"object","required":["id","name","category","subcategory","status","risk_score","source","source_id","jurisdiction","website","address_count","created_at","updated_at"],"title":"EntityRow"},"EntityStatusPatch":{"properties":{"status":{"type":"string","enum":["active","disabled"],"title":"Status"},"disabled_reason":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Disabled Reason","description":"Free-text rationale shown to other admins. Optional when disabling, ignored when enabling."}},"type":"object","required":["status"],"title":"EntityStatusPatch"},"ExperimentCategoryShift":{"properties":{"from":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"From"},"to":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"To"},"count":{"type":"integer","title":"Count"}},"type":"object","required":["from","to","count"],"title":"ExperimentCategoryShift","description":"One cell of the live→shadow category transition matrix."},"ExperimentDetail":{"properties":{"id":{"type":"integer","title":"Id"},"name":{"type":"string","title":"Name"},"kind":{"type":"string","title":"Kind"},"status":{"type":"string","title":"Status"},"control_heuristic_codes":{"items":{"type":"string"},"type":"array","title":"Control Heuristic Codes","default":[]},"treatment_heuristic_codes":{"items":{"type":"string"},"type":"array","title":"Treatment Heuristic Codes","default":[]},"sample_size":{"type":"integer","title":"Sample Size"},"started_at":{"type":"string","format":"date-time","title":"Started At"},"ended_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Ended At"},"mean_delta":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Mean Delta"},"level_changes":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Level Changes"},"last_updated":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Updated"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"created_by":{"type":"string","title":"Created By"},"metrics":{"additionalProperties":true,"type":"object","title":"Metrics"}},"type":"object","required":["id","name","kind","status","sample_size","started_at","ended_at","created_by"],"title":"ExperimentDetail","description":"Detail with full metrics payload and notes."},"ExperimentDiffSummary":{"properties":{"heuristic_code":{"type":"string","title":"Heuristic Code"},"run_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Run Id"},"shadow_rows":{"type":"integer","title":"Shadow Rows"},"matched_live_rows":{"type":"integer","title":"Matched Live Rows"},"new_addresses":{"type":"integer","title":"New Addresses"},"category_agreements":{"type":"integer","title":"Category Agreements"},"category_disagreements":{"type":"integer","title":"Category Disagreements"},"confidence_upgrades":{"type":"integer","title":"Confidence Upgrades"},"confidence_downgrades":{"type":"integer","title":"Confidence Downgrades"},"category_shifts":{"items":{"$ref":"#/components/schemas/ExperimentCategoryShift"},"type":"array","title":"Category Shifts"},"sample_disagreements":{"items":{"$ref":"#/components/schemas/ExperimentDisagreementSample"},"type":"array","title":"Sample Disagreements"}},"type":"object","required":["heuristic_code","run_id","shadow_rows","matched_live_rows","new_addresses","category_agreements","category_disagreements","confidence_upgrades","confidence_downgrades","category_shifts","sample_disagreements"],"title":"ExperimentDiffSummary","description":"Output of `src/services/experiment_diff.compare_shadow_vs_live`\nexposed at `/admin/api/v2/heuristics/{code}/shadow-diff`."},"ExperimentDisagreementSample":{"properties":{"address":{"type":"string","title":"Address"},"blockchain":{"type":"string","title":"Blockchain"},"live_category":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Live Category"},"shadow_category":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Shadow Category"}},"type":"object","required":["address","blockchain","live_category","shadow_category"],"title":"ExperimentDisagreementSample","description":"Single disagreeing address for manual review."},"ExposureCategory":{"properties":{"category":{"type":"string","title":"Category"},"display_name":{"type":"string","title":"Display Name"},"percentage":{"type":"number","title":"Percentage"},"tx_count":{"type":"integer","title":"Tx Count"},"risk_weight":{"type":"integer","title":"Risk Weight"},"direction":{"type":"string","title":"Direction"},"usd_volume_total":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Usd Volume Total"},"usd_share":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Usd Share"}},"type":"object","required":["category","display_name","percentage","tx_count","risk_weight","direction"],"title":"ExposureCategory"},"ExposureMeta":{"properties":{"total_categories":{"type":"integer","title":"Total Categories"},"non_zero_categories":{"type":"integer","title":"Non Zero Categories"},"triggered_categories":{"type":"integer","title":"Triggered Categories"},"total_tx_analyzed":{"type":"integer","title":"Total Tx Analyzed"},"total_counterparties":{"type":"integer","title":"Total Counterparties"},"final_risk_score":{"type":"integer","title":"Final Risk Score"},"risk_level":{"type":"string","title":"Risk Level"},"data_available":{"type":"boolean","title":"Data Available","default":true}},"type":"object","required":["total_categories","non_zero_categories","triggered_categories","total_tx_analyzed","total_counterparties","final_risk_score","risk_level"],"title":"ExposureMeta"},"ExternalEnrichment":{"properties":{"providers_called":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Providers Called","default":[]},"providers_failed":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Providers Failed","default":[]},"providers_skipped":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Providers Skipped","default":[]},"named_counterparties":{"items":{"$ref":"#/components/schemas/NamedCounterparty"},"type":"array","title":"Named Counterparties","default":[]},"flagged_exposure":{"items":{"$ref":"#/components/schemas/FlaggedExposure"},"type":"array","title":"Flagged Exposure","default":[]},"interacted_programs":{"anyOf":[{"items":{"$ref":"#/components/schemas/InteractedProgram"},"type":"array"},{"type":"null"}],"title":"Interacted Programs","default":[]},"activity":{"anyOf":[{"$ref":"#/components/schemas/ActivityEnrichment"},{"type":"null"}]},"total_counterparties_scanned":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Counterparties Scanned","default":0},"flagged_counterparties_count":{"type":"integer","title":"Flagged Counterparties Count","default":0},"max_counterparty_risk":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Counterparty Risk","default":0}},"type":"object","title":"ExternalEnrichment","description":"Wrapper for all proxy-client results merged into an address check.\n\nDisplay-only in v1 — does NOT influence risk_score. Fields are best-effort\nper-provider; anything that errored is listed in `providers_failed` with\na short reason so the client can display a degraded-mode indicator."},"FileDescriptors":{"properties":{"open":{"type":"integer","title":"Open","description":"number of allocated file descriptors system-wide"},"max":{"type":"integer","title":"Max","description":"system-wide hard limit (fs.file-max)"},"percent":{"type":"number","title":"Percent","description":"open/max × 100"}},"type":"object","required":["open","max","percent"],"title":"FileDescriptors"},"FlaggedExposure":{"properties":{"counterparty":{"type":"string","title":"Counterparty"},"category":{"type":"string","title":"Category"},"risk_score":{"type":"integer","title":"Risk Score"},"tx_count":{"type":"integer","title":"Tx Count","default":1},"discovered_via":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Discovered Via"}},"type":"object","required":["counterparty","category","risk_score"],"title":"FlaggedExposure","description":"Counterparty discovered via proxy that IS in our address_labels with\na material risk score. This is the graph-risk signal."},"FreshnessBucket":{"properties":{"day":{"type":"string","format":"date-time","title":"Day"},"count":{"type":"integer","title":"Count","description":"labels added that day"}},"type":"object","required":["day","count"],"title":"FreshnessBucket"},"FreshnessSourceSeries":{"properties":{"source":{"type":"string","title":"Source"},"total_30d":{"type":"integer","title":"Total 30D"},"days":{"items":{"$ref":"#/components/schemas/FreshnessBucket"},"type":"array","title":"Days"}},"type":"object","required":["source","total_30d","days"],"title":"FreshnessSourceSeries"},"FreshnessTimeline":{"properties":{"generated_at":{"type":"string","format":"date-time","title":"Generated At"},"sources":{"items":{"$ref":"#/components/schemas/FreshnessSourceSeries"},"type":"array","title":"Sources"}},"type":"object","required":["generated_at","sources"],"title":"FreshnessTimeline"},"FundFlowBreakdown":{"properties":{"incoming":{"items":{"$ref":"#/components/schemas/FundSourceCategory"},"type":"array","title":"Incoming","default":[]},"outgoing":{"items":{"$ref":"#/components/schemas/FundSourceCategory"},"type":"array","title":"Outgoing","default":[]},"total_incoming_usd":{"type":"number","title":"Total Incoming Usd","default":0.0},"total_outgoing_usd":{"type":"number","title":"Total Outgoing Usd","default":0.0},"data_source":{"type":"string","title":"Data Source","default":"bigquery_full_history"},"coverage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Coverage"}},"type":"object","title":"FundFlowBreakdown","description":"Full-history source-of-funds / destination-of-funds breakdown by\ncounterparty type, computed from the BigQuery address-clustered transfer\nmirror (Chainalysis/Elliptic-style exposure pie).\n\n``incoming`` = where the wallet's funds came from (source of funds);\n``outgoing`` = where the wallet sent funds (destination). Percentages are\nUSD-weighted within each direction. Scope is the mirrored asset set\n(stablecoins) per chain; see ``coverage``."},"FundSourceCategory":{"properties":{"category":{"type":"string","title":"Category"},"display_name":{"type":"string","title":"Display Name"},"direction":{"type":"string","title":"Direction"},"usd_value":{"type":"number","title":"Usd Value"},"percentage":{"type":"number","title":"Percentage"},"tx_count":{"type":"integer","title":"Tx Count"},"risk_weight":{"type":"integer","title":"Risk Weight","default":0}},"type":"object","required":["category","display_name","direction","usd_value","percentage","tx_count"],"title":"FundSourceCategory","description":"One counterparty-type slice of a wallet's fund flow, by USD value."},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"HealthTrend":{"properties":{"text":{"type":"string","title":"Text","description":"Display text e.g. \"+27.3%\" or \"—\""},"arrow":{"type":"string","title":"Arrow","description":"\"▲\" / \"▼\" / \"·\" / \"\""},"cls":{"type":"string","title":"Cls","description":"\"up\" / \"down\" / \"flat\""},"raw":{"type":"number","title":"Raw","description":"Numeric delta percentage"}},"type":"object","required":["text","arrow","cls","raw"],"title":"HealthTrend","description":"% delta vs previous period — colour + arrow already pre-computed."},"HeuristicDataReq":{"properties":{"type":{"type":"string","title":"Type","examples":["table","external_api"]},"name":{"type":"string","title":"Name"},"columns":{"items":{"type":"string"},"type":"array","title":"Columns","default":[]},"filter":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filter"},"required":{"type":"boolean","title":"Required","default":true},"coverage_min_pct":{"type":"number","title":"Coverage Min Pct","default":0.0},"description":{"type":"string","title":"Description","default":""},"actual_coverage_pct":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Actual Coverage Pct"},"coverage_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Coverage Status","description":"'ok', 'partial', or 'missing' based on actual vs required"}},"type":"object","required":["type","name"],"title":"HeuristicDataReq","description":"One line item of a heuristic's data requirements (per 10_DATA_COVERAGE.md)."},"HeuristicDetail":{"properties":{"id":{"type":"integer","title":"Id"},"code":{"type":"string","title":"Code"},"family":{"type":"string","title":"Family"},"version":{"type":"integer","title":"Version"},"name":{"type":"string","title":"Name"},"applicable_to":{"type":"string","title":"Applicable To"},"implementation_type":{"type":"string","title":"Implementation Type"},"status":{"type":"string","title":"Status","examples":["proposed","staging","production","deprecated","archived"]},"is_enabled":{"type":"boolean","title":"Is Enabled"},"output_default_category":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Output Default Category"},"output_default_confidence":{"type":"string","title":"Output Default Confidence"},"output_attribution_method":{"type":"string","title":"Output Attribution Method"},"labels_produced":{"type":"integer","title":"Labels Produced","default":0},"shadow_labels_produced":{"type":"integer","title":"Shadow Labels Produced","default":0},"heuristic_labels_total":{"type":"integer","title":"Heuristic Labels Total","default":0},"heuristic_labels_staging":{"type":"integer","title":"Heuristic Labels Staging","default":0},"heuristic_labels_production":{"type":"integer","title":"Heuristic Labels Production","default":0},"heuristic_labels_scoring":{"type":"integer","title":"Heuristic Labels Scoring","default":0},"label_mode":{"type":"string","title":"Label Mode","default":"none","examples":["none","staging","production","mixed"]},"last_run_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Run At"},"last_run_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Run Status"},"coverage_overall_status":{"type":"string","title":"Coverage Overall Status","default":"unknown","examples":["ok","partial","missing"]},"description":{"type":"string","title":"Description"},"config":{"additionalProperties":true,"type":"object","title":"Config"},"declarative_body":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Declarative Body"},"implementation_ref":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Implementation Ref"},"data_requirements":{"items":{"$ref":"#/components/schemas/HeuristicDataReq"},"type":"array","title":"Data Requirements"},"stage_since":{"type":"string","format":"date-time","title":"Stage Since"},"created_by":{"type":"string","title":"Created By"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"superseded_by_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Superseded By Code"}},"type":"object","required":["id","code","family","version","name","applicable_to","implementation_type","status","is_enabled","output_default_category","output_default_confidence","output_attribution_method","description","config","data_requirements","stage_since","created_by","created_at","updated_at"],"title":"HeuristicDetail","description":"Full metadata for a single heuristic (L6 §3.2)."},"HeuristicHealth":{"properties":{"generated_at":{"type":"string","format":"date-time","title":"Generated At"},"graph":{"$ref":"#/components/schemas/HeuristicHealthGraph"},"schedules":{"items":{"$ref":"#/components/schemas/HeuristicHealthSchedule"},"type":"array","title":"Schedules"},"derived_kpi":{"$ref":"#/components/schemas/HeuristicHealthKPI"},"heuristics":{"items":{"$ref":"#/components/schemas/HeuristicHealthRow"},"type":"array","title":"Heuristics"}},"type":"object","required":["generated_at","graph","schedules","derived_kpi","heuristics"],"title":"HeuristicHealth"},"HeuristicHealthGraph":{"properties":{"address_transactions":{"type":"integer","title":"Address Transactions"},"address_transactions_24h":{"type":"integer","title":"Address Transactions 24H"},"address_first_seen":{"type":"integer","title":"Address First Seen"},"contract_bytecode":{"type":"integer","title":"Contract Bytecode"},"contract_bytecode_detected":{"type":"integer","title":"Contract Bytecode Detected"},"price_snapshots":{"type":"integer","title":"Price Snapshots"},"btc_transactions":{"type":"integer","title":"Btc Transactions"},"btc_inputs":{"type":"integer","title":"Btc Inputs"},"btc_outputs":{"type":"integer","title":"Btc Outputs"},"btc_wallet_clusters":{"type":"integer","title":"Btc Wallet Clusters"},"btc_cluster_members":{"type":"integer","title":"Btc Cluster Members"}},"type":"object","required":["address_transactions","address_transactions_24h","address_first_seen","contract_bytecode","contract_bytecode_detected","price_snapshots","btc_transactions","btc_inputs","btc_outputs","btc_wallet_clusters","btc_cluster_members"],"title":"HeuristicHealthGraph"},"HeuristicHealthKPI":{"properties":{"total_labels":{"type":"integer","title":"Total Labels"},"derived_labels":{"type":"integer","title":"Derived Labels"},"derived_pct":{"type":"number","title":"Derived Pct"},"risk_total":{"type":"integer","title":"Risk Total"},"risk_derived":{"type":"integer","title":"Risk Derived"},"risk_derived_pct":{"type":"number","title":"Risk Derived Pct"}},"type":"object","required":["total_labels","derived_labels","derived_pct","risk_total","risk_derived","risk_derived_pct"],"title":"HeuristicHealthKPI"},"HeuristicHealthRow":{"properties":{"code":{"type":"string","title":"Code"},"status":{"type":"string","title":"Status"},"is_enabled":{"type":"boolean","title":"Is Enabled"},"implementation_type":{"type":"string","title":"Implementation Type"},"runs_24h":{"type":"integer","title":"Runs 24H"},"created_24h":{"type":"integer","title":"Created 24H"},"updated_24h":{"type":"integer","title":"Updated 24H"},"skipped_24h":{"type":"integer","title":"Skipped 24H"},"shadow_24h":{"type":"integer","title":"Shadow 24H"},"errors_24h":{"type":"integer","title":"Errors 24H"},"last_run":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Run"},"top_skip_reason_7d":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Top Skip Reason 7D"},"skip_reasons_7d":{"additionalProperties":{"type":"integer"},"type":"object","title":"Skip Reasons 7D"}},"type":"object","required":["code","status","is_enabled","implementation_type","runs_24h","created_24h","updated_24h","skipped_24h","shadow_24h","errors_24h","last_run","top_skip_reason_7d","skip_reasons_7d"],"title":"HeuristicHealthRow"},"HeuristicHealthSchedule":{"properties":{"source_key":{"type":"string","title":"Source Key"},"task_name":{"type":"string","title":"Task Name"},"cron_expression":{"type":"string","title":"Cron Expression"},"is_enabled":{"type":"boolean","title":"Is Enabled"}},"type":"object","required":["source_key","task_name","cron_expression","is_enabled"],"title":"HeuristicHealthSchedule"},"HeuristicLabelModeRequest":{"properties":{"target_status":{"type":"string","title":"Target Status","description":"Either 'staging' or 'production'"},"reason":{"type":"string","title":"Reason","description":"Free-form audit note","default":""}},"type":"object","required":["target_status"],"title":"HeuristicLabelModeRequest"},"HeuristicLabelModeResponse":{"properties":{"code":{"type":"string","title":"Code"},"previous_status":{"type":"string","title":"Previous Status"},"new_status":{"type":"string","title":"New Status"},"previous_label_mode":{"type":"string","title":"Previous Label Mode"},"new_label_mode":{"type":"string","title":"New Label Mode"},"updated_labels":{"type":"integer","title":"Updated Labels"},"scoring_labels":{"type":"integer","title":"Scoring Labels"},"staging_labels":{"type":"integer","title":"Staging Labels"},"production_labels":{"type":"integer","title":"Production Labels"},"transition_run_id":{"type":"integer","title":"Transition Run Id"}},"type":"object","required":["code","previous_status","new_status","previous_label_mode","new_label_mode","updated_labels","scoring_labels","staging_labels","production_labels","transition_run_id"],"title":"HeuristicLabelModeResponse"},"HeuristicManualRunRequest":{"properties":{"shadow_mode":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Shadow Mode","description":"Override shadow-mode decision. If null, engine picks based on heuristic.status (staging→shadow, production→normal)"},"input_limit":{"anyOf":[{"type":"integer","maximum":1000000.0,"minimum":1.0},{"type":"null"}],"title":"Input Limit","description":"Cap on rows to process in this run (useful for spot checks). Null = run full applicable set per the heuristic's input spec."}},"type":"object","title":"HeuristicManualRunRequest","description":"Body for POST /heuristics/{code}/run (F-API-9)."},"HeuristicManualRunResponse":{"properties":{"code":{"type":"string","title":"Code"},"run_id":{"type":"integer","title":"Run Id"},"status":{"type":"string","title":"Status"},"inputs_considered":{"type":"integer","title":"Inputs Considered"},"labels_created":{"type":"integer","title":"Labels Created"},"labels_updated":{"type":"integer","title":"Labels Updated"},"labels_skipped":{"type":"integer","title":"Labels Skipped"},"shadow_labels_created":{"type":"integer","title":"Shadow Labels Created"},"errors":{"type":"integer","title":"Errors"}},"type":"object","required":["code","run_id","status","inputs_considered","labels_created","labels_updated","labels_skipped","shadow_labels_created","errors"],"title":"HeuristicManualRunResponse"},"HeuristicTransitionRequest":{"properties":{"target_status":{"type":"string","title":"Target Status","description":"One of: proposed, staging, production, deprecated, archived"},"is_enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Enabled","description":"Optional: also flip is_enabled atomically with the transition (typical: set true when moving to staging or production)"},"reason":{"type":"string","title":"Reason","description":"Free-form note; recorded in heuristic_runs (event_kind='transition') for audit","default":""}},"type":"object","required":["target_status"],"title":"HeuristicTransitionRequest","description":"Body for POST /heuristics/{code}/transition (F-API-8).\n\nLifecycle moves allowed without a second approval:\n  proposed → staging\n  staging → proposed          (rollback)\n  production → deprecated\n  deprecated → archived\n\nRequires 2-person approval (separate flow, not implemented in this\nendpoint): ``staging → production`` for any heuristic whose\n``output_default_category`` is a critical category per ADR-0015."},"HeuristicTransitionResponse":{"properties":{"code":{"type":"string","title":"Code"},"previous_status":{"type":"string","title":"Previous Status"},"new_status":{"type":"string","title":"New Status"},"previous_is_enabled":{"type":"boolean","title":"Previous Is Enabled"},"new_is_enabled":{"type":"boolean","title":"New Is Enabled"},"transition_run_id":{"type":"integer","title":"Transition Run Id","description":"id of the heuristic_runs row (event_kind='transition') that logged the change"}},"type":"object","required":["code","previous_status","new_status","previous_is_enabled","new_is_enabled","transition_run_id"],"title":"HeuristicTransitionResponse"},"HistoryBody":{"properties":{"code":{"type":"string","title":"Code"},"days":{"type":"integer","title":"Days"},"points":{"items":{"$ref":"#/components/schemas/src__admin__api__v2__heuristics__HistoryPoint"},"type":"array","title":"Points"}},"type":"object","required":["code","days","points"],"title":"HistoryBody"},"HistoryItem":{"properties":{"id":{"type":"string","title":"Id"},"risk_score":{"type":"integer","title":"Risk Score"},"risk_level":{"type":"string","title":"Risk Level"},"categories_found":{"items":{"type":"string"},"type":"array","title":"Categories Found"},"matched_categories_count":{"type":"integer","title":"Matched Categories Count"},"check_duration_ms":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Check Duration Ms"},"api_key_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Api Key Id"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","risk_score","risk_level","categories_found","matched_categories_count","check_duration_ms","api_key_id","created_at"],"title":"HistoryItem"},"HourlyDistribution":{"properties":{"days":{"type":"integer","title":"Days"},"points":{"items":{"$ref":"#/components/schemas/HourlyPoint"},"type":"array","title":"Points"}},"type":"object","required":["days","points"],"title":"HourlyDistribution"},"HourlyPoint":{"properties":{"hour":{"type":"integer","title":"Hour"},"count":{"type":"integer","title":"Count"}},"type":"object","required":["hour","count"],"title":"HourlyPoint"},"ImpactProjection":{"properties":{"table_name":{"type":"string","title":"Table Name"},"column_name":{"type":"string","title":"Column Name"},"current_coverage_pct":{"type":"number","title":"Current Coverage Pct"},"current_non_null_rows":{"type":"integer","title":"Current Non Null Rows"},"total_rows":{"type":"integer","title":"Total Rows"},"buckets":{"items":{"$ref":"#/components/schemas/ImpactProjectionBucket"},"type":"array","title":"Buckets"},"depending_heuristics":{"items":{"type":"string"},"type":"array","title":"Depending Heuristics"},"note":{"type":"string","title":"Note","default":"Linear extrapolation assumes newly-collected data has the same hit-rate as existing. Real-world results may differ."}},"type":"object","required":["table_name","column_name","current_coverage_pct","current_non_null_rows","total_rows","buckets","depending_heuristics"],"title":"ImpactProjection","description":"Payload for the slider UI on the coverage detail page (L6 §3.2 / L9)."},"ImpactProjectionBucket":{"properties":{"target_pct":{"type":"number","title":"Target Pct"},"projected_addressable_rows":{"type":"integer","title":"Projected Addressable Rows","description":"approx total rows the heuristic could process at this coverage level"},"projected_delta_vs_current":{"type":"integer","title":"Projected Delta Vs Current","description":"additional addresses compared to today's non_null_rows"}},"type":"object","required":["target_pct","projected_addressable_rows","projected_delta_vs_current"],"title":"ImpactProjectionBucket","description":"One bucket of the impact slider: what happens at X% coverage."},"InboxItem":{"properties":{"kind":{"type":"string","title":"Kind","description":"approval|stale_sanctions|failing_collector|unmapped_queue|disabled_critical"},"severity":{"type":"string","title":"Severity","description":"critical|warning|info"},"title":{"type":"string","title":"Title"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"link":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Link","description":"v2 URL to open"},"count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Count"},"age_hours":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Age Hours"}},"type":"object","required":["kind","severity","title"],"title":"InboxItem"},"InboxResponse":{"properties":{"generated_at":{"type":"string","format":"date-time","title":"Generated At"},"total":{"type":"integer","title":"Total"},"critical_count":{"type":"integer","title":"Critical Count"},"warning_count":{"type":"integer","title":"Warning Count"},"info_count":{"type":"integer","title":"Info Count"},"items":{"items":{"$ref":"#/components/schemas/InboxItem"},"type":"array","title":"Items"}},"type":"object","required":["generated_at","total","critical_count","warning_count","info_count","items"],"title":"InboxResponse"},"InfraAttestation":{"properties":{"source":{"type":"string","title":"Source"},"category":{"type":"string","title":"Category"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"}},"type":"object","required":["source","category"],"title":"InfraAttestation","description":"The reputation-classified label that proves an address is infrastructure.\n\nSurfacing this in the quarantine UI explains *why* a row was\nquarantined: there exists a curated/verified attestation that\ncontradicts the noisy label."},"IngestionRecent":{"properties":{"items":{"items":{"$ref":"#/components/schemas/IngestionRecentRow"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"IngestionRecent"},"IngestionRecentRow":{"properties":{"id":{"type":"string","title":"Id"},"collector_type":{"type":"string","title":"Collector Type"},"status":{"type":"string","title":"Status"},"current_phase":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Current Phase"},"items_imported":{"type":"integer","title":"Items Imported"},"errors":{"type":"integer","title":"Errors"},"started_at":{"type":"string","format":"date-time","title":"Started At"},"finished_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Finished At"},"duration_seconds":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Duration Seconds"}},"type":"object","required":["id","collector_type","status","current_phase","items_imported","errors","started_at","finished_at","duration_seconds"],"title":"IngestionRecentRow"},"IngestionRunResponse":{"properties":{"id":{"type":"string","title":"Id"},"source":{"type":"string","title":"Source"},"status":{"type":"string","title":"Status"},"started_at":{"type":"string","format":"date-time","title":"Started At"},"finished_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Finished At"},"records_processed":{"type":"integer","title":"Records Processed"},"records_added":{"type":"integer","title":"Records Added"},"records_updated":{"type":"integer","title":"Records Updated"},"records_skipped":{"type":"integer","title":"Records Skipped"},"error_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Message"}},"type":"object","required":["id","source","status","started_at","records_processed","records_added","records_updated","records_skipped"],"title":"IngestionRunResponse"},"InteractedProgram":{"properties":{"program":{"type":"string","title":"Program"},"category":{"type":"string","title":"Category"},"risk_hint":{"type":"integer","title":"Risk Hint","default":0},"seen_count":{"type":"integer","title":"Seen Count","default":1}},"type":"object","required":["program","category"],"title":"InteractedProgram","description":"Solana program / on-chain program that the address called. Helius\ntags give us semantic parse (JUPITER, PUMP_FUN, RAYDIUM…)."},"IssuedKeyResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"plaintext_key":{"type":"string","title":"Plaintext Key"},"key_prefix":{"type":"string","title":"Key Prefix"},"name":{"type":"string","title":"Name"},"scopes":{"items":{"type":"string"},"type":"array","title":"Scopes"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"notice":{"type":"string","title":"Notice","default":"Plaintext key is shown only once — copy it now and store securely. DAOAML cannot recover it later."}},"type":"object","required":["id","plaintext_key","key_prefix","name","scopes","created_at"],"title":"IssuedKeyResponse"},"KeyCreate":{"properties":{"name":{"type":"string","maxLength":200,"minLength":1,"title":"Name"},"rate_limit_minute":{"type":"integer","maximum":100000.0,"minimum":1.0,"title":"Rate Limit Minute","default":60},"rate_limit_day":{"type":"integer","maximum":10000000.0,"minimum":1.0,"title":"Rate Limit Day","default":10000}},"type":"object","required":["name"],"title":"KeyCreate"},"KeyCreated":{"properties":{"id":{"type":"string","title":"Id"},"user_id":{"type":"string","title":"User Id"},"name":{"type":"string","title":"Name"},"key":{"type":"string","title":"Key","description":"FULL secret — shown once, never again"},"key_prefix":{"type":"string","title":"Key Prefix"},"rate_limit_minute":{"type":"integer","title":"Rate Limit Minute","default":0},"rate_limit_day":{"type":"integer","title":"Rate Limit Day","default":0},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","user_id","name","key","key_prefix","created_at"],"title":"KeyCreated"},"KeyRow":{"properties":{"id":{"type":"string","title":"Id"},"user_id":{"type":"string","title":"User Id"},"name":{"type":"string","title":"Name"},"key_prefix":{"type":"string","title":"Key Prefix","description":"Visible prefix (12 chars).  Safe to log."},"rate_limit_minute":{"type":"integer","title":"Rate Limit Minute","default":0},"rate_limit_day":{"type":"integer","title":"Rate Limit Day","default":0},"is_active":{"type":"boolean","title":"Is Active"},"last_used_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Used At"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["id","user_id","name","key_prefix","is_active","last_used_at","created_at","updated_at"],"title":"KeyRow"},"KeySummaryResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"key_prefix":{"type":"string","title":"Key Prefix"},"name":{"type":"string","title":"Name"},"scopes":{"items":{"type":"string"},"type":"array","title":"Scopes"},"last_used_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Used At"},"request_count":{"type":"integer","title":"Request Count"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","key_prefix","name","scopes","last_used_at","request_count","created_at"],"title":"KeySummaryResponse"},"LabelTypeCounts":{"properties":{"primary":{"type":"integer","title":"Primary","default":0},"external":{"type":"integer","title":"External","default":0},"derived":{"type":"integer","title":"Derived","default":0}},"type":"object","title":"LabelTypeCounts"},"LastAddressItem":{"properties":{"address":{"type":"string","title":"Address"},"blockchain":{"type":"string","title":"Blockchain"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"category":{"type":"string","title":"Category"},"confidence":{"type":"string","title":"Confidence"},"risk_score":{"type":"integer","title":"Risk Score"},"entity_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Name","description":"Name of the linked entity if one is attached to this label, null otherwise."},"entity_category":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Category"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"source_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Url"}},"type":"object","required":["address","blockchain","label","category","confidence","risk_score","created_at"],"title":"LastAddressItem"},"LastAddressesResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/LastAddressItem"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"LastAddressesResponse"},"ListReportsResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/ReportSummary"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"}},"type":"object","required":["items","total"],"title":"ListReportsResponse"},"LlmAuditResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/LlmAuditRow"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"},"totals":{"$ref":"#/components/schemas/LlmAuditTotals"}},"type":"object","required":["items","total","totals"],"title":"LlmAuditResponse"},"LlmAuditRow":{"properties":{"id":{"type":"integer","title":"Id"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"bucket":{"type":"string","title":"Bucket"},"model":{"type":"string","title":"Model"},"confidence":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Confidence"},"cost_usd":{"type":"number","title":"Cost Usd"},"input_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Input Tokens"},"output_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Output Tokens"},"latency_ms":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Latency Ms"},"relation":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Relation"},"reasoning":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reasoning"},"skip_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Skip Reason"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"},"child_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Child Id"},"child_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Child Name"},"child_category":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Child Category"},"child_logo_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Child Logo Url"},"parent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Id"},"parent_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Name"}},"type":"object","required":["id","created_at","bucket","model","confidence","cost_usd","input_tokens","output_tokens","latency_ms","relation","reasoning","skip_reason","error","child_id","child_name","child_category","child_logo_url","parent_id","parent_name"],"title":"LlmAuditRow"},"LlmAuditTotals":{"properties":{"total":{"type":"integer","title":"Total"},"auto_applied":{"type":"integer","title":"Auto Applied"},"pending":{"type":"integer","title":"Pending"},"approved":{"type":"integer","title":"Approved"},"rejected":{"type":"integer","title":"Rejected"},"skipped":{"type":"integer","title":"Skipped"},"llm_errored":{"type":"integer","title":"Llm Errored"},"cost_usd":{"type":"number","title":"Cost Usd"},"input_tokens":{"type":"integer","title":"Input Tokens"},"output_tokens":{"type":"integer","title":"Output Tokens"}},"type":"object","required":["total","auto_applied","pending","approved","rejected","skipped","llm_errored","cost_usd","input_tokens","output_tokens"],"title":"LlmAuditTotals"},"LogItem":{"properties":{"id":{"type":"string","title":"Id"},"address":{"type":"string","title":"Address"},"blockchain":{"type":"string","title":"Blockchain"},"risk_score":{"type":"integer","title":"Risk Score"},"risk_level":{"type":"string","title":"Risk Level"},"categories_found":{"items":{"type":"string"},"type":"array","title":"Categories Found"},"api_key_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Api Key Id"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","address","blockchain","risk_score","risk_level","categories_found","api_key_id","created_at"],"title":"LogItem","description":"One row in the global \"all checks I/this admin ran\" log."},"LogLine":{"properties":{"line":{"type":"string","title":"Line"}},"type":"object","required":["line"],"title":"LogLine"},"LogResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/LogItem"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"},"limit":{"type":"integer","title":"Limit"},"offset":{"type":"integer","title":"Offset"}},"type":"object","required":["items","total","limit","offset"],"title":"LogResponse"},"LoginRequest":{"properties":{"username":{"type":"string","maxLength":128,"minLength":1,"title":"Username"},"password":{"type":"string","maxLength":256,"minLength":1,"title":"Password"}},"type":"object","required":["username","password"],"title":"LoginRequest"},"LogsResponse":{"properties":{"unit":{"type":"string","title":"Unit"},"lines":{"items":{"$ref":"#/components/schemas/LogLine"},"type":"array","title":"Lines"},"ok":{"type":"boolean","title":"Ok"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"}},"type":"object","required":["unit","lines","ok"],"title":"LogsResponse"},"LongQuery":{"properties":{"pid":{"type":"integer","title":"Pid"},"age_seconds":{"type":"integer","title":"Age Seconds"},"state":{"type":"string","title":"State"},"query":{"type":"string","title":"Query","description":"first 200 chars of the query text"}},"type":"object","required":["pid","age_seconds","state","query"],"title":"LongQuery"},"LookupResponse":{"properties":{"raw":{"type":"string","title":"Raw"},"kind":{"type":"string","title":"Kind"},"chain_hint":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Chain Hint"},"chain_candidates":{"items":{"type":"string"},"type":"array","title":"Chain Candidates","default":[]},"explorer_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Explorer Url"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"}},"type":"object","required":["raw","kind"],"title":"LookupResponse"},"MagicLinkRequest":{"properties":{"email":{"type":"string","maxLength":255,"pattern":"^[^@\\s]+@[^@\\s]+\\.[^@\\s]+$","title":"Email"}},"type":"object","required":["email"],"title":"MagicLinkRequest"},"MagicLinkResponse":{"properties":{"email":{"type":"string","title":"Email"},"sent_at":{"type":"string","format":"date-time","title":"Sent At"},"dev_verify_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Dev Verify Url"},"message":{"type":"string","title":"Message"}},"type":"object","required":["email","sent_at","message"],"title":"MagicLinkResponse"},"MeResponse":{"properties":{"authenticated":{"type":"boolean","title":"Authenticated"},"account_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Account Id"},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email"},"wallet_address":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Wallet Address"},"plan":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Plan"},"locale":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Locale"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"has_password":{"type":"boolean","title":"Has Password","default":false}},"type":"object","required":["authenticated"],"title":"MeResponse"},"MemoryInfo":{"properties":{"total_bytes":{"type":"integer","title":"Total Bytes"},"used_bytes":{"type":"integer","title":"Used Bytes"},"available_bytes":{"type":"integer","title":"Available Bytes"},"percent":{"type":"number","title":"Percent"}},"type":"object","required":["total_bytes","used_bytes","available_bytes","percent"],"title":"MemoryInfo"},"ModerateRequest":{"properties":{"decision":{"type":"string","enum":["verified","rejected","duplicate"],"title":"Decision"},"status_reason":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Status Reason"}},"type":"object","required":["decision"],"title":"ModerateRequest"},"MonthlyQuotaResponse":{"properties":{"used":{"type":"integer","title":"Used"},"limit":{"type":"integer","title":"Limit"},"remaining":{"type":"integer","title":"Remaining"},"resets_at":{"type":"string","title":"Resets At"}},"type":"object","required":["used","limit","remaining","resets_at"],"title":"MonthlyQuotaResponse"},"MyDefrostItem":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"order_no":{"type":"string","title":"Order No"},"tier":{"type":"string","title":"Tier"},"chain":{"type":"string","title":"Chain"},"status":{"type":"string","title":"Status"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"pdf_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pdf Url"}},"type":"object","required":["id","order_no","tier","chain","status","created_at","pdf_url"],"title":"MyDefrostItem"},"MyDefrostResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/MyDefrostItem"},"type":"array","title":"Items"},"bonus_quick_until":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Bonus Quick Until"}},"type":"object","required":["items","bonus_quick_until"],"title":"MyDefrostResponse"},"MyReportItem":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"address":{"type":"string","title":"Address"},"blockchain":{"type":"string","title":"Blockchain"},"category":{"type":"string","title":"Category"},"status":{"type":"string","title":"Status"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"reviewed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Reviewed At"}},"type":"object","required":["id","address","blockchain","category","status","created_at","reviewed_at"],"title":"MyReportItem"},"MyReportsResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/MyReportItem"},"type":"array","title":"Items"},"total_pending":{"type":"integer","title":"Total Pending"},"total_verified":{"type":"integer","title":"Total Verified"}},"type":"object","required":["items","total_pending","total_verified"],"title":"MyReportsResponse"},"NamedCounterparty":{"properties":{"address":{"type":"string","title":"Address"},"entity_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Name"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"seen_count":{"type":"integer","title":"Seen Count","default":1},"source":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source"},"logo_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Logo Url"}},"type":"object","required":["address"],"title":"NamedCounterparty","description":"Counterparty that a proxy (Moralis) resolved to a human-readable\nentity/label even though we don't have this address in address_labels."},"NetworkInfo":{"properties":{"interfaces":{"items":{"$ref":"#/components/schemas/NetworkInterface"},"type":"array","title":"Interfaces"},"tcp_established":{"type":"integer","title":"Tcp Established","description":"established TCP connections (ipv4+ipv6)"},"tcp_listen":{"type":"integer","title":"Tcp Listen","description":"LISTEN sockets"},"tcp_time_wait":{"type":"integer","title":"Tcp Time Wait","description":"TIME_WAIT sockets — high values can hint at connection churn"}},"type":"object","required":["interfaces","tcp_established","tcp_listen","tcp_time_wait"],"title":"NetworkInfo"},"NetworkInterface":{"properties":{"name":{"type":"string","title":"Name"},"rx_bytes_per_sec":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Rx Bytes Per Sec","description":"receive rate in bytes/sec; null on first sample"},"tx_bytes_per_sec":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Tx Bytes Per Sec","description":"transmit rate in bytes/sec; null on first sample"},"rx_total_bytes":{"type":"integer","title":"Rx Total Bytes"},"tx_total_bytes":{"type":"integer","title":"Tx Total Bytes"}},"type":"object","required":["name","rx_total_bytes","tx_total_bytes"],"title":"NetworkInterface"},"OomEvent":{"properties":{"ago_seconds":{"type":"integer","title":"Ago Seconds","description":"how many seconds ago this OOM kill happened"},"message":{"type":"string","title":"Message","description":"brief: process name + pid killed"}},"type":"object","required":["ago_seconds","message"],"title":"OomEvent"},"OwnerTotals":{"properties":{"owner":{"type":"string","title":"Owner"},"sources":{"type":"integer","title":"Sources"},"added":{"type":"integer","title":"Added"},"updated":{"type":"integer","title":"Updated"},"runs":{"type":"integer","title":"Runs"}},"type":"object","required":["owner","sources","added","updated","runs"],"title":"OwnerTotals"},"PGBackendDetail":{"properties":{"application_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Application Name","description":"name the client set on connect — for AML services this is what reveals 'aml-api' vs 'aml-worker' vs 'celery-beat'."},"usename":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Usename"},"datname":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Datname"},"client_addr":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Addr"},"client_port":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Client Port"},"backend_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Backend Type","description":"'client backend', 'autovacuum worker', 'walsender', etc."},"backend_start":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Backend Start","description":"ISO timestamp when the connection was opened"},"query_start":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Query Start"},"state":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"State"},"wait_event_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Wait Event Type"},"wait_event":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Wait Event"},"query":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Query","description":"full SQL text — redacted for secrets, truncated at 1 KB"}},"type":"object","title":"PGBackendDetail","description":"pg_stat_activity slice for a single backend pid.\n\nPostgres' OS pid == pg_stat_activity.pid (postgres uses ``fork()``,\neach backend is its own process), so we can look up a backend by\nthe OS pid the user clicked on the top-processes table."},"PGDetailsResponse":{"properties":{"pg_stat_statements_enabled":{"type":"boolean","title":"Pg Stat Statements Enabled"},"top_queries_by_time":{"items":{"$ref":"#/components/schemas/TopQueryStat"},"type":"array","title":"Top Queries By Time"},"top_queries_error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Top Queries Error"},"vacuum_top_dead":{"items":{"$ref":"#/components/schemas/VacuumStat"},"type":"array","title":"Vacuum Top Dead"},"largest_tables":{"items":{"$ref":"#/components/schemas/TableSize"},"type":"array","title":"Largest Tables"}},"type":"object","required":["pg_stat_statements_enabled","top_queries_by_time","vacuum_top_dead","largest_tables"],"title":"PGDetailsResponse"},"PagedResponse":{"properties":{"items":{"items":{},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"},"limit":{"type":"integer","title":"Limit"},"offset":{"type":"integer","title":"Offset"}},"type":"object","required":["items","total","limit","offset"],"title":"PagedResponse","description":"Standard paged wrapper."},"PasswordLoginRequest":{"properties":{"email":{"type":"string","maxLength":255,"pattern":"^[^@\\s]+@[^@\\s]+\\.[^@\\s]+$","title":"Email"},"password":{"type":"string","maxLength":128,"minLength":1,"title":"Password"}},"type":"object","required":["email","password"],"title":"PasswordLoginRequest"},"PasswordLoginResponse":{"properties":{"account_id":{"type":"string","title":"Account Id"}},"type":"object","required":["account_id"],"title":"PasswordLoginResponse"},"PeriodChecksSummary":{"properties":{"days":{"type":"integer","title":"Days"},"total_checks":{"type":"integer","title":"Total Checks"},"total_checks_all":{"type":"integer","title":"Total Checks All"},"avg_risk":{"type":"number","title":"Avg Risk"},"checks_by_risk":{"additionalProperties":{"type":"integer"},"type":"object","title":"Checks By Risk"},"checks_by_blockchain":{"additionalProperties":{"type":"integer"},"type":"object","title":"Checks By Blockchain"}},"type":"object","required":["days","total_checks","total_checks_all","avg_risk","checks_by_risk","checks_by_blockchain"],"title":"PeriodChecksSummary"},"PgAutovacuumWorker":{"properties":{"pid":{"type":"integer","title":"Pid"},"table_name":{"type":"string","title":"Table Name"},"phase":{"type":"string","title":"Phase"},"heap_blks_scanned":{"type":"integer","title":"Heap Blks Scanned"},"heap_blks_total":{"type":"integer","title":"Heap Blks Total"},"percent":{"type":"number","title":"Percent"}},"type":"object","required":["pid","table_name","phase","heap_blks_scanned","heap_blks_total","percent"],"title":"PgAutovacuumWorker","description":"One active autovacuum worker from pg_stat_progress_vacuum."},"PgCheckpointerStats":{"properties":{"checkpoints_timed":{"type":"integer","title":"Checkpoints Timed"},"checkpoints_req":{"type":"integer","title":"Checkpoints Req","description":"requested (forced) checkpoints — high = write pressure"},"buffers_written":{"type":"integer","title":"Buffers Written","description":"buffers written during checkpoints"},"buffers_clean":{"type":"integer","title":"Buffers Clean","description":"buffers written by bgwriter"},"checkpoint_write_time_ms":{"type":"number","title":"Checkpoint Write Time Ms"},"checkpoint_sync_time_ms":{"type":"number","title":"Checkpoint Sync Time Ms"}},"type":"object","required":["checkpoints_timed","checkpoints_req","buffers_written","buffers_clean","checkpoint_write_time_ms","checkpoint_sync_time_ms"],"title":"PgCheckpointerStats","description":"pg_stat_checkpointer (PG17+) or pg_stat_bgwriter (PG16) — checkpoint pressure."},"PgLockChain":{"properties":{"blocked_pid":{"type":"integer","title":"Blocked Pid"},"blocked_duration_seconds":{"type":"integer","title":"Blocked Duration Seconds"},"blocked_state":{"type":"string","title":"Blocked State"},"blocked_query":{"type":"string","title":"Blocked Query"},"blocking_pid":{"type":"integer","title":"Blocking Pid"},"blocking_state":{"type":"string","title":"Blocking State"},"blocking_query":{"type":"string","title":"Blocking Query"}},"type":"object","required":["blocked_pid","blocked_duration_seconds","blocked_state","blocked_query","blocking_pid","blocking_state","blocking_query"],"title":"PgLockChain","description":"One blocked→blocking pair from pg_blocking_pids()."},"PgXminHorizon":{"properties":{"oldest_age_seconds":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Oldest Age Seconds","description":"seconds the oldest open xmin-bearing backend has been alive"},"pid":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Pid"},"state":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"State"},"query_preview":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Query Preview","description":"first 120 chars of the blocking query"},"backend_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Backend Type"}},"type":"object","title":"PgXminHorizon","description":"Oldest open transaction. If this is old, autovacuum is blocked."},"PlanResponse":{"properties":{"code":{"type":"string","title":"Code"},"name":{"type":"string","title":"Name"},"kind":{"type":"string","title":"Kind"},"price_rub":{"type":"string","title":"Price Rub"},"price_usd":{"type":"string","title":"Price Usd"},"included_checks":{"type":"integer","title":"Included Checks"},"billing_period_days":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Billing Period Days"},"included_features":{"items":{"type":"string"},"type":"array","title":"Included Features"}},"type":"object","required":["code","name","kind","price_rub","price_usd","included_checks","billing_period_days","included_features"],"title":"PlanResponse"},"PoolOpRequest":{"properties":{"n":{"type":"integer","maximum":32.0,"minimum":1.0,"title":"N","description":"slots to add/remove"},"destination":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Destination","description":"worker name like 'celery@aml-1'; if omitted, applies to all"}},"type":"object","required":["n"],"title":"PoolOpRequest"},"PoolOpResponse":{"properties":{"ok":{"type":"boolean","title":"Ok"},"destination":{"items":{"type":"string"},"type":"array","title":"Destination"},"n":{"type":"integer","title":"N"},"message":{"type":"string","title":"Message"}},"type":"object","required":["ok","destination","n","message"],"title":"PoolOpResponse"},"ProcessDetail":{"properties":{"pid":{"type":"integer","title":"Pid"},"cmdline":{"type":"string","title":"Cmdline"},"comm":{"type":"string","title":"Comm","description":"short kernel-comm name (TASK_COMM_LEN=16)"},"state":{"type":"string","title":"State","description":"R/S/D/Z/T from /proc/[pid]/stat"},"parent_pid":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Parent Pid"},"threads":{"type":"integer","title":"Threads","default":1},"rss_bytes":{"type":"integer","title":"Rss Bytes","default":0},"vsz_bytes":{"type":"integer","title":"Vsz Bytes","default":0},"service":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Service","description":"systemd unit owning this pid"},"started_seconds_ago":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Started Seconds Ago","description":"how long ago the process was started (seconds)"},"pg":{"anyOf":[{"$ref":"#/components/schemas/PGBackendDetail"},{"type":"null"}],"description":"If the pid is a postgres backend, full pg_stat_activity row for it. Null for non-postgres processes."}},"type":"object","required":["pid","cmdline","comm","state"],"title":"ProcessDetail"},"ProcessesSummary":{"properties":{"total_processes":{"type":"integer","title":"Total Processes"},"total_ram_bytes":{"type":"integer","title":"Total Ram Bytes"},"cores":{"type":"integer","title":"Cores"}},"type":"object","required":["total_processes","total_ram_bytes","cores"],"title":"ProcessesSummary","description":"Context for the top-processes table: how many processes exist,\nwhat fraction of total capacity the table covers, total RAM for\nbar-scaling on the frontend."},"Profile":{"properties":{"username":{"type":"string","title":"Username"},"role":{"type":"string","title":"Role","description":"RBAC role; currently single-tenant admin","default":"admin"}},"type":"object","required":["username"],"title":"Profile"},"PublicVerifyResponse":{"properties":{"order_no":{"type":"string","title":"Order No"},"issued_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Issued At"},"subject_chain":{"type":"string","title":"Subject Chain"},"subject_tx_hash_truncated":{"type":"string","title":"Subject Tx Hash Truncated"},"pdf_sha256":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pdf Sha256"},"status":{"type":"string","title":"Status"},"compliance_signature":{"type":"string","title":"Compliance Signature"}},"type":"object","required":["order_no","issued_at","subject_chain","subject_tx_hash_truncated","pdf_sha256","status","compliance_signature"],"title":"PublicVerifyResponse"},"QuarantineListResponse":{"properties":{"total":{"type":"integer","title":"Total"},"page":{"type":"integer","title":"Page"},"page_size":{"type":"integer","title":"Page Size"},"rows":{"items":{"$ref":"#/components/schemas/QuarantineRow"},"type":"array","title":"Rows"}},"type":"object","required":["total","page","page_size","rows"],"title":"QuarantineListResponse"},"QuarantineRow":{"properties":{"id":{"type":"integer","title":"Id"},"original_id":{"type":"integer","title":"Original Id"},"address":{"type":"string","title":"Address"},"blockchain":{"type":"string","title":"Blockchain"},"source":{"type":"string","title":"Source"},"source_class":{"type":"string","title":"Source Class","description":"One of: reputation, infra_tag, sanction, noisy, unclassified. Read from source_metadata.classification; 'unclassified' means the source isn't in source_metadata yet (researcher TODO)."},"category":{"type":"string","title":"Category"},"risk_score":{"type":"integer","title":"Risk Score"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"attribution_method":{"type":"string","title":"Attribution Method"},"quarantine_reason":{"type":"string","title":"Quarantine Reason"},"quarantined_at":{"type":"string","format":"date-time","title":"Quarantined At"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"infra_attestation":{"anyOf":[{"$ref":"#/components/schemas/InfraAttestation"},{"type":"null"}],"description":"Best reputation-classified infra label for this (address, blockchain). Hardcoded safe-list entries surface as source='_known_infra_safelist'."}},"type":"object","required":["id","original_id","address","blockchain","source","source_class","category","risk_score","attribution_method","quarantine_reason","quarantined_at","created_at"],"title":"QuarantineRow"},"QuarantineRowDetail":{"properties":{"id":{"type":"integer","title":"Id"},"original_id":{"type":"integer","title":"Original Id"},"address":{"type":"string","title":"Address"},"blockchain":{"type":"string","title":"Blockchain"},"source":{"type":"string","title":"Source"},"source_class":{"type":"string","title":"Source Class","description":"One of: reputation, infra_tag, sanction, noisy, unclassified. Read from source_metadata.classification; 'unclassified' means the source isn't in source_metadata yet (researcher TODO)."},"category":{"type":"string","title":"Category"},"risk_score":{"type":"integer","title":"Risk Score"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"attribution_method":{"type":"string","title":"Attribution Method"},"quarantine_reason":{"type":"string","title":"Quarantine Reason"},"quarantined_at":{"type":"string","format":"date-time","title":"Quarantined At"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"infra_attestation":{"anyOf":[{"$ref":"#/components/schemas/InfraAttestation"},{"type":"null"}],"description":"Best reputation-classified infra label for this (address, blockchain). Hardcoded safe-list entries surface as source='_known_infra_safelist'."},"confidence":{"type":"string","title":"Confidence"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"source_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Url"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"first_seen":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"First Seen"},"last_seen":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Seen"}},"type":"object","required":["id","original_id","address","blockchain","source","source_class","category","risk_score","attribution_method","quarantine_reason","quarantined_at","created_at","confidence"],"title":"QuarantineRowDetail"},"QuarantineSummary":{"properties":{"total":{"type":"integer","title":"Total"},"last_7d":{"type":"integer","title":"Last 7D"},"by_reason":{"items":{"$ref":"#/components/schemas/_BucketCount"},"type":"array","title":"By Reason"},"by_source_class":{"items":{"$ref":"#/components/schemas/_BucketCount"},"type":"array","title":"By Source Class"},"by_blockchain":{"items":{"$ref":"#/components/schemas/_BucketCount"},"type":"array","title":"By Blockchain"},"timeline":{"items":{"$ref":"#/components/schemas/_TimelinePoint"},"type":"array","title":"Timeline"},"sources_in_quarantine":{"items":{"$ref":"#/components/schemas/_SourceClassEntry"},"type":"array","title":"Sources In Quarantine"},"classification_legend":{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object","title":"Classification Legend"}},"type":"object","required":["total","last_7d","by_reason","by_source_class","by_blockchain","timeline","sources_in_quarantine","classification_legend"],"title":"QuarantineSummary"},"QueueItem":{"properties":{"id":{"type":"integer","title":"Id"},"source_key":{"type":"string","title":"Source Key"},"external_value":{"type":"string","title":"External Value"},"status":{"type":"string","title":"Status"},"occurrence_count":{"type":"integer","title":"Occurrence Count"},"last_seen_at":{"type":"string","format":"date-time","title":"Last Seen At"},"llm_suggested_slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Llm Suggested Slug"}},"type":"object","required":["id","source_key","external_value","status","occurrence_count","last_seen_at"],"title":"QueueItem"},"QuotaEndpointSummary":{"properties":{"endpoint":{"type":"string","title":"Endpoint"},"count_24h":{"type":"integer","title":"Count 24H"},"count_7d":{"type":"integer","title":"Count 7D"},"success_24h":{"type":"integer","title":"Success 24H"},"error_24h":{"type":"integer","title":"Error 24H"}},"type":"object","required":["endpoint","count_24h","count_7d","success_24h","error_24h"],"title":"QuotaEndpointSummary"},"QuotaHourBucket":{"properties":{"ts_hour":{"type":"string","format":"date-time","title":"Ts Hour"},"count":{"type":"integer","title":"Count"}},"type":"object","required":["ts_hour","count"],"title":"QuotaHourBucket"},"QuotaResponse":{"properties":{"source":{"type":"string","title":"Source","description":"Counter source key — 'tronscan' or 'trongrid'"},"free_tier_daily":{"type":"integer","title":"Free Tier Daily","description":"Advisory free-tier ceiling. 0 = vendor doesn't publish one."},"count_1h":{"type":"integer","title":"Count 1H"},"count_24h":{"type":"integer","title":"Count 24H"},"count_7d":{"type":"integer","title":"Count 7D"},"pct_of_daily_free_tier":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Pct Of Daily Free Tier","description":"Last-24h count as a percentage of the daily free tier. Null when no advisory ceiling is published."},"hourly_24h":{"items":{"$ref":"#/components/schemas/QuotaHourBucket"},"type":"array","title":"Hourly 24H","description":"Per-hour counts for the last 24 hours, oldest first. Includes only hours with at least one request."},"by_endpoint":{"items":{"$ref":"#/components/schemas/QuotaEndpointSummary"},"type":"array","title":"By Endpoint","description":"Per-endpoint breakdown, sorted by 24h volume descending."}},"type":"object","required":["source","free_tier_daily","count_1h","count_24h","count_7d","pct_of_daily_free_tier","hourly_24h","by_endpoint"],"title":"QuotaResponse"},"RecentCheck":{"properties":{"id":{"type":"string","title":"Id"},"address":{"type":"string","title":"Address"},"blockchain":{"type":"string","title":"Blockchain"},"risk_score":{"type":"integer","title":"Risk Score"},"risk_level":{"type":"string","title":"Risk Level"},"categories_found":{"items":{"type":"string"},"type":"array","title":"Categories Found"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","address","blockchain","risk_score","risk_level","categories_found","created_at"],"title":"RecentCheck"},"RecentCriticalResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/RecentCheck"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"RecentCriticalResponse"},"RedisInfo":{"properties":{"ok":{"type":"boolean","title":"Ok"},"used_memory_bytes":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Used Memory Bytes"},"connected_clients":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Connected Clients"},"uptime_seconds":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Uptime Seconds"},"hit_rate":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Hit Rate","description":"keyspace_hits / (keyspace_hits + keyspace_misses) × 100"},"evicted_keys":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Evicted Keys"},"expired_keys":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expired Keys"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"}},"type":"object","required":["ok"],"title":"RedisInfo"},"ReferralClickMetricsResponse":{"properties":{"total":{"type":"integer","title":"Total"},"unique_visitors":{"type":"integer","title":"Unique Visitors"},"clicks_24h":{"type":"integer","title":"Clicks 24H"},"clicks_7d":{"type":"integer","title":"Clicks 7D"},"conversion_rate":{"type":"number","title":"Conversion Rate"},"daily_series":{"items":{"type":"integer"},"type":"array","title":"Daily Series"}},"type":"object","required":["total","unique_visitors","clicks_24h","clicks_7d","conversion_rate","daily_series"],"title":"ReferralClickMetricsResponse"},"ReferralInvitedAccount":{"properties":{"account_id":{"type":"string","title":"Account Id"},"label":{"type":"string","title":"Label"},"plan":{"type":"string","title":"Plan"},"joined_at":{"type":"string","format":"date-time","title":"Joined At"}},"type":"object","required":["account_id","label","plan","joined_at"],"title":"ReferralInvitedAccount"},"ReferralInviter":{"properties":{"account_id":{"type":"string","title":"Account Id"},"label":{"type":"string","title":"Label"},"referral_code":{"type":"string","title":"Referral Code"}},"type":"object","required":["account_id","label","referral_code"],"title":"ReferralInviter"},"ReferralSummaryResponse":{"properties":{"referral_code":{"type":"string","title":"Referral Code"},"invite_url":{"type":"string","title":"Invite Url"},"referred_count":{"type":"integer","title":"Referred Count"},"referred":{"items":{"$ref":"#/components/schemas/ReferralInvitedAccount"},"type":"array","title":"Referred"},"inviter":{"anyOf":[{"$ref":"#/components/schemas/ReferralInviter"},{"type":"null"}]},"clicks":{"$ref":"#/components/schemas/ReferralClickMetricsResponse"}},"type":"object","required":["referral_code","invite_url","referred_count","referred","inviter","clicks"],"title":"ReferralSummaryResponse"},"RejectRequest":{"properties":{"reason":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Reason"}},"type":"object","title":"RejectRequest"},"ReportSummary":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"address":{"type":"string","title":"Address"},"blockchain":{"type":"string","title":"Blockchain"},"category":{"type":"string","title":"Category"},"description":{"type":"string","title":"Description"},"incident_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Incident At"},"loss_usd":{"anyOf":[{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Loss Usd"},"is_anonymous":{"type":"boolean","title":"Is Anonymous"},"status":{"type":"string","title":"Status"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","address","blockchain","category","description","incident_at","loss_usd","is_anonymous","status","created_at"],"title":"ReportSummary"},"ReservedTaskItem":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"eta":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Eta"},"args_preview":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Args Preview"},"kwargs_preview":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Kwargs Preview"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"}},"type":"object","required":["id","name"],"title":"ReservedTaskItem"},"ResolveRequest":{"properties":{"canonical_slug":{"type":"string","maxLength":100,"minLength":1,"title":"Canonical Slug"},"confidence_override":{"anyOf":[{"type":"string","pattern":"^(confirmed|high|medium|probable|low)$"},{"type":"null"}],"title":"Confidence Override"},"risk_score_override":{"anyOf":[{"type":"integer","maximum":100.0,"minimum":0.0},{"type":"null"}],"title":"Risk Score Override"},"notes":{"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}],"title":"Notes"}},"type":"object","required":["canonical_slug"],"title":"ResolveRequest"},"ResolveResponse":{"properties":{"outcome":{"type":"string","title":"Outcome","description":"'alias_created' | 'approval_requested'"},"alias_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Alias Id"},"approval_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Approval Id"},"unmapped_status":{"type":"string","title":"Unmapped Status"}},"type":"object","required":["outcome","unmapped_status"],"title":"ResolveResponse"},"ResolveShareLinkResponse":{"properties":{"state":{"type":"string","enum":["active","locked","gone"],"title":"State"},"check_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Check Id"},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason"},"short_id":{"type":"string","title":"Short Id"}},"type":"object","required":["state","short_id"],"title":"ResolveShareLinkResponse"},"RevokeKeyResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"revoked":{"type":"boolean","title":"Revoked"}},"type":"object","required":["id","revoked"],"title":"RevokeKeyResponse"},"RevokeResponse":{"properties":{"ok":{"type":"boolean","title":"Ok"},"task_id":{"type":"string","title":"Task Id"},"terminated":{"type":"boolean","title":"Terminated"}},"type":"object","required":["ok","task_id","terminated"],"title":"RevokeResponse"},"RevokeShareLinkResponse":{"properties":{"short_id":{"type":"string","title":"Short Id"},"revoked":{"type":"boolean","title":"Revoked"}},"type":"object","required":["short_id","revoked"],"title":"RevokeShareLinkResponse"},"RichExposureCategory":{"properties":{"slug":{"type":"string","title":"Slug"},"display_name":{"type":"string","title":"Display Name"},"tier":{"type":"string","title":"Tier"},"critical":{"type":"boolean","title":"Critical","default":false},"risk_weight":{"type":"integer","title":"Risk Weight"},"max_effective_weight":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Max Effective Weight"},"percentage":{"type":"number","title":"Percentage"},"tx_count":{"type":"integer","title":"Tx Count"},"tx_direction":{"$ref":"#/components/schemas/TxDirection"},"counterparties_count":{"type":"integer","title":"Counterparties Count","default":0},"counterparties_top3":{"items":{"$ref":"#/components/schemas/CounterpartyBrief"},"type":"array","title":"Counterparties Top3","default":[]},"sources_count":{"type":"integer","title":"Sources Count","default":0},"sources_list":{"items":{"type":"string"},"type":"array","title":"Sources List","default":[]},"label_types":{"$ref":"#/components/schemas/LabelTypeCounts","default":{"primary":0,"external":0,"derived":0}},"first_detected_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"First Detected At"},"last_detected_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Detected At"},"has_risk_events":{"type":"boolean","title":"Has Risk Events","default":false},"risk_events_count":{"type":"integer","title":"Risk Events Count","default":0},"scoring":{"anyOf":[{"$ref":"#/components/schemas/ScoringFactors"},{"type":"null"}]}},"type":"object","required":["slug","display_name","tier","risk_weight","percentage","tx_count","tx_direction"],"title":"RichExposureCategory"},"RichExposureResponse":{"properties":{"address":{"type":"string","title":"Address"},"blockchain":{"type":"string","title":"Blockchain"},"categories":{"items":{"$ref":"#/components/schemas/RichExposureCategory"},"type":"array","title":"Categories"},"meta":{"$ref":"#/components/schemas/ExposureMeta"}},"type":"object","required":["address","blockchain","categories","meta"],"title":"RichExposureResponse"},"RiskBucket":{"properties":{"bucket":{"type":"string","title":"Bucket"},"label":{"type":"string","title":"Label"},"count":{"type":"integer","title":"Count"},"pct":{"type":"number","title":"Pct"}},"type":"object","required":["bucket","label","count","pct"],"title":"RiskBucket"},"RiskCategoryInfo":{"properties":{"category":{"type":"string","title":"Category"},"confidence":{"type":"string","title":"Confidence"},"source":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"}},"type":"object","required":["category","confidence"],"title":"RiskCategoryInfo"},"RiskCategoryResponse":{"properties":{"id":{"type":"integer","title":"Id"},"slug":{"type":"string","title":"Slug"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"risk_weight":{"type":"integer","title":"Risk Weight"},"parent_slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Slug"},"color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Color"}},"type":"object","required":["id","slug","name","risk_weight"],"title":"RiskCategoryResponse"},"RiskDistribution":{"properties":{"timeframe":{"type":"string","enum":["24h","7d","30d","90d"],"title":"Timeframe"},"total":{"type":"integer","title":"Total"},"buckets":{"items":{"$ref":"#/components/schemas/RiskBucket"},"type":"array","title":"Buckets"}},"type":"object","required":["timeframe","total","buckets"],"title":"RiskDistribution"},"RiskEvent":{"properties":{"id":{"type":"string","title":"Id"},"severity":{"type":"string","title":"Severity"},"effective_weight":{"type":"number","title":"Effective Weight"},"category":{"type":"string","title":"Category"},"category_display_name":{"type":"string","title":"Category Display Name"},"subject":{"type":"string","title":"Subject"},"counterparty_address":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Counterparty Address"},"counterparty_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Counterparty Name"},"counterparty_logo_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Counterparty Logo Url"},"hops":{"type":"integer","title":"Hops","default":0},"percentage":{"type":"number","title":"Percentage","default":0.0},"detected_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Detected At"},"provenance":{"anyOf":[{"$ref":"#/components/schemas/RiskEventProvenance"},{"type":"null"}]}},"type":"object","required":["id","severity","effective_weight","category","category_display_name","subject"],"title":"RiskEvent"},"RiskEventProvenance":{"properties":{"source":{"type":"string","title":"Source"},"attribution_method":{"type":"string","title":"Attribution Method"},"confidence":{"type":"string","title":"Confidence"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"entity_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Name"},"entity_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Id"}},"type":"object","required":["source","attribution_method","confidence"],"title":"RiskEventProvenance"},"RiskEventsResponse":{"properties":{"events":{"items":{"$ref":"#/components/schemas/RiskEvent"},"type":"array","title":"Events"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"},"total_count":{"type":"integer","title":"Total Count","default":0}},"type":"object","required":["events"],"title":"RiskEventsResponse"},"RunItem":{"properties":{"id":{"type":"string","title":"Id"},"collector_type":{"type":"string","title":"Collector Type"},"status":{"type":"string","title":"Status"},"current_phase":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Current Phase"},"items_imported":{"type":"integer","title":"Items Imported"},"items_skipped":{"type":"integer","title":"Items Skipped"},"items_updated":{"type":"integer","title":"Items Updated"},"errors":{"type":"integer","title":"Errors"},"last_error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Error"},"started_at":{"type":"string","format":"date-time","title":"Started At"},"paused_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Paused At"},"finished_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Finished At"},"duration_seconds":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Duration Seconds"},"progress_pct":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Progress Pct"}},"type":"object","required":["id","collector_type","status","current_phase","items_imported","items_skipped","items_updated","errors","last_error","started_at","paused_at","finished_at","duration_seconds"],"title":"RunItem"},"SanctionsCheckRequest":{"properties":{"address":{"type":"string","maxLength":128,"minLength":1,"title":"Address"},"blockchain":{"anyOf":[{"type":"string","maxLength":20},{"type":"null"}],"title":"Blockchain"},"turnstile_token":{"anyOf":[{"type":"string","maxLength":2048},{"type":"null"}],"title":"Turnstile Token"},"__hp":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Hp"},"submitted_at_ms":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Submitted At Ms"},"focused_at_ms":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Focused At Ms"}},"type":"object","required":["address"],"title":"SanctionsCheckRequest"},"SanctionsCheckResponse":{"properties":{"address":{"type":"string","title":"Address"},"blockchain":{"type":"string","title":"Blockchain"},"listed":{"type":"boolean","title":"Listed"},"hits":{"items":{"$ref":"#/components/schemas/SanctionsHit"},"type":"array","title":"Hits"}},"type":"object","required":["address","blockchain","listed","hits"],"title":"SanctionsCheckResponse"},"SanctionsFreshness":{"properties":{"generated_at":{"type":"string","format":"date-time","title":"Generated At"},"threshold_days":{"type":"integer","title":"Threshold Days"},"sources":{"items":{"$ref":"#/components/schemas/SanctionsSource"},"type":"array","title":"Sources"},"worst_status":{"type":"string","title":"Worst Status"}},"type":"object","required":["generated_at","threshold_days","sources","worst_status"],"title":"SanctionsFreshness"},"SanctionsHit":{"properties":{"list":{"type":"string","title":"List"},"source":{"type":"string","title":"Source"},"blockchain":{"type":"string","title":"Blockchain"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"}},"type":"object","required":["list","source","blockchain"],"title":"SanctionsHit"},"SanctionsSource":{"properties":{"source":{"type":"string","title":"Source"},"last_updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Updated At"},"age_hours":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Age Hours"},"labels_count":{"type":"integer","title":"Labels Count"},"status":{"type":"string","title":"Status","description":"'ok' if < 72h, 'stale' if 72h–14d, 'critical' if > 14d, 'missing' if never"}},"type":"object","required":["source","last_updated_at","age_hours","labels_count","status"],"title":"SanctionsSource"},"ScheduleKwargsUpdateRequest":{"properties":{"kwargs_json":{"additionalProperties":true,"type":"object","title":"Kwargs Json"}},"type":"object","required":["kwargs_json"],"title":"ScheduleKwargsUpdateRequest"},"ScheduleRow":{"properties":{"source_key":{"type":"string","title":"Source Key"},"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"task_name":{"type":"string","title":"Task Name"},"cron_expression":{"type":"string","title":"Cron Expression"},"is_enabled":{"type":"boolean","title":"Is Enabled"},"kwargs_json":{"additionalProperties":true,"type":"object","title":"Kwargs Json"},"last_run_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Run At"},"last_run_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Run Status"},"last_run_error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Run Error"}},"type":"object","required":["source_key","task_name","cron_expression","is_enabled"],"title":"ScheduleRow","description":"One row of ``collector_schedules`` as viewed from admin-v2."},"ScheduleRunNowResponse":{"properties":{"source_key":{"type":"string","title":"Source Key"},"task_name":{"type":"string","title":"Task Name"},"task_id":{"type":"string","title":"Task Id"},"dispatched_at":{"type":"string","format":"date-time","title":"Dispatched At"}},"type":"object","required":["source_key","task_name","task_id","dispatched_at"],"title":"ScheduleRunNowResponse"},"ScheduleToggleRequest":{"properties":{"is_enabled":{"type":"boolean","title":"Is Enabled"}},"type":"object","required":["is_enabled"],"title":"ScheduleToggleRequest"},"ScoringDiffConfusionCell":{"properties":{"v1_category":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"V1 Category"},"v2_category":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"V2 Category"},"count":{"type":"integer","title":"Count"}},"type":"object","required":["v1_category","v2_category","count"],"title":"ScoringDiffConfusionCell","description":"One cell of the V1_category × V2_category confusion matrix."},"ScoringDiffHistogramBucket":{"properties":{"lower":{"type":"integer","title":"Lower"},"upper":{"type":"integer","title":"Upper"},"count":{"type":"integer","title":"Count"}},"type":"object","required":["lower","upper","count"],"title":"ScoringDiffHistogramBucket","description":"One bar of the Δscore histogram (-100..+100 in 10-point bins)."},"ScoringDiffItem":{"properties":{"id":{"type":"integer","title":"Id"},"address":{"type":"string","title":"Address"},"chain":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Chain"},"ts":{"type":"string","format":"date-time","title":"Ts"},"v1_score":{"type":"integer","title":"V1 Score"},"v2_score":{"type":"integer","title":"V2 Score"},"v1_level":{"type":"string","title":"V1 Level"},"v2_level":{"type":"string","title":"V2 Level"},"v1_category":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"V1 Category"},"v2_category":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"V2 Category"},"v1_confidence":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"V1 Confidence"},"v2_confidence":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"V2 Confidence"},"score_delta":{"type":"integer","title":"Score Delta"},"level_changed":{"type":"boolean","title":"Level Changed"},"category_changed":{"type":"boolean","title":"Category Changed"},"contributing_label_ids":{"anyOf":[{"items":{"type":"integer"},"type":"array"},{"type":"null"}],"title":"Contributing Label Ids"}},"type":"object","required":["id","address","chain","ts","v1_score","v2_score","v1_level","v2_level","v1_category","v2_category","v1_confidence","v2_confidence","score_delta","level_changed","category_changed"],"title":"ScoringDiffItem","description":"Row in the drill-down table."},"ScoringDiffSummary":{"properties":{"window_start":{"type":"string","format":"date-time","title":"Window Start"},"window_end":{"type":"string","format":"date-time","title":"Window End"},"total_checks":{"type":"integer","title":"Total Checks","description":"Total address checks in the window (diffs + agreements). Agreements are approximated from metrics — see note."},"diffs":{"type":"integer","title":"Diffs"},"diff_rate":{"type":"number","title":"Diff Rate","description":"diffs / total_checks if known; else diffs-only rate (see `note`)"},"mean_abs_delta":{"type":"number","title":"Mean Abs Delta"},"p95_abs_delta":{"type":"number","title":"P95 Abs Delta"},"level_change_rate":{"type":"number","title":"Level Change Rate"},"category_change_rate":{"type":"number","title":"Category Change Rate"},"cutover_criteria_met":{"type":"boolean","title":"Cutover Criteria Met","description":"True iff diff_rate < 1 % and window >= 7 days per 07_SCORING.md § 7.4"},"note":{"type":"string","title":"Note","default":"Total checks is estimated from diff count plus a rolling count of scoring_v1_v2_diff structlog events. Diffs-only rate is the unambiguous primary metric."}},"type":"object","required":["window_start","window_end","total_checks","diffs","diff_rate","mean_abs_delta","p95_abs_delta","level_change_rate","category_change_rate","cutover_criteria_met"],"title":"ScoringDiffSummary","description":"Top-of-dashboard KPIs for L10 / 03_ANALYTICS.md § 4."},"ScoringDiffTrendPoint":{"properties":{"day":{"type":"string","format":"date-time","title":"Day"},"diffs":{"type":"integer","title":"Diffs"},"mean_abs_delta":{"type":"number","title":"Mean Abs Delta"}},"type":"object","required":["day","diffs","mean_abs_delta"],"title":"ScoringDiffTrendPoint","description":"One day of the rolling diff-rate trend."},"ScoringFactors":{"properties":{"base_weight":{"type":"integer","title":"Base Weight"},"confidence_multiplier":{"type":"number","title":"Confidence Multiplier"},"recency_multiplier":{"type":"number","title":"Recency Multiplier"},"source_trust_multiplier":{"type":"number","title":"Source Trust Multiplier"},"effective_weight":{"type":"number","title":"Effective Weight"}},"type":"object","required":["base_weight","confidence_multiplier","recency_multiplier","source_trust_multiplier","effective_weight"],"title":"ScoringFactors"},"ServerHealthResponse":{"properties":{"generated_at":{"type":"number","title":"Generated At"},"hostname":{"type":"string","title":"Hostname"},"uptime_seconds":{"type":"integer","title":"Uptime Seconds"},"api_uptime_seconds":{"type":"number","title":"Api Uptime Seconds"},"overall_status":{"type":"string","title":"Overall Status","description":"worst-of-all status: 'ok' | 'warn' | 'crit'"},"overall_reasons":{"items":{"type":"string"},"type":"array","title":"Overall Reasons","description":"metrics that contributed to a non-ok overall status"},"cpu":{"$ref":"#/components/schemas/CPUInfo"},"memory":{"$ref":"#/components/schemas/MemoryInfo"},"swap":{"anyOf":[{"$ref":"#/components/schemas/SwapInfo"},{"type":"null"}]},"disk":{"$ref":"#/components/schemas/DiskInfo"},"services":{"items":{"$ref":"#/components/schemas/ServiceState"},"type":"array","title":"Services"},"database":{"$ref":"#/components/schemas/DBInfo"},"redis":{"$ref":"#/components/schemas/RedisInfo"},"celery":{"$ref":"#/components/schemas/CeleryInfo"},"top_by_cpu":{"items":{"$ref":"#/components/schemas/TopProcess"},"type":"array","title":"Top By Cpu"},"top_by_memory":{"items":{"$ref":"#/components/schemas/TopProcess"},"type":"array","title":"Top By Memory"},"processes_summary":{"$ref":"#/components/schemas/ProcessesSummary"},"network":{"$ref":"#/components/schemas/NetworkInfo"},"disk_io":{"$ref":"#/components/schemas/DiskIOInfo","description":"per-device disk I/O throughput and utilisation from /proc/diskstats"},"file_descriptors":{"anyOf":[{"$ref":"#/components/schemas/FileDescriptors"},{"type":"null"}],"description":"system-wide open/max file descriptor counts from /proc/sys/fs/file-nr"},"oom_events":{"items":{"$ref":"#/components/schemas/OomEvent"},"type":"array","title":"Oom Events","description":"OOM kill events from dmesg in the last 24 hours"},"stuck_pg_connections":{"items":{"$ref":"#/components/schemas/StuckPgConnection"},"type":"array","title":"Stuck Pg Connections","description":"PG backends that look stuck: active > 5 min, idle in transaction > 10 min, or idle in transaction (aborted) > 5 min."},"celery_queue_depths":{"$ref":"#/components/schemas/CeleryQueueDepths","description":"pending task counts read directly from Redis queues"},"pg_xmin_horizon":{"anyOf":[{"$ref":"#/components/schemas/PgXminHorizon"},{"type":"null"}],"description":"oldest open transaction — blocks autovacuum if stale"},"pg_checkpointer":{"anyOf":[{"$ref":"#/components/schemas/PgCheckpointerStats"},{"type":"null"}],"description":"pg_stat_bgwriter checkpoint pressure stats"},"pg_lock_chains":{"items":{"$ref":"#/components/schemas/PgLockChain"},"type":"array","title":"Pg Lock Chains","description":"PG lock blocking chains — who is blocked by whom"},"pg_autovacuum":{"items":{"$ref":"#/components/schemas/PgAutovacuumWorker"},"type":"array","title":"Pg Autovacuum","description":"currently active autovacuum workers with progress"},"source_freshness":{"items":{"$ref":"#/components/schemas/SourceFreshnessRow"},"type":"array","title":"Source Freshness","description":"last-success staleness per enabled collector"}},"type":"object","required":["generated_at","hostname","uptime_seconds","api_uptime_seconds","overall_status","cpu","memory","swap","disk","services","database","redis","celery","top_by_cpu","top_by_memory","processes_summary","network"],"title":"ServerHealthResponse"},"ServiceState":{"properties":{"name":{"type":"string","title":"Name"},"active":{"type":"boolean","title":"Active"},"state":{"type":"string","title":"State","description":"raw systemctl is-active output"},"description":{"type":"string","title":"Description","description":"human-friendly label","default":""},"optional":{"type":"boolean","title":"Optional","description":"if True, 'inactive' state is expected and not a problem","default":false},"since_seconds":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Since Seconds","description":"seconds since the unit last entered active state"},"healthy":{"type":"boolean","title":"Healthy","description":"True if state matches expectation (active, or inactive+optional)"}},"type":"object","required":["name","active","state","healthy"],"title":"ServiceState"},"SilentSourceItem":{"properties":{"source_key":{"type":"string","title":"Source Key"},"cron":{"type":"string","title":"Cron"},"is_real_collector":{"type":"boolean","title":"Is Real Collector","description":"True if source has ever produced labels (seen in the rollup table at least once). False = service task that never writes to address_labels by design."}},"type":"object","required":["source_key","cron","is_real_collector"],"title":"SilentSourceItem"},"SkipRequest":{"properties":{"reason":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Reason"}},"type":"object","title":"SkipRequest"},"SnapshotResponse":{"properties":{"check_id":{"type":"string","title":"Check Id"},"address":{"type":"string","title":"Address"},"blockchain":{"type":"string","title":"Blockchain"},"risk_score":{"type":"integer","title":"Risk Score"},"risk_level":{"type":"string","title":"Risk Level"},"risk_categories":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Risk Categories"},"entities":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Entities"},"address_info":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Address Info"},"direct_exposure":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Direct Exposure"},"fund_flow":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Fund Flow"},"checked_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Checked At"},"deleted":{"type":"boolean","title":"Deleted","default":false}},"type":"object","required":["check_id","address","blockchain","risk_score","risk_level","risk_categories","entities"],"title":"SnapshotResponse"},"SoftDeleteCheckResponse":{"properties":{"check_id":{"type":"string","format":"uuid","title":"Check Id"},"deleted":{"type":"boolean","title":"Deleted"}},"type":"object","required":["check_id","deleted"],"title":"SoftDeleteCheckResponse"},"SourceAdditionsBars":{"properties":{"bucket":{"type":"string","title":"Bucket"},"duration":{"type":"string","title":"Duration"},"bucket_sec":{"type":"integer","title":"Bucket Sec"},"series":{"items":{"$ref":"#/components/schemas/SourceAdditionsBucket"},"type":"array","title":"Series"},"top_sources":{"items":{"type":"string"},"type":"array","title":"Top Sources","description":"Source keys ordered by total rows over the full window. Each bucket's ``by_source`` dict carries only top-N sources; everything else is folded into a single ``other`` slot."},"source_kinds":{"additionalProperties":{"type":"string"},"type":"object","title":"Source Kinds","description":"source key -> collector | heuristic | other"},"warning":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Warning","description":"Non-fatal degradation marker. Set when the query timed out or otherwise returned partial data; the UI shows it above the chart instead of an empty state."}},"type":"object","required":["bucket","duration","bucket_sec","series","top_sources"],"title":"SourceAdditionsBars"},"SourceAdditionsBucket":{"properties":{"t":{"type":"string","title":"T","description":"UTC ISO timestamp of the bucket start"},"by_source":{"additionalProperties":{"type":"integer"},"type":"object","title":"By Source"},"total":{"type":"integer","title":"Total"}},"type":"object","required":["t","by_source","total"],"title":"SourceAdditionsBucket"},"SourceFreshnessRow":{"properties":{"source_key":{"type":"string","title":"Source Key"},"display_name":{"type":"string","title":"Display Name"},"cron_expression":{"type":"string","title":"Cron Expression"},"is_enabled":{"type":"boolean","title":"Is Enabled"},"last_success_at":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Last Success At","description":"unix ts of last completed ingestion_run"},"lag_seconds":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Lag Seconds","description":"seconds since last successful run"},"expected_interval_seconds":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expected Interval Seconds","description":"estimated cycle duration parsed from cron"},"running_count":{"type":"integer","title":"Running Count","description":"currently running runs for this source","default":0},"status":{"type":"string","title":"Status","description":"'ok' | 'warn' | 'stale' | 'unknown' | 'running'"}},"type":"object","required":["source_key","display_name","cron_expression","is_enabled","status"],"title":"SourceFreshnessRow","description":"Last-success staleness for one enabled collector."},"SourceHealth":{"properties":{"generated_at":{"type":"string","format":"date-time","title":"Generated At"},"items":{"items":{"$ref":"#/components/schemas/CollectorHealth"},"type":"array","title":"Items"}},"type":"object","required":["generated_at","items"],"title":"SourceHealth"},"SourceItem":{"properties":{"source_key":{"type":"string","title":"Source Key"},"display_name":{"type":"string","title":"Display Name"},"task_name":{"type":"string","title":"Task Name"},"cron_expression":{"type":"string","title":"Cron Expression"},"is_enabled":{"type":"boolean","title":"Is Enabled"},"owner":{"type":"string","title":"Owner","description":"platform | den | <researcher-alias>. Drives grouping on /analytics."},"homepage_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Homepage Url","description":"Canonical human-facing URL of the upstream source — rendered as a link in the drawer."},"docs_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Docs Url","description":"Optional API docs / raw-data URL, distinct from the homepage."},"source_kind":{"type":"string","title":"Source Kind","description":"Classifies the source as external_feed | heuristic_collector | community_report | sanction_list | issuer_freeze. Drives the filter chips on the /sources page.","default":"external_feed"},"classification":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Classification","description":"Trust verdict from source_metadata: reputation | infra_tag | noisy | sanction. NULL means the LLM-researcher hasn't run yet for this source."},"kwargs":{"additionalProperties":true,"type":"object","title":"Kwargs"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"last_run_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Run At"},"last_run_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Run Status"},"last_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Run Id"},"runs_30d":{"type":"integer","title":"Runs 30D","default":0},"success_rate_30d":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Success Rate 30D"},"items_imported_30d":{"type":"integer","title":"Items Imported 30D","default":0},"errors_30d":{"type":"integer","title":"Errors 30D","default":0},"active_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Active Run Id","description":"If there's a currently running/paused CollectorRun of this source"},"active_run_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Active Run Status"},"active_run_items_imported":{"type":"integer","title":"Active Run Items Imported","default":0},"active_run_items_processed":{"type":"integer","title":"Active Run Items Processed","default":0},"active_run_progress_pct":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Active Run Progress Pct"},"active_run_started_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Active Run Started At"},"total_in_db":{"type":"integer","title":"Total In Db","default":0},"last_address_added_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Address Added At"}},"type":"object","required":["source_key","display_name","task_name","cron_expression","is_enabled","owner","kwargs","updated_at"],"title":"SourceItem"},"SourceMetadataCard":{"properties":{"source_key":{"type":"string","title":"Source Key"},"display_name":{"type":"string","title":"Display Name"},"homepage_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Homepage Url"},"docs_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Docs Url"},"ui_category":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ui Category"},"owner":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Owner"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"organization":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Organization"},"org_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Org Type"},"source_kind":{"type":"string","title":"Source Kind"},"inclusion_process":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Inclusion Process"},"verifier":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Verifier"},"verification_method":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Verification Method"},"listing_cost":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Listing Cost"},"anti_rug_controls":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Anti Rug Controls"},"public_review_process":{"type":"boolean","title":"Public Review Process"},"coverage_chains":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Coverage Chains"},"coverage_scope":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Coverage Scope"},"categories_emitted":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Categories Emitted"},"data_source_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Data Source Url"},"data_format":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Data Format"},"data_license":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Data License"},"classification":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Classification"},"classification_rationale":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Classification Rationale"},"signal_strength":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Signal Strength"},"fp_risk_if_trusted":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Fp Risk If Trusted"},"conflicts_of_interest":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Conflicts Of Interest"},"citations":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Citations"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"researched_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Researched At"},"researched_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Researched By"},"llm_review_status":{"type":"string","title":"Llm Review Status"},"llm_review_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Llm Review At"},"llm_review_notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Llm Review Notes"}},"type":"object","required":["source_key","display_name","source_kind","public_review_process","citations","llm_review_status"],"title":"SourceMetadataCard","description":"Full research-card from ``source_metadata`` for the admin\npopover/modal in /sources and /quarantine.\n\nSee ``docs/methodology/13_KNOWN_INFRA.md`` for field semantics."},"SourcesHealthResponse":{"properties":{"sched_enabled":{"type":"integer","title":"Sched Enabled"},"sched_disabled":{"type":"integer","title":"Sched Disabled"},"sched_total":{"type":"integer","title":"Sched Total"},"sched_enabled_pct":{"type":"string","title":"Sched Enabled Pct"},"collected_new_24h":{"type":"integer","title":"Collected New 24H"},"ran_no_new_24h":{"type":"integer","title":"Ran No New 24H"},"reaper_failed_24h":{"type":"integer","title":"Reaper Failed 24H"},"real_failed_24h":{"type":"integer","title":"Real Failed 24H"},"currently_running":{"type":"integer","title":"Currently Running"},"active_sources_24h":{"type":"integer","title":"Active Sources 24H"},"collected_new_24h_pct":{"type":"string","title":"Collected New 24H Pct"},"ran_no_new_24h_pct":{"type":"string","title":"Ran No New 24H Pct"},"reaper_failed_24h_pct":{"type":"string","title":"Reaper Failed 24H Pct"},"real_failed_24h_pct":{"type":"string","title":"Real Failed 24H Pct"},"active_sources_24h_pct":{"type":"string","title":"Active Sources 24H Pct"},"collected_new_24h_trend":{"$ref":"#/components/schemas/HealthTrend"},"reaper_failed_24h_trend":{"$ref":"#/components/schemas/HealthTrend"},"real_failed_24h_trend":{"$ref":"#/components/schemas/HealthTrend"},"active_sources_24h_trend":{"$ref":"#/components/schemas/HealthTrend"},"labels_24h":{"type":"integer","title":"Labels 24H"},"labels_24h_trend":{"$ref":"#/components/schemas/HealthTrend"},"with_labels_7d":{"type":"integer","title":"With Labels 7D"},"with_labels_7d_pct":{"type":"string","title":"With Labels 7D Pct"},"with_labels_7d_trend":{"$ref":"#/components/schemas/HealthTrend"},"labels_7d":{"type":"integer","title":"Labels 7D"},"labels_7d_trend":{"$ref":"#/components/schemas/HealthTrend"},"rollup_tracked":{"type":"integer","title":"Rollup Tracked"},"fresh_24h":{"type":"integer","title":"Fresh 24H"},"fresh_7d":{"type":"integer","title":"Fresh 7D"},"fresh_30d":{"type":"integer","title":"Fresh 30D"},"stale_30d_plus":{"type":"integer","title":"Stale 30D Plus"},"fresh_24h_pct":{"type":"string","title":"Fresh 24H Pct"},"stale_30d_plus_pct":{"type":"string","title":"Stale 30D Plus Pct"},"silent_sources":{"items":{"$ref":"#/components/schemas/SilentSourceItem"},"type":"array","title":"Silent Sources"},"silent_total":{"type":"integer","title":"Silent Total"},"silent_real_collectors_count":{"type":"integer","title":"Silent Real Collectors Count"},"silent_service_tasks_count":{"type":"integer","title":"Silent Service Tasks Count"},"silent_real_pct":{"type":"string","title":"Silent Real Pct"}},"type":"object","required":["sched_enabled","sched_disabled","sched_total","sched_enabled_pct","collected_new_24h","ran_no_new_24h","reaper_failed_24h","real_failed_24h","currently_running","active_sources_24h","collected_new_24h_pct","ran_no_new_24h_pct","reaper_failed_24h_pct","real_failed_24h_pct","active_sources_24h_pct","collected_new_24h_trend","reaper_failed_24h_trend","real_failed_24h_trend","active_sources_24h_trend","labels_24h","labels_24h_trend","with_labels_7d","with_labels_7d_pct","with_labels_7d_trend","labels_7d","labels_7d_trend","rollup_tracked","fresh_24h","fresh_7d","fresh_30d","stale_30d_plus","fresh_24h_pct","stale_30d_plus_pct","silent_sources","silent_total","silent_real_collectors_count","silent_service_tasks_count","silent_real_pct"],"title":"SourcesHealthResponse"},"SourcesResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/SourceItem"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"SourcesResponse"},"StartCheckoutRequest":{"properties":{"plan_code":{"type":"string","maxLength":64,"minLength":2,"title":"Plan Code"},"provider":{"type":"string","enum":["stripe","yoomoney","nowpayments","robokassa"],"title":"Provider","default":"nowpayments"},"currency":{"type":"string","enum":["RUB","USD"],"title":"Currency","default":"RUB"},"return_url_base":{"anyOf":[{"type":"string","maxLength":300},{"type":"null"}],"title":"Return Url Base"},"payment_flow":{"type":"string","enum":["crypto","card"],"title":"Payment Flow","default":"crypto"},"lang":{"type":"string","enum":["ru","en"],"title":"Lang","default":"ru"}},"type":"object","required":["plan_code"],"title":"StartCheckoutRequest"},"StartCheckoutResponse":{"properties":{"payment_id":{"type":"string","title":"Payment Id"},"plan_code":{"type":"string","title":"Plan Code"},"provider":{"type":"string","title":"Provider"},"amount":{"type":"string","title":"Amount"},"currency":{"type":"string","title":"Currency"},"redirect_url":{"type":"string","title":"Redirect Url"},"expires_at":{"type":"string","format":"date-time","title":"Expires At"}},"type":"object","required":["payment_id","plan_code","provider","amount","currency","redirect_url","expires_at"],"title":"StartCheckoutResponse"},"StatsResponse":{"properties":{"total_entities":{"type":"integer","title":"Total Entities"},"total_addresses":{"type":"integer","title":"Total Addresses"},"total_checks":{"type":"integer","title":"Total Checks"},"last_ingestion":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Ingestion"},"addresses_by_category":{"additionalProperties":{"type":"integer"},"type":"object","title":"Addresses By Category","default":{}}},"type":"object","required":["total_entities","total_addresses","total_checks"],"title":"StatsResponse"},"StuckPgConnection":{"properties":{"pid":{"type":"integer","title":"Pid"},"state":{"type":"string","title":"State"},"wait_event_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Wait Event Type"},"wait_event":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Wait Event"},"duration_seconds":{"type":"integer","title":"Duration Seconds"},"query":{"type":"string","title":"Query","description":"first 150 chars of the last query"}},"type":"object","required":["pid","state","duration_seconds","query"],"title":"StuckPgConnection","description":"A PostgreSQL connection that looks stuck:\n- active query running > 5 minutes, or\n- idle in transaction > 10 minutes, or\n- idle in transaction (aborted) > 5 minutes."},"SubmitReportRequest":{"properties":{"address":{"type":"string","maxLength":128,"minLength":4,"title":"Address"},"blockchain":{"type":"string","maxLength":20,"minLength":1,"title":"Blockchain"},"category":{"type":"string","enum":["phishing","scam","pig_butchering","drainer","fake_exchange","impersonation","ransomware","hack","other"],"title":"Category"},"description":{"type":"string","maxLength":2000,"minLength":10,"title":"Description"},"incident_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Incident At"},"loss_usd":{"anyOf":[{"type":"number","minimum":0.0},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Loss Usd"},"evidence_urls":{"items":{"type":"string"},"type":"array","maxItems":5,"title":"Evidence Urls"},"contact_email":{"anyOf":[{"type":"string","maxLength":255,"pattern":"^[^@\\s]+@[^@\\s]+\\.[^@\\s]+$"},{"type":"null"}],"title":"Contact Email"},"is_anonymous":{"type":"boolean","title":"Is Anonymous","default":false}},"type":"object","required":["address","blockchain","category","description"],"title":"SubmitReportRequest"},"SubmitReportResponse":{"properties":{"report_id":{"type":"string","format":"uuid","title":"Report Id"},"status":{"type":"string","title":"Status"},"message":{"type":"string","title":"Message"}},"type":"object","required":["report_id","status","message"],"title":"SubmitReportResponse"},"SwapInfo":{"properties":{"total_bytes":{"type":"integer","title":"Total Bytes"},"used_bytes":{"type":"integer","title":"Used Bytes"},"percent":{"type":"number","title":"Percent"}},"type":"object","required":["total_bytes","used_bytes","percent"],"title":"SwapInfo"},"TableSize":{"properties":{"schema_name":{"type":"string","title":"Schema Name"},"table_name":{"type":"string","title":"Table Name"},"total_bytes":{"type":"integer","title":"Total Bytes"},"table_bytes":{"type":"integer","title":"Table Bytes"},"index_bytes":{"type":"integer","title":"Index Bytes"}},"type":"object","required":["schema_name","table_name","total_bytes","table_bytes","index_bytes"],"title":"TableSize"},"TimelinePoint":{"properties":{"date":{"type":"string","title":"Date"},"count":{"type":"integer","title":"Count"}},"type":"object","required":["date","count"],"title":"TimelinePoint"},"ToggleResponse":{"properties":{"id":{"type":"string","title":"Id"},"is_active":{"type":"boolean","title":"Is Active"}},"type":"object","required":["id","is_active"],"title":"ToggleResponse"},"TopAddressItem":{"properties":{"address":{"type":"string","title":"Address"},"blockchain":{"type":"string","title":"Blockchain"},"count":{"type":"integer","title":"Count"},"max_risk":{"type":"integer","title":"Max Risk"}},"type":"object","required":["address","blockchain","count","max_risk"],"title":"TopAddressItem"},"TopAddresses":{"properties":{"days":{"type":"integer","title":"Days"},"items":{"items":{"$ref":"#/components/schemas/TopAddressItem"},"type":"array","title":"Items"}},"type":"object","required":["days","items"],"title":"TopAddresses"},"TopProcess":{"properties":{"pid":{"type":"integer","title":"Pid"},"name":{"type":"string","title":"Name"},"cpu_percent":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Cpu Percent"},"rss_bytes":{"type":"integer","title":"Rss Bytes"},"service":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Service","description":"systemd unit this pid belongs to (parsed from /proc/[pid]/cgroup). Null for user-session and kernel processes — they aren't attributable to a service."}},"type":"object","required":["pid","name","rss_bytes"],"title":"TopProcess"},"TopQueryStat":{"properties":{"query":{"type":"string","title":"Query"},"calls":{"type":"integer","title":"Calls"},"total_exec_seconds":{"type":"number","title":"Total Exec Seconds"},"mean_exec_seconds":{"type":"number","title":"Mean Exec Seconds"},"rows":{"type":"integer","title":"Rows"}},"type":"object","required":["query","calls","total_exec_seconds","mean_exec_seconds","rows"],"title":"TopQueryStat"},"TopUserItem":{"properties":{"user":{"type":"string","title":"User"},"count":{"type":"integer","title":"Count"},"avg_risk":{"type":"number","title":"Avg Risk"}},"type":"object","required":["user","count","avg_risk"],"title":"TopUserItem"},"TopUsers":{"properties":{"days":{"type":"integer","title":"Days"},"items":{"items":{"$ref":"#/components/schemas/TopUserItem"},"type":"array","title":"Items"}},"type":"object","required":["days","items"],"title":"TopUsers"},"TranslateRequest":{"properties":{"text":{"type":"string","title":"Text","description":"Markdown text to translate (English → Russian)"},"file_id":{"type":"string","title":"File Id","description":"Logical doc file ID, e.g. methodology/README"}},"type":"object","required":["text","file_id"],"title":"TranslateRequest"},"TranslateResponse":{"properties":{"translated":{"type":"string","title":"Translated"},"cached":{"type":"boolean","title":"Cached","default":false}},"type":"object","required":["translated"],"title":"TranslateResponse"},"TrendBucket":{"properties":{"date":{"type":"string","title":"Date"},"tx_count":{"type":"integer","title":"Tx Count","default":0},"percentage":{"type":"number","title":"Percentage","default":0.0}},"type":"object","required":["date"],"title":"TrendBucket"},"TriggerResponse":{"properties":{"queued":{"type":"boolean","title":"Queued"},"task_name":{"type":"string","title":"Task Name"},"source_key":{"type":"string","title":"Source Key"},"message":{"type":"string","title":"Message"}},"type":"object","required":["queued","task_name","source_key","message"],"title":"TriggerResponse"},"TronBackfillBudget":{"properties":{"source":{"type":"string","title":"Source"},"spent_today":{"type":"integer","title":"Spent Today"},"daily_cap":{"type":"integer","title":"Daily Cap"},"remaining":{"type":"integer","title":"Remaining"},"pct_used":{"type":"number","title":"Pct Used"},"exhausted":{"type":"boolean","title":"Exhausted"}},"type":"object","required":["source","spent_today","daily_cap","remaining","pct_used","exhausted"],"title":"TronBackfillBudget"},"TronBackfillProgress":{"properties":{"rows_total":{"type":"integer","title":"Rows Total","description":"Total Tron AddressLabel rows in scope."},"rows_stale":{"type":"integer","title":"Rows Stale","description":"Rows that haven't been enriched in the last stale_after_days window — what the next batch will pick from."},"rows_enriched_24h":{"type":"integer","title":"Rows Enriched 24H","description":"Rows whose ``last_enriched_at`` falls inside the last 24h."},"enriched_pct":{"type":"number","title":"Enriched Pct","description":"``rows_total - rows_stale`` / ``rows_total`` as a percentage. 0.0 when ``rows_total == 0``."},"eta_hours_at_24h_pace":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Eta Hours At 24H Pace","description":"Hours until ``rows_stale`` reaches zero at the last 24-hour enrichment rate. None when rate is zero."},"budgets":{"items":{"$ref":"#/components/schemas/TronBackfillBudget"},"type":"array","title":"Budgets","description":"Per-source daily quota state (TronScan + TronGrid)."},"next_run_min":{"type":"integer","title":"Next Run Min","description":"Beat cadence in minutes — currently 5."}},"type":"object","required":["rows_total","rows_stale","rows_enriched_24h","enriched_pct","eta_hours_at_24h_pace","budgets","next_run_min"],"title":"TronBackfillProgress"},"TxDirection":{"properties":{"incoming":{"type":"integer","title":"Incoming","default":0},"outgoing":{"type":"integer","title":"Outgoing","default":0},"internal":{"type":"integer","title":"Internal","default":0}},"type":"object","title":"TxDirection"},"TxListPayload":{"properties":{"chain":{"type":"string","title":"Chain"},"address":{"type":"string","title":"Address"},"transactions":{"items":{"$ref":"#/components/schemas/TxRecordPayload"},"type":"array","title":"Transactions"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"},"total_known":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Known"},"source":{"type":"string","title":"Source"},"truncated":{"type":"boolean","title":"Truncated","default":false}},"type":"object","required":["chain","address","transactions","next_cursor","total_known","source"],"title":"TxListPayload"},"TxRecordPayload":{"properties":{"tx_hash":{"type":"string","title":"Tx Hash"},"block_timestamp":{"type":"string","title":"Block Timestamp"},"counterparty":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Counterparty"},"direction":{"type":"string","enum":["in","out"],"title":"Direction"},"value_native":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Value Native"},"asset":{"type":"string","title":"Asset"},"token_contract":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token Contract"},"token_value":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token Value"},"source":{"type":"string","title":"Source","default":""},"risk_score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Risk Score"},"risk_categories":{"items":{"type":"string"},"type":"array","title":"Risk Categories","default":[]},"counterparty_label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Counterparty Label"},"counterparty_brand_group":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Counterparty Brand Group"},"counterparty_brand_group_logo_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Counterparty Brand Group Logo Url"},"counterparty_kind":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Counterparty Kind"},"method_decoded":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Method Decoded"},"method_selector":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Method Selector"},"value_usd_at_time":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Value Usd At Time"},"price_usd_at_time":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Price Usd At Time"}},"type":"object","required":["tx_hash","block_timestamp","counterparty","direction","value_native","asset"],"title":"TxRecordPayload"},"UnmappedContext":{"properties":{"sibling_resolved_count":{"type":"integer","title":"Sibling Resolved Count","description":"How many aliases already exist for the same source_key"},"sibling_dominant_slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sibling Dominant Slug","description":"The most-common canonical_slug among siblings (heuristic suggestion)"},"sibling_dominant_share":{"type":"number","title":"Sibling Dominant Share","default":0.0},"similar_unmapped":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Similar Unmapped","description":"Other unmapped rows whose external_value contains the same tokens"}},"type":"object","required":["sibling_resolved_count"],"title":"UnmappedContext","description":"Context to help reviewer decide. Sibling counts, similar values, etc."},"UnmappedDetail":{"properties":{"id":{"type":"integer","title":"Id"},"source_key":{"type":"string","title":"Source Key"},"external_value":{"type":"string","title":"External Value"},"status":{"type":"string","title":"Status"},"occurrence_count":{"type":"integer","title":"Occurrence Count"},"first_seen_at":{"type":"string","format":"date-time","title":"First Seen At"},"last_seen_at":{"type":"string","format":"date-time","title":"Last Seen At"},"sample_address":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sample Address"},"sample_blockchain":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sample Blockchain"},"sample_context":{"additionalProperties":true,"type":"object","title":"Sample Context"},"llm_decision_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Llm Decision Id"},"llm_suggested_slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Llm Suggested Slug"},"llm_confidence":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Llm Confidence"},"context":{"$ref":"#/components/schemas/UnmappedContext"}},"type":"object","required":["id","source_key","external_value","status","occurrence_count","first_seen_at","last_seen_at","sample_address","sample_blockchain","sample_context","context"],"title":"UnmappedDetail"},"UpdateCategoryRequest":{"properties":{"name":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"risk_weight":{"anyOf":[{"type":"integer","maximum":100.0,"minimum":0.0},{"type":"null"}],"title":"Risk Weight"},"parent_slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Slug"},"color":{"anyOf":[{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},{"type":"null"}],"title":"Color"}},"type":"object","title":"UpdateCategoryRequest"},"UpdateScheduleRequest":{"properties":{"cron_expression":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Cron Expression"},"is_enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Enabled"},"display_name":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Display Name"},"owner":{"anyOf":[{"type":"string","maxLength":50},{"type":"null"}],"title":"Owner","description":"Must be non-empty alphanumeric/underscore. Common values: platform, den, <researcher-alias>."}},"type":"object","title":"UpdateScheduleRequest"},"UserCreate":{"properties":{"name":{"type":"string","maxLength":200,"minLength":1,"title":"Name"},"email":{"type":"string","maxLength":200,"minLength":3,"pattern":"^[^@\\s]+@[^@\\s]+\\.[^@\\s]+$","title":"Email"},"role":{"type":"string","title":"Role","default":"user"},"password":{"anyOf":[{"type":"string","maxLength":200,"minLength":8},{"type":"null"}],"title":"Password"}},"type":"object","required":["name","email"],"title":"UserCreate"},"UserRow":{"properties":{"id":{"type":"string","title":"Id"},"kind":{"type":"string","enum":["admin","account"],"title":"Kind","default":"admin"},"name":{"type":"string","title":"Name"},"email":{"type":"string","title":"Email"},"role":{"type":"string","title":"Role"},"is_active":{"type":"boolean","title":"Is Active"},"has_password":{"type":"boolean","title":"Has Password"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"api_keys_count":{"type":"integer","title":"Api Keys Count","default":0},"plan":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Plan"},"locale":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Locale"},"wallet_address":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Wallet Address"},"last_login_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Login At"},"pack_credits_remaining":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Pack Credits Remaining"},"active_subscription_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Active Subscription Code"}},"type":"object","required":["id","name","email","role","is_active","has_password","created_at","updated_at"],"title":"UserRow"},"UserUpdate":{"properties":{"name":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Name"},"email":{"anyOf":[{"type":"string","pattern":"^[^@\\s]+@[^@\\s]+\\.[^@\\s]+$"},{"type":"null"}],"title":"Email"},"role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role"},"password":{"anyOf":[{"type":"string","maxLength":200,"minLength":8},{"type":"null"}],"title":"Password"}},"type":"object","title":"UserUpdate"},"VacuumStat":{"properties":{"schema_name":{"type":"string","title":"Schema Name"},"table_name":{"type":"string","title":"Table Name"},"live_tuples":{"type":"integer","title":"Live Tuples"},"dead_tuples":{"type":"integer","title":"Dead Tuples"},"dead_ratio_percent":{"type":"number","title":"Dead Ratio Percent"},"last_vacuum":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Vacuum"},"last_autovacuum":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Autovacuum"},"last_analyze":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Analyze"}},"type":"object","required":["schema_name","table_name","live_tuples","dead_tuples","dead_ratio_percent"],"title":"VacuumStat"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"VaspMatch":{"properties":{"entity_id":{"type":"string","title":"Entity Id"},"name":{"type":"string","title":"Name"},"category":{"type":"string","title":"Category"},"status":{"type":"string","title":"Status"},"address_count":{"type":"integer","title":"Address Count"},"risk_score_max":{"type":"integer","title":"Risk Score Max"}},"type":"object","required":["entity_id","name","category","status","address_count","risk_score_max"],"title":"VaspMatch"},"VaspSearchResponse":{"properties":{"query":{"type":"string","title":"Query"},"total":{"type":"integer","title":"Total"},"matches":{"items":{"$ref":"#/components/schemas/VaspMatch"},"type":"array","title":"Matches"}},"type":"object","required":["query","total","matches"],"title":"VaspSearchResponse"},"WalletLinkRequest":{"properties":{"message":{"type":"string","maxLength":2048,"minLength":20,"title":"Message"},"signature":{"type":"string","maxLength":300,"minLength":10,"title":"Signature"}},"type":"object","required":["message","signature"],"title":"WalletLinkRequest"},"WalletLinkResponse":{"properties":{"account_id":{"type":"string","title":"Account Id"},"wallet_address":{"type":"string","title":"Wallet Address"}},"type":"object","required":["account_id","wallet_address"],"title":"WalletLinkResponse"},"WalletNonceRequest":{"properties":{"address":{"type":"string","maxLength":64,"minLength":40,"title":"Address"}},"type":"object","required":["address"],"title":"WalletNonceRequest"},"WalletNonceResponse":{"properties":{"message":{"type":"string","title":"Message"},"nonce":{"type":"string","title":"Nonce"},"issued_at":{"type":"string","title":"Issued At"},"expiration_time":{"type":"string","title":"Expiration Time"}},"type":"object","required":["message","nonce","issued_at","expiration_time"],"title":"WalletNonceResponse"},"WalletVerifyRequest":{"properties":{"message":{"type":"string","maxLength":2048,"minLength":20,"title":"Message"},"signature":{"type":"string","maxLength":300,"minLength":10,"title":"Signature"}},"type":"object","required":["message","signature"],"title":"WalletVerifyRequest"},"WalletVerifyResponse":{"properties":{"account_id":{"type":"string","title":"Account Id"},"wallet_address":{"type":"string","title":"Wallet Address"},"is_new_account":{"type":"boolean","title":"Is New Account"}},"type":"object","required":["account_id","wallet_address","is_new_account"],"title":"WalletVerifyResponse"},"WebhookAck":{"properties":{"received":{"type":"boolean","title":"Received","default":true},"applied":{"type":"boolean","title":"Applied"}},"type":"object","required":["applied"],"title":"WebhookAck"},"WorkerItem":{"properties":{"name":{"type":"string","title":"Name"},"concurrency":{"type":"integer","title":"Concurrency"},"active_count":{"type":"integer","title":"Active Count"},"reserved_count":{"type":"integer","title":"Reserved Count"},"uptime_sec":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Uptime Sec"},"queues":{"items":{"type":"string"},"type":"array","title":"Queues","description":"Queue names this worker subscribes to. Reflects -Q on the celery command line (e.g. ['celery', 'heuristics'] for the main worker, ['low_priority'] for the stats worker)."},"active":{"items":{"$ref":"#/components/schemas/ActiveTaskItem"},"type":"array","title":"Active"},"reserved":{"items":{"$ref":"#/components/schemas/ReservedTaskItem"},"type":"array","title":"Reserved"}},"type":"object","required":["name","concurrency","active_count","reserved_count","active","reserved"],"title":"WorkerItem"},"WorkersResponse":{"properties":{"workers":{"items":{"$ref":"#/components/schemas/WorkerItem"},"type":"array","title":"Workers"},"total_concurrency":{"type":"integer","title":"Total Concurrency"},"total_active":{"type":"integer","title":"Total Active"},"total_reserved":{"type":"integer","title":"Total Reserved"}},"type":"object","required":["workers","total_concurrency","total_active","total_reserved"],"title":"WorkersResponse"},"WorkspaceStats":{"properties":{"pending":{"type":"integer","title":"Pending"},"llm_queued":{"type":"integer","title":"Llm Queued"},"llm_resolved":{"type":"integer","title":"Llm Resolved"},"human_queued":{"type":"integer","title":"Human Queued"},"resolved_today":{"type":"integer","title":"Resolved Today"},"resolved_today_by_me":{"type":"integer","title":"Resolved Today By Me"},"total_unmapped":{"type":"integer","title":"Total Unmapped"}},"type":"object","required":["pending","llm_queued","llm_resolved","human_queued","resolved_today","resolved_today_by_me","total_unmapped"],"title":"WorkspaceStats"},"_ActionResult":{"properties":{"requested":{"type":"integer","title":"Requested"},"affected":{"type":"integer","title":"Affected"}},"type":"object","required":["requested","affected"],"title":"_ActionResult"},"_BucketCount":{"properties":{"key":{"type":"string","title":"Key"},"count":{"type":"integer","title":"Count"}},"type":"object","required":["key","count"],"title":"_BucketCount"},"_IdsBody":{"properties":{"ids":{"items":{"type":"integer"},"type":"array","maxItems":50000,"minItems":1,"title":"Ids"}},"type":"object","required":["ids"],"title":"_IdsBody"},"_IdsListResponse":{"properties":{"total":{"type":"integer","title":"Total"},"capped":{"type":"boolean","title":"Capped"},"ids":{"items":{"type":"integer"},"type":"array","title":"Ids"}},"type":"object","required":["total","capped","ids"],"title":"_IdsListResponse","description":"All matching ids for the given filters. Capped at ``_BATCH_MAX``\nto keep the JSON payload bounded — admin should narrow filters if\nthey hit the cap."},"_PurgeBody":{"properties":{"ids":{"items":{"type":"integer"},"type":"array","maxItems":50000,"minItems":1,"title":"Ids"},"confirm":{"type":"string","title":"Confirm","description":"Must equal 'DELETE PERMANENTLY' to acknowledge irreversibility."}},"type":"object","required":["ids","confirm"],"title":"_PurgeBody"},"_SourceClassEntry":{"properties":{"source":{"type":"string","title":"Source"},"cls":{"type":"string","title":"Cls"},"count":{"type":"integer","title":"Count"}},"type":"object","required":["source","cls","count"],"title":"_SourceClassEntry"},"_TimelinePoint":{"properties":{"day":{"type":"string","title":"Day"},"count":{"type":"integer","title":"Count"}},"type":"object","required":["day","count"],"title":"_TimelinePoint"},"src__admin__api__v2__check__HistoryResponse":{"properties":{"address":{"type":"string","title":"Address"},"blockchain":{"type":"string","title":"Blockchain"},"total":{"type":"integer","title":"Total"},"items":{"items":{"$ref":"#/components/schemas/HistoryItem"},"type":"array","title":"Items"}},"type":"object","required":["address","blockchain","total","items"],"title":"HistoryResponse"},"src__admin__api__v2__heuristics__HistoryPoint":{"properties":{"day":{"type":"string","format":"date-time","title":"Day"},"runs":{"type":"integer","title":"Runs"},"labels_created":{"type":"integer","title":"Labels Created"},"errors":{"type":"integer","title":"Errors"}},"type":"object","required":["day","runs","labels_created","errors"],"title":"HistoryPoint"},"src__admin__api__v2__server_health__HistoryPoint":{"properties":{"ts":{"type":"number","title":"Ts"},"cpu":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Cpu"},"memory":{"type":"number","title":"Memory"},"disk":{"type":"number","title":"Disk"},"swap":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Swap"},"load_1m":{"type":"number","title":"Load 1M"},"db_connections":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Db Connections"},"redis_clients":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Redis Clients"},"celery_active":{"type":"integer","title":"Celery Active"},"celery_reserved":{"type":"integer","title":"Celery Reserved"},"net_rx_bps":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Net Rx Bps"},"net_tx_bps":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Net Tx Bps"}},"type":"object","required":["ts","cpu","memory","disk","swap","load_1m","db_connections","redis_clients","celery_active","celery_reserved"],"title":"HistoryPoint"},"src__admin__api__v2__server_health__HistoryResponse":{"properties":{"points":{"items":{"$ref":"#/components/schemas/src__admin__api__v2__server_health__HistoryPoint"},"type":"array","title":"Points"},"minutes":{"type":"integer","title":"Minutes"}},"type":"object","required":["points","minutes"],"title":"HistoryResponse"}},"securitySchemes":{"ApiKeyHeader":{"type":"apiKey","in":"header","name":"X-API-Key"}}}}