# @pyre/config Shared configuration and environment loading for PYRE. ## Purpose Per §13: shared config and environment loading. Provides a typed `Env` interface and a `loadConfig()` loader that maps the variables in the repo-root `.env.example` into typed config. ## Trust rule There is intentionally **no** wallet private-key / mnemonic variable here, and there never will be (§3). All signing happens client-side in the user's wallet. ## Variables (mirrors `.env.example`) - **Solana** — `SOLANA_RPC_URL`, `SOLANA_RPC_WS_URL`, `SOLANA_CLUSTER` - **Database** — `DATABASE_URL` - **Redis** — `REDIS_URL` - **AI** — `ANTHROPIC_API_KEY`, `OPENAI_API_KEY`, `IMAGE_GEN_PROVIDER`, `IMAGE_GEN_API_KEY` - **App URLs / ports** — `WEB_PORT`, `API_PORT`, `WEB_PUBLIC_URL`, `API_PUBLIC_URL` - **Admin / security** — `ADMIN_API_TOKEN`, `RATE_LIMIT_SCAN_PER_MIN` - **Classification thresholds** — `PROTECTED_USD_THRESHOLD`, `MAX_PRICE_IMPACT_BPS`, `QUOTE_MAX_AGE_MS` - **Optional / later phases** — `IPFS_OR_ARWEAVE_ENDPOINT`, `IPFS_OR_ARWEAVE_TOKEN`, `PUMPFUN_CREATOR_WALLET_PUBKEY` (public key only) ## Status **Skeleton.** Defines `Env`; `loadConfig()` is a stub. ## TODO - Implement `loadConfig()` — read `process.env`, validate/coerce, apply defaults, fail fast on missing required values. Never hardcode secrets.