gen is a single static binary. Download the release for your platform from the latest GitHub release, put it on your PATH, and confirm it runs. There is no installer, no service to register, and no daemon to start.
The release bundle also contains the Rust SDK and TypeScript SDK. You only need the gen binary for the CLI; the SDKs ship as a separate convenience.
For the current release version and the matching RPC endpoint, see Network status.
Supported platforms
- macOS (x86_64 and arm64)
- Linux (x86_64 and arm64)
Install
Download the archive for your platform from the release page, unpack it, and move the binary onto yourPATH. The exact archive name encodes the OS and architecture (for example gen-aarch64-apple-darwin.tar.gz).
/usr/local/bin works on most setups; any directory already on your PATH is fine. If you prefer a per-user install, drop the binary in ~/.local/bin and make sure that directory is on your PATH.
Verify the install
Print the version to confirm the binary is on yourPATH and executable:
wallet, client, config, service, and genie listed as commands. If gen is not found, your shell has not picked up the install directory; add it to PATH and reopen the terminal.
Set up the build toolchain
If you only plan to interact with already-deployed contracts (viagen wallet, gen client, or the SDKs), the binary download above is enough. Skip this section.
If you plan to write or build contracts, you need Rust plus the riscv32im-unknown-none-elf target that contracts compile to. Two options:
Option A: bundled installer (recommended). The framework repo ships an install.sh that installs Rust, adds the RISC-V target, and (when Docker is reachable) builds the gen-cli:latest image used by the test-container validator mode:
Shell completions
gen can generate completion scripts for bash, zsh, fish, elvish, and powershell. Pipe the output into the right place for your shell. For zsh:
bash, source the output from your ~/.bashrc:
Update
Updating is the same as installing: download a newer release archive, unpack, and overwrite the binary in place. No state lives inside the binary; your wallets (~/.gen/wallets/) and CLI config (~/.gen/client_config.yml) survive the swap.
To downgrade, install an older release the same way. Wallet store format is forward compatible within a release line; if a release changes the format, the changelog calls it out.
What’s next
- CLI configuration: point the CLI at an RPC endpoint and persist auth headers.
- Quickstart: install, create a wallet, fund it, send a transfer in five minutes.
- gen wallet: create or import your first wallet.

