Infrastructure Models and Wallet Types

This article describes the Circle infrastructure models so you can choose which approach to use for your development.

This article describes the supported wallet infrastructure models, or wallet types, to help you determine which type best meets the needs of your end-users. Each wallet type has specific requirements and provides specific benefits. Use the information in this topic to choose the wallet type that best supports your business objectives.

Video Tutorial: Understanding the Types of Programmable Wallets

Watch this video for an insightful overview of the infrastructure models (wallet types) available with Circle Programmable Wallets. Learn the distinctions and advantages between user-controlled and developer-controlled wallets and how you can leverage each model to meet the requirements for your application.


Wallet types (infrastructure models)

Infrastructure models govern who controls the digital assets in a specific wallet. Businesses and individuals need to understand the characteristics of each type of infrastructure to determine the correct wallet for their needs.

Circle Programmable Wallets offer two infrastructure models: user-controlled wallets and developer-controlled wallets. Each model provides distinct advantages to suit different requirements.

User-controlled wallets

User-controlled wallets grant full autonomy to app users, enabling them to have complete control over their wallets. Users set up a PIN code for authorization and have sole access to their private keys. This ensures privacy and prevents unauthorized access or movement of assets. The user-controlled wallet setup prioritizes security while providing a familiar and seamless Web2-like user experience.

Start building user-controlled wallets with the quickstart guide!

Limitations:

  • Mobile SDKs are native and do not support frameworks like React Native, Flutter, Apache Cordova, or Ionic.

Developer-controlled wallets

Developer-controlled wallets allow developers to retain control over their users' wallets while streamlining user interactions with the Web3 ecosystem. These wallets facilitate various blockchain interactions on behalf of the users, such as sending and receiving digital assets, smart contract interactions, and NFT minting. With developer-controlled wallets, users can enjoy the benefits of the blockchain without needing to understand its complexities or manage private keys.

Get started with the Developer-Controlled Wallets quickstart.

Limitations:

  • There are no app restrictions for Developer-Controlled Wallets.

Choosing your wallet type (infrastructure model)

The critical distinction between user-controlled and developer-controlled wallets is which party controls the ability to access the private key used to interact with the blockchain.

User-controlled and developer-controlled wallets can make transactions, interact with smart contracts, and sign messages. In the case of a user-controlled wallet, the user controls these abilities. In the case of a developer-controlled wallet, the developer has this control.

Why choose user-controlled wallets?

User-controlled wallets give your app's users access and control over the underlying private keys of their wallets. Circle provides a Web2-like user experience, using a PIN code mechanism and a set of security questions for account recovery, abstracting the complexity of seed phrases from your users. Additionally, Circle uses best-in-class security approaches to power its Programmable Wallets with secure multi-party computation.

PIN code responsibility for user-controlled wallets

Users invoke usage of their private keys through their specified PIN code, which is then used to encrypt and decrypt access to the private keys upon invoking a transaction on the blockchain. Your users will be ultimately responsible for accessing their wallets, so they must understand the need to remember their PIN code and the answers to their security questions.

With user-controlled wallets, your users have access to the speed and security of the blockchain but with a much more familiar user experience.

Why choose developer-controlled wallets?

Developer-controlled wallets allow you to create and manage asset flows on behalf of your users, providing them with easy-to-use access to Web3 functionality. These wallets allow you to control virtually all blockchain interactions for your users, like sending and receiving digital assets, smart contract interactions, and NFT minting.

By using developer-controlled wallets, your users do not need to understand the complexities of the Web3 ecosystem or worry about losing their assets because of a lost seed phrase to access the speed of the blockchain.

This article explores the various options available for wallets, taking into account both the account type and the infrastructure model. The infrastructure model determines who controls the assets in the wallet, while the account type determines the underlying structure of the wallet itself. Understanding these concepts is essential for developers to make informed decisions that align with their specific use cases.


What’s Next