This file documents the environment variables required by the ACBU backend and the defaults used by the runtime.
DATABASE_URL- Direct PostgreSQL connection string for Prisma migrations and local runtime fallback.
- Must not use
prisma://orprisma+postgres://.
MONGODB_URI- MongoDB connection string for the cache layer.
RABBITMQ_URL- RabbitMQ connection string for queue-based features.
JWT_SECRET- Secret used for JWT signing and verification.
PRISMA_ACCELERATE_URL- Optional for local development.
- When set, the app uses Prisma Accelerate for runtime queries.
- Must start with
prisma://orprisma+postgres://. - In production, this variable is required.
NODE_ENV- defaults todevelopmentPORT- defaults to5000API_VERSION- defaults tov1CHALLENGE_TOKEN_SECRET- optional; fallback toJWT_SECRETJWT_EXPIRES_IN- defaults to7dJWT_CLOCK_TOLERANCE_SECONDS- defaults to30API_KEY_SALT- defaults to empty stringADMIN_API_KEYLOG_LEVEL- defaults toinfoLOG_FILE- defaults tologs/app.log
RATE_LIMIT_WINDOW_MS- defaults to60000RATE_LIMIT_MAX_REQUESTS- defaults to100AUTH_RATE_LIMIT_WINDOW_MS- defaults to900000AUTH_RATE_LIMIT_MAX_REQUESTS- defaults to10RATE_LIMIT_FALLBACK_MAX_REQUESTS- defaults to20RATE_LIMIT_CIRCUIT_BREAKER_THRESHOLD- defaults to5RATE_LIMIT_CIRCUIT_BREAKER_COOLDOWN_MS- defaults to60000
PII_ENCRYPTION_KEY- Optional.
- Must be exactly 64 hex characters (32 bytes).
CAPTCHA_SECRETAUTH_BRUTE_MAX_ATTEMPTS- defaults to5AUTH_BRUTE_LOCKOUT_MS- defaults to900000
FLUTTERWAVE_PUBLIC_KEYFLUTTERWAVE_SECRET_KEYFLUTTERWAVE_ENCRYPTION_KEYFLUTTERWAVE_WEBHOOK_SECRETFLUTTERWAVE_BASE_URLPAYSTACK_SECRET_KEYPAYSTACK_BASE_URLMTN_MOMO_SUBSCRIPTION_KEYMTN_MOMO_API_USER_IDMTN_MOMO_API_KEYMTN_MOMO_BASE_URLMTN_MOMO_TARGET_ENVIRONMENTFINTECH_CURRENCY_PROVIDERS
AWS_REGIONorS3_REGIONS3_BUCKETS3_ENDPOINTAWS_ACCESS_KEY_IDorS3_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEYorS3_SECRET_ACCESS_KEYS3_UPLOAD_URL_TTL_SECONDS- defaults to900S3_DOWNLOAD_URL_TTL_SECONDS- defaults to300S3_SCAN_WEBHOOK_SECRET
STELLAR_NETWORK- defaults totestnetSTELLAR_HORIZON_URLSTELLAR_SOROBAN_RPC_URLSTELLAR_SECRET_KEYSTELLAR_NATIVE_ASSET_CODEWALLET_ACTIVATION_STRATEGY- defaults tocreate_account_nativeTESTNET_CUSTODIAL_BOOTSTRAPWALLET_ACTIVATION_AMOUNT/WALLET_ACTIVATION_NATIVE/WALLET_ACTIVATION_XLM/STELLAR_MIN_BALANCESTELLAR_BASE_FEE_STROOPS- defaults to100STELLAR_USE_DYNAMIC_FEESSTELLAR_SOROBAN_MIN_FEE_STROOPS- defaults to5000STELLAR_SOROBAN_MAX_FEE_STROOPS- defaults to10000000USDC_ISSUER_TESTNETUSDC_ISSUER_MAINNETUSDC_ASSET_CODE_TESTNET- defaults toUSDCUSDC_ASSET_CODE_MAINNET- defaults toUSDCUSDC_XLM_SLIPPAGE_BPS- defaults to50
ORACLE_UPDATE_INTERVAL_HOURS- defaults to6ORACLE_EMERGENCY_THRESHOLD- defaults to0.05ORACLE_MAX_DEVIATION_PER_UPDATE- defaults to0.05ORACLE_CIRCUIT_BREAKER_THRESHOLD- defaults to0.10EXCHANGERATE_API_BASE_URL- defaults tohttps://v6.exchangerate-api.com/v6EXCHANGERATE_API_KEYCURRENCY_CENTRAL_BANK_URLS
RESERVE_MIN_RATIO- defaults to1.02RESERVE_TARGET_RATIO- defaults to1.05RESERVE_ALERT_THRESHOLD- defaults to1.02
NOTIFICATION_EMAIL_PROVIDER- defaults tologNOTIFICATION_FROM_EMAIL- defaults tonoreply@acbu.ioSENDGRID_API_KEYAWS_SES_REGIONNOTIFICATION_SMS_PROVIDER- defaults tologNOTIFICATION_ALERT_EMAILTWILIO_ACCOUNT_SIDTWILIO_AUTH_TOKENTWILIO_FROM_NUMBERAFRICAS_TALKING_API_KEYAFRICAS_TALKING_USERNAME
WEBHOOK_URLWEBHOOK_SECRET
OPENAI_API_KEYOPENAI_ORG_MONTHLY_BUDGET_USD- defaults to50OPENAI_MAX_TOKENS_PER_REQUEST- defaults to2000
CORS_ORIGIN- Comma-separated list of allowed origins.
- In production,
PRISMA_ACCELERATE_URLis required. DATABASE_URLshould always be a direct PostgreSQL URL for migrations.PRISMA_ACCELERATE_URLshould be used for runtime database queries when set.- If you need the exact runtime schema, refer to
src/config/env.ts.