Parallax connects to the Parallax peer-to-peer network to download and fully validate blocks and transactions. It includes a full node, mining engine, and JSON-RPC server.
For an immediately usable, binary version of the Parallax software, see https://parallaxprotocol.org/en/resources/parallax-client/.
Parallax requires Go 1.26+ and a C compiler.
make parallaxThis builds the four binaries of the Parallax suite into build/bin/:
parallaxd— the full-node daemon.parallax-cli— the JSON-RPC command-line client.parallax-wallet— offline wallet management tool (create/list/import accounts, sign messages and raw transactions).parallax— a multi-call wrapper that dispatches to any of the companions.
To build the full suite of tools (adds clef, abigen, pvm, rlpdump, devp2p):
make allFor detailed build instructions including cross-compilation, Docker builds, and platform-specific notes, see docs/.
| Command | Description |
|---|---|
parallaxd |
Full-node daemon. Runs full or archive nodes; serves JSON-RPC over HTTP, WebSocket, and IPC. |
parallax-cli |
JSON-RPC client with ergonomic sugar subcommands (info, peers, balance, sendraw, …). |
parallax-wallet |
Offline wallet tool. Creates/lists/imports accounts, signs messages and transactions, and produces/restores structured keystore dumps. Never talks to a running node. |
parallax |
Multi-call wrapper. parallax node … → parallaxd; parallax rpc … → parallax-cli; parallax wallet … → parallax-wallet. |
clef |
Long-running external signer daemon with a rule engine and interactive approval UI. Unlike parallax-wallet, it's a service that other processes call into over IPC. |
devp2p |
Networking utilities to inspect and interact at the P2P layer. |
abigen |
Generates type-safe Go bindings from contract ABIs. |
pvm |
Execute and debug PVM bytecode in isolation. |
rlpdump |
Decode RLP-encoded data into human-readable form. |
./build/bin/parallaxdStart with an interactive JavaScript console:
./build/bin/parallaxd consoleSee the getting started guide for connecting to the network, creating accounts, and sending transactions.
Run the node in the background, detached from the terminal:
./build/bin/parallax-cli startUnder the hood, parallax-cli start execs the sibling parallaxd binary with --daemon. parallaxd installed next to parallax-cli is the default location; $PATH is the fallback. Logs redirect to <datadir>/parallax.log, a PID file is written, and the process survives terminal exit. See Daemon mode for systemd integration and flag details.
Invoking parallaxd --daemon directly has the same effect.
parallax-cli is the JSON-RPC client. Common operations have short subcommands that auto-discover the IPC socket in <datadir>:
parallax-cli info # chain, network, mempool, mining overview
parallax-cli tip # latest block summary
parallax-cli blockcount # bare integer, pipeable in shell scripts
parallax-cli balance <addr> # decimal LAX (or --wei for integer)
parallax-cli stop # graceful shutdownEquivalent invocations through the wrapper:
parallax rpc info
parallax rpc balance <addr>Object responses are pretty-printed JSON; scalar responses are bare values (safe for $(parallax-cli blockcount)). Full reference: Command-line RPC.
Runtime-driven bash and zsh completion scripts ship under build/completion/:
source build/completion/parallaxd.bash
source build/completion/parallax-cli.bash
source build/completion/parallax-wallet.bash
source build/completion/parallax.bashOr install under ~/.local/share/bash-completion/completions/ (bash) or any directory on $fpath (zsh) for persistence.
| Minimum | Recommended | |
|---|---|---|
| CPU | 1 core | 2+ cores |
| RAM | 2 GB | 4+ GB |
| Storage | 50 GB SSD | 100 GB SSD |
| Network | 1 Mbps | 10+ Mbps |
Parallax uses a layered architecture:
kernel/ Consensus rules — no RPC, no networking, no I/O
validation/ Blockchain state, transaction pool, block validation
script/ PVM execution engine, ABI codec
primitives/ Fundamental types (blocks, transactions) and serialization (RLP)
p2p/ Peer-to-peer networking and wire protocol
node/ Node lifecycle, full node, mining
rpc/ JSON-RPC server, GraphQL, typed client
wallet/ Account management, keystore, hardware wallets
Each layer only imports from layers below it, enforced by Go's import rules. The kernel/ package can be embedded independently without pulling in the full node stack.
The main branch is the development branch. Changes are submitted as pull requests and require review before merging.
- Fork the repository
- Create a feature branch
- Submit a pull request against
main
Format code with gofmt. Document public symbols. Keep commits focused and prefix messages with the affected package (e.g., kernel/xhash: fix difficulty calculation).
Run the full test suite:
make testRun the linter:
make lintParallax is a security-critical project. Any mistake can cost users money. All changes must include appropriate test coverage and pass CI before merging.
LGPL-3.0 (library) / GPL-3.0 (executables). See COPYING.