Shortest commands
mxnode reads a layered configuration. The config file lives at ~/.config/mxnode/config.toml (auto-created on first use); a system-wide /etc/mxnode/config.toml is also honored. CLI flags override both.
Resolution order
Highest-precedence layer wins:- CLI flags —
mxnode upgrade --binary-tag v1.11.5beats anything in the file. - User config —
~/.config/mxnode/config.toml. - System config —
/etc/mxnode/config.toml. - Built-in defaults — compiled into
mxnode-config.
default, system, user, or flag.
Auto-created config
On the first state-changing command:$USER / $HOME come from $USER → $LOGNAME → $HOME (in that order).
Full schema
Path placeholders
[paths] values support these placeholders:
| Placeholder | Resolved to |
|---|---|
{custom_home} | The value of paths.custom_home |
{home} | The OS-detected $HOME |
{XDG_STATE_HOME} | $XDG_STATE_HOME if set, else $HOME/.local/state |
{XDG_RUNTIME_DIR} | $XDG_RUNTIME_DIR if set, else <state>/run |
Environment variables
Only one is read:| Variable | Purpose |
|---|---|
MXNODE_GITHUB_TOKEN | GitHub PAT for authenticated API requests. Lifts the unauthenticated rate limit (60 req/h). |
Inspecting config
Modifying config
config set round-trips through toml_edit, so operator comments and section ordering are preserved.
Validation
Artifact source
Controls howmxnode install and mxnode upgrade acquire binaries:
| Value | Behaviour |
|---|---|
source (default) | git clone --depth=1 + go build |
release | Download multiversx_*_linux_<arch>.zip from GitHub Releases + sha256 verify |
auto | Try release first; fall back to source if no matching asset exists |
Running from a fork
https://api.github.com/repos/your-org/mx-chain-go/releases and clones from https://github.com/your-org/mx-chain-go.git.
Sample configs
- Multikey primary, mainnet
- Observer squad on a fork
- Testnet observer with custom log level

