OIDC client_id registered at the issuer.
OptionalenvironmentUPBOND deployment to target; fills issuer and the whole wallet leg
(Web3Auth project, verifier, network, wallet origin, recovery wiring).
Defaults to 'production' — the minimal integration is
createUpbond({ clientId }).
OptionalissuerIssuer origin override; defaults from environment. Must equal the id_token iss.
OptionalpersistenceWhere the session persists (docs/24 D13). 'session' (default) uses
sessionStorage — the session ends with the tab. 'local' uses
localStorage so a revisit restores the session; paired with an
offline_access scope, an expired session is silently refreshed on
boot (the "open the wallet and you're in" UX). Use 'local' only on the
wallet's own origin, never on an untrusted shared device.
OptionalpostPath shown (history.replaceState) after the callback is consumed; defaults to '/'. Set it to the page's own path for multi-page apps.
OptionalredirectRedirect URI back into the RP; defaults to window.location.origin.
Either way it must be registered at the issuer for this client.
OptionalscopeDefaults to openid profile email (add wallet to receive wallet_address).
OptionalstorageStorage namespace; defaults to 'upbond'.
OptionalwalletWallet-leg overrides. Omitting it does NOT disable the wallet: the
environment preset supplies the embedded (widget) wallet by default,
and an auth-only RP simply never calls a wallet method. Pass fields here
only to switch to mode: 'redirect' (local MPC on the RP page), wire
the recovery OTP UI, or point at a custom deployment.
The single configuration object an RP hands to createUpbond. Validated once at the boundary by
validateConfig; everything downstream trusts the resolved shape.Remarks
validateConfigthrows UpbondError with codeconfig_invalidwhenissuer/redirectUriare not absolute http(s) URLs,clientIdis empty,postLoginPathis not absolute, or (whenwalletis present) the resolved wallet fields are inconsistent.