Skip to main content
The Quantum Chain node exposes a standard JSON-RPC 2.0 interface over HTTP and WebSocket. All methods in the Ethereum eth_* namespace are also available under the qc_* namespace — the qc_* variant is recommended for Quantum Chain integrations.
Every qc_* method has an identical eth_* counterpart. If your tooling only supports eth_*, it works the same way.

Connecting

HTTP
curl -X POST http://localhost:8545 \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","method":"qc_blockNumber","params":[],"id":1}'
WebSocket
wscat -c ws://localhost:8546
> {"jsonrpc":"2.0","method":"qc_blockNumber","params":[],"id":1}

Enabling RPC modules

By default, the node only exposes net and web3 modules. Enable additional modules with CLI flags:
geth --http --http.api eth,qc,net,web3,txpool --ws --ws.api eth,qc,net,web3

Namespaces

NamespaceDescription
qcQuantum Chain native — accounts, blocks, transactions, gas, execution
ethEthereum-compatible alias (identical to qc)
netNetwork info — peer count, version, listening status
web3Utilities — client version, SHA3
txpoolTransaction pool inspection
debugDebugging and tracing
adminNode administration and peer management
personalAccount management (unlock, sign)

Request format

Every request follows JSON-RPC 2.0:
{
  "jsonrpc": "2.0",
  "method": "qc_blockNumber",
  "params": [],
  "id": 1
}

Block number tags

Several methods accept a block identifier instead of a number:
TagMeaning
"latest"Most recent mined block
"pending"Pending state/transactions
"earliest"Genesis block
"finalized"Most recent finalized block
"safe"Most recent safe block

Reference pages

Blocks

Chain ID, block number, headers, block lookups, uncle queries

Accounts

Balances, code, storage, proofs, receipts

Transactions

Send, query, sign, receipts, pending pool

Gas & fees

Gas price, priority fee, fee history, estimation

Execution

Read-only calls, access lists, sync status