Test mode
Tollgate supports a public test-mode deployment that runs on Base Sepolia with test USDC. It lets you try the full 402 → sign → settle flow without real money, real KYC, or a production legal opinion. Everything needed to launch production-grade OFAC sanctions compliance + country-level geo-blocking stays on — the test-mode bypass only relaxes the four launch-specific gates (legal signoff, revenue model, Persona KYC, D&O insurance).
Opting in
Set TOLLGATE_MODE=testnet on the facilitator + settler + dashboard + docs services. Also set NEXT_PUBLIC_TOLLGATE_MODE=testnet on the Next.js apps so the client bundle advertises the mode in banners. Default is production — unset means prod (fail-safe).
What's supported
- Base Sepolia (chainId 84532) only. Any IOU signed for another chainId is rejected with
UNSUPPORTED_CHAIN_TESTNET. - Testnet USDC at
0x036CbD53842c5426634e7929541eC2318f3dCF7e(Circle's Base Sepolia testnet USDC). - Full 402 → IOU → settle flow — the SDK, facilitator, and settler all speak testnet.
- Dashboard onboarding without Persona KYC or W-9 / W-8BEN — wallet proof alone unlocks payouts.
What still applies
- OFAC SDN screening — sanctions compliance is federal law, not a product feature. The Treasury SDN CSV path (built in TASK-07) is sufficient.
- Country-level geo-block — IR, KP, RU, CU, SY, BY, and occupied Ukraine regions (Crimea / Donetsk / Luhansk) are blocked in all modes.
- Strict TypeScript, observability, audit logging, EIP-712 signing, blacklist KV, rate limiting, webhook subscriptions, API keys, admin auth, dashboard OAuth.
What's relaxed
- US-state whitelist is NOT enforced in testnet — agents and developers can reach the test facilitator from any US state.
- EU / UK / EEA geo-block is NOT enforced in testnet — GDPR risk is nil when no real money can move.
- The four "product" launch gates (
LEGAL_SIGNOFF,REVENUE_MODEL_DEFINED,KYC_PROVIDER_CONFIGURED,INSURANCE_BOUND) are bypassed at boot. - Persona KYC inquiries and Tax1099 W-9 / W-8BEN collection are skipped — the onboarding wizard short-circuits to "payouts ready" as soon as wallet proof lands.
Getting test USDC on Base Sepolia
Circle runs a faucet that mints test USDC against Base Sepolia ETH: faucet.circle.com. You'll need Base Sepolia ETH first — any of the public Sepolia faucets (Alchemy, Chainstack, etc.) will bridge through Base's own bridge page, or you can use Alchemy's Base Sepolia faucet directly.
Opting in from the agent SDK
The agent SDK logs a warning when it sees a mode=testnet 402 envelope from a facilitator if the client didn't explicitly opt in:
import { TollgateClient, makeWallet } from "@tollgatepay/agent";
const client = new TollgateClient({
wallet: makeWallet(account),
mode: "testnet", // <- silences the mode-mismatch warning
});Pass mode: "production" (or omit) and the client stays loud about being pointed at a test server.
Availability still applies
The availability page still governs which countries can reach the test facilitator. OFAC sanctions blocks are enforced identically; only the US-state and EU/UK checks relax in testnet.