80 lines
3.7 KiB
Plaintext
80 lines
3.7 KiB
Plaintext
# ── Vault (AppRole) ────────────────────────────────────────────────
|
||
VAULT_ADDR=
|
||
VAULT_ROLE_ID=
|
||
VAULT_SECRET_ID=
|
||
VAULT_MOUNT_POINT=dev-secrets
|
||
VAULT_SECRET_PATH=database
|
||
VAULT_JWT_KID_PATH=jwt/kid
|
||
VAULT_JWT_KIDS_PREFIX=jwt/kids
|
||
|
||
# CSRF загружается если указан путь (оставь пустым чтобы отключить CSRF)
|
||
VAULT_CSRF_PATH=csrf
|
||
|
||
# Crypto master-key для шифрования мнемоник юзеров (AES-256-GCM).
|
||
# В Vault лежит hex-строка длиной 64 (32 байта).
|
||
# Положить: vault kv put dev-secrets/crypto/master key=$(openssl rand -hex 32)
|
||
VAULT_CRYPTO_KEY_PATH=crypto/master
|
||
|
||
# ── JWT (внешний bitok issuer) ─────────────────────────────────────
|
||
# bitok-сервис подписывает JWT своим приватником, public key регистрируется
|
||
# в Vault под kid'ом (см. VAULT_JWT_KIDS_PREFIX).
|
||
# Allowed alg: RS256 / RS384 / RS512 / ES256 / ES384 / ES512 / EdDSA / PS256 / PS384 / PS512
|
||
JWT_ALGORITHM=RS256
|
||
JWT_ISSUER=bitok
|
||
JWT_AUDIENCE=elcsa
|
||
|
||
# ── Server ─────────────────────────────────────────────────────────
|
||
API_PORT=3001
|
||
LOG_LEVEL=INFO
|
||
|
||
# ── KeyDB / Redis (idempotency cache) ──────────────────────────────
|
||
# REDIS_PASSWORD also used by docker-compose to seed KeyDB --requirepass.
|
||
REDIS_HOST=keydb
|
||
REDIS_PORT=6379
|
||
REDIS_PASSWORD=
|
||
REDIS_DB=0
|
||
|
||
# ── CORS ────────────────────────────────────────────────────────────
|
||
# Comma-separated list of allowed origins. ПУСТО = no cross-origin.
|
||
# Никогда не используй wildcard *
|
||
CORS_ORIGINS=
|
||
CORS_ALLOW_CREDENTIALS=true
|
||
|
||
# ── External API keys (optional, fallback если Vault их не выдаёт) ─
|
||
RELAY_API_KEY=
|
||
TRON_API_KEY=
|
||
JUPITER_API_KEY=
|
||
JUPITER_REFERRAL_ACCOUNT=
|
||
JUPITER_FEE_BPS=70
|
||
|
||
# ── Block explorers (optional, для tx history) ─────────────────────
|
||
ETHERSCAN_API_KEY=
|
||
BSCSCAN_API_KEY=
|
||
|
||
# ── Price oracle (optional) ─────────────────────────────────────────
|
||
# CoinGecko Demo API key. Без ключа работает free tier (~10-30 req/min).
|
||
# Если задан → передаётся через header `x-cg-demo-api-key`.
|
||
# Используется в /api/wallets/{chain}/balance (для usdPrice/usdValue)
|
||
# и /api/prices?symbols=... KeyDB cache: 5 минут.
|
||
COINGECKO_API_KEY=
|
||
|
||
# ── DB fallback (если Vault недоступен при старте) ─────────────────
|
||
DB_HOST=
|
||
DB_PORT=5432
|
||
DB_USER=
|
||
DB_PASSWORD=
|
||
DB_NAME=
|
||
|
||
# ── DeFi: staking (Lido/Solana) + Uniswap v3 LP ────────────────────
|
||
# Адреса опциональны (mainnet-дефолты в config/env.ts).
|
||
LIDO_STETH_ADDRESS=
|
||
LIDO_WITHDRAWAL_QUEUE_ADDRESS=
|
||
CURVE_STETH_POOL_ADDRESS=
|
||
UNISWAP_V3_NFPM_ADDRESS=
|
||
# Курируемые v3-пулы (csv). Дефолт — 3 пула: WETH/USDT, WBTC/WETH, XAUt/USDT.
|
||
UNISWAP_LP_POOLS=
|
||
# The Graph API-ключ для Uniswap v3 subgraph APR/TVL (пусто → APR=null).
|
||
THEGRAPH_API_KEY=
|
||
# Vote-адрес валидатора для нативного Solana-стейкинга. ОПЦИОНАЛЬНО (пусто → авто-выбор).
|
||
SOL_STAKE_VALIDATOR_VOTE=
|