Configuration

Configure your Futarchy DEX API instance

Environment Variables

All configuration is managed through environment variables in your .env file.

Quick Reference

Variable Description Default Required
SOLANA_RPC_URL Solana RPC endpoint URL https://api.mainnet-beta.solana.com Yes
SOLANA_WS_URL Solana WebSocket endpoint URL wss://api.mainnet-beta.solana.com No
PORT Server port 3000 No
NODE_ENV Node.js environment production No
DEX_FORK_TYPE DEX fork type identifier Custom Yes
FACTORY_ADDRESS Factory program address (empty) Yes
ROUTER_ADDRESS Router program address (empty) Yes
PROTOCOL_FEE_RATE Protocol fee rate for volume calculation 0.0025 (0.25%) No
EXCLUDED_DAOS Comma-separated list of DAO addresses to exclude (empty) No

Solana Configuration

SOLANA_RPC_URLstringrequireddefault: https://api.mainnet-beta.solana.com

The Solana RPC endpoint URL for fetching blockchain data.

Recommendations:

  • Use a dedicated RPC provider (e.g., Helius, QuickNode) for production
  • Public endpoints may be rate-limited
env
SOLANA_RPC_URL=https://api.mainnet-beta.solana.com
SOLANA_WS_URLstringdefault: wss://api.mainnet-beta.solana.com

The Solana WebSocket endpoint URL for real-time updates.

env
SOLANA_WS_URL=wss://api.mainnet-beta.solana.com

Server Configuration

PORTnumberdefault: 3000

The port on which the API server will listen.

env
PORT=3000
NODE_ENVstringdefault: production

The Node.js environment. Options: development, production, test

env
NODE_ENV=production

DEX Configuration

DEX_FORK_TYPEstringrequireddefault: Custom

The DEX fork type identifier for CoinGecko compatibility.

Supported Types:

  • Custom (recommended for Futarchy)
  • Uniswap V2, Uniswap V3, Uniswap V4
  • Raydium, Raydium CLMM
  • Orca
  • See full list
env
DEX_FORK_TYPE=Custom
FACTORY_ADDRESSstringrequired

The factory program address that creates and manages DAO instances.

This must be a valid Solana program ID (PublicKey)

env
FACTORY_ADDRESS=YOUR_FACTORY_PROGRAM_ID
ROUTER_ADDRESSstringrequired

The router program address for executing swaps.

env
ROUTER_ADDRESS=YOUR_ROUTER_PROGRAM_ID

Protocol Configuration

PROTOCOL_FEE_RATEnumberdefault: 0.0025

The protocol fee rate used for volume calculation. Default is 0.0025 (0.25%).

Formula: volume = protocolFees / feeRate

env
PROTOCOL_FEE_RATE=0.0025
EXCLUDED_DAOSstring

Comma-separated list of DAO addresses to exclude from the API responses.

env
EXCLUDED_DAOS=DAO1_PUBLIC_KEY,DAO2_PUBLIC_KEY,DAO3_PUBLIC_KEY

Supported DEX Forks

The following DEX fork types are supported for CoinGecko compatibility:

AMM Protocols
  • Uniswap V2, V3, V4
  • Raydium
  • Raydium CLMM
  • Orca
  • Balancer V2, V3
  • Curve
Concentrated Liquidity
  • Algebra
  • Algebra Integral
  • Camelot V3
  • Cetus
  • Iziswap
  • Kyberswap
  • Kyberswap Elastic
  • Quickswap V3
  • Maverick V2
Other Protocols
  • Solidly V2, V3
  • Traderjoe V2
  • Velocore V2
  • Ston.fi, Ston.fi V2
  • Surge Protocol
  • Dedust
  • Ekubo
  • Jediswap
  • And more...

Example Configuration

Here's a complete example .env file:

env
# Solana Configuration
SOLANA_RPC_URL=https://rpc.helius.xyz/?api-key=YOUR_API_KEY
SOLANA_WS_URL=wss://rpc.helius.xyz/?api-key=YOUR_API_KEY

# Server Configuration
PORT=3000
NODE_ENV=production

# DEX Configuration
DEX_FORK_TYPE=Custom
FACTORY_ADDRESS=FACTgvmECoA8e8Y4h3cKfQcr45Rthxsix92YUJz1DiBk
ROUTER_ADDRESS=RouTSKvxjyPNWvDCQkBq3cDPZcqEW3ZQRzDCJvxTBhQ

# Protocol Configuration
PROTOCOL_FEE_RATE=0.0025

# Optional: Exclude specific DAOs
EXCLUDED_DAOS=11111111111111111111111111111111

Validation

The API validates all configuration on startup and will log warnings or errors for invalid settings.

On startup, check the logs for:

  • ✅ RPC connection successful
  • ✅ Factory address valid
  • ✅ Router address valid
  • ⚠️ Any configuration warnings

Production Recommendations

Use Premium RPC

Premium RPC providers offer higher rate limits and better reliability

Set Appropriate Fees

Ensure PROTOCOL_FEE_RATE matches your actual protocol fees

Monitor Performance

Use health check endpoint to monitor API status

Secure Your Endpoints

Consider adding authentication for production deployments

Was this page helpful?