
Run, control and verify nodes from a shell
Core protocol and verification CLIs
Eight C and Rust binaries for node operators and integrators, with offline receipt and proof verification.
Start a node with layerxd in one of five modes, then read state and submit activities with layerxctl over a Unix socket. Check a trust root, a receipt or an inclusion bundle with layerx-verify, which names the verification stage that failed instead of returning one opaque error. You verify against the signed genesis manifest offline, without trusting the node that produced the proof. Expect a rough invocation surface: only layerxctl accepts --help, and no binary defines --version.
What it does
cmd/ holds the low-level operator and integrator binaries for the LayerX agent domain, written in C and Rust with no Go and no command-line framework. layerxd runs a node in one of five mutually exclusive modes, layerxctl reads state from and submits activities to a running node over a Unix socket, and layerx-verify checks a trust root, a receipt or an inclusion bundle. The remaining binaries cover data-availability log export and verification, genesis building, sequencer key handover, the guarantor duty loop and module-registry generation.
Key capabilities
layerxdserves a node as--check-config,--serve,--replica,--authority-replicaor--relay-archive.layerxctl read-stateandlayerxctl submittalk to a node over a Unix socket and print one JSON line.layerx-verifychecks a trust root, a receipt or an inclusion bundle against the signed genesis manifest.layerx-archive-codecexports and verifies data-availability log batches, and checks a genesis manifest and snapshot.layerx-genesis-buildwrites the genesis manifest, snapshot and registration request from a request and a signer key.layerx-handoverissues and verifies sequencer key handovers;layerx-module-registryprints the canonical module table.
Who it's for
Node operators and integrators who run, provision or audit a LayerX node from a shell or a script.
Why it matters
A receipt or inclusion proof can be checked offline against the signed genesis manifest, without trusting the node that produced it. Failures are separated by exit code, 2 for a bad invocation and 1 for a refusal, and a refusal prints the verification stage that failed, so a bad input points at the step to fix rather than a generic error.
Differentiators
layerx-verify names the failing verification stage instead of returning one opaque error, takes the signed genesis manifest as its trust root, and accepts - in place of a file path to read one input from standard input per invocation.
Outcomes
- Verify a receipt or inclusion bundle offline against the signed genesis manifest
- Read node state and submit activities over a Unix socket, one JSON line
- Read the exit code to tell a bad invocation from a refusal
Technical notes
- The C binaries link
-lcrypto -lsqlite3 -pthread -ldl -lm;layerxctlneeds Rust 1.91.1 and deniesunsafe_code. - The invocation surfaces are rough. No binary defines
--version, onlylayerxctlaccepts--help, the others print a usage line on a malformed invocation, andlayerx-genesisprints no usage text at all. Its built binary is also namedlayerx-genesis-build. layerx-handover --issuetakes 13 required positional arguments in a fixed order.layerx-guarantortakes no flags and is configured entirely by required environment variables, shelling out to Python (eth-account,eth-abi,cryptography).layerxd --relay-archivedoes not run C: itexeclpspython3on/opt/layerx/relay_archive/runtime.py, overridable withLAYERX_RELAY_ARCHIVE_RUNTIME.- Custody proof ships as a separate Go binary,
layerx-custody-proof, built fromdaemon/, rather than as a subcommand. - Every binary has a Make target.
test-layerxd,test-layerxctl,test-verify-cliandtest-module-registrycover four of them;layerx-handoverandlayerx-archive-codechave no dedicated test target.
layerxd --check-config sequencer.conf
layerxd --serve sequencer.conf
layerxctl read-state --socket /run/layerx/node/layerxd.lni.sock \
--network-id "$NETWORK_ID" --protocol-version 3 --actor "did:layerx:$PUBLIC_KEY"
layerx-verify trust-root --trust-root genesis/genesis.manifest
layerx-verify receipt --trust-root genesis/genesis.manifest --receipt receipt.binMore in Developers
Build on Paxeer.
Give your agent a wallet, set its policy, and settle your first call on LayerX.