> ## Documentation Index
> Fetch the complete documentation index at: https://rain-sandbox-trial.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# SDK features and support

> Compare available SDK features across iOS and Android, supported wallet providers, and blockchain capabilities.

Use the following tables to identify supported functionality and platform differences when planning your integration.

## Rain wallet features

The Rain embedded wallet SDK offers the following capabilities on iOS and Android.

| Feature | iOS | Android |
| - | :-: | :-: |
| Email and SMS authentication | ✅ | ✅ |
| Passkey authentication and enrollment | ✅ | ✅ |
| Session management | ✅ | ✅ |
| EVM and Solana accounts | ✅ | ✅ |
| Wallet balances across assets and chains | ✅ | ✅ |
| Transaction history and pagination | ✅ | ✅ |
| Native asset and token transfers | ✅ | ✅ |
| Gas sponsorship | ✅ | ✅ |
| Transaction fee estimates | ✅ | ✅ |
| Collateral withdrawals | ✅ | ✅ |
| Recovery phrase and private key export | ✅ | ✅ |
| Address QR code generation | ✅ | ✅ |
| Token metadata lookup and registration | ✅ | ✅ |

### Platform differences

Although both SDKs support the same core functionality, certain implementation details differ.

| Feature | iOS | Android |
| :- | :- | :- |
| QR code generation | PNG data | Bitmap |

### Platform consistency

Rain wallet accounts work across iOS and Android. Users can authenticate on either platform using an existing login method and access the same wallet.

Both SDKs use consistent error codes, fee estimates, and export formats for recovery phrases and private keys. Platform differences are outlined above.

## Third party wallet providers

Rain supports integrations with existing wallet providers through adapters that expose a consistent `RainClient` interface.

Authentication, wallet creation, and key management remain with the third party provider. Rain's wallet specific authentication and key management features do not apply to these integrations.

| Capability | Rain wallet | Turnkey | Portal | Privy |
| - | :-: | :-: | :-: | :-: |
| Authentication through Rain SDK | ✅ | Vendor SDK | Vendor SDK | Vendor SDK |
| EVM accounts | ✅ | ✅ | ✅ | ✅ |
| Solana accounts | ✅ | ✅ | ❌ | ✅ |
| Balances and transaction history | ✅ | ✅ | ✅ | ✅ |
| Transfers and collateral withdrawals | ✅ | ✅ | ✅ | ✅ |
| Gas sponsorship | ✅ | ✅ | ❌ | ❌ |
| Key export through Rain SDK | ✅ | Android only | Vendor SDK | Vendor SDK |
| Provider id | `.rain` / `RAIN` | `.turnkey` / `TURNKEY` | `.portal` / `PORTAL` | `.privy` / `PRIVY` |

### Provider IDs

Use the corresponding provider ID when initializing the Rain SDK.

| Wallet provider | iOS | Android |
| :- | :- | :- |
| Rain wallet | `.rain` | `RAIN` |
| Turnkey | `.turnkey` | `TURNKEY` |
| Portal | `.portal` | `PORTAL` |
| Privy | `.privy` | `PRIVY` |

The Rain wallet and your own Turnkey integration share the same wallet backend. **Register only one of these providers in your application, not both.** See [Third-party wallet providers](/sdks/embedded-wallets/third-party-providers).

## Blockchain support

Rain embedded wallets support balance retrieval and transaction history across configured blockchains. Outbound transactions and gas sponsorship are available on a defined set of networks.

| Blockchain | Balances and history | Sending | Gas sponsorship |
| - | :-: | :-: | :-: |
| Base (Mainnet, Sepolia) | ✅ | ✅ | ✅ |
| Arbitrum (One, Sepolia) | ✅ | ✅ | ✅ |
| Optimism (Mainnet, Sepolia) | ✅ | ✅ | ✅ |
| Polygon (Mainnet, Amoy) | ✅ | ✅ | ✅ |
| BNB Smart Chain (Mainnet, Testnet) | ✅ | ✅ | ✅ |
| Monad (Mainnet, Testnet) | ✅ | ✅ | ✅ |
| Ethereum (Mainnet, Sepolia) | ✅ | ✅ | ✅ |
| Solana (Mainnet, Devnet) | ✅ | ✅ | ✅ |
| Solana Testnet | ✅ | ❌ | ❌ |
| Avalanche (C Chain, Fuji) | ✅ | ❌ | ❌ |
| Celo | ✅ | ❌ | ❌ |
| ZKsync | ✅ | ❌ | ❌ |
| Plasma | ✅ | ❌ | ❌ |
| Stellar | ❌ | ❌ | ❌ |

| Chain | Read balances and history | Send from the Rain wallet | Gas sponsored |
| - | :-: | :-: | :-: |
| Base (mainnet, Sepolia) | ✅ | ✅ | ✅ |
| Arbitrum (One, Sepolia) | ✅ | ✅ | ✅ |
| Optimism (mainnet, Sepolia) | ✅ | ✅ | ✅ |
| Polygon (mainnet, Amoy) | ✅ | ✅ | ✅ |
| BNB Smart Chain (mainnet, testnet) | ✅ | ✅ | ✅ |
| Monad (mainnet, testnet) | ✅ | ✅ | ✅ |
| Ethereum (mainnet, Sepolia) | ✅ | ✅ | ✅ |
| Solana (mainnet, devnet) | ✅ | ✅ | ✅ |
| Solana testnet | ✅ | ❌ | ❌ |
| Avalanche (C-Chain, Fuji) | ✅ | ❌ | ❌ |
| Celo | ✅ | ❌ | ❌ |
| ZKsync | ✅ | ❌ | ❌ |
| Plasma | ✅ | ❌ | ❌ |
| Stellar | ❌ | ❌ | ❌ |

<Warning>
  **Important:** Avalanche, Celo, ZKsync, Plasma, and Solana Testnet support
  balance retrieval and history but not outbound transactions through Rain
  embedded wallets. Stellar is not currently supported.
</Warning>

### Read and send capabilities

**Balance retrieval and history:** Available on supported chains with a configured RPC endpoint.

**Sending:** Available only on networks marked as supported above. Attempting to send on an unsupported chain returns `RAIN_104` (`chainNotSupported`).

**Gas sponsorship:** Enabled by default for outbound transactions on supported networks. On Solana, sponsorship covers transaction fees but not the rent required to create a recipient's token account. See [Gas sponsorship](https://docs.rain.xyz/docs/embedded-wallets/gas-sponsorship).

**Network configuration**

Configure an RPC endpoint for each network your application uses. A supported network must also have a configured RPC endpoint before the SDK can send transactions.

Third party wallet providers have their own blockchain capabilities, which may differ from Rain's native wallet support.

## Token support

the SDK retrieves token metadata, including decimals, symbols, and names, from its built in registry of tokens Rain accepts as collateral on each chain (USDC, USDT, DAI, rUSD, and others), tokens you register using `registerTokens`, or available blockchain data.

For outbound transfers, the SDK must determine a token's decimals. If it cannot, the request returns `RAIN_102` (`tokenNotFound`).

On Solana, tokens may not expose a symbol directly. Use `registerTokens` to provide metadata for tokens not included in Rain's registry.

## What's next

<Columns cols={3}>
  <Card title="Restrictions" icon="ban" href="/docs/embedded-wallets/restrictions">
    Limits, eligibility, and what's out of scope for the beta.
  </Card>

  <Card title="Gas sponsorship" icon="gas-pump" href="/docs/embedded-wallets/gas-sponsorship">
    What's sponsored, where, and how to turn it off.
  </Card>

  <Card title="Supported chains and tokens" icon="link" href="/docs/supported-chains-and-tokens">
    Chain ids and token contract addresses across Rain.
  </Card>
</Columns>
