Environments
Base URLs, chains, and settlement assets across Kite Passport's prod, staging, and dev environments.
Everything elsewhere in these docs — install commands, API calls, dashboard links — is written against prod. This page is the one place those defaults get overridden: the base URLs for each environment, how to point the CLI at one, and the settlement chain each targets.
Base URLs
| Environment | Passport API | Dashboard | CLI bundle |
|---|---|---|---|
| prod | https://passport.gokite.ai | — | https://cli.gokite.ai/install.sh |
| staging | https://passport.staging.gokite.ai | https://passport-web.dev.gokite.ai | https://cli.staging.gokite.ai/install.sh |
| dev | https://passport.dev.gokite.ai | https://passport-web.dev.gokite.ai | https://cli.staging.gokite.ai/install.sh |
There are exactly two CLI bundles — prod (https://cli.gokite.ai/install.sh) and staging (https://cli.staging.gokite.ai/install.sh) — there's no separate dev bundle. Which bundle you install is independent of which backend you target: the backend is chosen per command via KITE_PASSPORT_BASE_URL/--base-url, so a reader targeting dev installs the staging bundle and sets KITE_PASSPORT_BASE_URL=https://passport.dev.gokite.ai.
Selecting an environment
The CLI resolves its backend URL with this precedence, highest first:
--base-url <url>passed on the command itselfKITE_PASSPORT_BASE_URL, if exported- The compiled-in default (
https://passport.dev.gokite.ai)
If you're driving kpass from a coding agent, set KITE_PASSPORT_BASE_URL inline on every command, not with a separate export at the start of a session:
KITE_PASSPORT_BASE_URL=https://passport.dev.gokite.ai kpass <command> --output jsonCoding agents typically run each shell command as a separate invocation, and a variable exported in one invocation does not persist into the next — a kpass call that omits it silently falls back to the compiled-in default instead of the environment you meant to target.
Settlement chain
Today, dev settles on Arc testnet — chain id 5042002 — using Circle's testnet USDC (0x3600…0000, 6 decimals) as the settlement asset. Arc is also the chain USDC itself pays gas on: there's no separate native gas token to acquire, the same USDC you fund an agreement with covers the transaction fees around it.
The agreement and escrow plane currently runs on dev only. Proposing, funding, and settling an agreement — everything covered in escrow and settlement — targets passport.dev.gokite.ai regardless of where the rest of a deployment lives. Non-agreement flows (login, agent registration, x402 payments, wallet operations) work across environments; the coordination and escrow plane does not, yet.
Getting test USDC
Kite's own faucet drop cannot fund Arc. Test funding on dev goes through Circle's faucet instead, and the dev wallet surface serves arc only — balance and address lookups, no direct sends.
Select token and network
Choose token USDC, network Arc testnet.
Paste your wallet address
Get it from:
kpass wallet address --chain arc --output jsonPaste the returned address into the faucet.
Request the drop
Each drop delivers roughly 20 USDC — enough for several small test agreements.
Confirm it landed
kpass wallet balance --output json