The XRP Ledger runs three public networks. Honeycluster serves all three through distinct hostnames — you pick the network by pointing your client at the matching URL, not by passing a query parameter.
| Network | Ledger state | Token | Reset policy | Use for |
|---|---|---|---|---|
mainnet | Production | Real XRP | Never resets | Live integrations, billing, production analytics |
testnet | Staging | Test XRP (free) | Occasionally reset on major upgrades | End-to-end testing against production-parity validators |
devnet | Pre-release | Test XRP (free) | Resets frequently | Exercising amendments and features before they ship |
| Network | HTTPS | WebSocket |
|---|---|---|
Mainnet | https://honeycluster.io | wss://honeycluster.io |
Testnet | https://testnet.honeycluster.io | wss://testnet.honeycluster.io |
Devnet | https://devnet.honeycluster.io | wss://devnet.honeycluster.io |
All three speak the XRP Ledger's native JSON-RPC (over HTTPS) and WebSocket protocols. Any client that talks to a public rippled or Clio node will also talk to Honeycluster without modification — see Public Endpoints for the full client examples.
No API key is needed for public endpoints; they're open access. See Authentication for when and how keys come into play (private / enterprise plans).
The xrpl.js Client takes a URL per instance, so a clean pattern is to
build a helper that returns the right client for the network:
TypeScriptimport { Client } from 'xrpl' const NETWORK_URL = { mainnet: 'wss://honeycluster.io', testnet: 'wss://testnet.honeycluster.io', devnet: 'wss://devnet.honeycluster.io', } as const export function clientFor(network: keyof typeof NETWORK_URL) { return new Client(NETWORK_URL[network]) }
Then swap at the call site:
TypeScriptconst client = clientFor(process.env.NETWORK === 'prod' ? 'mainnet' : 'testnet') await client.connect()
Testnet and devnet have their own XRPL faucets. Use the official XRPL testnet faucet to fund an account for end-to-end testing; Honeycluster doesn't run a custom faucet endpoint — we forward real traffic to the real networks.
Mainnet has no faucet. Fund production accounts through an exchange or by transferring from an existing wallet.