跳到主要内容

RPC API

Mo Chain exposes standard Ethereum JSON-RPC plus BSC debug_* namespaces on archive nodes.

Endpoints

ProtocolURL
HTTPS JSON-RPChttps://rpc-testnet.mo.fit
WebSocketwss://wss-testnet.mo.fit
Explorerhttps://scan-testnet.mo.fit

Check the chain ID

curl -s https://rpc-testnet.mo.fit \
-X POST -H 'Content-Type: application/json' \
--data '{"jsonrpc":"2.0","id":1,"method":"eth_chainId","params":[]}'
# -> {"jsonrpc":"2.0","id":1,"result":"0x2290"} # 0x2290 = 6688

Common methods

# latest block number
curl -s https://rpc-testnet.mo.fit -X POST -H 'Content-Type: application/json' \
--data '{"jsonrpc":"2.0","id":1,"method":"eth_blockNumber","params":[]}'

# balance
curl -s https://rpc-testnet.mo.fit -X POST -H 'Content-Type: application/json' \
--data '{"jsonrpc":"2.0","id":1,"method":"eth_getBalance","params":["0xYourAddress","latest"]}'

WebSocket subscriptions

import { createPublicClient, webSocket } from 'viem';
const client = createPublicClient({ transport: webSocket('wss://wss-testnet.mo.fit') });
const unwatch = client.watchBlocks({ onBlock: (b) => console.log(b.number) });

Tracing (archive nodes)

debug_traceTransaction and related methods are available on archive RPC nodes — these power the explorer's internal-transaction view.

Rate limits

Public endpoints are rate-limited and method-filtered at the gateway. For heavy workloads (indexers, bots), run your own node or request a dedicated endpoint.

Next steps