programmable wallets INTRO TO PROGRAMMABLE WALLETS & THEIR CAPABILITIES
WHAT ARE PROGRAMMABLE WALLETS? What is a wallet? Any solution or service that allows users to store, send, receive, and spend digital assets, whether the wallet exists in software (a program or service) or hardware (a device or physical medium). A wallet doesn’t store digital assets. It stores the private keys to access those coins, which exist on public blockchain networks. Audience should provide a number of examples of wallets they are familiar with. Programmable wallets are a type of digital wallet that allow developers to build and deploy customized applications or smart contracts on top of a blockchain. They provide a programmable interface that enables developers to create and execute code directly within the wallet environment. In simple terms, these wallets enable developers to create and embed secure wallets in their apps. They allow you to use familiar REST APIs to pass custom parameters in order to generate wallets that are tailored to meet the specific needs of your application. These wallets fall into either of two categories: User-Controlled & Developer-Controlled. Definition & Categorization 2
PROGRAMMABLE WALLETS Explained! The programmable wallets we are going to look at are the ones provided by Circle. Circle built these wallets on top of Multi-party computation technology(MPC) which is an abstraction over the native multi-sig wallets. As their name goes, multi-sig wallets are a type of crypto wallet that requires multiple signatures instead of just one to execute each transaction. These signatures are associated with different cryptographic private keys while a defined threshold of keys must sign a transaction to validate it. They are mostly used in the creation of upgradable smart contract but are now being applied in order to simplify user experience. These wallets fall into either of two categories: User-Controlled & Developer-Controlled. Brief History & Abstraction 3
Why programmable wallets? There are already a wide range of wallets already in place. However each of these face challenges that make providing a seamless, consistent experience difficult as they often have to make expensive tradeoffs. This unpalatable user experience has been a key factor hindering mass adoption of blockchain tech and the use of decentralized applications. Some of the challenges include: Unfamiliar authentication methods, cumbersome approach to gas fee management, silent failed transactions, high complexity for integrating apps with smart contracts, some like telegram bot wallets store your private keys on their servers which raises legitimate security concerns and lack of a unified end to end solution available thus developers end up re-inventing the wheel every time they want to create a user friendly application. Multiparty computation (MPC) overcomes these issues through a different approach. MPC manages private keys by distributing key shards across multiple parties, securing against accidental or intentional acts to misuse private keys. The issues facing traditional wallets. 4
Programmable wallets? Circle Programmable Wallets is a Wallet as a Service that simplifies creating and managing secure web3 wallets and their private keys. They extend wallet functionality with approachable user flows, provide optionality for developer and user infrastructure solutions and enable seamless smart contract integration. Developers can interact with Programmable Wallets using RESTful APIs. Circle offers mobile-ready SDKs for Android and iOS for user-controlled wallets that ensure users have full control over their wallets Circle’s solution utilizing MPC technology 5
Programmable wallets As previously mentioned, there are two types of wallets: user-controlled and developer wallets. The type chosen depends on the needs or the developer goals. User-Controlled wallets: provides autonomy to your app’s users by ensuring they have full control over their wallets. The user-controlled wallet setup requires the user to set up a PIN code for authorization. This setup prevents Circle, service providers, and developers from accessing or moving a user’s assets without consent. They can be expanded to allow the use of fingerprint, face unlock or even patterns through the use of android APIs just like in a normal web2 application. Developer Controlled Wallets: A developer-controlled wallet allows developers to retain control over their users’ wallets, enabling their users to access the security, speed, and Web3 ecosystem while maintaining a frictionless user experience. The key difference between the two is who controls the ability to access the private key used to interact with the blockchain. Types of Wallets Explained 6
Programmable wallets When to choose User-Controlled Wallets: User-controlled give your app’s users access and control over the underlying private keys of their wallets. Circle provides a Web3 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. PIN Code Responsibility 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 it’s important that they 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 manage 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. Factors to consider while choosing the right wallet for your use case. 7
Programmable wallets Programmable wallets can be used to effectively increase adoption due to the improved user experience as they provide an interface similar to that of web2 applications thus a more familiar environment. Head over to https://developers.circle.com/w3s/docs/user-controlled-create-your-first-wallet to get started on creating your own First Wallet. Final Call to action 8