Overview
Circle offers three wallet types -- developer-controlled, user-controlled, and modular -- each with different custody models, account types, key management, and capabilities. This skill helps you pick the right one.
Quick Comparison
|
Developer-Controlled |
User-Controlled |
Modular (Passkey) |
| Custody |
Developer |
User |
User |
| Auth |
API key + entity secret (backend) |
Social login / email OTP / PIN |
Passkey (WebAuthn) |
| Account types |
EOA, SCA |
EOA, SCA |
Modular Wallet SCA (ERC-6900) |
| Gas sponsorship |
SCA via Circle Paymaster |
SCA via Circle Paymaster |
Circle Paymaster or third-party paymaster |
| Custom modules |
No |
No |
Yes |
| Architecture |
Backend SDK only |
Backend + frontend SDKs |
Frontend SDK only |
Decision Guide
For the latest supported account types on different blockchains: https://developers.circle.com/wallets/account-types
For the latest supported features on different blockchains: https://developers.circle.com/wallets/supported-blockchains
Step 1 -- Who controls the keys / who is the custodian?
- Developer controls -> Developer-controlled wallets -> Step 3
- End user controls -> Step 2
Step 2 -- Auth method?
- Passkey (WebAuthn biometric) with extensible modules -> Modular wallets -> Step 4
- Social login, email OTP, or PIN -> User-controlled wallets -> Step 3
Step 3 -- Account type?
- Solana, Aptos, or NEAR -> EOA (only option)
- Ethereum mainnet -> EOA (SCA gas costs prohibitive, Modular Wallet not supported)
- L2 (Arbitrum, Base, Polygon, Optimism, etc.) -> EOA if max TPS needed; SCA if gas sponsorship or batching needed; Modular Wallet if passkey or other modular plugins needed
Step 4 -- Chain check (Modular wallets)
- Supported: Arbitrum, Avalanche, Base, Monad, Optimism, Polygon, Unichain
- NOT supported: Ethereum, Solana, Aptos, NEAR. Fall back to user-controlled wallets with SCA.
Example Scenarios
| Scenario |
Decision |
Skill |
| Payment backend, programmatic payouts, high TPS |
Developer-controlled + EOA |
use-developer-controlled-wallets |
| Consumer app with Google/Apple login, gasless UX |
User-controlled + SCA on L2 |
use-user-controlled-wallets |
| DeFi app with biometric auth, custom modules |
Modular Wallet on L2 |
use-modular-wallets |
| NFT marketplace on Ethereum L1 |
User-controlled + EOA |
use-user-controlled-wallets |
| AI agent, autonomous multi-chain transactions |
Developer-controlled + EOA |
use-developer-controlled-wallets |
Implementation Patterns
Once a wallet type has been determined, TRIGGER the corresponding skill:
- Developer-controlled ->
use-developer-controlled-wallets skill
- User-controlled ->
use-user-controlled-wallets skill
- Modular (Passkey) ->
use-modular-wallets skill
Strict Rules
- ALWAYS select the wallet type before starting implementation using the comparison table and decision guide above.
- ALWAYS use EOA on Ethereum mainnet (SCA gas prohibitive, Modular Wallet not supported) and on Solana, Aptos, NEAR (SCA/Modular Wallet not available).
- ALWAYS prefer SCA or Modular Wallet on L2 chains (Arbitrum, Base, Polygon, Optimism, etc.) when gas sponsorship or batch operations are needed.
- NEVER mix wallet types in a single user flow -- pick one and use its corresponding skill.
- ALWAYS delegate to the specific wallet skill (
use-developer-controlled-wallets, use-user-controlled-wallets, or use-modular-wallets) for implementation.
Reference Links
DISCLAIMER: This skill is provided "as is" without warranties, is subject to the Circle Developer Terms, and output generated may contain errors and/or include fee configuration options (including fees directed to Circle); additional details are in the repository README.
1---2name: use-circle-wallets3description: Choose and implement the right Circle wallet type for your application. Compares developer-controlled, user-controlled, and modular (passkey) wallets across custody model, key management, account types, blockchain support, and use cases. Use whenever blockchain wallet integrations are required for onchain application development. Triggers on: which wallet, choose wallet, wallet comparison, EOA vs SCA vs Modular Wallet, custody model, programmable wallets.4---5
6## Overview
7
8Circle offers three wallet types -- developer-controlled, user-controlled, and modular -- each with different custody models, account types, key management, and capabilities. This skill helps you pick the right one.
9
10## Quick Comparison
11
12| | Developer-Controlled | User-Controlled | Modular (Passkey) |
13|---------------------|-----------------------------------|--------------------------------|-------------------------------------------|
14| **Custody** | Developer | User | User |
15| **Auth** | API key + entity secret (backend) | Social login / email OTP / PIN | Passkey (WebAuthn) |
16| **Account types** | EOA, SCA | EOA, SCA | Modular Wallet SCA (ERC-6900) |
17| **Gas sponsorship** | SCA via Circle Paymaster | SCA via Circle Paymaster | Circle Paymaster or third-party paymaster |
18| **Custom modules** | No | No | Yes |
19| **Architecture** | Backend SDK only | Backend + frontend SDKs | Frontend SDK only |
20
21## Decision Guide
22
23For the latest supported account types on different blockchains: https://developers.circle.com/wallets/account-types
24
25For the latest supported features on different blockchains: https://developers.circle.com/wallets/supported-blockchains
26
27**Step 1 -- Who controls the keys / who is the custodian?**
28- Developer controls -> Developer-controlled wallets -> Step 3
29- End user controls -> Step 2
30
31**Step 2 -- Auth method?**
32- Passkey (WebAuthn biometric) with extensible modules -> Modular wallets -> Step 4
33- Social login, email OTP, or PIN -> User-controlled wallets -> Step 3
34
35**Step 3 -- Account type?**
36- Solana, Aptos, or NEAR -> EOA (only option)
37- Ethereum mainnet -> EOA (SCA gas costs prohibitive, Modular Wallet not supported)
38- L2 (Arbitrum, Base, Polygon, Optimism, etc.) -> EOA if max TPS needed; SCA if gas sponsorship or batching needed; Modular Wallet if passkey or other modular plugins needed
39
40**Step 4 -- Chain check (Modular wallets)**
41- Supported: Arbitrum, Avalanche, Base, Monad, Optimism, Polygon, Unichain
42- NOT supported: Ethereum, Solana, Aptos, NEAR. Fall back to user-controlled wallets with SCA.
43
44### Example Scenarios
45
46| Scenario | Decision | Skill |
47|--------------------------------------------------|-----------------------------|------------------------------------|
48| Payment backend, programmatic payouts, high TPS | Developer-controlled + EOA | `use-developer-controlled-wallets` |
49| Consumer app with Google/Apple login, gasless UX | User-controlled + SCA on L2 | `use-user-controlled-wallets` |
50| DeFi app with biometric auth, custom modules | Modular Wallet on L2 | `use-modular-wallets` |
51| NFT marketplace on Ethereum L1 | User-controlled + EOA | `use-user-controlled-wallets` |
52| AI agent, autonomous multi-chain transactions | Developer-controlled + EOA | `use-developer-controlled-wallets` |
53
54## Implementation Patterns
55
56Once a wallet type has been determined, TRIGGER the corresponding skill:
57
58- Developer-controlled -> `use-developer-controlled-wallets` skill
59- User-controlled -> `use-user-controlled-wallets` skill
60- Modular (Passkey) -> `use-modular-wallets` skill
61
62## Strict Rules
63
64- ALWAYS select the wallet type before starting implementation using the comparison table and decision guide above.
65- ALWAYS use EOA on Ethereum mainnet (SCA gas prohibitive, Modular Wallet not supported) and on Solana, Aptos, NEAR (SCA/Modular Wallet not available).
66- ALWAYS prefer SCA or Modular Wallet on L2 chains (Arbitrum, Base, Polygon, Optimism, etc.) when gas sponsorship or batch operations are needed.
67- NEVER mix wallet types in a single user flow -- pick one and use its corresponding skill.
68- ALWAYS delegate to the specific wallet skill (`use-developer-controlled-wallets`, `use-user-controlled-wallets`, or `use-modular-wallets`) for implementation.
69
70## Reference Links
71
72- [Account Types](https://developers.circle.com/wallets/account-types)
73- [Choosing Your Wallet Type](https://developers.circle.com/wallets/infrastructure-models)
74- [Key Management](https://developers.circle.com/wallets/key-management)
75- [Circle Developer Docs](https://developers.circle.com/llms.txt) -- **Always read this first** when looking for relevant documentation from the source website.
76
77---
78
79DISCLAIMER: This skill is provided "as is" without warranties, is subject to the [Circle Developer Terms](https://console.circle.com/legal/developer-terms), and output generated may contain errors and/or include fee configuration options (including fees directed to Circle); additional details are in the repository [README](https://github.com/circlefin/skills/blob/master/README.md).