Repository navigation
Expand file tree
/
Copy path.env.example
More file actions
100 lines (76 loc) · 3.1 KB
/
Copy path.env.example
File metadata and controls
100 lines (76 loc) · 3.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
# Server
PORT=4000
# Redis
REDIS_HOST=redis
REDIS_PORT=6379
REDIS_PASSWORD=
REDIS_URL=redis://redis:6379
# Database
DATABASE_URL=postgres://smartdrop:smartdrop@postgres:5432/smartdrop
# Runtime environment
# NODE_ENV: string enum (development, test, production). Default: development.
NODE_ENV=development
# PORT: number. Default: 3000.
PORT=3000
# Database
DATABASE_URL=postgres://postgres:postgres@localhost:5432/smartdrop
# Stellar Horizon
# REDIS_URL: URL. Required in production. Development/test default: redis://localhost:6379.
REDIS_URL=redis://localhost:6379
# DATABASE_URL: URL. Required in production. Development default: postgres://localhost/smartdrop. Test default: postgres://localhost/smartdrop_test.
DATABASE_URL=postgres://localhost/smartdrop
# STELLAR_HORIZON_URL: URL. Default: https://horizon.stellar.org.
STELLAR_HORIZON_URL=https://horizon.stellar.org
# Soroban event indexer
SOROBAN_RPC_URL=https://soroban-rpc.mainnet.stellar.gateway.fm
SMARTDROP_CONTRACT_ID=
INDEXER_ENABLED=true
INDEXER_POLL_INTERVAL_MS=5000
INDEXER_POLL_LIMIT=100
INDEXER_START_LEDGER=0
# Stellar USDC Issuer
# USDC_ISSUER: Stellar public key. Default: Stellar USDC issuer.
USDC_ISSUER=GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335AX2OBFLDTQLNUEHRGPTM6RIA
# COINGECKO_API_KEY: string. Optional. Default: empty.
COINGECKO_API_KEY=
# COINMARKETCAP_API_KEY: string. Optional. Default: empty.
COINMARKETCAP_API_KEY=
# PRICE_CACHE_TTL_SECONDS: number. Default: 60.
PRICE_CACHE_TTL_SECONDS=60
# PRICE_REFRESH_INTERVAL_SECONDS: number. Default: 30.
PRICE_REFRESH_INTERVAL_SECONDS=30
# PRICE_STALE_THRESHOLD_MINUTES: number. Default: 5.
PRICE_STALE_THRESHOLD_MINUTES=5
# PRICE_ANOMALY_THRESHOLD_PCT: number. Default: 20.
PRICE_ANOMALY_THRESHOLD_PCT=20
# AIRDROP_EXPIRY_CHECK_INTERVAL_SECONDS: number. Default: 60.
AIRDROP_EXPIRY_CHECK_INTERVAL_SECONDS=60
# AIRDROP_LEDGER_CACHE_TTL_MS: number. Default: 5000.
AIRDROP_LEDGER_CACHE_TTL_MS=5000
# AIRDROP_EXPIRY_SCAN_BATCH_SIZE: number. Default: 100.
AIRDROP_EXPIRY_SCAN_BATCH_SIZE=100
# Airdrop request limits
# Maximum recipient CSV upload size in bytes. Default: 5 MiB.
AIRDROP_CSV_MAX_BYTES=5242880
# Maximum JSON request body size in bytes. Default: 2 MiB, sufficient for 10,000 recipients.
AIRDROP_JSON_MAX_BYTES=2097152
# Per-IP limits for airdrop creation and recipient additions.
AIRDROP_RATELIMIT_WINDOW=60
AIRDROP_RATELIMIT_MAX=10
# WATCHED_ASSETS: comma-separated CODE or CODE:ISSUER values warmed before startup.
WATCHED_ASSETS=XLM,USDC:GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVN
# API key auth
ADMIN_API_KEY=
# LOG_LEVEL: string enum (debug, info, warn, error). Default: info.
LOG_LEVEL=info
# Rate limiting (Redis-backed, per IP)
# RATE_LIMIT_WINDOW_MS: global API window in milliseconds. Default: 60000 (1 minute).
RATE_LIMIT_WINDOW_MS=60000
# RATE_LIMIT_MAX: max requests per IP per global window. Default: 100.
RATE_LIMIT_MAX=100
# PRICE_RATELIMIT_WINDOW: price endpoint window in seconds. Default: 60.
PRICE_RATELIMIT_WINDOW=60
# PRICE_RATELIMIT_MAX: max price requests per IP per window. Default: 30.
PRICE_RATELIMIT_MAX=30
# CORS
CORS_ALLOWED_ORIGINS=http://localhost:4000,http://localhost:3001