# ─── Chain selection ───────────────────────────────────────────────────────── # Default (unset): MULTI mode. One process serves Solana + every EVM network; # the chain is picked per request (id shape or ?network=). Set IQ_CHAIN to # lock a process to a single chain instead ("solana" or "evm"). # IQ_CHAIN=solana # ─── Solana ────────────────────────────────────────────────────────────────── SOLANA_CLUSTER=mainnet-beta SOLANA_RPC_ENDPOINT=https://api.mainnet-beta.solana.com # ─── EVM ───────────────────────────────────────────────────────────────────── # Locked single-network mode (IQ_CHAIN=evm) only: # IQETH_NETWORK=sepolia # sepolia | monad | monadTestnet | robinhood # IQETH_RPC_ENDPOINT=https://rpc.sepolia.org # any EVM JSON-RPC URL # Multi mode: per-network RPC overrides (fall back to IQETH_RPC_ENDPOINT, then # each network's built-in default RPC). # IQETH_RPC_SEPOLIA= # IQETH_RPC_MONAD= # IQETH_RPC_MONADTESTNET= # IQETH_RPC_ROBINHOOD= # IQETH_DEFAULT_NETWORK=sepolia # network a bare 0x id resolves to # Durable row index (eth_getLogs backfill) tuning: # IQETH_DEPLOY_BLOCK_SEPOLIA= # contract deploy block, skips pre-deploy scan # IQETH_DEPLOY_BLOCK_MONAD= # IQETH_DEPLOY_BLOCK_ROBINHOOD= # IQETH_LOGS_SPAN=50000 # starting getLogs chunk; halves on RPC range errors # ALCHEMY_API_KEY= # optional — batch + higher limits # ENS_RPC_ENDPOINT=https://eth.llamarpc.com # mainnet RPC for ENS resolution # KNOWN_DBROOTS_FILE=./config/known-dbroots.json # Optional — Helius paid plan enables gTFA (100x faster reads) + batch # HELIUS_API_KEY=your-key-here # HELIUS_API_KEYS=key1,key2,key3 # multiple keys for 429 fallback # Optional — backfill all historical txs on startup (requires Helius paid plan) # IQ Labs contract first tx: slot 398615411 (Feb 7 2026) # BACKFILL_FROM_SLOT=398615411 # Optional # PORT=3000 # MAX_CACHE_SIZE=10GB # ADMIN_TOKEN= # enables /admin/* (queue tuning, evm-index ops)