# Token-aggregation service — copy to .env and adjust. # See docs/04-configuration/TOKEN_AGGREGATION_REPORT_API_RUNBOOK.md PORT=3000 LOG_LEVEL=info # Chain 138 RPC: # - explorer / token-aggregation / Blockscout on the LAN should use the public RPC node directly: # CHAIN_138_RPC_URL=http://192.168.11.221:8545 # - external/public clients should use the public FQDN: # CHAIN_138_RPC_URL=https://rpc-http-pub.d-bis.org # - do not point explorer/read services at the operator core RPC 192.168.11.211:8545 # GET /api/v1/quote on Chain 138 + DODO: optional on-chain PMM quote (querySellBase/Quote). # Precedence: TOKEN_AGGREGATION_PMM_RPC_URL → TOKEN_AGGREGATION_CHAIN138_RPC_URL → RPC_URL_138. # TOKEN_AGGREGATION_PMM_RPC_URL=http://192.168.11.211:8545 # TOKEN_AGGREGATION_PMM_QUERY_TRADER=0x4A666F96fC8764181194447A7dFdb7d471b301C8 # PMM pools: canonical integration is defaulted in dex-factories.ts if unset. # CHAIN_138_DODO_PMM_INTEGRATION=0x5BDc62f1ae7D630c37A8B363a1d49845356Ee72d # CHAIN_138_DODO_POOL_MANAGER= # Minimum token report addresses (V1 = PMM / liquidity canonical on Chain 138) CUSDT_ADDRESS_138=0x93E66202A11B1772E55407B32B44e5Cd8eda7f22 CUSDC_ADDRESS_138=0xf22258f57794CC8E06237084b353Ab30fFfa640b # Compliant USD V2 (ERC-2612 / ERC-3009) — x402 / GRU transport. # Reference: docs/04-configuration/CHAIN138_X402_TOKEN_SUPPORT.md CUSDT_V2_ADDRESS_138=0x8d342d321DdEe97D0c5011DAF8ca0B59DA617D29 CUSDC_V2_ADDRESS_138=0x1ac3F4942a71E86A9682D91837E1E71b7BACdF99 # Live ALL Mainnet AUSDT compliant landing surface on Chain 138. CAUSDT_ADDRESS_138=0x5fdDF65733e3d590463F68f93Cf16E8c04081271 # Planned ALL Mainnet gold corridor surfaces. # These remain env-gated until the 651940 wrapped + unwrapped gold contracts are deployed. # CAXAUC_ADDRESS_651940=0x... # CAXAUT_ADDRESS_651940=0x... # CWAXAUC_ADDRESS_651940=0x... # CWAXAUT_ADDRESS_651940=0x... # Repo-native D-WIN-aligned USDW PMM / transport surface. CUSDW_ADDRESS_138=0xcA6BFa614935f1AB71c9aB106bAA6FBB6057095e # Existing public cWAUSDT mirrors for the live AUSDT -> cWAUSDT -> cAUSDT path: CWAUSDT_ADDRESS_56=0xe1a51Bc037a79AB36767561B147eb41780124934 CWAUSDT_ADDRESS_137=0xf12e262F85107df26741726b074606CaFa24AAe7 CWAUSDT_ADDRESS_43114=0xff3084410A732231472Ee9f93F5855dA89CC5254 CWAUSDT_ADDRESS_42220=0xC158b6cD3A3088C52F797D41f5Aa02825361629e # Preferred canonical env names for wrapped cWUSDW edge visibility: CWUSDW_ADDRESS_56=0xC2FA05F12a75Ac84ea778AF9D6935cA807275E55 # CWUSDW_ADDRESS_137=0x... # Activate only after Polygon cWUSDW is deployed and approved. CWUSDW_ADDRESS_43114=0xcfdCe5E660FC2C8052BDfa7aEa1865DD753411Ae # Legacy aliases still understood by canonical-tokens.ts: # CWUSDW_BSC=0xC2FA05F12a75Ac84ea778AF9D6935cA807275E55 # CWUSDW_AVALANCHE=0xcfdCe5E660FC2C8052BDfa7aEa1865DD753411Ae # PostgreSQL (required for persistent index / reports) # DATABASE_URL=postgresql://user:pass@localhost:5432/token_aggregation # Indexer tick (ms) # INDEXING_INTERVAL=5000 # Set to false on public read-only deployments that should not run the # background multi-chain indexer in-process. # ENABLE_INDEXER=true # Optional: override built-in bridge/routes JSON (fetched every 5m) # BRIDGE_LIST_JSON_URL=https://example.com/bridge-list.json # CCIP / Trustless overrides for /api/v1/bridge/routes defaults # CCIPWETH9_BRIDGE_CHAIN138= # CCIPWETH10_BRIDGE_CHAIN138= # LOCKBOX_138= # INBOX_ETH= # GRU Monetary Transport Layer runtime refs # Set these when exposing GRU transport readiness from token-aggregation. # CHAIN138_L1_BRIDGE=0x152ed3e9912161b76bdfd368d0c84b7c31c10de7 # CW_BRIDGE_MAINNET= # CW_BRIDGE_BSC= # CW_BRIDGE_POLYGON= # CW_BRIDGE_AVALANCHE= # CW_BRIDGE_CELO= # CW_BRIDGE_ARBITRUM= # CW_BRIDGE_BASE= # CW_BRIDGE_OPTIMISM= # CW_BRIDGE_GNOSIS= # CW_RESERVE_VERIFIER_CHAIN138= # CW_STABLECOIN_RESERVE_VAULT= # CW_RESERVE_SYSTEM= # CW_MAX_OUTSTANDING_USDT_MAINNET= # CW_MAX_OUTSTANDING_USDC_MAINNET= # CW_MAX_OUTSTANDING_USDT_BSC= # CW_MAX_OUTSTANDING_USDC_BSC= # CW_MAX_OUTSTANDING_USDT_POLYGON= # CW_MAX_OUTSTANDING_USDC_POLYGON= # CW_MAX_OUTSTANDING_USDT_AVALANCHE= # CW_MAX_OUTSTANDING_USDC_AVALANCHE= # CW_MAX_OUTSTANDING_USDT_ARBITRUM= # CW_MAX_OUTSTANDING_USDC_ARBITRUM= # CW_MAX_OUTSTANDING_USDT_BASE= # CW_MAX_OUTSTANDING_USDC_BASE= # CW_MAX_OUTSTANDING_USDT_OPTIMISM= # CW_MAX_OUTSTANDING_USDC_OPTIMISM= # CW_MAX_OUTSTANDING_USDT_GNOSIS= # CW_MAX_OUTSTANDING_USDC_GNOSIS= # CW_MAX_OUTSTANDING_USDT_CELO= # CW_MAX_OUTSTANDING_USDC_CELO= # CW_MAX_OUTSTANDING_AUSDT_CELO= # Gas-native rollout refs (Wave 1) # Deployed but not active-by-default: generic gas verifier on Chain 138. # Keep the active gas verifier envs below blank until the live L1 bridge is explicitly wired to it. CW_ASSET_RESERVE_VERIFIER_DEPLOYED_CHAIN138=0xbf26a679586663f87f3bf3f52c79479b8aa8d854 # CW_BRIDGE_WEMIX= # CW_GAS_STRICT_ESCROW_VERIFIER_CHAIN138= # CW_GAS_HYBRID_CAP_VERIFIER_CHAIN138= # CW_GAS_ESCROW_VAULT_CHAIN138= # CW_GAS_TREASURY_SYSTEM= # CW_MAX_OUTSTANDING_ETH_MAINNET_MAINNET= # CW_GAS_OUTSTANDING_ETH_MAINNET_MAINNET= # CW_GAS_ESCROWED_ETH_MAINNET_MAINNET= # CW_GAS_TREASURY_BACKED_ETH_MAINNET_MAINNET= # CW_GAS_TREASURY_CAP_ETH_MAINNET_MAINNET= # CW_MAX_OUTSTANDING_ETH_L2_OPTIMISM= # CW_GAS_OUTSTANDING_ETH_L2_OPTIMISM= # CW_GAS_ESCROWED_ETH_L2_OPTIMISM= # CW_GAS_TREASURY_BACKED_ETH_L2_OPTIMISM= # CW_GAS_TREASURY_CAP_ETH_L2_OPTIMISM= # CW_MAX_OUTSTANDING_ETH_L2_ARBITRUM= # CW_MAX_OUTSTANDING_ETH_L2_BASE= # CW_MAX_OUTSTANDING_BNB_BSC= # CW_MAX_OUTSTANDING_POL_POLYGON= # CW_MAX_OUTSTANDING_AVAX_AVALANCHE= # CW_MAX_OUTSTANDING_CRO_CRONOS= # CW_MAX_OUTSTANDING_XDAI_GNOSIS= # CW_MAX_OUTSTANDING_CELO_CELO= # CW_MAX_OUTSTANDING_WEMIX_WEMIX=