Skip to main content

How to plan your network environment

The blockchain ledger an application uses is set by the product (DPP, Loyalty, Embedded Wallet) — not by you. The only environment dimension you control is mainnet vs testnet. This guide:

  • States the product → ledger mapping so you don't expect it to be a choice.
  • Frames the only real arbitration: mainnet vs testnet.
  • Walks through the testnet → mainnet promotion (which is per-application and not a flag flip).
  • Lists what doesn't carry over.

1. The ledger is fixed by the product

Each Keyban product is engineered around a specific blockchain family. Provisioning an application of that product implicitly picks the family — there's no override.

ProductLedger familyWhy
DPP (Digital Product Passport)StarknetHigh throughput at low cost, deterministic finality, ZK-rollup security. Optimised for the high-volume, low-value passport-write workload.
Loyalty (points)StellarSub-cent transaction fees, sub-second finality, native asset issuance. Optimised for the high-frequency micro-incentive workload.
Embedded Wallet (full surface)Base (EVM)Coinbase L2 settled on Ethereum; full ERC-20 / ERC-721 / contract surface for non-Keyban-product use cases.

If you're integrating multiple products, you'll provision multiple Keyban applications, each on its own ledger. Keyban does not bridge writes between ledgers — your back-office multiplexes by domain.

2. The only choice you make: mainnet vs testnet

Each family ships with a public testnet and a mainnet. They differ on three axes that matter for planning.

AxisMainnetTestnet
Real valueYes — token transfers, NFTs, certifications cost real money.No — gas paid in faucet tokens.
AudienceProduction users, billable.Your dev team, automated tests.
ReversibilityMistakes are public, on-chain, permanent.Reset-friendly — re-create at will.

The recommended path is to build and verify everything against the testnet first, then promote a fresh application to the mainnet equivalent when you're ready (Section 4 below).

3. Account access modes

Two access modes exist for partner accounts:

  • Standard account — both mainnets and testnets are enabled. You build against the testnet, then provision a mainnet application when you're ready to go live.
  • Trial account — testnets only. Useful during a paid evaluation phase before a contract is signed. Upgrading to a standard account unlocks the mainnets without re-provisioning the testnet applications you already have.

The Admin Console reflects which networks your account can pick from when creating a new application.

4. The promotion is per-application, not a flag flip

network is set at application creation and is immutable. Going from testnet to mainnet means:

  1. Provision a fresh Keyban application with the mainnet identifier of the target family.
  2. Re-issue API keys for the new application.
  3. Re-create the catalogue (DPP), the reward tiers (Loyalty), or whatever business artefact your testnet was carrying — testnet data does not flow to mainnet.
  4. Switch your client code's applicationId (or feature-flag the cutover).
  5. Disconnect or archive the old testnet application once verified.

This is by design: testnet artefacts are throwaway, mainnet artefacts are permanent. Treat the two applications as completely separate.

Plan the cutover deliberately

Customers who scanned a testnet DPP QR code or who hold a testnet loyalty pass will not see mainnet data when you flip the storefront. Coordinate the storefront cutover, the email-template URLs, and the buyer communication accordingly.

5. What doesn't carry over

Going from testnet to mainnet means re-creating, not migrating:

  • Passports (DPP) — the id, tokenId, IPFS CID and on-chain certification of a passport are testnet-specific and have no mainnet equivalent.
  • Loyalty accounts and balances — minted on a different chain.
  • Apple/Google Wallet pass URLs — bound to the testnet account and its testnet chain. Buyers will need a fresh install URL.
  • Wallet addresses — TSS shares are bound to the application; new application = new wallet derivation.

Partner-side artefacts do carry over because they're not chain-bound:

  • Webhook receivers and HTTP clients (you only swap the applicationId and the API key).
  • Brand assets (loyaltySettings.appleWallet/googleWallet URLs in the application config) — re-attach them to the new application.
  • The Admin Console layout and your members' roles.

Reference

ProductLedger familyMainnet identifierTestnet identifier
DPPStarknetStarknetMainnetStarknetSepolia
LoyaltyStellarStellarMainnetStellarTestnet
Embedded WalletBase (EVM)— (testnet only today)BaseSepolia

The human catalogue lives in Supported Blockchains and the SDK type alias in /api/sdk-base/TypeAlias.Network.