X-Substrate-Key header. This prevents other processes on the same machine — or any local web page — from querying your application state or triggering actions without your authorization. Keys are stored as one-way hashes, so the plaintext secret never persists on disk anywhere other than your own secure storage. Authentication is enabled by default and should remain enabled in any environment beyond your local development machine.
Generating an API Key
Run the following command to generate a new key and register it instantly:axon_keys.json. The key is active immediately — no restart required.
Using the API Key
Pass your key in theX-Substrate-Key header on every request.
Keys File Format
The daemon reads keys from the JSON file configured inaxon.toml under auth.keys_file (default: C:\ProgramData\Nelieo\axon_keys.json). You can inspect this file to see all registered keys:
A unique identifier for this key entry, generated automatically by
keygen.A one-way hash of the plaintext API key. The daemon verifies each incoming request against all entries with
enabled: true. The plaintext key is never stored on disk.A human-readable name for this key. Set it to something that identifies the agent or system using it — for example,
"ci-runner" or "production-agent-v2".ISO 8601 timestamp of when the key was generated.
ISO 8601 timestamp of the most recent successful request using this key. Updated after each authenticated request.
Set to
false to revoke a key without deleting it. The daemon rejects requests from disabled keys with a 401 disabled_key response.Enabling Auth in axon.toml
Authentication is enabled by default. The relevant section ofaxon.toml is:
%APPDATA%\Nelieo\keys.json — update keys_file and restart the daemon.
Authentication Errors
When a request fails authentication, the daemon returnsHTTP 401 with a JSON body that identifies the specific failure reason.
A
missing_key response looks like this:
invalid_key response:
Disabling Auth for Development
To run without key validation during local development, setrequire_key = false in your config or pass the environment variable:
- axon.toml
- Environment variable
