bootstrap section on first run. After that, the admin
user (see server.admin in Configure the Wallet Gateway)
can manage them at runtime through the User API or User UI.
Identity providers
Every network references an IDP byid. The Wallet Gateway supports two IDP types.
OAuth / OpenID Connect
Integrates with an external OAuth 2.0 / OpenID Connect provider to obtain tokens.id(required): must match theidentityProviderIdreferenced by networks.type(required):"oauth".issuer(required): theissclaim value, matching your provider’s configuration.configUrl(required): the OpenID Connect discovery endpoint, typically${OAuthServerURL}/.well-known/openid-configuration.
Self-signed
Generates JWTs locally using a secret. Convenient for development, not for production.id(required): must match theidentityProviderIdreferenced by networks.type(required):"self_signed".issuer(required): theissclaim value, matching what the validator expects.
Identity provider management
This guide is only for parties with administrator access.- Select the hamburger icon on the top right and click Identity Provider.
- Review the list of available identity providers.
- To add: click on + New to add a new identify provider.
- To edit: click on an identity provider card to make changes or delete it permanently.
Networks
A network represents a Canton validator that users can reach through the Wallet Gateway.networks
is an array, so you can configure several in one Wallet Gateway.
id(required): unique identifier in CAIP-2 form, for example"canton:localnet".name(required): a user-friendly name shown in the UI.description(optional): a description shown to users.synchronizerId(required): the synchronizer ID used on the validator. For multiple synchronizers, configure a separate network per synchronizer.identityProviderId(required): must match theidof a configured IDP.ledgerApi.baseUrl(required): the base URL of the validator’s Ledger API.auth(required): authentication for normal ledger operations. This is the method users go through in the UI.adminAuth(optional): authentication for admin operations, used by the backend only.
Authentication methods
A network’sauth (and optional adminAuth) uses one of three methods.
authorization_code
client_credentials
self_signed
auth vs adminAuth
Each network defines two independent OAuth configurations:
Can
clientId be the same? Yes, if one OAuth client supports both the authorization-code and
client-credentials flows with the right scopes. Many deployments use a dedicated client for auth
and either reuse it or use a separate adminAuth client; either is valid.
Does auth.clientId need a wallet or party? No. The client only needs to obtain tokens for
users who already have ledger rights (or will receive them through your IDP).
When is adminAuth required? For automatic wallet sync when a user logs in and the Wallet
Gateway has no wallets stored yet. Without valid adminAuth, addSession may fail with HTTP 500.
If you only create wallets manually and never rely on sync, some flows may still call admin APIs,
so configure adminAuth unless you know your deployment does not need it.
Store adminAuth secrets via clientSecretEnv and Kubernetes secrets (Helm oauthSecrets)
rather than plain text in config files.
Service account automation (serviceAccountAuth)
To let backend jobs submit transactions with an API key, add a serviceAccountAuth block
(machine-to-machine client_credentials) to the network. The Wallet Gateway uses it to obtain
ledger tokens when an API key request arrives, so a prepareExecute call runs prepare, sign, and
execute straight through. End users still sign in with the network’s normal auth.
Network management
This guide is only for parties with administrator access.- Select the hamburger icon on the top right and choose Network.
- Review the list of available networks.
- To add: click on + New to add a new network.
- To edit: click on a network card to make changes or delete it permanently.
- The connected network can be reviewed at the top of the pop-up showing a green dot: [network name] or in the network list with a green
Connectedtag.
Runtime management
Once the Wallet Gateway is running, the admin user can add, edit, and remove networks and IDPs without restarting, using the User API (addNetwork, removeNetwork, addIdp, removeIdp,
listNetworks, listIdps) or the Settings page in the User UI. Runtime changes are
stored in the database, so back it up to avoid losing them. See the
User API and
Party management.