Skip to main content

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.

User-controlled wallets allow you to create wallets for your users that give them full control of their keys with a Web2-like experience. Users onboard with popular authentication mechanisms (social login, email OTP, or PIN with security questions), then approve transactions and signatures from their device. For a comparison of all wallet products, see Choose your wallet product and account types.

Key features

User retains custody

Users have full control of their private keys secured with . Your app or backend never holds user keys. See Key management for more details.

Seamless onboarding

Choose from social login (Google, Apple, Facebook), email OTP, or PIN with security questions to authenticate your users. Optional biometrics with PIN.

Customizable UIs

For social login and email OTP, Circle provides confirmation UIs for transfers and signing that you can customize or turn off to build and match your own branding.

What you can build

Build payment or remittance apps with USDC, with faster settlement and low fees versus traditional rails, no custody or key management for you. Users approve transfers in your app; you execute using Circle APIs.
Build marketplaces and subscriptions with in-app crypto checkout. One-tap approval, higher conversion, no external wallets or seed phrases. Users approve; you run checkout and complete the transfer using Circle APIs.
Build lending, swapping, yield/earn, or other DeFi flows with user custody. Users sign (for example, , ) from your app, with no key export or separate wallet; optional gas sponsorship hides gas complexity. You orchestrate the flow and never hold keys.
Enable tipping, creator payouts, and in-app rewards in USDC. You provide the social or content layer; users hold the wallet. SDK creates wallets and runs transfers with user approval.
Build games or loyalty apps where users earn, hold, or spend USDC or in-game assets. Keep engagement in-app, with no external wallets or seed phrases. Users approve (rewards, purchases); you create wallets and run transfers using the SDK and APIs.
Embed USDC into savings, payroll, B2B payments, or remittance. Users keep custody; you avoid holding assets. Social, email, or PIN for familiar onboarding. Users approve from your UI; you execute using Circle APIs.

Account types

On EVM chains, a user-controlled wallet is created as either an externally owned account (EOA) or a smart contract account (SCA). Pick one based on your needs. For non-EVM chains such as Aptos or Solana, see Choose your wallet product and account types for a full breakdown by blockchain.

EOA (Externally Owned Account)

Select when the source wallet can hold native token for gas, you want simple key-controlled accounts, and you don’t need multiple operations in one transaction (batch execution).

SCA (Smart Contract Account)

Select when you need gas paid by a relayer or platform (gas sponsorship), batch execution, or other programmable behavior. For details on gas sponsorship, see Gas Station.

Get started

Choose how users authenticate, then follow a quickstart to create wallets and see the full flow:

Authentication types

Compare social logins, email OTP, and PIN: onboarding UX, signing UX, and key management so you can pick the right type for your app.

Create user wallets with social login

Build a web app that allows users to sign in with Google and get a user-controlled wallet with USDC balance.

Create user wallets with email

Authenticate users with an OTP sent by email and create a user-owned wallet linked to your app.

Create user wallets with PIN

Allow users to set a PIN (and optional biometrics) to create and authorize a user-controlled wallet from your app.