Environment variables
operatorEvery env var, its scope (server vs NEXT_PUBLIC), what it gates, and the never-commit rules.
Operator documentation. This page is for HISS operators and is excluded from the public docs navigation and search indexing.
Core launch variables
| Variable | Scope | Purpose |
|---|---|---|
NEXT_PUBLIC_SITE_URL | public | Canonical production URL for metadata, share links, OG images. |
DATABASE_URL | server | Marketplace Postgres (Neon) pooled connection string. Persistence is gated on its presence. |
DIRECT_DATABASE_URL | server | Unpooled connection for migrations, if the provider separates it (Neon also injects DATABASE_URL_UNPOOLED). |
NEXT_PUBLIC_ENABLE_DB_REQUIRED | public | "true" makes production builds fail when DATABASE_URL/SESSION_SECRET are missing. Flip only after provisioning. |
SESSION_SECRET | server | Signs wallet session cookies (SIWE-style auth). Rotate to revoke all sessions. |
NEXT_PUBLIC_WALLETCONNECT_PROJECT_ID | public | Enables the WalletConnect connector. Optional — injected browser wallets work without it. |
Bankr / x402
| Variable | Scope | Purpose |
|---|---|---|
BANKR_API_KEY | server | Bankr Agent API. Server-side only; never NEXT_PUBLIC. |
BANKR_BASE_URL | server | Bankr API base (default https://api.bankr.bot). |
BANKR_X402_TREASURY_PAYTO | server | payTo treasury wallet for deployed x402 services. |
BANKR_AGENT_PROFILE_ID | server | Bankr Agent Profile id, once the profile exists. |
Robinhood Chain RPC (Alchemy)
Server-side reads prefer Alchemy (the recommended Robinhood Chain infra provider), then the generic env override, then the rate-limited public endpoint. Resolution lives in apps/web/lib/chainHealth.ts; readiness APIs report the provider label only, never the URL. Verify locally with pnpm check:chain.
| Variable | Scope | Purpose |
|---|---|---|
ALCHEMY_ROBINHOOD_MAINNET_RPC_URL | server | Optional Alchemy Robinhood Chain mainnet endpoint. The URL embeds an API key — server-only, never NEXT_PUBLIC. When set it is preferred by server-side chain reads; when unset, reads use ROBINHOOD_CHAIN_RPC_URL or the public endpoint. |
ALCHEMY_ROBINHOOD_TESTNET_RPC_URL | server | Alchemy Robinhood Chain testnet endpoint (optional; public testnet RPC is the fallback). |
ROBINHOOD_CHAIN_RPC_URL | server | Generic mainnet RPC endpoint — the primary server-side RPC configuration. Falls back to the rate-limited public endpoint when unset. |
ROBINHOOD_CHAIN_TESTNET_RPC_URL | server | Generic testnet RPC override. |
NEXT_PUBLIC_ROBINHOOD_CHAIN_ID | public | Chain id 4663 (optional; code defaults come from @hiss/core — safe to expose, it is public network metadata). |
NEXT_PUBLIC_ROBINHOOD_CHAIN_TESTNET_ID | public | Testnet chain id 46630 (optional, code default). |
Pre-existing app flags
The Phase 5 flags (AI_PROVIDER, NEXT_PUBLIC_ENABLE_X402, oracle/chain RPC settings, and the mock/live feature flags) are documented in Modes & flags. Live-path flags ship disabled by default and require release approval to flip.
Checking an environment
pnpm check:env # local
vercel env ls production # names + scopes only
vercel env pull .env.local