{
  "base_url": "https://rpc.gonka.gg",
  "auth": {
    "type": "api_key",
    "headers": [
      "X-Api-Key",
      "Authorization: Bearer YOUR_KEY"
    ],
    "get_key": "https://rpc.gonka.gg/access"
  },
  "total_endpoints": 354,
  "groups": [
    {
      "tag": "COMET",
      "label": "CometBFT RPC",
      "description": "Proxied from the CometBFT node via /chain-rpc/ (also available at root /). Historical data cached 24 h; live state refreshes 1–3 s.",
      "endpoints": [
        {
          "method": "GET",
          "path": "/chain-rpc/status",
          "description": "Node status — moniker, network, sync info, latest block",
          "cache": "1 s"
        },
        {
          "method": "GET",
          "path": "/chain-rpc/block",
          "description": "Block header + data at height",
          "params": "height",
          "cache": "24 h if height set"
        },
        {
          "method": "GET",
          "path": "/chain-rpc/block_results",
          "description": "ABCI results (events, gas) for a block",
          "params": "height",
          "cache": "24 h if height set"
        },
        {
          "method": "GET",
          "path": "/chain-rpc/commit",
          "description": "Block commit (signatures) at height",
          "params": "height",
          "cache": "24 h if height set"
        },
        {
          "method": "GET",
          "path": "/chain-rpc/blockchain",
          "description": "Range of block headers",
          "params": "minHeight, maxHeight",
          "cache": "1 s"
        },
        {
          "method": "GET",
          "path": "/chain-rpc/tx",
          "description": "Transaction by hash (with optional proof)",
          "params": "hash (0x-prefixed), prove",
          "cache": "24 h"
        },
        {
          "method": "GET",
          "path": "/chain-rpc/tx_search",
          "description": "Search transactions by events",
          "params": "query, page, per_page, order_by",
          "cache": "custom"
        },
        {
          "method": "GET",
          "path": "/chain-rpc/validators",
          "description": "Validator set at height",
          "params": "height, page, per_page",
          "cache": "custom"
        },
        {
          "method": "GET",
          "path": "/chain-rpc/net_info",
          "description": "P2P network info — connected peers",
          "cache": "10 s"
        },
        {
          "method": "GET",
          "path": "/chain-rpc/consensus_state",
          "description": "Current consensus round/step",
          "cache": "2 s"
        },
        {
          "method": "GET",
          "path": "/chain-rpc/dump_consensus_state",
          "description": "Detailed consensus state dump",
          "cache": "2 s"
        },
        {
          "method": "GET",
          "path": "/chain-rpc/genesis",
          "description": "Genesis document",
          "cache": "1 h"
        },
        {
          "method": "GET",
          "path": "/chain-rpc/abci_info",
          "description": "ABCI application info",
          "cache": "5 s"
        },
        {
          "method": "GET",
          "path": "/chain-rpc/abci_query",
          "description": "Direct ABCI query to the app",
          "params": "path, data, height",
          "cache": "3 s"
        },
        {
          "method": "POST",
          "path": "/chain-rpc/broadcast_tx_sync",
          "description": "Broadcast tx — waits for CheckTx",
          "params": "JSON-RPC body"
        },
        {
          "method": "POST",
          "path": "/chain-rpc/broadcast_tx_async",
          "description": "Broadcast tx — fire and forget",
          "params": "JSON-RPC body"
        },
        {
          "method": "POST",
          "path": "/chain-rpc/broadcast_tx_commit",
          "description": "Broadcast tx — waits for block inclusion",
          "params": "JSON-RPC body"
        },
        {
          "method": "GET",
          "path": "/chain-rpc/unconfirmed_txs",
          "description": "List unconfirmed txs in mempool",
          "params": "limit"
        },
        {
          "method": "GET",
          "path": "/chain-rpc/num_unconfirmed_txs",
          "description": "Count of unconfirmed txs"
        },
        {
          "method": "GET",
          "path": "/chain-rpc/block_by_hash",
          "description": "Block by hash",
          "params": "hash",
          "cache": "24 h"
        },
        {
          "method": "GET",
          "path": "/chain-rpc/header",
          "description": "Block header at height",
          "params": "height",
          "cache": "24 h if height set"
        },
        {
          "method": "GET",
          "path": "/chain-rpc/header_by_hash",
          "description": "Block header by hash",
          "params": "hash",
          "cache": "24 h"
        },
        {
          "method": "GET",
          "path": "/chain-rpc/consensus_params",
          "description": "Consensus parameters at height",
          "params": "height",
          "cache": "5 s"
        },
        {
          "method": "GET",
          "path": "/chain-rpc/health",
          "description": "Node health check",
          "cache": "1 s"
        },
        {
          "method": "POST",
          "path": "/chain-rpc/check_tx",
          "description": "Check transaction validity without broadcasting",
          "params": "JSON-RPC body"
        },
        {
          "method": "POST",
          "path": "/chain-rpc/subscribe",
          "description": "Subscribe to events (WebSocket)",
          "params": "query"
        },
        {
          "method": "POST",
          "path": "/chain-rpc/unsubscribe",
          "description": "Unsubscribe from events",
          "params": "query"
        }
      ]
    },
    {
      "tag": "COSMOS",
      "label": "Cosmos REST (LCD)",
      "description": "Full Cosmos SDK REST under /chain-api/. Cached per-module: bank 3 s, staking 15 s, gov 30 s, others 5–10 s. Also available without prefix (/cosmos/*, /ibc/*).",
      "endpoints": [
        {
          "method": "GET",
          "path": "/chain-api/cosmos/bank/v1beta1/balances/{addr}",
          "description": "Account balances for an address"
        },
        {
          "method": "GET",
          "path": "/chain-api/cosmos/bank/v1beta1/supply",
          "description": "Total supply of all denoms"
        },
        {
          "method": "GET",
          "path": "/chain-api/cosmos/bank/v1beta1/denoms_metadata",
          "description": "Metadata for all denoms"
        },
        {
          "method": "GET",
          "path": "/chain-api/cosmos/staking/v1beta1/validators",
          "description": "All validators"
        },
        {
          "method": "GET",
          "path": "/chain-api/cosmos/staking/v1beta1/delegations/{addr}",
          "description": "Delegations for a delegator"
        },
        {
          "method": "GET",
          "path": "/chain-api/cosmos/distribution/v1beta1/delegators/{addr}/rewards",
          "description": "Delegation rewards for an address"
        },
        {
          "method": "GET",
          "path": "/chain-api/cosmos/gov/v1/proposals",
          "description": "All governance proposals"
        },
        {
          "method": "GET",
          "path": "/chain-api/cosmos/gov/v1/proposals/{id}/votes",
          "description": "Votes on a proposal"
        },
        {
          "method": "GET",
          "path": "/chain-api/cosmos/auth/v1beta1/accounts/{addr}",
          "description": "Account info (sequence, pub key)"
        },
        {
          "method": "GET",
          "path": "/chain-api/cosmos/authz/v1beta1/grants",
          "description": "Authorization grants",
          "params": "granter, grantee"
        },
        {
          "method": "GET",
          "path": "/chain-api/cosmos/feegrant/v1beta1/allowances/{grantee}",
          "description": "Fee grant allowances"
        },
        {
          "method": "GET",
          "path": "/chain-api/cosmos/slashing/v1beta1/signing_infos",
          "description": "Validator signing info, slashing params"
        },
        {
          "method": "GET",
          "path": "/chain-api/cosmos/mint/v1beta1/inflation",
          "description": "Current inflation rate"
        },
        {
          "method": "GET",
          "path": "/chain-api/cosmos/upgrade/v1beta1/current_plan",
          "description": "Pending upgrade plan"
        },
        {
          "method": "POST",
          "path": "/chain-api/cosmos/tx/v1beta1/txs",
          "description": "Broadcast / query transactions",
          "params": "tx_bytes, mode"
        },
        {
          "method": "GET",
          "path": "/chain-api/cosmos/tx/v1beta1/txs/{hash}",
          "description": "Transaction by hash"
        },
        {
          "method": "GET",
          "path": "/chain-api/ibc/core/channel/v1/channels",
          "description": "IBC channels"
        },
        {
          "method": "GET",
          "path": "/chain-api/ibc/core/connection/v1/connections",
          "description": "IBC connections"
        },
        {
          "method": "GET",
          "path": "/chain-api/cosmwasm/wasm/v1/contract/{addr}",
          "description": "CosmWasm contract info"
        },
        {
          "method": "GET",
          "path": "/chain-api/cosmwasm/wasm/v1/contract/{addr}/state",
          "description": "CosmWasm contract state"
        },
        {
          "method": "GET",
          "path": "/chain-api/cosmwasm/wasm/v1/contract/{addr}/smart/{query}",
          "description": "CosmWasm smart query"
        },
        {
          "method": "GET",
          "path": "/chain-api/cosmwasm/wasm/v1/contract/{addr}/raw/{key}",
          "description": "CosmWasm raw state by key"
        },
        {
          "method": "GET",
          "path": "/chain-api/cosmwasm/wasm/v1/code",
          "description": "All stored Wasm codes"
        },
        {
          "method": "GET",
          "path": "/chain-api/cosmwasm/wasm/v1/code/{code_id}",
          "description": "Wasm code info by ID"
        },
        {
          "method": "GET",
          "path": "/chain-api/cosmos/evidence/v1beta1/evidence",
          "description": "All evidence of misbehavior"
        },
        {
          "method": "GET",
          "path": "/chain-api/cosmos/evidence/v1beta1/evidence/{hash}",
          "description": "Evidence by hash"
        },
        {
          "method": "GET",
          "path": "/chain-api/cosmos/group/v1/groups",
          "description": "All groups"
        },
        {
          "method": "GET",
          "path": "/chain-api/cosmos/group/v1/group_members/{group_id}",
          "description": "Group members"
        },
        {
          "method": "GET",
          "path": "/chain-api/cosmos/group/v1/group_policies/{group_id}",
          "description": "Group policies"
        },
        {
          "method": "GET",
          "path": "/chain-api/cosmos/group/v1/proposals/{proposal_id}",
          "description": "Group proposal by ID"
        },
        {
          "method": "GET",
          "path": "/chain-api/cosmos/nft/v1beta1/classes",
          "description": "All NFT classes"
        },
        {
          "method": "GET",
          "path": "/chain-api/cosmos/nft/v1beta1/nfts",
          "description": "All NFTs (filterable by class)"
        },
        {
          "method": "GET",
          "path": "/chain-api/cosmos/nft/v1beta1/balance/{owner}/{class_id}",
          "description": "NFT balance by owner and class"
        },
        {
          "method": "GET",
          "path": "/chain-api/cosmos/circuit/v1/accounts",
          "description": "Circuit breaker accounts"
        },
        {
          "method": "GET",
          "path": "/chain-api/cosmos/circuit/v1/disabled_list",
          "description": "Disabled message types"
        },
        {
          "method": "GET",
          "path": "/chain-api/cosmos/consensus/v1/params",
          "description": "Consensus parameters"
        },
        {
          "method": "GET",
          "path": "/chain-api/cosmos/params/v1beta1/params",
          "description": "Module parameters by subspace",
          "params": "subspace, key"
        },
        {
          "method": "GET",
          "path": "/chain-api/cosmos/staking/v1beta1/validators/{addr}/delegations",
          "description": "Delegations to a validator"
        },
        {
          "method": "GET",
          "path": "/chain-api/cosmos/staking/v1beta1/validators/{addr}/unbonding_delegations",
          "description": "Unbonding delegations from validator"
        },
        {
          "method": "GET",
          "path": "/chain-api/cosmos/staking/v1beta1/pool",
          "description": "Staking pool (bonded/unbonded totals)"
        },
        {
          "method": "GET",
          "path": "/chain-api/cosmos/staking/v1beta1/params",
          "description": "Staking module parameters"
        },
        {
          "method": "GET",
          "path": "/chain-api/cosmos/distribution/v1beta1/params",
          "description": "Distribution module parameters"
        },
        {
          "method": "GET",
          "path": "/chain-api/cosmos/distribution/v1beta1/community_pool",
          "description": "Community pool balance"
        },
        {
          "method": "GET",
          "path": "/chain-api/cosmos/distribution/v1beta1/validators/{addr}/commission",
          "description": "Validator commission"
        },
        {
          "method": "GET",
          "path": "/chain-api/cosmos/gov/v1/params/{params_type}",
          "description": "Gov module parameters"
        },
        {
          "method": "GET",
          "path": "/chain-api/cosmos/gov/v1/proposals/{id}",
          "description": "Proposal by ID"
        },
        {
          "method": "GET",
          "path": "/chain-api/cosmos/gov/v1/proposals/{id}/deposits",
          "description": "Deposits on a proposal"
        },
        {
          "method": "GET",
          "path": "/chain-api/cosmos/gov/v1/proposals/{id}/tally",
          "description": "Tally result for a proposal"
        },
        {
          "method": "GET",
          "path": "/chain-api/cosmos/slashing/v1beta1/params",
          "description": "Slashing module parameters"
        },
        {
          "method": "GET",
          "path": "/chain-api/cosmos/mint/v1beta1/params",
          "description": "Mint module parameters"
        },
        {
          "method": "GET",
          "path": "/chain-api/cosmos/mint/v1beta1/annual_provisions",
          "description": "Current annual provisions"
        },
        {
          "method": "GET",
          "path": "/chain-api/cosmos/bank/v1beta1/params",
          "description": "Bank module parameters"
        },
        {
          "method": "GET",
          "path": "/chain-api/cosmos/bank/v1beta1/balances/{addr}/{denom}",
          "description": "Single denom balance for address"
        },
        {
          "method": "GET",
          "path": "/chain-api/cosmos/bank/v1beta1/spendable_balances/{addr}",
          "description": "Spendable balances for address"
        },
        {
          "method": "GET",
          "path": "/chain-api/cosmos/bank/v1beta1/supply/{denom}",
          "description": "Supply of a single denom"
        },
        {
          "method": "GET",
          "path": "/chain-api/cosmos/auth/v1beta1/params",
          "description": "Auth module parameters"
        },
        {
          "method": "GET",
          "path": "/chain-api/cosmos/upgrade/v1beta1/applied_plan/{name}",
          "description": "Applied upgrade plan by name"
        },
        {
          "method": "GET",
          "path": "/chain-api/cosmos/upgrade/v1beta1/module_versions",
          "description": "Module consensus versions"
        },
        {
          "method": "GET",
          "path": "/chain-api/ibc/core/client/v1/client_states",
          "description": "All IBC client states"
        },
        {
          "method": "GET",
          "path": "/chain-api/ibc/core/client/v1/client_states/{client_id}",
          "description": "IBC client state by ID"
        },
        {
          "method": "GET",
          "path": "/chain-api/ibc/core/channel/v1/channels/{channel_id}/ports/{port_id}",
          "description": "IBC channel by ID and port"
        },
        {
          "method": "GET",
          "path": "/chain-api/ibc/apps/transfer/v1/denom_traces",
          "description": "IBC denom traces"
        },
        {
          "method": "GET",
          "path": "/chain-api/ibc/apps/transfer/v1/params",
          "description": "IBC transfer parameters"
        },
        {
          "method": "GET",
          "path": "/chain-api/ibc/apps/transfer/v1/denom_hashes/{trace}",
          "description": "IBC denom hash for a trace"
        },
        {
          "method": "GET",
          "path": "/chain-api/ibc/core/connection/v1/connections/{connection_id}",
          "description": "IBC connection by ID"
        },
        {
          "method": "GET",
          "path": "/chain-api/ibc/core/channel/v1/channels/{channel_id}/ports/{port_id}/packet_commitments",
          "description": "IBC packet commitments"
        },
        {
          "method": "GET",
          "path": "/chain-api/ibc/core/channel/v1/channels/{channel_id}/ports/{port_id}/packet_acks",
          "description": "IBC packet acknowledgements"
        },
        {
          "method": "GET",
          "path": "/chain-api/ibc/core/client/v1/consensus_states/{client_id}",
          "description": "IBC client consensus states"
        },
        {
          "method": "GET",
          "path": "/chain-api/cosmos/staking/v1beta1/validators/{addr}",
          "description": "Single validator by operator address"
        },
        {
          "method": "GET",
          "path": "/chain-api/cosmos/staking/v1beta1/delegators/{addr}/validators",
          "description": "Validators for a delegator"
        },
        {
          "method": "GET",
          "path": "/chain-api/cosmos/staking/v1beta1/delegators/{addr}/unbonding_delegations",
          "description": "Unbonding delegations for delegator"
        },
        {
          "method": "GET",
          "path": "/chain-api/cosmos/staking/v1beta1/delegators/{addr}/redelegations",
          "description": "Redelegations for delegator"
        },
        {
          "method": "GET",
          "path": "/chain-api/cosmos/staking/v1beta1/historical_info/{height}",
          "description": "Historical staking info at height"
        },
        {
          "method": "GET",
          "path": "/chain-api/cosmos/distribution/v1beta1/validators/{addr}/outstanding_rewards",
          "description": "Validator outstanding rewards"
        },
        {
          "method": "GET",
          "path": "/chain-api/cosmos/distribution/v1beta1/validators/{addr}/slashes",
          "description": "Validator slashing events"
        },
        {
          "method": "GET",
          "path": "/chain-api/cosmos/distribution/v1beta1/delegators/{addr}/withdraw_address",
          "description": "Delegator withdraw address"
        },
        {
          "method": "GET",
          "path": "/chain-api/cosmos/authz/v1beta1/grants/granter/{granter}",
          "description": "Grants by granter"
        },
        {
          "method": "GET",
          "path": "/chain-api/cosmos/authz/v1beta1/grants/grantee/{grantee}",
          "description": "Grants by grantee"
        },
        {
          "method": "GET",
          "path": "/chain-api/cosmos/feegrant/v1beta1/issued/{granter}",
          "description": "Fee grants issued by granter"
        },
        {
          "method": "GET",
          "path": "/chain-api/cosmos/slashing/v1beta1/signing_infos/{cons_address}",
          "description": "Signing info for a validator"
        },
        {
          "method": "GET",
          "path": "/chain-api/cosmos/tx/v1beta1/txs",
          "description": "Search transactions by events",
          "params": "events, pagination, order_by"
        },
        {
          "method": "GET",
          "path": "/chain-api/cosmos/base/tendermint/v1beta1/blocks/latest",
          "description": "Latest block (Cosmos base)"
        },
        {
          "method": "GET",
          "path": "/chain-api/cosmos/base/tendermint/v1beta1/blocks/{height}",
          "description": "Block at height (Cosmos base)"
        },
        {
          "method": "GET",
          "path": "/chain-api/cosmos/base/tendermint/v1beta1/node_info",
          "description": "Node info (Cosmos base)"
        },
        {
          "method": "GET",
          "path": "/chain-api/cosmos/base/tendermint/v1beta1/syncing",
          "description": "Sync status (Cosmos base)"
        },
        {
          "method": "GET",
          "path": "/chain-api/cosmos/base/tendermint/v1beta1/validatorsets/latest",
          "description": "Latest validator set (Cosmos base)"
        },
        {
          "method": "GET",
          "path": "/chain-api/cosmos/base/tendermint/v1beta1/validatorsets/{height}",
          "description": "Validator set at height (Cosmos base)"
        },
        {
          "method": "POST",
          "path": "/chain-api/cosmos/tx/v1beta1/simulate",
          "description": "Simulate transaction execution"
        },
        {
          "method": "GET",
          "path": "/chain-api/cosmos/auth/v1beta1/accounts",
          "description": "All accounts (paginated)"
        },
        {
          "method": "GET",
          "path": "/chain-api/cosmos/auth/v1beta1/address_by_id/{id}",
          "description": "Account address by account ID"
        },
        {
          "method": "GET",
          "path": "/chain-api/cosmos/bank/v1beta1/send_enabled",
          "description": "Send-enabled denoms"
        },
        {
          "method": "GET",
          "path": "/chain-api/cosmos/gov/v1beta1/proposals",
          "description": "All proposals (v1beta1 legacy)"
        },
        {
          "method": "GET",
          "path": "/chain-api/cosmos/gov/v1beta1/proposals/{id}",
          "description": "Proposal by ID (v1beta1 legacy)"
        },
        {
          "method": "GET",
          "path": "/chain-api/cosmos/group/v1/group_info/{group_id}",
          "description": "Group info by ID"
        },
        {
          "method": "GET",
          "path": "/chain-api/cosmos/group/v1/groups_by_admin/{admin}",
          "description": "Groups by admin address"
        },
        {
          "method": "GET",
          "path": "/chain-api/cosmos/group/v1/groups_by_member/{address}",
          "description": "Groups by member address"
        },
        {
          "method": "GET",
          "path": "/chain-api/cosmos/group/v1/group_policy_info/{address}",
          "description": "Group policy info by address"
        },
        {
          "method": "GET",
          "path": "/chain-api/cosmos/group/v1/proposals_by_group_policy/{address}",
          "description": "Proposals by group policy"
        },
        {
          "method": "GET",
          "path": "/chain-api/cosmos/nft/v1beta1/owner/{class_id}/{id}",
          "description": "NFT owner"
        },
        {
          "method": "GET",
          "path": "/chain-api/cosmos/nft/v1beta1/supply/{class_id}",
          "description": "NFT supply by class"
        },
        {
          "method": "GET",
          "path": "/chain-api/cosmos/nft/v1beta1/nfts/{class_id}/{id}",
          "description": "Single NFT by class and ID"
        },
        {
          "method": "POST",
          "path": "/chain-api/cosmos/tx/v1beta1/encode",
          "description": "Encode a transaction to bytes"
        },
        {
          "method": "POST",
          "path": "/chain-api/cosmos/tx/v1beta1/decode",
          "description": "Decode transaction bytes"
        },
        {
          "method": "POST",
          "path": "/chain-api/cosmos/tx/v1beta1/encode/amino",
          "description": "Encode transaction (Amino)"
        },
        {
          "method": "POST",
          "path": "/chain-api/cosmos/tx/v1beta1/decode/amino",
          "description": "Decode transaction (Amino)"
        },
        {
          "method": "GET",
          "path": "/chain-api/cosmos/base/tendermint/v1beta1/abci_query",
          "description": "ABCI query via Cosmos base endpoint",
          "params": "path, data, height"
        },
        {
          "method": "GET",
          "path": "/chain-api/cosmos/auth/v1beta1/module_accounts",
          "description": "All module accounts"
        },
        {
          "method": "GET",
          "path": "/chain-api/cosmos/auth/v1beta1/module_accounts/{name}",
          "description": "Module account by name"
        },
        {
          "method": "GET",
          "path": "/chain-api/cosmos/bank/v1beta1/denoms_metadata/{denom}",
          "description": "Metadata for a single denom"
        },
        {
          "method": "GET",
          "path": "/chain-api/cosmwasm/wasm/v1/codes/pinned",
          "description": "Pinned Wasm codes"
        },
        {
          "method": "GET",
          "path": "/chain-api/cosmwasm/wasm/v1/code/{code_id}/contracts",
          "description": "Contracts instantiated from code"
        },
        {
          "method": "GET",
          "path": "/chain-api/swagger/",
          "description": "Swagger UI — interactive API documentation"
        }
      ]
    },
    {
      "tag": "CHAIN",
      "label": "Gonka chain modules (REST)",
      "description": "On-chain state from Gonka custom modules under /chain-api/productscience/inference/. These are auto-generated gRPC-gateway endpoints. Standard Cosmos pagination params apply (pagination.key, pagination.limit).",
      "endpoints": [
        {
          "method": "GET",
          "path": "/chain-api/productscience/inference/inference/params",
          "description": "Inference module parameters"
        },
        {
          "method": "GET",
          "path": "/chain-api/productscience/inference/inference/inference/{index}",
          "description": "Single inference by index"
        },
        {
          "method": "GET",
          "path": "/chain-api/productscience/inference/inference/inference",
          "description": "All inferences (paginated)"
        },
        {
          "method": "GET",
          "path": "/chain-api/productscience/inference/inference/participant/{index}",
          "description": "Participant by index"
        },
        {
          "method": "GET",
          "path": "/chain-api/productscience/inference/inference/participant",
          "description": "All participants"
        },
        {
          "method": "GET",
          "path": "/chain-api/productscience/inference/inference/inference_participant/{address}",
          "description": "Participant by address"
        },
        {
          "method": "GET",
          "path": "/chain-api/productscience/inference/inference/participants_with_balances",
          "description": "Participants with token balances"
        },
        {
          "method": "GET",
          "path": "/chain-api/productscience/inference/inference/participants_stats",
          "description": "Full participant stats"
        },
        {
          "method": "GET",
          "path": "/chain-api/productscience/inference/inference/participants/count",
          "description": "Participant count"
        },
        {
          "method": "GET",
          "path": "/chain-api/productscience/inference/inference/get_participant_current_stats/{id}",
          "description": "Current stats for participant"
        },
        {
          "method": "GET",
          "path": "/chain-api/productscience/inference/inference/get_all_participant_current_stats",
          "description": "All participants current stats"
        },
        {
          "method": "GET",
          "path": "/chain-api/productscience/inference/inference/get_current_epoch",
          "description": "Current epoch number and data"
        },
        {
          "method": "GET",
          "path": "/chain-api/productscience/inference/inference/epoch_info",
          "description": "Epoch info (start block, duration)"
        },
        {
          "method": "GET",
          "path": "/chain-api/productscience/inference/inference/epoch_group_data/{epoch_index}",
          "description": "Epoch group data"
        },
        {
          "method": "GET",
          "path": "/chain-api/productscience/inference/inference/current_epoch_group_data",
          "description": "Current epoch group data"
        },
        {
          "method": "GET",
          "path": "/chain-api/productscience/inference/inference/epoch_performance_summary/{epoch_index}",
          "description": "Performance summary for epoch"
        },
        {
          "method": "GET",
          "path": "/chain-api/productscience/inference/inference/epoch_performance_summary/{epoch_index}/{participantId}",
          "description": "Performance for specific participant in epoch"
        },
        {
          "method": "GET",
          "path": "/chain-api/productscience/inference/inference/epoch_group_validations/{participant}/{epoch_index}",
          "description": "Epoch group validations"
        },
        {
          "method": "GET",
          "path": "/chain-api/productscience/inference/inference/excluded_participants/{epoch_index}",
          "description": "Excluded participants for epoch"
        },
        {
          "method": "GET",
          "path": "/chain-api/productscience/inference/inference/tokenomics_data",
          "description": "Current tokenomics"
        },
        {
          "method": "GET",
          "path": "/chain-api/productscience/inference/inference/get_unit_of_compute_price_proposal",
          "description": "Current UoC price proposal"
        },
        {
          "method": "GET",
          "path": "/chain-api/productscience/inference/inference/models_all",
          "description": "All registered AI models"
        },
        {
          "method": "GET",
          "path": "/chain-api/productscience/inference/inference/model_per_token_price/{model_id}",
          "description": "Per-token price for a model"
        },
        {
          "method": "GET",
          "path": "/chain-api/productscience/inference/inference/all_model_per_token_prices",
          "description": "All model per-token prices"
        },
        {
          "method": "GET",
          "path": "/chain-api/productscience/inference/inference/model_capacity/{model_id}",
          "description": "Capacity for a model"
        },
        {
          "method": "GET",
          "path": "/chain-api/productscience/inference/inference/all_model_capacities",
          "description": "All model capacities"
        },
        {
          "method": "GET",
          "path": "/chain-api/productscience/inference/inference/models_stats_by_time",
          "description": "Model stats by time period"
        },
        {
          "method": "GET",
          "path": "/chain-api/productscience/inference/inference/top_miner/{address}",
          "description": "Top miner by address"
        },
        {
          "method": "GET",
          "path": "/chain-api/productscience/inference/inference/top_miner",
          "description": "All top miners"
        },
        {
          "method": "GET",
          "path": "/chain-api/productscience/inference/inference/poc_batches_for_stage/{block_height}",
          "description": "PoC batches at stage"
        },
        {
          "method": "GET",
          "path": "/chain-api/productscience/inference/inference/poc_validations_for_stage/{block_height}",
          "description": "PoC validations at stage"
        },
        {
          "method": "GET",
          "path": "/chain-api/productscience/inference/inference/poc_v2_validations_for_stage/{block_height}",
          "description": "PoC v2 validations at stage"
        },
        {
          "method": "GET",
          "path": "/chain-api/productscience/inference/inference/poc_v2_store_commit/{height}/{address}",
          "description": "PoC v2 off-chain state commit"
        },
        {
          "method": "GET",
          "path": "/chain-api/productscience/inference/inference/all_poc_v2_store_commits/{height}",
          "description": "All PoC v2 commits for stage"
        },
        {
          "method": "GET",
          "path": "/chain-api/productscience/inference/inference/poc_validation_snapshot/{height}",
          "description": "PoC validation snapshot"
        },
        {
          "method": "GET",
          "path": "/chain-api/productscience/inference/inference/count_po_c_batches_at_height/{height}",
          "description": "Count PoC batches at height"
        },
        {
          "method": "GET",
          "path": "/chain-api/productscience/inference/inference/count_po_c_validations_at_height/{height}",
          "description": "Count PoC validations at height"
        },
        {
          "method": "GET",
          "path": "/chain-api/productscience/inference/inference/active_confirmation_poc_event",
          "description": "Active confirmation PoC event"
        },
        {
          "method": "GET",
          "path": "/chain-api/productscience/inference/inference/confirmation_poc_events/{epoch_index}",
          "description": "Confirmation PoC events for epoch"
        },
        {
          "method": "GET",
          "path": "/chain-api/productscience/inference/inference/mlnode_weight_distribution/{height}/{address}",
          "description": "ML node weight distribution"
        },
        {
          "method": "GET",
          "path": "/chain-api/productscience/inference/inference/all_mlnode_weight_distributions/{height}",
          "description": "All ML node weight distributions for stage"
        },
        {
          "method": "GET",
          "path": "/chain-api/productscience/inference/inference/mlnode_version",
          "description": "Required ML node version"
        },
        {
          "method": "GET",
          "path": "/chain-api/productscience/inference/inference/hardware_nodes/{participant}",
          "description": "Hardware nodes for participant"
        },
        {
          "method": "GET",
          "path": "/chain-api/productscience/inference/inference/hardware_nodes_all",
          "description": "All hardware nodes"
        },
        {
          "method": "GET",
          "path": "/chain-api/productscience/inference/inference/training_task",
          "description": "Current training task"
        },
        {
          "method": "GET",
          "path": "/chain-api/productscience/inference/inference/training_task_all",
          "description": "All training tasks"
        },
        {
          "method": "GET",
          "path": "/chain-api/productscience/inference/inference/queued_training_tasks",
          "description": "Queued training tasks"
        },
        {
          "method": "GET",
          "path": "/chain-api/productscience/inference/inference/in_progress_training_tasks",
          "description": "In-progress training tasks"
        },
        {
          "method": "GET",
          "path": "/chain-api/productscience/inference/inference/training_kv_record/{taskId}/{key}",
          "description": "Training KV record"
        },
        {
          "method": "GET",
          "path": "/chain-api/productscience/inference/inference/list_training_kv_record_keys/{taskId}",
          "description": "List training KV record keys"
        },
        {
          "method": "GET",
          "path": "/chain-api/productscience/inference/inference/training_barrier",
          "description": "Training barrier state"
        },
        {
          "method": "GET",
          "path": "/chain-api/productscience/inference/inference/training_alive_nodes",
          "description": "Alive nodes in training"
        },
        {
          "method": "GET",
          "path": "/chain-api/productscience/inference/inference/training_allow_list",
          "description": "Training allow list"
        },
        {
          "method": "GET",
          "path": "/chain-api/productscience/inference/inference/inference_timeout/{expirationHeight}/{inferenceId}",
          "description": "Inference timeout record"
        },
        {
          "method": "GET",
          "path": "/chain-api/productscience/inference/inference/inference_validation_details/{epochId}/{inferenceId}",
          "description": "Inference validation details"
        },
        {
          "method": "GET",
          "path": "/chain-api/productscience/inference/inference/get_inference_validation_parameters/{ids}/{requester}",
          "description": "Inference validation parameters"
        },
        {
          "method": "GET",
          "path": "/chain-api/productscience/inference/inference/get_minimum_validation_average",
          "description": "Minimum validation average threshold"
        },
        {
          "method": "GET",
          "path": "/chain-api/productscience/inference/inference/settle_amount/{participant}",
          "description": "Settle amount for participant"
        },
        {
          "method": "GET",
          "path": "/chain-api/productscience/inference/inference/developer/{developer}/stats_by_time",
          "description": "Developer stats by time period"
        },
        {
          "method": "GET",
          "path": "/chain-api/productscience/inference/inference/developer/{developer}/stats_by_epochs_backwards",
          "description": "Developer stats by epochs"
        },
        {
          "method": "GET",
          "path": "/chain-api/productscience/inference/inference/all_stats_by_time",
          "description": "Global stats by time period"
        },
        {
          "method": "GET",
          "path": "/chain-api/productscience/inference/inference/bridge_transaction/{origin_chain}/{block_number}/{receipt_index}",
          "description": "Bridge transaction"
        },
        {
          "method": "GET",
          "path": "/chain-api/productscience/inference/inference/bridge_transactions",
          "description": "All bridge transactions"
        },
        {
          "method": "GET",
          "path": "/chain-api/productscience/inference/inference/bridge_addresses/{chain_id}",
          "description": "Bridge addresses by chain"
        },
        {
          "method": "GET",
          "path": "/chain-api/productscience/inference/inference/liquidity_pool",
          "description": "Liquidity pool state"
        },
        {
          "method": "GET",
          "path": "/chain-api/productscience/inference/inference/wrapped_token_balances/{address}",
          "description": "Wrapped token balances"
        },
        {
          "method": "GET",
          "path": "/chain-api/productscience/inference/inference/approved_tokens_for_trade",
          "description": "Approved tokens for trading"
        },
        {
          "method": "GET",
          "path": "/chain-api/productscience/inference/inference/validate_wrapped_token_for_trade/{denom}",
          "description": "Validate wrapped token for trading"
        },
        {
          "method": "GET",
          "path": "/chain-api/productscience/inference/inference/validate_ibc_token_for_trade/{denom}",
          "description": "Validate IBC token for trading"
        },
        {
          "method": "GET",
          "path": "/chain-api/productscience/inference/inference/participant_allow_list",
          "description": "Participant allow list"
        },
        {
          "method": "GET",
          "path": "/chain-api/productscience/inference/inference/partial_upgrade/{height}",
          "description": "Partial upgrade at height"
        },
        {
          "method": "GET",
          "path": "/chain-api/productscience/inference/inference/partial_upgrade",
          "description": "All partial upgrades"
        },
        {
          "method": "GET",
          "path": "/chain-api/productscience/inference/inference/random_seeds/{epoch_index}",
          "description": "Random seeds for epoch"
        },
        {
          "method": "GET",
          "path": "/chain-api/productscience/inference/inference/subnet_escrow/{id}",
          "description": "Subnet escrow by ID"
        },
        {
          "method": "GET",
          "path": "/chain-api/productscience/inference/inference/subnet_host_epoch_stats/{epoch_index}/{participant}",
          "description": "Subnet host epoch stats"
        },
        {
          "method": "GET",
          "path": "/chain-api/productscience/inference/inference/grantees_by_message_type/{granter_address}/{message_type_url}",
          "description": "Grantees by message type"
        },
        {
          "method": "GET",
          "path": "/chain-api/productscience/inference/bls/params",
          "description": "BLS module parameters"
        },
        {
          "method": "GET",
          "path": "/chain-api/productscience/inference/bls/epoch_data/{epoch_id}",
          "description": "BLS epoch data"
        },
        {
          "method": "GET",
          "path": "/chain-api/productscience/inference/bls/signing_status/{request_id}",
          "description": "BLS signing status"
        },
        {
          "method": "GET",
          "path": "/chain-api/productscience/inference/bls/signing_history",
          "description": "BLS signing history"
        },
        {
          "method": "GET",
          "path": "/chain-api/productscience/inference/collateral/params",
          "description": "Collateral module parameters"
        },
        {
          "method": "GET",
          "path": "/chain-api/productscience/inference/collateral/collateral/{participant}",
          "description": "Collateral for a participant"
        },
        {
          "method": "GET",
          "path": "/chain-api/productscience/inference/collateral/collateral",
          "description": "All collaterals"
        },
        {
          "method": "GET",
          "path": "/chain-api/productscience/inference/collateral/unbonding/{participant}",
          "description": "Unbonding collateral"
        },
        {
          "method": "GET",
          "path": "/chain-api/productscience/inference/collateral/unbonding",
          "description": "All unbonding collaterals"
        },
        {
          "method": "GET",
          "path": "/chain-api/productscience/inference/restrictions/params",
          "description": "Restrictions module parameters"
        },
        {
          "method": "GET",
          "path": "/chain-api/productscience/inference/restrictions/status",
          "description": "Transfer restriction status"
        },
        {
          "method": "GET",
          "path": "/chain-api/productscience/inference/restrictions/exemptions",
          "description": "Transfer exemptions"
        },
        {
          "method": "GET",
          "path": "/chain-api/productscience/inference/restrictions/exemption_usage",
          "description": "Exemption usage"
        },
        {
          "method": "GET",
          "path": "/chain-api/productscience/inference/genesistransfer/params",
          "description": "Genesis transfer parameters"
        },
        {
          "method": "GET",
          "path": "/chain-api/productscience/inference/genesistransfer/transfer_status/{genesis_address}",
          "description": "Transfer status for genesis account"
        },
        {
          "method": "GET",
          "path": "/chain-api/productscience/inference/genesistransfer/transfer_history",
          "description": "Transfer history"
        },
        {
          "method": "GET",
          "path": "/chain-api/productscience/inference/genesistransfer/allowed_accounts",
          "description": "Allowed accounts"
        },
        {
          "method": "GET",
          "path": "/chain-api/productscience/inference/genesistransfer/transfer_eligibility/{genesis_address}",
          "description": "Transfer eligibility"
        },
        {
          "method": "GET",
          "path": "/chain-api/productscience/inference/streamvesting/params",
          "description": "Stream vesting parameters"
        },
        {
          "method": "GET",
          "path": "/chain-api/productscience/inference/streamvesting/vesting_schedule/{participant_address}",
          "description": "Vesting schedule for participant"
        },
        {
          "method": "GET",
          "path": "/chain-api/productscience/inference/streamvesting/total_vesting/{participant_address}",
          "description": "Total vesting amount"
        },
        {
          "method": "GET",
          "path": "/chain-api/productscience/inference/bookkeeper/params",
          "description": "Bookkeeper module parameters"
        }
      ]
    },
    {
      "tag": "TX",
      "label": "Gonka transactions (Msg RPCs)",
      "description": "On-chain write operations exposed as POST via gRPC-Gateway under /chain-api/. These correspond to the Msg service in each Gonka module. All require a signed transaction body.",
      "endpoints": [
        {
          "method": "POST",
          "path": "/chain-api/productscience/inference/inference/start_inference",
          "description": "Start an inference request"
        },
        {
          "method": "POST",
          "path": "/chain-api/productscience/inference/inference/finish_inference",
          "description": "Finish an inference and submit result"
        },
        {
          "method": "POST",
          "path": "/chain-api/productscience/inference/inference/invalidate_inference",
          "description": "Invalidate a failed inference"
        },
        {
          "method": "POST",
          "path": "/chain-api/productscience/inference/inference/revalidate_inference",
          "description": "Re-validate an invalidated inference"
        },
        {
          "method": "POST",
          "path": "/chain-api/productscience/inference/inference/validation",
          "description": "Submit validation result for an inference"
        },
        {
          "method": "POST",
          "path": "/chain-api/productscience/inference/inference/submit_new_participant",
          "description": "Register a new funded participant"
        },
        {
          "method": "POST",
          "path": "/chain-api/productscience/inference/inference/submit_new_unfunded_participant",
          "description": "Register a new unfunded participant"
        },
        {
          "method": "POST",
          "path": "/chain-api/productscience/inference/inference/claim_rewards",
          "description": "Claim epoch rewards"
        },
        {
          "method": "POST",
          "path": "/chain-api/productscience/inference/inference/submit_poc_batch",
          "description": "Submit Proof of Computation batch"
        },
        {
          "method": "POST",
          "path": "/chain-api/productscience/inference/inference/submit_poc_validation",
          "description": "Submit PoC validation result"
        },
        {
          "method": "POST",
          "path": "/chain-api/productscience/inference/inference/submit_poc_validations_v2",
          "description": "Submit PoC v2 validations (batch)"
        },
        {
          "method": "POST",
          "path": "/chain-api/productscience/inference/inference/poc_v2_store_commit",
          "description": "Submit PoC v2 off-chain state commit"
        },
        {
          "method": "POST",
          "path": "/chain-api/productscience/inference/inference/mlnode_weight_distribution",
          "description": "Submit ML node weight distribution"
        },
        {
          "method": "POST",
          "path": "/chain-api/productscience/inference/inference/submit_seed",
          "description": "Submit random seed for epoch"
        },
        {
          "method": "POST",
          "path": "/chain-api/productscience/inference/inference/submit_unit_of_compute_price_proposal",
          "description": "Submit UoC price governance proposal"
        },
        {
          "method": "POST",
          "path": "/chain-api/productscience/inference/inference/register_model",
          "description": "Register a new AI model (gov)"
        },
        {
          "method": "POST",
          "path": "/chain-api/productscience/inference/inference/delete_governance_model",
          "description": "Delete a governance-registered model"
        },
        {
          "method": "POST",
          "path": "/chain-api/productscience/inference/inference/create_training_task",
          "description": "Create a new training task"
        },
        {
          "method": "POST",
          "path": "/chain-api/productscience/inference/inference/claim_training_task_for_assignment",
          "description": "Claim training task for assignment"
        },
        {
          "method": "POST",
          "path": "/chain-api/productscience/inference/inference/assign_training_task",
          "description": "Assign training task to participant"
        },
        {
          "method": "POST",
          "path": "/chain-api/productscience/inference/inference/join_training",
          "description": "Join an active training session"
        },
        {
          "method": "POST",
          "path": "/chain-api/productscience/inference/inference/training_heartbeat",
          "description": "Submit training heartbeat"
        },
        {
          "method": "POST",
          "path": "/chain-api/productscience/inference/inference/set_barrier",
          "description": "Set training synchronization barrier"
        },
        {
          "method": "POST",
          "path": "/chain-api/productscience/inference/inference/join_training_status",
          "description": "Report training join status"
        },
        {
          "method": "POST",
          "path": "/chain-api/productscience/inference/inference/submit_training_kv_record",
          "description": "Submit training key-value record"
        },
        {
          "method": "POST",
          "path": "/chain-api/productscience/inference/inference/submit_hardware_diff",
          "description": "Submit hardware configuration diff"
        },
        {
          "method": "POST",
          "path": "/chain-api/productscience/inference/inference/bridge_exchange",
          "description": "Execute bridge token exchange"
        },
        {
          "method": "POST",
          "path": "/chain-api/productscience/inference/inference/register_bridge_addresses",
          "description": "Register bridge contract addresses (gov)"
        },
        {
          "method": "POST",
          "path": "/chain-api/productscience/inference/inference/register_liquidity_pool",
          "description": "Register bridge liquidity pool (gov)"
        },
        {
          "method": "POST",
          "path": "/chain-api/productscience/inference/inference/request_bridge_withdrawal",
          "description": "Request bridge withdrawal"
        },
        {
          "method": "POST",
          "path": "/chain-api/productscience/inference/inference/request_bridge_mint",
          "description": "Request bridge mint"
        },
        {
          "method": "POST",
          "path": "/chain-api/productscience/inference/inference/register_wrapped_token_contract",
          "description": "Register wrapped token contract (gov)"
        },
        {
          "method": "POST",
          "path": "/chain-api/productscience/inference/inference/migrate_all_wrapped_tokens",
          "description": "Migrate all wrapped tokens (gov)"
        },
        {
          "method": "POST",
          "path": "/chain-api/productscience/inference/inference/register_token_metadata",
          "description": "Register token metadata (gov)"
        },
        {
          "method": "POST",
          "path": "/chain-api/productscience/inference/inference/approve_bridge_token_for_trading",
          "description": "Approve bridge token for trading (gov)"
        },
        {
          "method": "POST",
          "path": "/chain-api/productscience/inference/inference/approve_ibc_token_for_trading",
          "description": "Approve IBC token for trading (gov)"
        },
        {
          "method": "POST",
          "path": "/chain-api/productscience/inference/inference/register_ibc_token_metadata",
          "description": "Register IBC token metadata (gov)"
        },
        {
          "method": "POST",
          "path": "/chain-api/productscience/inference/inference/add_training_allow_list",
          "description": "Add to training allow list (gov)"
        },
        {
          "method": "POST",
          "path": "/chain-api/productscience/inference/inference/remove_training_allow_list",
          "description": "Remove from training allow list (gov)"
        },
        {
          "method": "POST",
          "path": "/chain-api/productscience/inference/inference/set_training_allow_list",
          "description": "Set entire training allow list (gov)"
        },
        {
          "method": "POST",
          "path": "/chain-api/productscience/inference/inference/add_participants_to_allow_list",
          "description": "Add participants to allow list (gov)"
        },
        {
          "method": "POST",
          "path": "/chain-api/productscience/inference/inference/remove_participants_from_allow_list",
          "description": "Remove participants from allow list (gov)"
        },
        {
          "method": "POST",
          "path": "/chain-api/productscience/inference/inference/create_partial_upgrade",
          "description": "Create partial chain upgrade (gov)"
        },
        {
          "method": "POST",
          "path": "/chain-api/productscience/inference/inference/create_subnet_escrow",
          "description": "Create subnet escrow"
        },
        {
          "method": "POST",
          "path": "/chain-api/productscience/inference/inference/settle_subnet_escrow",
          "description": "Settle subnet escrow"
        },
        {
          "method": "POST",
          "path": "/chain-api/productscience/inference/inference/update_params",
          "description": "Update inference module params (gov)"
        },
        {
          "method": "POST",
          "path": "/chain-api/productscience/inference/bls/submit_dealer_part",
          "description": "Submit BLS dealer part (DKG)"
        },
        {
          "method": "POST",
          "path": "/chain-api/productscience/inference/bls/submit_verification_vector",
          "description": "Submit BLS verification vector (DKG)"
        },
        {
          "method": "POST",
          "path": "/chain-api/productscience/inference/bls/submit_group_key_validation_signature",
          "description": "Submit group key validation sig (DKG)"
        },
        {
          "method": "POST",
          "path": "/chain-api/productscience/inference/bls/submit_partial_signature",
          "description": "Submit BLS partial signature"
        },
        {
          "method": "POST",
          "path": "/chain-api/productscience/inference/bls/request_threshold_signature",
          "description": "Request BLS threshold signature"
        },
        {
          "method": "POST",
          "path": "/chain-api/productscience/inference/bls/update_params",
          "description": "Update BLS module params (gov)"
        },
        {
          "method": "POST",
          "path": "/chain-api/productscience/inference/collateral/deposit_collateral",
          "description": "Deposit collateral"
        },
        {
          "method": "POST",
          "path": "/chain-api/productscience/inference/collateral/withdraw_collateral",
          "description": "Withdraw collateral"
        },
        {
          "method": "POST",
          "path": "/chain-api/productscience/inference/collateral/update_params",
          "description": "Update collateral module params (gov)"
        },
        {
          "method": "POST",
          "path": "/chain-api/productscience/inference/restrictions/execute_emergency_transfer",
          "description": "Execute emergency transfer (gov)"
        },
        {
          "method": "POST",
          "path": "/chain-api/productscience/inference/restrictions/update_params",
          "description": "Update restrictions module params (gov)"
        },
        {
          "method": "POST",
          "path": "/chain-api/productscience/inference/genesistransfer/transfer_ownership",
          "description": "Transfer genesis account ownership"
        },
        {
          "method": "POST",
          "path": "/chain-api/productscience/inference/genesistransfer/update_params",
          "description": "Update genesis transfer params (gov)"
        },
        {
          "method": "POST",
          "path": "/chain-api/productscience/inference/streamvesting/transfer_with_vesting",
          "description": "Transfer tokens with vesting schedule"
        },
        {
          "method": "POST",
          "path": "/chain-api/productscience/inference/streamvesting/batch_transfer_with_vesting",
          "description": "Batch transfer with vesting"
        },
        {
          "method": "POST",
          "path": "/chain-api/productscience/inference/streamvesting/update_params",
          "description": "Update stream vesting params (gov)"
        },
        {
          "method": "POST",
          "path": "/chain-api/productscience/inference/bookkeeper/update_params",
          "description": "Update bookkeeper params (gov)"
        }
      ]
    },
    {
      "tag": "API",
      "label": "Gonka API node",
      "description": "Proxied from the Gonka decentralized-api node at /v1/. Developer-friendly JSON — no raw Cosmos formats needed.",
      "endpoints": [
        {
          "method": "GET",
          "path": "/v1/status",
          "description": "Node health and sync status"
        },
        {
          "method": "GET",
          "path": "/v1/identity",
          "description": "Node identity (address, pubkey)"
        },
        {
          "method": "GET",
          "path": "/v1/versions",
          "description": "Software version info"
        },
        {
          "method": "GET",
          "path": "/v1/models",
          "description": "Available AI models and capacities"
        },
        {
          "method": "GET",
          "path": "/v1/pricing",
          "description": "Current inference pricing"
        },
        {
          "method": "GET",
          "path": "/v1/participants",
          "description": "List all participants"
        },
        {
          "method": "GET",
          "path": "/v1/participants/{address}",
          "description": "Participant details by address"
        },
        {
          "method": "GET",
          "path": "/v1/governance/models",
          "description": "Governance-registered models"
        },
        {
          "method": "GET",
          "path": "/v1/governance/pricing",
          "description": "Governance pricing proposals"
        },
        {
          "method": "GET",
          "path": "/v1/epochs/{epoch}",
          "description": "Epoch data by ID"
        },
        {
          "method": "GET",
          "path": "/v1/epochs/{epoch}/participants",
          "description": "Participants in an epoch"
        },
        {
          "method": "GET",
          "path": "/v1/stats/summary/epochs",
          "description": "Global inference summary by epochs"
        },
        {
          "method": "GET",
          "path": "/v1/stats/summary/time",
          "description": "Global inference summary by time"
        },
        {
          "method": "GET",
          "path": "/v1/stats/models",
          "description": "Per-model usage statistics"
        },
        {
          "method": "GET",
          "path": "/v1/stats/developers/{dev}/inferences",
          "description": "Developer inference stats"
        },
        {
          "method": "GET",
          "path": "/v1/bls/epoch/{id}",
          "description": "BLS epoch data"
        },
        {
          "method": "GET",
          "path": "/v1/bls/signatures/{request_id}",
          "description": "BLS signature by request ID"
        },
        {
          "method": "GET",
          "path": "/v1/bridge/status",
          "description": "Bridge status"
        },
        {
          "method": "GET",
          "path": "/v1/bridge/addresses",
          "description": "Bridge addresses"
        },
        {
          "method": "GET",
          "path": "/v1/restrictions/status",
          "description": "Transfer restriction status"
        },
        {
          "method": "GET",
          "path": "/v1/restrictions/exemptions",
          "description": "Transfer exemptions"
        },
        {
          "method": "GET",
          "path": "/v1/poc/artifacts/state",
          "description": "Proof-of-Computation artifact state"
        },
        {
          "method": "GET",
          "path": "/v1/inference/payloads",
          "description": "Inference payload data"
        },
        {
          "method": "POST",
          "path": "/v1/chat/completions",
          "description": "Submit inference request (OpenAI-compatible)"
        },
        {
          "method": "GET",
          "path": "/v1/chat/completions",
          "description": "Get inference result by ID"
        },
        {
          "method": "POST",
          "path": "/v1/participants",
          "description": "Register a new participant"
        },
        {
          "method": "POST",
          "path": "/v1/training/tasks",
          "description": "Create a training task"
        },
        {
          "method": "GET",
          "path": "/v1/training/tasks",
          "description": "List training tasks"
        },
        {
          "method": "GET",
          "path": "/v1/training/tasks/{id}",
          "description": "Get training task by ID"
        },
        {
          "method": "POST",
          "path": "/v1/training/lock-nodes",
          "description": "Lock nodes for training session"
        },
        {
          "method": "POST",
          "path": "/v1/verify-proof",
          "description": "Verify a submitted proof"
        },
        {
          "method": "POST",
          "path": "/v1/verify-block",
          "description": "Verify a block"
        },
        {
          "method": "GET",
          "path": "/v1/governance/models-legacy",
          "description": "Legacy governance-registered models"
        },
        {
          "method": "GET",
          "path": "/v1/stats/developers/{dev}/summary/epochs",
          "description": "Developer epoch summary"
        },
        {
          "method": "GET",
          "path": "/v1/poc-batches/{epoch}",
          "description": "PoC batches for an epoch"
        },
        {
          "method": "POST",
          "path": "/v1/poc/proofs",
          "description": "Submit PoC proofs (rate limited 300/min)"
        },
        {
          "method": "GET",
          "path": "/v1/restrictions/exemptions/{id}/usage/{account}",
          "description": "Exemption usage for specific account"
        },
        {
          "method": "GET",
          "path": "/v1/debug/pubkey-to-addr/{pubkey}",
          "description": "Convert public key to address"
        },
        {
          "method": "GET",
          "path": "/v1/debug/verify/{height}",
          "description": "Debug: verify at block height"
        }
      ]
    },
    {
      "tag": "FAST",
      "label": "Fast indexed endpoints",
      "description": "Read-only JSON from the ClickHouse chain index at /api/ch/*. Sub-200 ms on full history. Ideal for explorers, wallets, analytics.",
      "endpoints": [
        {
          "method": "GET",
          "path": "/api/ch/blocks",
          "description": "Latest blocks with tx count, gas totals, timestamps — newest first",
          "params": "limit (default 20, max 100), offset (max 100K)"
        },
        {
          "method": "GET",
          "path": "/api/ch/blocks/latest",
          "description": "Latest indexed block — height, time, tx count, gas totals"
        },
        {
          "method": "GET",
          "path": "/api/ch/tx/{hash}",
          "description": "Transaction by hash — full indexed record",
          "params": "hash: 64 hex chars, 0x prefix ok"
        },
        {
          "method": "GET",
          "path": "/api/ch/block/{height}",
          "description": "All transactions in a block, chain order",
          "params": "height: non-negative integer"
        },
        {
          "method": "GET",
          "path": "/api/ch/address/{address}",
          "description": "Paginated tx history for any wallet — sent & received, newest first",
          "params": "limit (default 5, max 100), offset (max 1M)"
        },
        {
          "method": "GET",
          "path": "/api/ch/slashing",
          "description": "Slashing events — filter by participant and height range",
          "params": "participant, from_height, to_height, limit (50), offset"
        },
        {
          "method": "GET",
          "path": "/api/ch/hardware/nodes/{address}",
          "description": "Current hardware registrations — GPU types, status, timestamps"
        },
        {
          "method": "GET",
          "path": "/api/ch/hardware/snapshots",
          "description": "Per-epoch hardware history",
          "params": "snapshot_epoch (required), participant, limit, offset"
        },
        {
          "method": "GET",
          "path": "/api/ch/epoch-performance/{address}",
          "description": "Per-epoch inference & rewards counters for a participant",
          "params": "epoch_min, limit, offset. Ordered epoch_index DESC"
        }
      ]
    },
    {
      "tag": "MLNODE",
      "label": "MLNode callback API",
      "description": "Callback endpoints for ML nodes participating in Proof of Computation. Used by the ML node software to report PoC results back to the API node.",
      "endpoints": [
        {
          "method": "POST",
          "path": "/mlnode/v1/poc-batches/generated",
          "description": "V1: PoC batch generation callback"
        },
        {
          "method": "POST",
          "path": "/mlnode/v1/poc-batches/validated",
          "description": "V1: PoC batch validation callback"
        },
        {
          "method": "POST",
          "path": "/v1/poc-batches/generated",
          "description": "V1 alias: PoC batch generated"
        },
        {
          "method": "POST",
          "path": "/v1/poc-batches/validated",
          "description": "V1 alias: PoC batch validated"
        },
        {
          "method": "POST",
          "path": "/v2/poc-batches/generated",
          "description": "V2: PoC artifacts generation (off-chain)"
        },
        {
          "method": "POST",
          "path": "/v2/poc-batches/validated",
          "description": "V2: PoC validations (off-chain)"
        }
      ]
    }
  ]
}