Services & URIs
Explorer, RPC, WebSocket, faucet, claims, holder intelligence, node, liquidity, payment, staking, downloads, snapshots, torrent, bootnode, and NTP endpoints.
Public ROKO services
Use the values in `network-manifest.json` as the machine-readable source of truth. This page explains how to use them.
Service catalog
| Name | Purpose | Protocol |
|---|---|---|
| `explorer.roko.network` | blocks, transactions, tokens, validators | HTTPS |
| `rpc.roko.network` | safe chain and temporal queries | JSON-RPC over HTTPS/WSS |
| `faucet.roko.network` | testnet ROKO for user-controlled wallets | HTTPS |
| `claim.roko.network` | Ethereum holder recognition claims | HTTPS and wallet RPC |
| `holders.roko.network` | holder snapshots, analytics, and exports | HTTPS |
| `nodes.roko.network` | guided node install and operator handoff | HTTPS |
| `clowder.roko.network` | testnet pools, swaps, and liquidity view | HTTPS and wallet RPC |
| `payments.roko.network` | non-custodial payment request builder | HTTPS and wallet RPC |
| `stake.roko.network` | pwROKO lock, unlock, and staking portal | HTTPS and wallet RPC |
| `downloads.roko.network` | native and offline-container releases | HTTPS |
| `snapshots.roko.network` | verified full/archive bootstrap data | HTTPS and BitTorrent |
| `downloads.roko.network/torrent` | public artifact seeding guide | HTTPS and BitTorrent |
| `boot.roko.network` | initial peer discovery | ROKO libp2p multiaddress over TCP |
| `time.roko.network` | public UTC time source | NTPv4 over UDP/123 |
The DNS names deliberately hide implementation details. Do not depend on a resolved address remaining fixed.
Explorer, faucet, and artifacts
- Browse the chain at explorer.roko.network.
- Add testnet funds at faucet.roko.network.
The faucet requires a wallet-signed proof of address control; the signature does not authorize a transaction or fee.
- Check Ethereum holder recognition at
claim.roko.network. The active claim page links to the exact holder-intelligence snapshot used for eligibility.
- Browse published holder snapshots, analytics, source exports, and the ROKO
testnet holder view at holders.roko.network.
- Launch or hand off a guided node setup at
- Use clowder.roko.network for testnet
liquidity and swap workflows.
- Create inspectable non-custodial payment requests at
- Manage pwROKO locking and unlocking at
- The live mainnet-configured runtime does not currently register the staking
precompile at `0x0000…0700`; do not treat a successful EVM call to that empty address as a validator bond. Confirm bonds in native staking storage.
- The current testnet validator walkthrough uses a 50-pwROKO self-bond. Follow
Become a validator for claim, lock, bond, keys, candidacy, and activation checks; the live technical minimum is presently unset and must not be presented as a zero-bond recommendation.
- If your wallet is not configured yet, follow
Wallets and faucet before claiming.
- Browse release artifacts at
downloads.roko.network and verify the current release with SHA256SUMS.
- Bootstrap from a verified normal or archive snapshot at
- Use the peer-assisted download guide for the official
torrent and magnet distribution guide.
- To help other operators download artifacts, follow
BitTorrent seeding. Seeders only share public release and snapshot files; they do not need validator keys or source access.
The explorer-compatible Ethereum JSON-RPC endpoint is `https://explorer.roko.network/api/eth-rpc`. Prefer `https://rpc.roko.network` for native Substrate and temporal methods.
Bootnode
A hostname is not a complete libp2p address. A bootnode multiaddress also contains its transport, port, and stable peer ID:
/dns4/boot.roko.network/tcp/30333/ws/p2p/12D3KooWKSBZRtSiGKo8ueJtazCHT89LaBi6ZAtzgbeznf4NtVGj
Pass that entire value to `--bootnodes`. Allow outbound TCP/30333. A node that will accept inbound peers must also allow its configured P2P listen port and advertise a reachable public multiaddress.
This is libp2p traffic, not HTTPS JSON-RPC. An HTTP reverse proxy or ordinary Cloudflare Tunnel is not automatically a libp2p transport.
HTTPS JSON-RPC
Query basic health:
curl --fail --silent --show-error https://rpc.roko.network \
-H 'content-type: application/json' \
--data '{"jsonrpc":"2.0","id":1,"method":"system_health","params":[]}'
Verify chain identity:
curl --fail --silent --show-error https://rpc.roko.network \
-H 'content-type: application/json' \
--data '[
{"jsonrpc":"2.0","id":1,"method":"system_chain","params":[]},
{"jsonrpc":"2.0","id":2,"method":"chain_getBlockHash","params":[0]},
{"jsonrpc":"2.0","id":3,"method":"eth_chainId","params":[]}
]'
Compare the genesis hash and EVM chain ID to the manifest. A DNS name and TLS certificate are not enough to establish that an endpoint serves the intended chain.
Query mesh time:
curl --fail --silent --show-error https://rpc.roko.network \
-H 'content-type: application/json' \
--data '{"jsonrpc":"2.0","id":1,"method":"temporal_getConsensusTime","params":[]}'
The public endpoint is for safe methods. Never send a seed, secret URI, keystore operation, authoring/admin request, or unsigned transaction containing private material to it. Method discovery is not proof that a method is authorized.
Use timeouts, exponential backoff, and more than one provider for a production application. Run your own full/archive node for high volume, privacy, historical-state guarantees, or independence from public rate limits.
WebSocket
Use `wss://rpc.roko.network` for subscriptions. A Polkadot.js example:
import { ApiPromise, WsProvider } from "@polkadot/api";
const api = await ApiPromise.create({
provider: new WsProvider("wss://rpc.roko.network"),
});
const unsubscribe = await api.rpc.chain.subscribeFinalizedHeads((header) => {
console.log(header.number.toString(), header.hash.toHex());
});
process.on("SIGINT", async () => {
unsubscribe();
await api.disconnect();
});
Applications should act on finalized heads when a reorganization would be unsafe.
Public NTP
Use ROKO as one of several independent, permitted sources:
# /etc/chrony/sources.d/roko.sources
server time.roko.network iburst
pool pool.ntp.org iburst maxsources 3
Then reload and inspect:
sudo chronyc reload sources
chronyc sources -v
chronyc tracking
Do not add `nts` to the ROKO line until the manifest says `ntsVerified: true`. Do not mix leap-smeared and non-smeared sources. Respect server rate limiting and Kiss-o'-Death responses; aggressive polling harms the public service.
NTP transports time to a host. It does not prove an on-chain event timestamp; use temporal RPC for that.
Reporting a problem
Report the problem through the operator form, the ROKO Telegram, or the ROKO Discord. Include:
- the public DNS name and protocol;
- UTC observation time;
- client software/version;
- sanitized error and retry behavior; and
- the manifest genesis hash you expected.
Remove local addresses, peer lists, credentials, headers/tokens, and unrelated logs.