> ## Documentation Index
> Fetch the complete documentation index at: https://docs.polygon.technology/llms.txt
> Use this file to discover all available pages before exploring further.

# SDKs Overview

> Compare the TypeScript, React Native, Swift, and Kotlin OMS Wallet SDKs and choose the right SDK for your app.

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

| Functionality                      | Description                                                                                                                                                                                                          |
| ---------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Authentication and wallet creation | Start 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 selection                   | TypeScript, 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 state                      | Restore completed wallet sessions with platform storage where supported, so apps can continue wallet operations after the initial sign-in flow.                                                                      |
| Network registry                   | Use 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`. |
| Transactions                       | Send native token transactions and contract calls from the non-custodial wallet.                                                                                                                                     |
| Message signing and verification   | Sign messages and typed data from the non-custodial wallet, then verify signatures through wallet public APIs.                                                                                                       |
| Backend verification               | Request 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 & history                 | Read 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 Case                    | Description                                                                                                          | Guide                                                                          |
| --------------------------- | -------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------ |
| Send USDC                   | Authenticate a non-custodial wallet, prepare a 6-decimal USDC amount, and submit an ERC-20 `transfer` contract call. | [Send USDC](/wallets/sdk/guides/send-usdc)                                     |
| Backend wallet verification | Request a wallet ID token, verify it against the issuer JWKS, and read trusted wallet claims on your backend.        | [Backend Wallet Verification](/wallets/sdk/guides/backend-wallet-verification) |

## Available SDKs

Choose the SDK that matches your app runtime.

| SDK                         | Package                                      | Use When                                                                                                                                                                              | Start Here                                                      |
| --------------------------- | -------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------- |
| TypeScript OMS Wallet SDK   | `@0xsequence/typescript-sdk`                 | You are building a web, JavaScript, or Node.js app and want wallet auth, signing, transactions, and indexer reads from TypeScript.                                                    | [TypeScript quickstart](/wallets/sdk/typescript/quickstart)     |
| React Native OMS Wallet SDK | `@0xsequence/oms-react-native-sdk`           | You 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](/wallets/sdk/react-native/quickstart) |
| Swift OMS Wallet SDK        | `oms-client-swift-sdk`                       | You are building an iOS 15+ or macOS 12+ app with Swift and need native wallet auth, signing, transactions, and balance reads.                                                        | [Swift quickstart](/wallets/sdk/swift/quickstart)               |
| Kotlin OMS Wallet SDK       | `io.github.0xsequence:oms-client-kotlin-sdk` | You 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](/wallets/sdk/kotlin/quickstart)             |
