Configuration
Circulate separates browser-safe values from protected server credentials. Standard Pump.fun launches need mainnet RPC and metadata services; the reward engine adds program, database, keeper, swap, and execution settings.
Standard launch variables
| Variable | Visibility | Purpose |
|---|---|---|
SOLANA_RPC_URL | Server secret | Verifies mainnet identity and supports server-side transaction checks |
NEXT_PUBLIC_SOLANA_RPC_URL | Browser safe | Submits the wallet-signed transaction and waits for confirmation |
SOLANA_CLUSTER | Server | Must equal mainnet-beta |
EXPECTED_GENESIS_HASH | Server | Pins the RPC to Solana mainnet |
PINATA_JWT | Server secret | Uploads the token image and metadata JSON to IPFS |
PUMP_API_BASE | Server | Approved Pump.fun transaction-builder origin |
EXTERNAL_FETCH_TIMEOUT_MS | Server | Bounds requests to external transaction and metadata services |
Mainnet genesis hash
EXPECTED_GENESIS_HASH should be 5eykt4UsFv8P8NJdTREpY1vzqKqZKvdpKuc147dw2N9d. The backend compares this value with the connected RPC before building a launch.
Reward-engine variables
| Variable | Purpose |
|---|---|
DATABASE_URL | Stores projects, rounds, leases, payouts, snapshots, and retry state |
REWARDS_PROGRAM_ID | Reward Router address used for project and round instructions |
MAINNET_REWARDS_PROGRAM_ID | Approved mainnet program address used for exact equality checks |
KEEPER_PUBLIC_KEY | Expected restricted keeper identity stored in project configuration |
KEEPER_SECRET_KEY | Server-only gas-payer signing material for keeper transactions |
JUPITER_API_BASE | Approved route and swap-transaction endpoint |
MAINNET_RELEASE_APPROVED | Controls construction of value-changing reward transactions |
LIVE_EXECUTION_ENABLED | Controls live keeper transaction submission |
Secret and scope rules
- Never prefix a private RPC, Pinata JWT, database URL, keeper key, or authority credential with
NEXT_PUBLIC_. - Use the same mainnet provider for server checks and a browser-safe endpoint for client submission.
- Apply Netlify variables to the production context and any deploy-preview context used for transaction testing.
- Redeploy after changing environment values so every function receives the new configuration.