RPC API
Mo Chain exposes standard Ethereum JSON-RPC plus BSC debug_* namespaces on archive nodes.
Endpoints
| Protocol | URL |
|---|---|
| HTTPS JSON-RPC | https://rpc-testnet.mo.fit |
| WebSocket | wss://wss-testnet.mo.fit |
| Explorer | https://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
- Subgraph — GraphQL indexing.
- SDK & Code Examples.