How domains determine the account
- RP ID (relying party ID) is the passkey’s hostname namespace, such as
checkout.example.com. It contains no scheme or port. - Origin is the exact page origin that runs WebAuthn, such as
https://checkout.example.com. It includes the scheme and any non-default port, but no path. - Account namespace is
https://<rpId>. The RP ID determines which passkey, signer, and smart account the user accesses.
https://checkout.example.com, the defaults are:
Share an account across subdomains
To let a user access the same passkey and account fromapp.example.com and checkout.example.com, choose their parent domain, example.com, as the RP ID before onboarding users.
- Follow the Dashboard RP configuration to verify the domains, register
example.comas the RP ID, and authorize both exact origins. - Add the matching option to the shared client initializer on both subdomains:
- Authenticate as the same user on each origin with the browsers and password managers you support. Confirm that both return the same account address before rollout.
Dashboard configuration authorizes the shared namespace;
webauthn.rpId selects it in the client. Without that client option, each hostname keeps its own namespace. rpOrigins is server configuration, not an SDK option.Changing domains
Moving to a new hostname changes the RP ID when you use the default hostname-based configuration. Moving between subdomains with the same explicitly configured parent RP ID keeps the namespace, but the new origin must still be verified and authorized in the Dashboard. An established RP ID cannot be changed or cleared in the Dashboard.Troubleshoot domain configuration
clientId identifies the registered application; it does not override browser-origin verification. If authentication succeeds but a transaction fails, check sponsorship setup separately.