Skip to main content
OMS wallets let an app create, restore, and use a wallet for a user without sending them to a separate wallet app. The SDKs handle wallet authentication, session state, wallet selection, transaction submission, message signing, signature verification, ID-token issuance, and balance reads where each SDK exposes those helpers. Non-custodial wallets are non-custodial smart contract wallets powered by OMS Wallet. They give users consumer-grade onboarding without extensions, seed phrases, or separate wallet apps, while giving apps session-based signing and programmable transaction flows.

Functionality

FunctionalityDescription
Authentication and wallet creationStart and complete user authentication, resolve the user’s non-custodial wallet, and create a wallet when the authenticated user does not already have one. Email OTP and Google sign-in are available across SDKs.
Wallet selectionTypeScript, React Native, Swift, and Kotlin can return an active wallet automatically, or use manual wallet selection when your app needs to present existing wallets plus a create-new-wallet action.
Session stateRestore completed wallet sessions with platform storage where supported, so apps can continue wallet operations after the initial sign-in flow.
Network registryUse built-in supported-network entries and lookup helpers when SDKs expose them. React Native accepts chainId string values for wallet transaction and signing APIs; indexer APIs use networks or networkType.
TransactionsSend native token transactions and contract calls from the non-custodial wallet.
Message signing and verificationSign messages and typed data from the non-custodial wallet, then verify signatures through wallet public APIs.
Backend verificationRequest an ID token for the active wallet and verify it on your backend against the issuer JWKS. This is exposed by TypeScript, React Native, Swift, and Kotlin.
Balances & historyRead wallet token balances and transaction history through the SDK indexer clients. Balance amounts are returned as raw base-unit values.

Guides

Guides are use-case oriented and show the same flow across every SDK that exposes the required capability.
Use CaseDescriptionGuide
Send USDCAuthenticate a non-custodial wallet, prepare a 6-decimal USDC amount, and submit an ERC-20 transfer contract call.Send USDC
Backend wallet verificationRequest a wallet ID token, verify it against the issuer JWKS, and read trusted wallet claims on your backend.Backend Wallet Verification

Available SDKs

Choose the SDK that matches your app runtime.
SDKPackageUse WhenStart Here
TypeScript OMS Wallet SDK@0xsequence/typescript-sdkYou are building a web, JavaScript, or Node.js app and want wallet auth, signing, transactions, and indexer reads from TypeScript.TypeScript quickstart
React Native OMS Wallet SDK@0xsequence/oms-react-native-sdkYou are building an iOS or Android app with React Native, including Expo development builds or bare React Native apps. Expo Go is not supported because the SDK includes native code.React Native quickstart
Swift OMS Wallet SDKoms-client-swift-sdkYou are building an iOS 15+ or macOS 12+ app with Swift and need native wallet auth, signing, transactions, and balance reads.Swift quickstart
Kotlin OMS Wallet SDKio.github.0xsequence:oms-client-kotlin-sdkYou are building an Android app with Kotlin, Android 10 / API 29 or newer at runtime, Android compileSdk 34 or newer, and Java 17 Android compile options.Kotlin quickstart