Skip to main content
You know at build time which signing path your app uses. This recipe helps you pick and wire it. For the underlying model, see Signing paths.

Do you own the wallet’s domain?

Ask one question: is the passkey’s rpId a domain you control and can serve .well-known files from?
  • Yes, use own-origin. Set rpId. Signing runs in your app, in code. This is the path for wallet apps and any app that owns its wallet UX.
  • No, use shared-origin. Set authOrigin, pointing at the operator origin that hosts the wallet. Signing happens in a popup or in-app browser tab at that origin; your app receives only the result.
rpId and authOrigin are mutually exclusive. Set exactly one.

Own-origin

On React Native, also pass the injected passkey module:

Shared-origin

On React Native, use createNativeSharedOrigin over an in-app browser tab. See React Native setup. Once you have a connection, pass it to createAvokClient. See Create your first wallet.