[
  {
    "anchor": "parse_error",
    "http": 200,
    "code": -32700,
    "reason": "parse_error",
    "message": "parse error",
    "message_zh": "JSON 解析错误，请求体不是合法的 JSON 语法",
    "billed": false,
    "retryable": false,
    "retry_after": null,
    "retry_after_zh": null,
    "action": "Verify valid JSON syntax in request body before sending.",
    "action_zh": "核实请求体为合法的 JSON 语法后再发送。",
    "docs_url": "https://docs.blockvectra.com/en/errors/#parse_error",
    "related_url": "https://docs.blockvectra.com/en/api/json-rpc/",
    "category": "rpc"
  },
  {
    "anchor": "invalid_request",
    "http": 200,
    "code": -32600,
    "reason": "invalid_request",
    "message": "invalid request",
    "message_zh": "JSON-RPC 请求格式不合法、成员名存在二义性或不是合法的对象/数组",
    "billed": false,
    "retryable": false,
    "retry_after": null,
    "retry_after_zh": null,
    "action": "Inspect request structure; verify jsonrpc: '2.0', id, and method fields before resending.",
    "action_zh": "检查请求体结构；修正 jsonrpc: '2.0'、id 与 method 字段后再发送。",
    "docs_url": "https://docs.blockvectra.com/en/errors/#invalid_request",
    "related_url": "https://docs.blockvectra.com/en/api/json-rpc/",
    "category": "rpc"
  },
  {
    "anchor": "batch_too_large",
    "http": 200,
    "code": -32600,
    "reason": "batch_too_large",
    "message": "batch too large: max <N> calls",
    "message_zh": "批量请求包含的调用数超过单批上限",
    "billed": false,
    "retryable": false,
    "retry_after": null,
    "retry_after_zh": null,
    "action": "Split batch into smaller batches meeting the max call limit indicated in error data.",
    "action_zh": "将批量请求拆分为更小的批次，使单批调用数在上限以内。",
    "docs_url": "https://docs.blockvectra.com/en/errors/#batch_too_large",
    "related_url": "https://docs.blockvectra.com/en/api/json-rpc/",
    "category": "rpc"
  },
  {
    "anchor": "method_not_allowed",
    "http": 200,
    "code": -32601,
    "reason": "method_not_allowed",
    "message": "method not available: <method>",
    "message_zh": "方法在该链上不可用或已被策略禁用",
    "billed": false,
    "retryable": false,
    "retry_after": null,
    "retry_after_zh": null,
    "action": "Check methods.allow and methods.deny in GET /v1/chains for supported methods.",
    "action_zh": "通过 GET /v1/chains 查询该链的 methods.allow 与 methods.deny 策略确认支持的方法。",
    "docs_url": "https://docs.blockvectra.com/en/errors/#method_not_allowed",
    "related_url": "https://docs.blockvectra.com/en/api/json-rpc/",
    "category": "rpc"
  },
  {
    "anchor": "unknown_chain",
    "http": 404,
    "code": -32600,
    "reason": "unknown_chain",
    "message": "unknown chain",
    "message_zh": "请求的链标识不存在或不受支持",
    "billed": false,
    "retryable": false,
    "retry_after": null,
    "retry_after_zh": null,
    "action": "Check available chains via GET /v1/chains or the list_chains tool; verify URL path.",
    "action_zh": "通过 GET /v1/chains 或 list_chains 工具获取受支持的链列表，核对 URL 路径中的链名。",
    "docs_url": "https://docs.blockvectra.com/en/errors/#unknown_chain",
    "related_url": "https://docs.blockvectra.com/en/api/json-rpc/",
    "category": "rpc"
  },
  {
    "anchor": "logs_range_too_large",
    "http": 200,
    "code": -32602,
    "reason": "logs_range_too_large",
    "message": "eth_getLogs block range too large: max <N> blocks",
    "message_zh": "eth_getLogs 查询的区块跨度超过该链允许的上限",
    "billed": false,
    "retryable": false,
    "retry_after": null,
    "retry_after_zh": null,
    "action": "Narrow query block range to within max_logs_block_range indicated in GET /v1/chains.",
    "action_zh": "缩窄日志查询的区块范围至 GET /v1/chains 中的 max_logs_block_range 上限以内。",
    "docs_url": "https://docs.blockvectra.com/en/errors/#logs_range_too_large",
    "related_url": "https://docs.blockvectra.com/en/api/json-rpc/",
    "category": "rpc"
  },
  {
    "anchor": "invalid_params",
    "http": 200,
    "code": -32602,
    "reason": "invalid_params",
    "message": "tracer not allowed",
    "message_zh": "方法参数不合法（如不支持的 tracer 或超时时间超限）",
    "billed": false,
    "retryable": false,
    "retry_after": null,
    "retry_after_zh": null,
    "action": "Adjust method params; check supported tracers and timeout limits for the chain.",
    "action_zh": "调整方法参数；核对该链支持的 tracer 列表与超时限制。",
    "docs_url": "https://docs.blockvectra.com/en/errors/#invalid_params",
    "related_url": "https://docs.blockvectra.com/en/api/json-rpc/",
    "category": "rpc"
  },
  {
    "anchor": "node_syncing",
    "http": 200,
    "code": -32010,
    "reason": "node_syncing",
    "message": "node is syncing; calls are temporarily unavailable",
    "message_zh": "底层链节点正在同步中，调用暂时不可用",
    "billed": false,
    "retryable": true,
    "retry_after": "Wait a few seconds and retry",
    "retry_after_zh": "等待数秒后重试",
    "action": "Wait for node synchronization to finish, or check GET /v1/status.",
    "action_zh": "等待节点同步完成，或查询 GET /v1/status 查看状态。",
    "docs_url": "https://docs.blockvectra.com/en/errors/#node_syncing",
    "related_url": "https://docs.blockvectra.com/en/api/json-rpc/",
    "category": "rpc"
  },
  {
    "anchor": "state_window",
    "http": 200,
    "code": -32011,
    "reason": "state_window",
    "message": "historical state is not available beyond the most recent <N> blocks",
    "message_zh": "历史状态超出节点保留的最长区块窗口",
    "billed": false,
    "retryable": false,
    "retry_after": null,
    "retry_after_zh": null,
    "action": "Query blocks within state_window_blocks as reported in GET /v1/chains, or use Data API for historical data.",
    "action_zh": "仅查询 GET /v1/chains 中 state_window_blocks 范围内的区块，或改用 Data API 查询历史数据。",
    "docs_url": "https://docs.blockvectra.com/en/errors/#state_window",
    "related_url": "https://docs.blockvectra.com/en/api/json-rpc/",
    "category": "rpc"
  },
  {
    "anchor": "not_found",
    "http": 200,
    "code": -32000,
    "reason": "not_found",
    "message": "transaction not found",
    "message_zh": "请求的交易、区块或资源不存在",
    "billed": false,
    "retryable": true,
    "retry_after": "Retry after a few seconds if recently broadcast or mined",
    "retry_after_zh": "若刚广播或刚出块，等待数秒后重试",
    "action": "If newly submitted or mined, wait for propagation and retry; otherwise check block number or hash.",
    "action_zh": "若为刚广播的交易或最新出块，等待链同步后重试；否则核对区块号或哈希值。",
    "docs_url": "https://docs.blockvectra.com/en/errors/#not_found",
    "related_url": "https://docs.blockvectra.com/en/api/json-rpc/",
    "category": "rpc"
  },
  {
    "anchor": "response_too_large",
    "http": 200,
    "code": -32000,
    "reason": "response_too_large",
    "message": "upstream response too large",
    "message_zh": "底层节点返回的响应体超过服务端大小上限",
    "billed": false,
    "retryable": false,
    "retry_after": null,
    "retry_after_zh": null,
    "action": "Narrow query parameters (e.g. reduce block range in eth_getLogs or request smaller traces).",
    "action_zh": "缩窄查询范围（如缩小 eth_getLogs 区块区间或减少 trace 请求范围）。",
    "docs_url": "https://docs.blockvectra.com/en/errors/#response_too_large",
    "related_url": "https://docs.blockvectra.com/en/api/json-rpc/",
    "category": "rpc"
  },
  {
    "anchor": "overloaded",
    "http": 200,
    "code": -32005,
    "reason": "overloaded",
    "message": "service overloaded, retry later",
    "message_zh": "服务暂时过载",
    "billed": false,
    "retryable": true,
    "retry_after": "Wait a few seconds and retry with exponential backoff",
    "retry_after_zh": "等待数秒并使用指数退避重试",
    "action": "Back off with jitter and retry request.",
    "action_zh": "结合抖动进行退避后重试请求。",
    "docs_url": "https://docs.blockvectra.com/en/errors/#overloaded",
    "related_url": "https://docs.blockvectra.com/en/api/json-rpc/",
    "category": "rpc"
  },
  {
    "anchor": "key_rate_limit",
    "http": 429,
    "code": -32005,
    "reason": "key_rate_limit",
    "message": "rate limit exceeded",
    "message_zh": "API key 的计算单元（CU）速率上限超限",
    "billed": false,
    "retryable": true,
    "retry_after": "Honor Retry-After header (seconds)",
    "retry_after_zh": "遵循 Retry-After 响应头（秒）",
    "action": "Sleep for the duration specified in Retry-After header before retrying, or distribute load.",
    "action_zh": "休眠 Retry-After 指定的秒数后重试，或平摊请求流量。",
    "docs_url": "https://docs.blockvectra.com/en/errors/#key_rate_limit",
    "related_url": "https://docs.blockvectra.com/en/api/json-rpc/",
    "category": "rpc"
  },
  {
    "anchor": "free_plan_call_limit",
    "http": 429,
    "code": -32005,
    "reason": "free_plan_call_limit",
    "message": "rate limit exceeded",
    "message_zh": "免费套餐每秒调用次数上限超限",
    "billed": false,
    "retryable": true,
    "retry_after": "Wait 1 second before retrying",
    "retry_after_zh": "等待 1 秒后重试",
    "action": "Throttle request rate or top up to unlock paid tier throughput.",
    "action_zh": "降低请求发送频率，或联系充值升级为付费账户解锁更高吞吐量。",
    "docs_url": "https://docs.blockvectra.com/en/errors/#free_plan_call_limit",
    "related_url": "https://docs.blockvectra.com/en/api/json-rpc/",
    "category": "rpc"
  },
  {
    "anchor": "concurrency_limit",
    "http": 429,
    "code": -32005,
    "reason": "concurrency_limit",
    "message": "rate limit exceeded",
    "message_zh": "在途并发请求数超过上限",
    "billed": false,
    "retryable": true,
    "retry_after": "Honor Retry-After header or wait for active calls to complete",
    "retry_after_zh": "遵循 Retry-After 响应头或等待当前调用完成",
    "action": "Limit client concurrency pool size and retry completed slots.",
    "action_zh": "限制客户端并发池大小，等待已有请求完成。",
    "docs_url": "https://docs.blockvectra.com/en/errors/#concurrency_limit",
    "related_url": "https://docs.blockvectra.com/en/api/json-rpc/",
    "category": "rpc"
  },
  {
    "anchor": "request_exceeds_burst",
    "http": 429,
    "code": -32022,
    "reason": "request_exceeds_burst",
    "message": "request cost <N> CU exceeds burst capacity <M> CU",
    "message_zh": "单次请求的 CU 权重超过单 key 突发上限容量",
    "billed": false,
    "retryable": false,
    "retry_after": null,
    "retry_after_zh": null,
    "action": "Waiting will not succeed; split batch or lower method parameters to fit within burst capacity.",
    "action_zh": "无需等待（等待不会成功）；须拆解批量请求或降低方法参数以适应突发容量。",
    "docs_url": "https://docs.blockvectra.com/en/errors/#request_exceeds_burst",
    "related_url": "https://docs.blockvectra.com/en/api/json-rpc/",
    "category": "rpc"
  },
  {
    "anchor": "free_plan_batch_too_large",
    "http": 429,
    "code": -32022,
    "reason": "free_plan_batch_too_large",
    "message": "request has <N> calls, exceeding the free-plan limit of <M> calls per second",
    "message_zh": "单批调用数超过免费套餐每秒调用次数限制",
    "billed": false,
    "retryable": false,
    "retry_after": null,
    "retry_after_zh": null,
    "action": "Waiting will not succeed; split batch so call count is within free-plan limit, or top up.",
    "action_zh": "无需等待；须将单批请求调用数拆小至免费套餐限额以内，或联系充值。",
    "docs_url": "https://docs.blockvectra.com/en/errors/#free_plan_batch_too_large",
    "related_url": "https://docs.blockvectra.com/en/api/json-rpc/",
    "category": "rpc"
  },
  {
    "anchor": "upstream_unavailable",
    "http": 200,
    "code": -32603,
    "reason": "upstream_unavailable",
    "message": "upstream unavailable",
    "message_zh": "底层链节点暂不可用、应答超时或返回畸形响应",
    "billed": false,
    "retryable": true,
    "retry_after": "Wait a few seconds and retry",
    "retry_after_zh": "等待数秒后重试",
    "action": "Retry with exponential backoff; check GET /v1/status for node health.",
    "action_zh": "退避重试；可通过 GET /v1/status 查看节点健康度。",
    "docs_url": "https://docs.blockvectra.com/en/errors/#upstream_unavailable",
    "related_url": "https://docs.blockvectra.com/en/api/json-rpc/",
    "category": "rpc"
  },
  {
    "anchor": "internal_error",
    "http": 200,
    "code": -32603,
    "reason": "internal_error",
    "message": "internal service error",
    "message_zh": "处理请求时发生内部错误",
    "billed": false,
    "retryable": true,
    "retry_after": "Retry after a brief delay",
    "retry_after_zh": "稍后重试",
    "action": "Retry request; report persistent failures with timestamp to support.",
    "action_zh": "稍后重试；若持续失败请记录时间并联系支持团队。",
    "docs_url": "https://docs.blockvectra.com/en/errors/#internal_error",
    "related_url": "https://docs.blockvectra.com/en/api/json-rpc/",
    "category": "rpc"
  },
  {
    "anchor": "balance_exhausted",
    "http": 402,
    "code": -32020,
    "reason": "balance_exhausted",
    "message": "insufficient balance",
    "message_zh": "账户余额已耗尽",
    "billed": false,
    "retryable": false,
    "retry_after": null,
    "retry_after_zh": null,
    "action": "Contact contact@blockvectra.com to top up, or use quota reset in console if eligible.",
    "action_zh": "联系 contact@blockvectra.com 充值，或在控制台使用额度重置机会（如符合条件）。",
    "docs_url": "https://docs.blockvectra.com/en/errors/#balance_exhausted",
    "related_url": "https://docs.blockvectra.com/en/api/json-rpc/",
    "category": "rpc"
  },
  {
    "anchor": "free_grant_exhausted",
    "http": 402,
    "code": -32020,
    "reason": "free_grant_exhausted",
    "message": "insufficient balance",
    "message_zh": "免费套餐周期额度已耗尽",
    "billed": false,
    "retryable": false,
    "retry_after": null,
    "retry_after_zh": null,
    "action": "Contact contact@blockvectra.com to top up, use quota reset if available, or wait for next cycle grant.",
    "action_zh": "联系 contact@blockvectra.com 充值、在控制台使用额度重置机会，或等待下一个周期补足额度。",
    "docs_url": "https://docs.blockvectra.com/en/errors/#free_grant_exhausted",
    "related_url": "https://docs.blockvectra.com/en/api/json-rpc/",
    "category": "rpc"
  },
  {
    "anchor": "missing_api_key",
    "http": 401,
    "code": -32024,
    "reason": "missing_api_key",
    "message": "missing API key: send it in the request path (/v1/{chain}/<api_key>) or in the x-api-key header",
    "message_zh": "请求缺少 API key，未在请求路径或请求头中提供",
    "billed": false,
    "retryable": false,
    "retry_after": null,
    "retry_after_zh": null,
    "action": "Provide a valid API key in request path (/v1/{chain}/<api_key>) or in x-api-key request header.",
    "action_zh": "在请求路径（/v1/{chain}/<api_key>）或 x-api-key 请求头中传入有效的 API key。",
    "docs_url": "https://docs.blockvectra.com/en/errors/#missing_api_key",
    "related_url": "https://docs.blockvectra.com/en/api/json-rpc/",
    "category": "rpc"
  },
  {
    "anchor": "billing_unavailable",
    "http": 503,
    "code": -32021,
    "reason": "billing_unavailable",
    "message": "billing data temporarily unavailable",
    "message_zh": "计费状态暂不可确认（新创建 key 正在同步或服务暂时繁忙）",
    "billed": false,
    "retryable": true,
    "retry_after": "Honor Retry-After header (seconds)",
    "retry_after_zh": "遵循 Retry-After 响应头（秒）",
    "action": "This is not a balance issue; newly created keys sync within seconds. Wait for Retry-After and retry.",
    "action_zh": "非余额问题，新创建的 key 通常数秒内完成同步；按 Retry-After 等待后重试即可。",
    "docs_url": "https://docs.blockvectra.com/en/errors/#billing_unavailable",
    "related_url": "https://docs.blockvectra.com/en/api/json-rpc/",
    "category": "rpc"
  },
  {
    "anchor": "4444",
    "http": 200,
    "code": 4444,
    "reason": null,
    "message": "pruned history unavailable",
    "message_zh": "请求的区块已被底层节点裁剪",
    "billed": false,
    "retryable": false,
    "retry_after": null,
    "retry_after_zh": null,
    "action": "Block is outside the node's pruned history window; query historical blocks via Data API.",
    "action_zh": "目标区块已超出节点的裁剪保留期，可改用 Data API 获取历史区块信息。",
    "docs_url": "https://docs.blockvectra.com/en/errors/#4444",
    "related_url": "https://docs.blockvectra.com/en/api/json-rpc/",
    "category": "rpc"
  },
  {
    "anchor": "-32000",
    "http": 200,
    "code": -32000,
    "reason": null,
    "message": "historical state ... is not available; old data not available due to pruning...",
    "message_zh": "底层节点历史状态不存在或数据已被裁剪",
    "billed": false,
    "retryable": false,
    "retry_after": null,
    "retry_after_zh": null,
    "action": "Query blocks within the state window, or use Data API for historical queries.",
    "action_zh": "缩窄查询到状态窗口以内，或改用 Data API 查询历史数据。",
    "docs_url": "https://docs.blockvectra.com/en/errors/#-32000",
    "related_url": "https://docs.blockvectra.com/en/api/json-rpc/",
    "category": "rpc"
  },
  {
    "anchor": "-32002",
    "http": 200,
    "code": -32002,
    "reason": null,
    "message": "<node message>",
    "message_zh": "底层节点批量执行超时",
    "billed": false,
    "retryable": true,
    "retry_after": "Wait a few seconds and retry with a smaller batch",
    "retry_after_zh": "等待数秒后使用较小的批次重试",
    "action": "Reduce the number of calls in the batch and retry.",
    "action_zh": "减少单批调用数量后重试。",
    "docs_url": "https://docs.blockvectra.com/en/errors/#-32002",
    "related_url": "https://docs.blockvectra.com/en/api/json-rpc/",
    "category": "rpc"
  },
  {
    "anchor": "-32003",
    "http": 200,
    "code": -32003,
    "reason": null,
    "message": "<node message>",
    "message_zh": "底层节点批处理响应体过大",
    "billed": false,
    "retryable": false,
    "retry_after": null,
    "retry_after_zh": null,
    "action": "Split batch into smaller requests to reduce response payload size.",
    "action_zh": "拆分批次以减小单个响应体大小。",
    "docs_url": "https://docs.blockvectra.com/en/errors/#-32003",
    "related_url": "https://docs.blockvectra.com/en/api/json-rpc/",
    "category": "rpc"
  },
  {
    "anchor": "-32600",
    "http": 200,
    "code": -32600,
    "reason": null,
    "message": "<node message>",
    "message_zh": "批量请求被底层节点整体放弃拒绝",
    "billed": false,
    "retryable": false,
    "retry_after": null,
    "retry_after_zh": null,
    "action": "Inspect individual requests in the batch for non-compliant parameters; split and retry.",
    "action_zh": "检查批次中各调用的参数规范；拆分后重试。",
    "docs_url": "https://docs.blockvectra.com/en/errors/#-32600",
    "related_url": "https://docs.blockvectra.com/en/api/json-rpc/",
    "category": "rpc"
  },
  {
    "anchor": "*",
    "http": 200,
    "code": "*",
    "reason": null,
    "message": "<node message>",
    "message_zh": "底层节点执行层返回的业务错误（如合约执行回滚 execution reverted、节点参数校验拒绝）",
    "billed": true,
    "retryable": false,
    "retry_after": null,
    "retry_after_zh": null,
    "action": "Node performed computation and was billed. Inspect revert reason/data or call parameters; do not blindly retry.",
    "action_zh": "节点已执行计算并按方法权重计费。检查回滚原因或调用参数，切勿盲目原样重试。",
    "docs_url": "https://docs.blockvectra.com/en/errors/#*",
    "related_url": "https://docs.blockvectra.com/en/api/json-rpc/",
    "category": "rpc"
  },
  {
    "anchor": "408",
    "http": 408,
    "code": 408,
    "reason": null,
    "message": "Request timed out after 35s between request header completion and response",
    "message_zh": "从收完请求头到返回响应超过 35 秒超时，返回空响应体",
    "billed": "possible",
    "retryable": true,
    "retry_after": "Wait a few seconds before retrying read calls",
    "retry_after_zh": "读请求等待数秒后重试",
    "action": "Calls may have reached node and could be billed. For read calls, retry with backoff. For write calls (e.g. eth_sendRawTransaction), check transaction status by hash first.",
    "action_zh": "已转发给节点的调用在节点应答后照常计费。读请求可退避重试；写请求（如 eth_sendRawTransaction）须先按交易哈希查状态，切勿盲目重发。",
    "docs_url": "https://docs.blockvectra.com/en/errors/#408",
    "related_url": "https://docs.blockvectra.com/en/api/json-rpc/",
    "category": "rpc"
  },
  {
    "anchor": "bad_request",
    "http": 400,
    "code": "bad_request",
    "reason": null,
    "message": "Duplicate query parameter, invalid query string, or malformed request",
    "message_zh": "查询参数重复、查询字符串格式非法或请求格式错误",
    "billed": false,
    "retryable": false,
    "retry_after": null,
    "retry_after_zh": null,
    "action": "Inspect query parameters; ensure parameters like limit appear at most once and query parameters are valid.",
    "action_zh": "检查查询参数；确保 limit 等参数只出现一次，并核对参数格式。",
    "docs_url": "https://docs.blockvectra.com/en/errors/#bad_request",
    "related_url": "https://docs.blockvectra.com/en/api/data/",
    "category": "data"
  },
  {
    "anchor": "not_indexed_yet",
    "http": 409,
    "code": "not_indexed_yet",
    "reason": null,
    "message": "Requested block number is above current indexed head (carries indexed_through watermark)",
    "message_zh": "请求的区块高度超过当前已处理的高度（响应中携带 indexed_through 水位）",
    "billed": false,
    "retryable": true,
    "retry_after": "Wait a few seconds until indexed_through reaches the block",
    "retry_after_zh": "等待数秒至 indexed_through 高度到达目标区块",
    "action": "Wait for the service to catch up to this block height and retry.",
    "action_zh": "等待数据处理进度赶上该区块高度后重试。",
    "docs_url": "https://docs.blockvectra.com/en/errors/#not_indexed_yet",
    "related_url": "https://docs.blockvectra.com/en/api/data/",
    "category": "data"
  },
  {
    "anchor": "finality_exceeded",
    "http": 409,
    "code": "finality_exceeded",
    "reason": null,
    "message": "Block is indexed but above finalized_block (not yet reorg-safe)",
    "message_zh": "区块已收录但超过 finalized_block 最终确认高度（尚未达到重组安全条件）",
    "billed": false,
    "retryable": true,
    "retry_after": "Wait for chain finality to advance",
    "retry_after_zh": "等待链最终确认推进",
    "action": "Wait for block finalization, or restrict query to blocks at or below meta.finalized_block.",
    "action_zh": "等待区块达到最终确认，或将查询范围限制在 meta.finalized_block 确认高度以内。",
    "docs_url": "https://docs.blockvectra.com/en/errors/#finality_exceeded",
    "related_url": "https://docs.blockvectra.com/en/api/data/",
    "category": "data"
  },
  {
    "anchor": "window_too_large",
    "http": 409,
    "code": "window_too_large",
    "reason": null,
    "message": "Block window spans more than 100,000 blocks and clamp parameter was not set to true",
    "message_zh": "区块窗口跨度超过 100,000 块且未设置 clamp=true",
    "billed": false,
    "retryable": false,
    "retry_after": null,
    "retry_after_zh": null,
    "action": "Narrow block range (from_block to to_block) <= 100,000 blocks, or pass clamp=true.",
    "action_zh": "缩窄区块区间至 100,000 块以内，或在查询参数中传入 clamp=true。",
    "docs_url": "https://docs.blockvectra.com/en/errors/#window_too_large",
    "related_url": "https://docs.blockvectra.com/en/api/data/",
    "category": "data"
  },
  {
    "anchor": "too_many_pools",
    "http": 409,
    "code": "too_many_pools",
    "reason": null,
    "message": "Token matches more than 200 liquidity pools; query by pool dimension instead",
    "message_zh": "该代币命中的流动性池超过 200 个，须改按池维度查询",
    "billed": false,
    "retryable": false,
    "retry_after": null,
    "retry_after_zh": null,
    "action": "Query by specific pool address rather than querying all pools for the token.",
    "action_zh": "按具体的流动性池地址查询，而非按代币维度全量匹配。",
    "docs_url": "https://docs.blockvectra.com/en/errors/#too_many_pools",
    "related_url": "https://docs.blockvectra.com/en/api/data/",
    "category": "data"
  },
  {
    "anchor": "span_exceeded",
    "http": 409,
    "code": "span_exceeded",
    "reason": null,
    "message": "Requested date span exceeds the 90-day maximum limit",
    "message_zh": "请求的时间跨度超过 90 天上限",
    "billed": false,
    "retryable": false,
    "retry_after": null,
    "retry_after_zh": null,
    "action": "Narrow date range between from_time and to_time to within 90 days.",
    "action_zh": "将 from_time 与 to_time 的时间跨度缩窄至 90 天以内。",
    "docs_url": "https://docs.blockvectra.com/en/errors/#span_exceeded",
    "related_url": "https://docs.blockvectra.com/en/api/data/",
    "category": "data"
  },
  {
    "anchor": "no_coverage",
    "http": 422,
    "code": "no_coverage",
    "reason": null,
    "message": "Capability not supported on this chain, or requested block is before the coverage window",
    "message_zh": "该链不支持该特性，或请求的区块早于历史覆盖起点",
    "billed": false,
    "retryable": false,
    "retry_after": null,
    "retry_after_zh": null,
    "action": "Verify chain features and coverage.from_block via GET /v1/data/{chain}/status before querying.",
    "action_zh": "查询前核实 GET /v1/data/{chain}/status 中的功能支持与 coverage.from_block 起点。",
    "docs_url": "https://docs.blockvectra.com/en/errors/#no_coverage",
    "related_url": "https://docs.blockvectra.com/en/api/data/",
    "category": "data"
  },
  {
    "anchor": "unavailable",
    "http": 503,
    "code": "unavailable",
    "reason": null,
    "message": "Data service temporarily unavailable, query slots busy, or shutting down",
    "message_zh": "数据服务暂时不可用、查询槽位已满或正在维护",
    "billed": false,
    "retryable": true,
    "retry_after": "Wait a few seconds and retry with exponential backoff",
    "retry_after_zh": "等待数秒并使用指数退避重试",
    "action": "Retry after a brief delay with exponential backoff.",
    "action_zh": "使用指数退避稍后重试。",
    "docs_url": "https://docs.blockvectra.com/en/errors/#unavailable",
    "related_url": "https://docs.blockvectra.com/en/api/data/",
    "category": "data"
  },
  {
    "anchor": "invalid_username",
    "http": 400,
    "code": "invalid_request",
    "reason": "invalid_username",
    "message": "Username format is invalid (must be alphanumeric or underscores)",
    "message_zh": "用户名格式不合法（须为英文字母、数字或下划线）",
    "billed": false,
    "retryable": false,
    "retry_after": null,
    "retry_after_zh": null,
    "action": "Provide a valid username adhering to username character and length requirements.",
    "action_zh": "提供符合字符与长度规范的有效用户名。",
    "docs_url": "https://docs.blockvectra.com/en/errors/#invalid_username",
    "category": "console"
  },
  {
    "anchor": "expired",
    "http": 400,
    "code": "siwe_invalid",
    "reason": "expired",
    "message": "Sign-In with Ethereum (SIWE) message has expired or nonce was already used",
    "message_zh": "以太坊登录（SIWE）消息已过期或 nonce 已被使用",
    "billed": false,
    "retryable": true,
    "retry_after": "Fetch a new challenge immediately and sign",
    "retry_after_zh": "立即获取新的 challenge 并在签名后提交",
    "action": "Request a fresh challenge from /v1/auth/siwe/challenge and sign the newly issued statement.",
    "action_zh": "重新调用 /v1/auth/siwe/challenge 获取新的 challenge，签名新消息后再登录。",
    "docs_url": "https://docs.blockvectra.com/en/errors/#expired",
    "category": "console"
  },
  {
    "anchor": "chain_mismatch",
    "http": 400,
    "code": "siwe_invalid",
    "reason": "chain_mismatch",
    "message": "SIWE message chainId does not match server settings",
    "message_zh": "SIWE 消息中的 chainId 与服务端不匹配",
    "billed": false,
    "retryable": false,
    "retry_after": null,
    "retry_after_zh": null,
    "action": "Use the chainId returned by /v1/auth/siwe/challenge when constructing the SIWE message.",
    "action_zh": "在构造 SIWE 消息时使用 /v1/auth/siwe/challenge 返回的 chainId。",
    "docs_url": "https://docs.blockvectra.com/en/errors/#chain_mismatch",
    "category": "console"
  },
  {
    "anchor": "domain_mismatch",
    "http": 400,
    "code": "siwe_invalid",
    "reason": "domain_mismatch",
    "message": "SIWE message domain does not match server host",
    "message_zh": "SIWE 消息中的 domain 与服务端主机名不匹配",
    "billed": false,
    "retryable": false,
    "retry_after": null,
    "retry_after_zh": null,
    "action": "Ensure domain and uri match the server host returned in challenge.",
    "action_zh": "确保 SIWE 消息中的 domain 与 uri 与 challenge 返回的主机名一致。",
    "docs_url": "https://docs.blockvectra.com/en/errors/#domain_mismatch",
    "category": "console"
  },
  {
    "anchor": "signature",
    "http": 400,
    "code": "siwe_invalid",
    "reason": "signature",
    "message": "SIWE cryptographic signature verification failed",
    "message_zh": "SIWE 签名验证失败",
    "billed": false,
    "retryable": false,
    "retry_after": null,
    "retry_after_zh": null,
    "action": "Verify that the message was signed by the private key corresponding to the specified address.",
    "action_zh": "核实签名是否由消息中指定的以太坊地址对应的私钥签署。",
    "docs_url": "https://docs.blockvectra.com/en/errors/#signature",
    "category": "console"
  },
  {
    "anchor": "active_keys",
    "http": 409,
    "code": "key_limit_reached",
    "reason": "active_keys",
    "message": "Active (non-revoked) API keys reached maximum account limit",
    "message_zh": "未吊销的有效 API key 数量已达账户上限",
    "billed": false,
    "retryable": false,
    "retry_after": null,
    "retry_after_zh": null,
    "action": "Revoke an existing unused key before creating a new key.",
    "action_zh": "在创建新 key 之前，先在控制台或接口吊销一把闲置的 key。",
    "docs_url": "https://docs.blockvectra.com/en/errors/#active_keys",
    "category": "console"
  },
  {
    "anchor": "nothing_to_reset",
    "http": 409,
    "code": "no_reset_available",
    "reason": "nothing_to_reset",
    "message": "Balance is already at or above the reset target; reset opportunity is preserved",
    "message_zh": "当前余额已不低于重置目标；此次重置机会予以保留不消耗",
    "billed": false,
    "retryable": false,
    "retry_after": null,
    "retry_after_zh": null,
    "action": "No reset needed currently; use reset opportunity after balance is depleted.",
    "action_zh": "当前无需重置；可在额度耗尽后再使用重置机会。",
    "docs_url": "https://docs.blockvectra.com/en/errors/#nothing_to_reset",
    "category": "console"
  },
  {
    "anchor": "daily_creations",
    "http": 429,
    "code": "rate_limited",
    "reason": "daily_creations",
    "message": "Account 24-hour key creation limit reached",
    "message_zh": "单账户 24 小时新建 API key 数量达到上限",
    "billed": false,
    "retryable": true,
    "retry_after": "Honor Retry-After header (seconds)",
    "retry_after_zh": "遵循 Retry-After 响应头（秒）",
    "action": "Rotate existing keys instead of creating new ones, or wait for 24-hour window to reset.",
    "action_zh": "对现有 key 进行轮换而非新建，或按 Retry-After 建议等待 24 小时窗口刷新。",
    "docs_url": "https://docs.blockvectra.com/en/errors/#daily_creations",
    "category": "console"
  },
  {
    "anchor": "per_ip",
    "http": 429,
    "code": "signup_rate_limited",
    "reason": "per_ip",
    "message": "Sign-up rate limit reached for the client IP subnet",
    "message_zh": "当前 IP 网段的新开户配额已用尽",
    "billed": false,
    "retryable": true,
    "retry_after": "Honor Retry-After header (seconds)",
    "retry_after_zh": "遵循 Retry-After 响应头（秒）",
    "action": "Wait for the Retry-After interval before creating a new account from this network.",
    "action_zh": "遵循 Retry-After 响应头等待后再尝试开户。",
    "docs_url": "https://docs.blockvectra.com/en/errors/#per_ip",
    "category": "console"
  },
  {
    "anchor": "global",
    "http": 429,
    "code": "signup_rate_limited",
    "reason": "global",
    "message": "Global new user registration rate limit reached across all sources",
    "message_zh": "全局新用户开户频率已达上限",
    "billed": false,
    "retryable": true,
    "retry_after": "Honor Retry-After header (seconds)",
    "retry_after_zh": "遵循 Retry-After 响应头（秒）",
    "action": "Wait for the Retry-After interval before retrying account creation.",
    "action_zh": "遵循 Retry-After 响应头等待后再尝试开户。",
    "docs_url": "https://docs.blockvectra.com/en/errors/#global",
    "category": "console"
  },
  {
    "anchor": "oauth_invalid",
    "http": 400,
    "code": "oauth_invalid",
    "reason": null,
    "message": "OAuth parameter invalid or callback state unknown, expired, or already used",
    "message_zh": "OAuth 授权参数错误，或回调的 state 未知、过期或已使用",
    "billed": false,
    "retryable": true,
    "retry_after": null,
    "retry_after_zh": null,
    "action": "Initiate a fresh OAuth login flow from /v1/auth/oauth/{provider}/start.",
    "action_zh": "重新从 /v1/auth/oauth/{provider}/start 发起授权流程。",
    "docs_url": "https://docs.blockvectra.com/en/errors/#oauth_invalid",
    "category": "console"
  },
  {
    "anchor": "login_code_invalid",
    "http": 400,
    "code": "login_code_invalid",
    "reason": null,
    "message": "Login code unknown, expired, already consumed, or PKCE verifier mismatch",
    "message_zh": "Login code 未知、过期、已被使用，或 PKCE verifier 不匹配",
    "billed": false,
    "retryable": false,
    "retry_after": null,
    "retry_after_zh": null,
    "action": "Restart login to obtain a fresh login code.",
    "action_zh": "重新发起登录以获取新的 login code。",
    "docs_url": "https://docs.blockvectra.com/en/errors/#login_code_invalid",
    "category": "console"
  },
  {
    "anchor": "unauthenticated",
    "http": 401,
    "code": "unauthenticated",
    "reason": null,
    "message": "Missing session, or session token is invalid, expired, or revoked",
    "message_zh": "缺少会话凭证，或会话令牌无效、已过期或已被吊销",
    "billed": false,
    "retryable": false,
    "retry_after": null,
    "retry_after_zh": null,
    "action": "Sign in again to acquire a new Bearer session token.",
    "action_zh": "重新登录以获取新的 Bearer 会话令牌。",
    "docs_url": "https://docs.blockvectra.com/en/errors/#unauthenticated",
    "category": "console"
  },
  {
    "anchor": "user_disabled",
    "http": 403,
    "code": "user_disabled",
    "reason": null,
    "message": "Account has been suspended by administration",
    "message_zh": "账户已被停用",
    "billed": false,
    "retryable": false,
    "retry_after": null,
    "retry_after_zh": null,
    "action": "Contact contact@blockvectra.com for account support.",
    "action_zh": "联系 contact@blockvectra.com 获取账户支持。",
    "docs_url": "https://docs.blockvectra.com/en/errors/#user_disabled",
    "category": "console"
  },
  {
    "anchor": "provider_disabled",
    "http": 404,
    "code": "provider_disabled",
    "reason": null,
    "message": "OAuth provider is recognized but currently disabled",
    "message_zh": "该 OAuth 认证方式暂未开启",
    "billed": false,
    "retryable": false,
    "retry_after": null,
    "retry_after_zh": null,
    "action": "Use SIWE or another supported authentication provider.",
    "action_zh": "使用以太坊钱包登录（SIWE）或其他已启用的登录方式。",
    "docs_url": "https://docs.blockvectra.com/en/errors/#provider_disabled",
    "category": "console"
  },
  {
    "anchor": "identity_in_use",
    "http": 409,
    "code": "identity_in_use",
    "reason": null,
    "message": "Identity (wallet or OAuth account) is already bound to another user",
    "message_zh": "该身份（钱包地址或 OAuth 账号）已被其他账户绑定",
    "billed": false,
    "retryable": false,
    "retry_after": null,
    "retry_after_zh": null,
    "action": "Unbind the identity from the previous account or use a different identity.",
    "action_zh": "从旧账户解绑该身份，或使用其他身份进行绑定。",
    "docs_url": "https://docs.blockvectra.com/en/errors/#identity_in_use",
    "category": "console"
  },
  {
    "anchor": "identity_limit_reached",
    "http": 409,
    "code": "identity_limit_reached",
    "reason": null,
    "message": "Maximum number of linked identities (5) reached for this account",
    "message_zh": "该账户绑定的身份数量已达上限（5 个）",
    "billed": false,
    "retryable": false,
    "retry_after": null,
    "retry_after_zh": null,
    "action": "Unbind an unnecessary identity before linking a new one.",
    "action_zh": "解绑不需要的旧身份后再绑定新身份。",
    "docs_url": "https://docs.blockvectra.com/en/errors/#identity_limit_reached",
    "category": "console"
  },
  {
    "anchor": "last_identity",
    "http": 409,
    "code": "last_identity",
    "reason": null,
    "message": "Cannot unbind the sole remaining identity from the account",
    "message_zh": "不能解绑账户唯一的身份",
    "billed": false,
    "retryable": false,
    "retry_after": null,
    "retry_after_zh": null,
    "action": "Bind another identity first before removing this one.",
    "action_zh": "先绑定其他身份，然后才能解绑当前身份。",
    "docs_url": "https://docs.blockvectra.com/en/errors/#last_identity",
    "category": "console"
  },
  {
    "anchor": "key_not_active",
    "http": 409,
    "code": "key_not_active",
    "reason": null,
    "message": "Attempted to rotate an API key that is disabled or revoked",
    "message_zh": "无法对已禁用或已吊销的 API key 进行轮换",
    "billed": false,
    "retryable": false,
    "retry_after": null,
    "retry_after_zh": null,
    "action": "Create a new key or rotate an active key.",
    "action_zh": "创建新的 API key，或仅对处于 active 状态的 key 进行轮换。",
    "docs_url": "https://docs.blockvectra.com/en/errors/#key_not_active",
    "category": "console"
  },
  {
    "anchor": "no_reset_available",
    "http": 409,
    "code": "no_reset_available",
    "reason": null,
    "message": "No quota reset opportunities remain on this account",
    "message_zh": "当前账户没有可用的额度重置机会",
    "billed": false,
    "retryable": false,
    "retry_after": null,
    "retry_after_zh": null,
    "action": "Contact contact@blockvectra.com to top up, or wait for next promotion cycle.",
    "action_zh": "联系 contact@blockvectra.com 充值，或等待后续活动周期。",
    "docs_url": "https://docs.blockvectra.com/en/errors/#no_reset_available",
    "category": "console"
  },
  {
    "anchor": "payload_too_large",
    "http": 413,
    "code": "payload_too_large",
    "reason": null,
    "message": "Request body exceeds the 64 KiB size limit",
    "message_zh": "请求体超过 64 KiB 大小上限",
    "billed": false,
    "retryable": false,
    "retry_after": null,
    "retry_after_zh": null,
    "action": "Reduce request body size below 64 KiB.",
    "action_zh": "减小请求体体积，确保在 64 KiB 以内。",
    "docs_url": "https://docs.blockvectra.com/en/errors/#payload_too_large",
    "category": "console"
  },
  {
    "anchor": "rate_limited",
    "http": 429,
    "code": "rate_limited",
    "reason": null,
    "message": "Request rate limit exceeded on control plane API",
    "message_zh": "控制面接口请求频率超限",
    "billed": false,
    "retryable": true,
    "retry_after": "Honor Retry-After header (seconds)",
    "retry_after_zh": "遵循 Retry-After 响应头（秒）",
    "action": "Sleep for duration in Retry-After before retrying.",
    "action_zh": "休眠 Retry-After 指定的秒数后重试。",
    "docs_url": "https://docs.blockvectra.com/en/errors/#rate_limited",
    "category": "console"
  },
  {
    "anchor": "signup_rate_limited",
    "http": 429,
    "code": "signup_rate_limited",
    "reason": null,
    "message": "Sign-up rate limit reached for the client IP subnet",
    "message_zh": "当前 IP 网段的新开户配额已用尽",
    "billed": false,
    "retryable": true,
    "retry_after": "Honor Retry-After header (seconds)",
    "retry_after_zh": "遵循 Retry-After 响应头（秒）",
    "action": "Wait for the Retry-After interval before creating a new account.",
    "action_zh": "等待 Retry-After 间隔后重试开户。",
    "docs_url": "https://docs.blockvectra.com/en/errors/#signup_rate_limited",
    "category": "console"
  },
  {
    "anchor": "signup_paused",
    "http": 503,
    "code": "signup_paused",
    "reason": null,
    "message": "Global new user registrations are temporarily paused; existing logins unaffected",
    "message_zh": "全局新用户注册暂时熔断暂停，已有用户可照常登录",
    "billed": false,
    "retryable": true,
    "retry_after": "Retry registration later",
    "retry_after_zh": "稍后重试注册",
    "action": "New user sign-ups temporarily paused; check status and try again later.",
    "action_zh": "新用户注册暂时维护；请稍后再试，已有账户登录不受影响。",
    "docs_url": "https://docs.blockvectra.com/en/errors/#signup_paused",
    "category": "console"
  },
  {
    "anchor": "usage_unavailable",
    "http": 503,
    "code": "usage_unavailable",
    "reason": null,
    "message": "Usage reporting service is temporarily unavailable",
    "message_zh": "用量统计服务暂时不可用（仅影响 /usage）",
    "billed": false,
    "retryable": true,
    "retry_after": "Wait a few seconds and retry",
    "retry_after_zh": "等待数秒后重试",
    "action": "Only affects /usage endpoint; other endpoints work normally. Retry shortly.",
    "action_zh": "仅影响 /usage 端点，其他接口正常可用；稍后重试查询用量即可。",
    "docs_url": "https://docs.blockvectra.com/en/errors/#usage_unavailable",
    "category": "console"
  },
  {
    "anchor": "internal",
    "http": 500,
    "code": "internal",
    "reason": null,
    "message": "Unexpected server error",
    "message_zh": "服务端发生未预期的内部错误",
    "billed": false,
    "retryable": true,
    "retry_after": "Retry after a brief delay",
    "retry_after_zh": "稍后重试",
    "action": "Retry request with exponential backoff.",
    "action_zh": "使用指数退避稍后重试。",
    "docs_url": "https://docs.blockvectra.com/en/errors/#internal",
    "category": "console"
  }
]