DOME Docs

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.sh

Writes .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.sh

Backend configuration

Copy dome-backend/.env.sepolia.example to .env on your host:

VariableNotes
DOME_DEPLOY_FILE.dome-local/base-sepolia-deploy.json
DOME_DEV_FAUCETfalse — no faucet on public networks
DOME_RELAYER_PRIVATE_KEYDedicated key; never the Hardhat default
DOME_DATABASE_URLPostgres recommended for production
DOME_RELAYER_SECRETRequired for public relayer endpoint

Start:

cd dome-backend
npm install
npm start

For tunnel + circuits + backend together:

bash scripts/cloudflare/up-sepolia.sh

See 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.0006

Relayer balance

The relayer pays gas for withdraws. Check and fund as needed:

bash scripts/testnet/check-relayer-balance.sh

Fund 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.json

Web apps: bash scripts/web/configure-sepolia-env.sh syncs dome-web/.env.local.

On this page