Aztec QuickstartSDK
← Quest map

Deploy to testnet

Once the local deploy works, the same spec goes to the public testnet with one command. The difference is fees: testnet has no prefunded accounts, so real Fee Juice has to come from L1 (Sepolia).

Point an L1 funder key at the script and deploy. The deployer pays from its own Fee Juice, bridging from L1 when its balance runs low:

bash
export L1_FUNDER_KEY=0x...   # a funded Sepolia key
npm run deploy:testnet

The framework's fee policy auto-tops-up the deployer from L1, then deploys the voting contract and registers a fully-private PrivateFeeJuice FPC — the contract that pays for visitors' votes. Its address is written to packages/app/src/deployments/testnet.json.

Funding a vote from L1#

Unlike local (where the SponsoredFPC just pays), a testnet visitor's first vote needs Fee Juice bridged to the FPC. The app's bridge widget does this: it discovers an L1 wallet (EIP-6963), switches it to Sepolia, and runs the portal's mint → approve → deposit, then waits for the L1→L2 message before casting the vote.