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

# Modular wallets client SDKs

> Client SDKs for embedding passkey-based modular wallets in web, iOS, and Android applications.

Circle's modular wallets client SDKs embed Modular Smart Contract Accounts
(MSCAs) in your web and mobile apps. The SDKs handle passkey login, MSCA setup,
and user operation signing. Keys stay on the user's device. Your app never holds
them.

## Choose your platform

<div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-2 gap-4 xl:gap-8 pt-4">
  <Card href="/sdks/modular/web-sdk" title="Web SDK">
    <div className="inline-flex items-center space-x-2 rounded-sm py-2 pr-1 text-blue-400 font-circular-bold hover:bg-blue-50">
      <div>Get started</div>

      <Icon icon="arrow-right" />
    </div>
  </Card>

  <Card href="/sdks/modular/ios-sdk" title="iOS SDK">
    <div className="inline-flex items-center space-x-2 rounded-sm py-2 pr-1 text-blue-400 font-circular-bold hover:bg-blue-50">
      <div>Get started</div>

      <Icon icon="arrow-right" />
    </div>
  </Card>

  <Card href="/sdks/modular/android-sdk" title="Android SDK">
    <div className="inline-flex items-center space-x-2 rounded-sm py-2 pr-1 text-blue-400 font-circular-bold hover:bg-blue-50">
      <div>Get started</div>

      <Icon icon="arrow-right" />
    </div>
  </Card>
</div>

## How it works

A client SDK call uses a passkey to authorize each user operation on the device:

<Steps>
  <Step title="User initiates a wallet action">
    A user performs a wallet action in your application, such as sending USDC.
  </Step>

  <Step title="SDK constructs the user operation">
    The SDK constructs a user operation for the action.
  </Step>

  <Step title="User authorizes with passkey">
    The SDK prompts the user to authorize with their passkey (biometrics or
    device unlock). WebAuthn signs the user operation on the user's device.
  </Step>

  <Step title="SDK submits to bundler">
    The SDK submits the signed user operation to a bundler, which broadcasts it
    to the network.
  </Step>

  <Step title="Application confirms execution">
    Your application polls for the user operation receipt or listens for a
    webhook confirmation.
  </Step>

  <Step title="Application notifies the user">
    Your application notifies the end user that the action is complete.
  </Step>
</Steps>

## Security

Passkeys live on the user's device, such as in Apple Keychain, Google Password
Manager, or a hardware security key. Keys never reach your server or Circle.
Your app cannot sign on the user's behalf. For more detail, see
[How passkeys and modules work](/wallets/modular/how-passkeys-and-modules-work).

For account recovery options, see
[Set up passkey recovery](/wallets/modular/set-up-passkey-recovery).
