OAuth
Use OAuth when users should sign in with a provider such as Google or another configured IdP.- available in Expo / React Native through
startOAuth() - available in browser apps through
createSwigWebClient()andredirectToOAuth() - supports provider discovery through
listProviders({ clientId })
Email OTP
Use email OTP when users should verify ownership of an email address without a separate OAuth provider flow.- available in Expo / React Native through
startEmailOtp() - the user enters the address and verification code inside the isolated host
- the host app does not receive the email address, OTP code, or callback JWT
SMS OTP
Use SMS OTP when users should verify ownership of a phone number.- available in Expo / React Native through
startSmsOtp() - the user enters the phone number and verification code inside the isolated host
- the host app does not receive the phone number, OTP code, or callback JWT
Inputs you will see most often
Most auth starts are built around:clientIdpolicyIdproviderflow
flow: "role" because the resulting callback carries
the Swig wallet and role context. The web start API also exposes
flow: "session", but the primary documented path here is role-based auth.
