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.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.
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
Payments and P2P apps
Payments and P2P apps
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.
Commerce and checkout
Commerce and checkout
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.
DeFi and onchain apps
DeFi and onchain apps
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.
Social and creator apps
Social and creator apps
Gaming and rewards
Gaming and rewards
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.
Fintech and embedded finance
Fintech and embedded finance
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.