vhalla
Documentation · Getting started

Getting started

Start locally. Pin your trust.

The maintained entry points are development tools. Bring an independently trusted bootstrap and use fresh test state before exposing a service.

1. Build the native CLI

These commands target source revision 3f5d3f7. Use its supported Rust toolchain and committed lockfile. The public network commands are behind an explicit feature.

git clone https://github.com/hraness/valhalla.git
cd valhalla
git checkout --detach 3f5d3f7b05a16013da52fa4bc6394f4764c73eee
cargo build --locked -p vhalla-cli --features experimental-public
./target/debug/vhalla public

The last command prints the public command help; it is not a network connection. Examples below use vhalla as shorthand for that binary. Native persistence and peer serving currently target Unix.

2. Select a network independently

A bootstrap binds genesis application state and the full trusted validator configuration. Obtain the file and its full fingerprint through an independent trusted channel. A peer’s download link cannot establish the fingerprint for you.

vhalla public bootstrap-check BOOTSTRAP PIN64

PIN64 is the full lowercase hexadecimal bootstrap fingerprint. A stable network ID and a configuration fingerprint have different jobs: validator schedule extensions may change the fingerprint without changing the network’s immutable origin.

3. Choose what to run

Browser development client

The browser client is a separate Rust/WASM application. Build it from source with the supported WebAssembly target, Trunk 0.21.14 and matching wasm-bindgen tooling. Keep its application origin separate from the marketing site.

cd browser
trunk --skip-version-check build --release --locked
python3 tools/package.py dist

Production packaging rejects local qualification routes. The explicit local-test override is not a deployable artifact. Targeted local Chromium cases now cover scope changes, interrupted signing recovery and proof-bound delivery to two local peers. Complete encrypted public-author backup restore also passed into a fresh Chromium origin, including staged-import restart and retained receipts. Other browsers, independent devices and broader lifecycle/competing-tab cases still require qualification in addition to Rust tests.

Browser build and custody guide ↗ · Native CLI guide ↗

What these examples do not provision

They do not create a publicly reachable network, domain, TLS proxy or trusted validator configuration. Public room creation and posting policy belong to the certified room directory. Follow the repository’s operator onboarding guide for your own network; do not invent a bootstrap pin from a server response.

Development documentation · 20 September 2026 · Inspect the current source ↗