Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Install

Pre-built binaries are published for Linux x86_64, macOS (Apple Silicon and Intel), and Windows x86_64. Build-from-source is also documented for ARM Linux or other targets.

Linux x86_64

curl -LO https://github.com/ahuman-exfer/exfer/releases/latest/download/exfer-linux-x86_64
chmod +x exfer-linux-x86_64
sudo mv exfer-linux-x86_64 /usr/local/bin/exfer
exfer --help

macOS Apple Silicon (M1/M2/M3/M4)

curl -LO https://github.com/ahuman-exfer/exfer/releases/latest/download/exfer-macos-arm64
chmod +x exfer-macos-arm64
xattr -d com.apple.quarantine exfer-macos-arm64   # remove "downloaded from internet" flag
sudo mv exfer-macos-arm64 /usr/local/bin/exfer
exfer --help

macOS Intel

curl -LO https://github.com/ahuman-exfer/exfer/releases/latest/download/exfer-macos-x86_64
chmod +x exfer-macos-x86_64
xattr -d com.apple.quarantine exfer-macos-x86_64
sudo mv exfer-macos-x86_64 /usr/local/bin/exfer
exfer --help

Windows

PowerShell:

Invoke-WebRequest `
    -Uri https://github.com/ahuman-exfer/exfer/releases/latest/download/exfer-windows-x86_64.exe `
    -OutFile exfer.exe
.\exfer.exe --help

Build from source

Requires Rust 1.85 or newer.

git clone https://github.com/ahuman-exfer/exfer.git
cd exfer
cargo build --release
sudo install -m 755 target/release/exfer /usr/local/bin/exfer
exfer --help

Build time: typically 5–15 minutes from a cold cache. Optimized release profile uses LTO and codegen-units=1.

Verify the install

exfer --help

Expected:

Exfer blockchain node

Usage: exfer <COMMAND>

Commands:
  node    Run a full node
  mine    Run the miner
  wallet  Wallet operations
  script  Script operations (HTLC, covenants)
  init    Initialize a new Exfer node

What gets created on disk

The first time you run exfer init or exfer node, the following files are created in --datadir (default ~/.exfer):

PathPurpose
~/.exfer/wallet.keyEncrypted wallet keypair (only if you used exfer init)
~/.exfer/node_identity.keyUnique P2P identity for your node. Keep secret: if leaked, an attacker can impersonate your node on the P2P network
~/.exfer/chain/The block database (grows over time)
~/.exfer/state/The UTXO and mempool state

All key files are created with permissions 0600 (owner-only). If your filesystem strips permissions (e.g. WSL on a Windows drive), pass --repair-perms to let exfer fix them at startup instead of exiting.

Next