Base Sepolia Testnet
Deploy contracts, run the backend, and smoke-test on public testnet.
Base Sepolia is the current public testnet for Dome shielded ETH. Hosted infrastructure (when running):
- API / indexer:
https://api.getdome.app - Circuits:
https://circuits.getdome.app
Deploy contracts
export ALCHEMY_KEY=...
export PRIVATE_KEY=0x...
bash scripts/base/deploy-sepolia.shWrites .dome-local/base-sepolia-deploy.json. Fund the deployer/relayer address with Base Sepolia ETH.
Or use the setup script (deploy if funded):
# Configure .dome-local/sepolia.env first
bash scripts/testnet/setup-sepolia.shBackend configuration
Copy dome-backend/.env.sepolia.example to .env on your host:
| Variable | Notes |
|---|---|
DOME_DEPLOY_FILE | .dome-local/base-sepolia-deploy.json |
DOME_DEV_FAUCET | false — no faucet on public networks |
DOME_RELAYER_PRIVATE_KEY | Dedicated key; never the Hardhat default |
DOME_DATABASE_URL | Postgres recommended for production |
DOME_RELAYER_SECRET | Required for public relayer endpoint |
Start:
cd dome-backend
npm install
npm startFor tunnel + circuits + backend together:
bash scripts/cloudflare/up-sepolia.shSee Cloudflare Tunnel and Backend & Indexer.
SDK smoke test
No web UI required:
cd dome-sdk-evm
npm run build
export PRIVATE_KEY=0x...
export DOME_EVM_INDEXER_URL=https://api.getdome.app
export DOME_ETH_POOL_ADDRESS=0x... # from deploy manifest
export DOME_FEE_RECIPIENT_ADDRESS=0x...
export DOME_BASE_RPC=https://base-sepolia.g.alchemy.com/v2/YOUR_KEY
export DOME_CHAIN_ID=84532
export DOME_CIRCUIT_KEY_BASE_PATH=https://circuits.getdome.app/transaction
node scripts/smoke-sepolia.mjs balance
node scripts/smoke-sepolia.mjs deposit 0.001
node scripts/smoke-sepolia.mjs withdraw 0.0006Relayer balance
The relayer pays gas for withdraws. Check and fund as needed:
bash scripts/testnet/check-relayer-balance.shFund via the Alchemy faucet if balance drops below ~0.05 ETH.
Circuits
Browsers load Groth16 artifacts over HTTPS. See Circuit Hosting.
Client env (summary)
DOME_EVM_INDEXER_URL=https://api.getdome.app
DOME_CIRCUIT_KEY_BASE_PATH=https://circuits.getdome.app/transaction
DOME_ETH_POOL_ADDRESS=0x... # from base-sepolia-deploy.jsonWeb apps: bash scripts/web/configure-sepolia-env.sh syncs dome-web/.env.local.