> ## Documentation Index
> Fetch the complete documentation index at: https://docs.parallaxprotocol.org/llms.txt
> Use this file to discover all available pages before exploring further.

# parallax-wallet

`parallax-wallet` is the offline wallet management tool for the Parallax
client suite. It consolidates the keystore-directory operations
previously offered by `parallaxd account …` and the single-keyfile tool
previously shipped as `parallaxkey` into a single binary, modeled after
Bitcoin Core's `bitcoin-wallet`.

`parallax-wallet` **never talks to a running node**. Every command
operates directly on files on disk, which makes it safe to run on
air-gapped machines for cold-signing workflows. For commands that
require a running daemon (`newaccount`, `unlock`, `sign`, `sendtx`
against a live IPC socket), use `parallax-cli` instead.

## Installation

`parallax-wallet` ships alongside `parallaxd` and `parallax-cli` in every
release bundle. Building from source:

```sh theme={null}
make parallax-wallet
```

or, for the whole suite:

```sh theme={null}
make parallax
```

## Subcommands

### Keystore-directory operations

These commands operate on the keystore directory at `<datadir>/keystore`
(override with `--keystore`).

| Command            | Purpose                                                                 |
| ------------------ | ----------------------------------------------------------------------- |
| `list`             | Enumerate accounts in the keystore.                                     |
| `new`              | Create a new, encrypted account.                                        |
| `update <address>` | Change an account's password or migrate to the latest keyfile format.   |
| `import <keyfile>` | Import a raw, hex-encoded private key and store it encrypted.           |
| `info`             | Print keystore metadata (path, account count, KDF parameters).          |
| `dump`             | Serialise the keystore into a single JSON backup (keys stay encrypted). |
| `createfromdump`   | Restore a keystore directory from a `dump` file.                        |

### Single-keyfile operations

These commands operate on a single keyfile path — useful when you want a
portable, self-contained key outside the keystore.

| Command                                         | Purpose                                                                              |
| ----------------------------------------------- | ------------------------------------------------------------------------------------ |
| `generate [keyfile]`                            | Create a new, encrypted standalone keyfile.                                          |
| `inspect <keyfile>`                             | Print a keyfile's public metadata (add `--private` to reveal the private key).       |
| `changepassword <keyfile>`                      | Re-encrypt a keyfile with a new password.                                            |
| `signmessage <keyfile> <message>`               | Sign an EIP-191 personal message.                                                    |
| `verifymessage <address> <signature> <message>` | Verify a signature against an address.                                               |
| `signtx <keyfile>`                              | Build, sign and print a raw transaction offline (submit via `parallax-cli sendraw`). |

### Passwords

For every command that decrypts a keyfile, `parallax-wallet` either
prompts interactively or reads the password from the file passed with
`--passwordfile` (for keyfile commands) or `--password` (for
keystore-directory commands). The first non-empty line of the file is
used as the password.

### JSON output

Where applicable, the `--json` flag switches output to structured JSON.

## Examples

### Create a new account

```sh theme={null}
parallax-wallet new
```

### Cold-sign a transaction on an air-gapped machine

Given the account's current nonce (looked up on a live node:
`parallax-cli getnonce 0x…`), the current gas price, and the target
chain ID (2110 for mainnet):

```sh theme={null}
parallax-wallet signtx \
  --chainid 2110 --nonce 42 \
  --gas 21000 --gasprice 1000000000 \
  --to 0xabc… --value 0x1 \
  ~/keystore/UTC--...keyfile
```

Copy the resulting `0x…` raw transaction to an internet-connected host
and broadcast it with `parallax-cli sendraw`.

### Back up and restore a keystore

```sh theme={null}
parallax-wallet dump --outfile backup.json
parallax-wallet createfromdump --keystore /new/location --infile backup.json
```

The dump contains every keyfile in its encrypted JSON form — the dump
itself is safe to move between machines so long as the account
passwords are handled independently.

## Related tools

* `parallax-cli` — talks to a running daemon over IPC (JSON-RPC). Hosts
  the live `newaccount`, `unlock`, `sign` and `sendtx` sugar commands,
  all of which require a node.
* `clef` — long-running external signer daemon with a rule engine and
  interactive approval UI. Different problem domain from
  `parallax-wallet`: it's a service called by other processes, not a
  one-shot CLI.
