Developers
Environment & deployment
A reproducible setup without exposing service or signing secrets.
Updated October 14, 2026
On this page
Public application configuration
- NEXT_PUBLIC_CHAIN_ID: 10143 for the documented v2 testnet deployment; 143 means mainnet.
- NEXT_PUBLIC_PROTOCOL_VERSION: 2 for the current contracts.
- NEXT_PUBLIC_CORE_ADDRESS and NEXT_PUBLIC_CIRCLE_FACTORY_ADDRESS: from the matching deployment manifest.
- NEXT_PUBLIC_MONAD_RPC_URL: an RPC for the same chain as the addresses.
- NEXT_PUBLIC_SUPABASE_URL and NEXT_PUBLIC_SUPABASE_ANON_KEY: the public project URL and publishable/anonymous key.
- NEXT_PUBLIC_SITE_URL: the stable public origin for metadata and sharing; defaults to the current Vercel domain.
- NEXT_PUBLIC_SUPPORT_EMAIL and NEXT_PUBLIC_SOCIAL_URL: optional real public contact channels.
- NEXT_PUBLIC_GUIDANCE_VIDEO_URL: optional HTTPS URL for a completed product recording. Until configured, guide links use the written walkthrough.
- NEXT_PUBLIC_MERA_RP_ID: optional stable relying-party domain. Do not change existing passkeys’ scope casually.
- NEXT_PUBLIC_ENABLE_EXTERNAL_WALLET: false to omit the optional injected wallet path.
Server-only secrets
- SUPABASE_SERVICE_ROLE_KEY: the configured project’s legacy service-role credential used by the server. A publishable key cannot replace it.
- BONDLINE_SESSION_SECRET: a random secret of at least 32 characters, used to sign app session cookies.
- MONAD_RPC_URL: server reads must use the same chain as the frontend.
- BONDLINE_INDEXER_SECRET or CRON_SECRET: authenticates the indexer run endpoint. Use a distinct random secret.
- HYPERSYNC_BEARER_TOKEN and BONDLINE_HYPERSYNC_URL: optional HyperSync transport configuration.
- BONDLINE_DEPLOYMENT_BLOCK and indexer range/finality options: configure the cursor and scan bounds.
- BONDLINE_VERIFICATION_WORKER_SECRET: a separate 32+ character server/worker secret authenticating the product queue. BONDLINE_VERIFICATION_MODE=cli-simulation and BONDLINE_VERIFICATION_WORKER_ENABLED=true enable the configured bridge; readiness also checks heartbeat, authorization and fee balance.
- BONDLINE_VERIFIER_PRIVATE_KEY: optional durable worker signer supplied through secure runtime secret management. The current testnet demo explicitly uses an in-memory ephemeral signer. GITHUB_VERIFIER_TOKEN belongs only to the older standalone worker. Never expose signing material to the browser.
Production setup
The Vercel project’s root directory is web. Set environment variables for the intended deployment target, then rebuild. Changing Vercel environment values does not update your local .env.local, and existing builds do not automatically receive changed public values.
Apply the matching database schema, set a Vault secret matching the indexer secret, install the scheduled job, and verify a successful backfill and cursor advancement. Enable GitHub verification only after the authorized worker is funded and scheduled.
Keep .env files, private keys, service credentials, and local planning documents out of Git and deployment snapshots.
Contract deployment
The public testnet manifest is docs/deployments/monad-testnet.json. contracts/script/Deploy.s.sol creates and connects the core and factory. Check the target chain and the deployer’s balance before broadcasting. Use the Makefile and contract README to inspect the actual commands; do not run a mainnet target accidentally.
After deployment, verify source on the configured explorer, record receipts and deployment block, update addresses as one set, and start the indexer from that block. This guide does not authorize deploying a new contract or spending an account’s funds.