Environment
The complete environment-variable reference. Copy .env.example to .env.local and fill only what you need for the flows you run.
.env.local. Any variable without a NEXT_PUBLIC_ prefix is server-only — prefixing it exposes it to the browser.Starknet RPC
| Variable | Purpose |
|---|---|
ALCHEMY_STARKNET_KEYserver-only | Alchemy RPC key; used to build the derived RPC URL. |
NEXT_PUBLIC_STARKNET_RPCrequired | Public Starknet RPC URL (mainnet by default). |
NEXT_PUBLIC_CHAIN_ID | Chain id (SN_MAIN / SN_SEPOLIA). |
STRK20 pool + collateral
| Variable | Purpose |
|---|---|
NEXT_PUBLIC_STRK20_POOL | STRK20 privacy pool address (mainnet). |
NEXT_PUBLIC_STRK20_SEPOLIA_POOL | STRK20 privacy pool address (Sepolia). |
NEXT_PUBLIC_USDC_SEPOLIA | Circle USDC on Sepolia (collateral for shield/unshield). |
Prover + discovery
| Variable | Purpose |
|---|---|
NEXT_PUBLIC_STRK20_PROVER_URL | STRK20 operator proving service (Stwo transaction prover). |
NEXT_PUBLIC_STRK20_DISCOVERY_URL | STRK20 operator discovery service (note/channel indexer). |
Hamster AI
| Variable | Purpose |
|---|---|
AI_API_KEYserver-only | OpenAI-compatible API key. SERVER-ONLY. |
AI_BASE_URL | Base URL of the chat-completions endpoint (default https://api.openai.com/v1). |
AI_MODEL | Model id (default gpt-4o-mini). |
The AI provider is intentionally endpoint-agnostic. Point AI_BASE_URL at any OpenAI-compatible service (OpenAI, OpenRouter, Together, Groq, a local llama.cpp server, or the demo provider of your choice). See AI Provider.
Treasury allowlists
| Variable | Purpose |
|---|---|
AI_ALLOWED_ASSETSserver-only | Canonical 0x assets the treasury may move (comma-separated). Empty = any treasury position. |
AI_ALLOWED_DESTINATIONSserver-only | Approved private destinations (canonical 0x, comma-separated). An EMPTY allowlist denies all execution. |
Execution destinations are always the user’s primary account plus this allowlist. The AI can never add one.
Privy + Ready
| Variable | Purpose |
|---|---|
PRIVY_APP_IDserver-only | Privy server app id. |
PRIVY_APP_SECRETserver-only | Privy app secret (server). |
NEXT_PUBLIC_PRIVY_APP_ID | Public Privy app id for the embedded-wallet lane. |
NEXT_PUBLIC_READY_CLASSHASH | Ready (Argent v0.4.0) account class hash on Sepolia; the on-chain account address is derived from the public key + this hash. |
AVNU paymaster (private swaps)
| Variable | Purpose |
|---|---|
AVNU_PAYMASTER_API_KEYserver-only | Authenticates AVNU’s gas-sponsoring paymaster for private swaps. SERVER-ONLY. |
Optional subsystems
The repository also ships a memecoin launchpad (NEXT_PUBLIC_UMBRA_*, Sepolia) used by /explore. Launchpad create/trade and extended/perps trading are currently gated pending a Wallet Core migration and are not required to run the core wallet or the treasury copilot. Historical launchpad documentation lives in docs/UMBRA_LAUNCH.md.
