Security

Rippex Wallet security: your XRP keys never leave your device

Rippex is a self-custodial desktop client for the XRP Ledger. Every sensitive operation — key generation, encryption, signing — happens locally on your computer. This page documents the model in full, including what it does not protect against.

Architecture

Non-custodial by construction

Rippex never creates an account on your behalf and never holds a copy of your secret. Your family seed (the s… secret key) is generated on your machine, encrypted with your passphrase and stored only in your local wallet file. There is no server-side account, no email registration and no password reset — the passphrase is the only path to the key.

Encryption at rest

The wallet file is symmetrically encrypted with a key derived from your passphrase. The plaintext secret exists only in memory, only while the wallet is unlocked, and only for as long as a signing operation needs it. Choose a long passphrase: the strength of the file is the strength of what you typed.

Direct rippled connections

The client speaks the XRP Ledger WebSocket API directly against a rippled node over TLS. There is no Rippex API in the middle, so there is no intermediary that can rewrite balances, reorder transactions or observe your traffic. You can point the client at a public node or at your own validator.

Local transaction signing

Payments, trust lines and offer transactions are serialised and signed on your device with ripple-lib. Only the signed blob leaves the machine. A node that receives it can broadcast it or drop it, but it can never alter the amount, destination or fee — the signature would no longer validate.

Reviewable, open source

Rippex is an open-source desktop client built on Electron. The cryptography comes from audited XRP Ledger libraries rather than in-house primitives, and the build is reproducible so a release binary can be matched against the published source.

Ledger-level protections

The wallet surfaces the XRPL safety rails instead of hiding them: base and owner reserves, destination tags for exchange deposits, memo fields, sequence numbers and explicit fee display before you confirm.

Threat model

An honest security page states its limits. Below is what the design handles and what remains your responsibility.

Remote server breach
No custody and no account database — there is nothing central to steal.
Malicious or hostile node
Transactions are signed locally; a node cannot modify a signed blob.
Stolen laptop or disk image
Wallet file is encrypted at rest; the passphrase is required to decrypt.
Phishing site or fake support
Rippex never asks for your seed. Any request for it is an attack.
Malware with keylogging
Not mitigated by any software wallet — use a clean machine for funds.
Lost passphrase and lost seed
Not recoverable by anyone, by design. Backups are mandatory.

Technology

The components Rippex is built from, and the role each one plays in keeping the account under your control.

Application shell
Electron — Chromium for the interface and Node.js for the local file and network layer, which is what allows one codebase to ship as a desktop build for Windows, macOS and Linux.
Ledger library
ripple-lib, the reference JavaScript client for the XRP Ledger: account data, transaction serialisation into the XRPL binary format, fee and sequence handling, and signing.
Wallet file encryption
The wallet blob is encrypted client-side with SJCL (Stanford JavaScript Crypto Library) using AES in authenticated mode, with the key derived from your passphrase via PBKDF2 and a random salt. A wrong passphrase fails the authentication tag and nothing is decrypted.
Key material
A family seed encoded in base58 with a version byte and a 4-byte checksum (the s… string), from which the secp256k1 keypair and the r… classic address are derived deterministically. The same seed regenerates the same account in any XRPL wallet.
Transport
wss:// WebSocket JSON API to a rippled node (public cluster or your own) for account_info, account_lines, ledger subscriptions, order books and submit. The node address is a user setting, not a hardcoded endpoint.
Account modes
Read Only mode loads just an r-address for monitoring with no secret present; Cold Wallet mode signs offline and produces a signed blob that a separate online machine submits — an air-gapped workflow with no seed on a networked device.

Operational practices

Back up the secret, not the app

Write your family seed on paper and store it offline in two separate physical locations. Reinstalling Rippex, moving to a new computer or restoring a disk image is trivial with the seed and impossible without it.

Verify every download

Compare the checksum of the installer against the published value and check the signature before running it. This is the single most effective defence against a tampered or look-alike build.

Confirm the first payment small

When paying a new destination — especially an exchange that requires a destination tag — send a minimal amount first, confirm it credited, then send the rest.

Keep the reserve in mind

An XRPL account must retain the base reserve to stay active, and each trust line or open offer adds an owner reserve. Rippex shows the spendable balance separately so you never strand your own account.

Treat the passphrase as the key

There is no recovery service. Use a unique, long passphrase, never reuse a password from another site, and never paste your seed into a website, chat or support ticket.

Harden the machine

A wallet is only as safe as the operating system under it: full-disk encryption, current updates, no unknown browser extensions and a separate user account for handling funds.

Reporting a vulnerability

If you believe you have found a security issue in Rippex, report it privately before disclosing it publicly. Include the affected version, your operating system, reproduction steps and the impact you observed. Never include your secret key, seed or wallet file in a report.