Base58 Ripple Encoder/Decoder

XRP Ledger Base58Check address encoding and decoding

Encode and decode using the XRP Ledger's Base58 dictionary, with optional Base58Check that appends and verifies a four-byte double-SHA-256 checksum. Convert hex payloads to Ripple Base58 and back, with full checksum validation, in your browser. It runs free in your browser on Gera Tools, with nothing uploaded.

Last updated Source: Gera Tools

What makes the Ripple alphabet special?

The XRP Ledger uses the same 58 unambiguous characters as Bitcoin but in a completely different order, beginning rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ. The reordering means a Ripple-encoded value and a Bitcoin-encoded value of the same bytes look totally different, which is intentional to keep the two address spaces distinct.

Ripple Base58 is the address encoding of the XRP Ledger. It shares Base58’s human-friendly 58-character set but uses a unique ordering, and real addresses are wrapped in Base58Check, which adds a four-byte checksum for typo protection. This tool encodes hex payloads to Ripple Base58 and decodes them back, verifying the checksum, entirely in your browser.

How it works

The encoder combines big-integer base conversion with an optional integrity check:

  1. The hex payload is parsed into raw bytes.
  2. In Base58Check mode, the payload is hashed with SHA-256, that digest is hashed with SHA-256 again, and the first four bytes of the result are appended as a checksum.
  3. The bytes are treated as one big-endian integer and converted to base 58 against Ripple’s dictionary rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz, with leading zero bytes encoded as the leading symbol r.

Decoding reverses the conversion, then — in Base58Check mode — splits off the last four bytes, recomputes the double-SHA-256 checksum over the remaining payload, and confirms they match before returning the payload.

Why the double SHA-256 matters

The double SHA-256 checksum is what makes Base58Check safe for financial addresses. Change a single character of a valid encoded address and the recomputed checksum will almost certainly differ from the embedded one — the tool reports a mismatch and refuses to return a potentially corrupt payload. The probability of a random one-character change producing a valid checksum is roughly 1 in 2³², which is low enough for any practical purpose.

This is the same principle that protects Bitcoin addresses, and it is the reason you should always use Base58Check mode when encoding anything that a user might copy by hand or share in a message.

Ripple’s alphabet reordering — and why it exists

The XRP Ledger uses the same 58 characters as Bitcoin Base58 but shuffles their order: rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz. The practical consequence is that the same raw bytes encoded with Bitcoin’s alphabet produce a completely different-looking string from those encoded with Ripple’s alphabet. This is intentional: it makes a Bitcoin address and an XRP address look visually distinct even at a glance, reducing the risk of users sending to the wrong network.

The leading character of a Ripple-encoded address is typically r, because of how the alphabet is ordered and what version bytes Ripple uses. This has become a recognizable visual signal — any XRP address that does not start with r is likely invalid or from a different encoding.

Practical workflow

Typical usage with this tool: obtain the version-prefixed payload as a hex string from your XRP Ledger SDK or a key derivation library, paste it here, select Base58Check, and encode. To verify an existing address, decode it and check that the tool reports a valid checksum alongside the returned hex payload. Use Raw mode only when inspecting the raw Base-58 mapping or when the calling system handles checksums itself. Everything runs locally in your browser using the Web Crypto API — payloads and addresses never leave your device.