Skip to main content
nativePasskey from @buckspay/react-native brings passkey signing to iOS and Android. It delegates to the exact same crypto pipeline as the web passkey signer - the secp256r1 signatures, the COSE key extraction, and the OZ __check_auth payload are byte-for-byte identical. The only difference is the authenticator transport: react-native-passkey drives the platform’s secure enclave instead of navigator.credentials.

When to use

Choose nativePasskey for mobile React Native apps where you want the same passwordless, seed-phrase-free experience as the web passkey flow. The private key never leaves the device secure enclave. Like its web counterpart, it must be paired with ozContractAccount.

Factory

nativePasskey(opts) accepts a NativePasskeyOptions object:

The same hooks, same flow

@buckspay/react-native re-exports BuckspayProvider, useWallet, and useStellarPay by reference from @buckspay/react. The store and status machine are identical - your screen logic is the same as a web component. Only the host primitives (<View> / <Text>) and the signer differ.

Secure storage

Session blobs and credential IDs are persisted via a SecureStore port. Three adapters are available: Each adapter lazily imports its optional native peer, so apps that do not use a given adapter never pull its native module into the bundle.

Peer dependencies

Install these in your React Native app (not in the SDK):
  • react-native - the React Native runtime
  • react-native-passkey - the native WebAuthn module
  • react-native-get-random-values - Hermes crypto polyfill

Example

Next

Passkey (web)

The web counterpart - identical crypto, browser authenticator transport.

Signers overview

How every signer feeds into the same client and payment flow.