Configuration
Developer Preview
Credentials belong in the environment or a secret store, never in a page, a prompt, or command output. Which variables you need depends on the surface you picked on the overview.
The @navalabs packages are restricted during Developer Preview. Ask Nava for
package access and a provisioned credential before installing them. If you do
not have access, stop there rather than substituting an undocumented endpoint.
Configure the Nava SDK in this project for the Developer Preview. Inspect the runtime, package manager, existing secret handling, and the exact Guardian or venue operations I need before changing anything. Confirm that I have access to the restricted @navalabs packages. Install only @navalabs/sdk for base verification, or the minimum adapter package for the protocol I name. Keep API keys, private keys, wallet credentials, and RPC credentials in the project's secret store or environment, never in source, prompts, logs, errors, analytics, or command output. Keep fail-open options disabled. If I need Hyperliquid, set HYPERLIQUID_MODE=dry-run unless I explicitly approve direct execution after reviewing the exact workflow. Do not perform a real write during setup. Validate the installed CLI or MCP surface, run the repository checks, and report the files changed, checks run, manual credential steps, and anything left disabled.Base verification
Both the CLI and nava-mcp read these.
| Variable | Required | Purpose |
|---|---|---|
NAVA_API_KEY | yes | Guardian agent API key. |
NAVA_WALLET_ADDRESS, else WALLET_ADDRESS | yes | The agent's registered verification wallet. get-user-address returns this value. |
NAVA_BASE_URL | no | Nava API base URL. Defaults to the packaged deployment. |
CHAIN_ID | no | Default chain id. Must be a positive integer, or the command fails naming it. |
NAVA_WALLET_ADDRESS is a CLI-side alias only; nava-mcp reads
WALLET_ADDRESS. Set both when one environment serves both transports.
Hyperliquid
Every HYPERLIQUID_* name has an HL_* alias. Aliases are tried in the order
listed, left to right, which is not always the prefixed name first.
| Variable | Required | Purpose |
|---|---|---|
HYPERLIQUID_PRIVATE_KEY, HL_AGENT_PRIVATE_KEY, PRIVATE_KEY | writes only | Exchange signing key. Reads never touch it. |
HL_NAVA_API_KEY, NAVA_API_KEY | writes only | Guardian agent credential. HL_NAVA_API_KEY wins when both are set. |
HYPERLIQUID_WALLET_ADDRESS, HL_WALLET_ADDRESS, WALLET_ADDRESS | reads, unless --address is passed | Default read address. NAVA_WALLET_ADDRESS is not consulted here. |
NAVA_WALLET_ADDRESS, HYPERLIQUID_WALLET_ADDRESS, HL_WALLET_ADDRESS, WALLET_ADDRESS | writes only | Registered verification wallet. Setting only NAVA_WALLET_ADDRESS gives working writes and address-less reads that fail. |
HYPERLIQUID_NETWORK, HL_NETWORK | no | mainnet (the default) or testnet. The CLI's only way to select a network. |
HYPERLIQUID_MODE, HL_MODE | no | Replaces the direct default of --mode. |
HYPERLIQUID_ALLOW_UNDECIDED_EXECUTION, HL_ALLOW_UNDECIDED_EXECUTION | no | Replaces the false default of --allow-undecided. Fail-open; see the Hyperliquid writes. |
HYPERLIQUID_API_URL, HL_API_URL | no | Base venue URL. The info and exchange endpoints are derived from it. |
HYPERLIQUID_INFO_URL, HL_INFO_URL | no | Overrides the info endpoint alone; wins over the derived value. |
HYPERLIQUID_EXCHANGE_URL, HL_EXCHANGE_URL | no | Overrides the exchange endpoint alone; wins over the derived value. |
The three endpoint overrides change which venue a command actually reaches, and
they are CLI only. The MCP registrar does not read them, so nava-mcp
always reaches the public Hyperliquid endpoints for the selected network.
Uniswap
| Variable | Required | Purpose |
|---|---|---|
UNISWAP_RPC_URL, else RPC_URL | yes | JSON-RPC endpoint. |
UNISWAP_CHAIN_ID, else CHAIN_ID | yes | Chain id. There is no default and no per-call override. |
UNISWAP_WALLET_ADDRESS, else WALLET_ADDRESS | yes | Default wallet for get-balance. |
All three are required; the CLI fails naming the missing variable.
MCP server
| Variable | Required | Purpose |
|---|---|---|
NAVA_PROTOCOLS | no | Comma-separated protocols to register, e.g. uniswap,hyperliquid. Unset, every installed adapter registers; set it to narrow that. An empty string registers the four base tools only. See selecting protocols. |