Making Wallets Programmable
Pragma San Francisco · 16 Oct 2024 · 17:36
Circle's programmable wallets began as wallet-as-a-service for enterprises, and the talk argues the account layer should now become modular. A wallet is split into three parts, the account type, key security and blockchain infrastructure, with early customers using MPC-backed keys that are either developer or user controlled, and one large Southeast Asian super app deploying ERC-4337 smart accounts. Modular smart contract accounts add onchain modules for passkeys, session keys, weighted multisig, allowlists and spending limits, which the speaker likens to a smartphone moment for wallets. The proposal rests on open standards such as ERC-6900 and 7579, so any developer or issuer can write a module.
Speakers
Topics
From Pragma San Francisco, hosted by ETHGlobal.
Transcript
[Music] and for our next talk I want to bring on our next speaker Alo kick from Circle to tell you about how they're doing more things with programmable money so please give Alo Ki a big round of applause hey thanks so much cark hey hi everyone uh I'm a loic I'm a group PM um uh at Circle uh focus a lot on how we can build like better stable coin experience and increase the utility of using stable coins so U I can't quick show of hands how many of you have kind
of familiar with usdc or use usdc over the last year okay so quite a few hands how many of you are familiar with cctp or have like Bridge usdc from one place to another okay Co yeah and have how many of you have actually heard about programmable wallets which is circles like wallet as a service offering okay very few okay cool yeah so today I'm like clearly not a lot of you have heard about programmable wallets and that's what I'm here to talk about today uh this is one of the new offerings uh that Circle built over the last year and I'm going to talk a lot about what that is why we built it um and share about where we think this like wallets and wallet infra are going
so I mean circle is an asset issuer we build USC we also build cctp what of first talk about why wallets and why it's important in how we see U programmable money and and and making it easy to use uh usdc when you look at what our focuses and I think um it is a mission statement but I think that it's it's super powerful what we're trying to do is raise global economic Prosperity through the frictionless exchange of value and I think what I want to focus on is the path around like the frictionless exchange of value right when you look at stable coins in general they're becoming the dominant way in which value is exchanged uh it's
the dominant medium of exchange that exists onchain when blockchains were there like 10 15 years back it started out primarily with Bitcoin as being like the the clear asset that people use to exchange value and over the years you've seen like that change completely from bit Bitcoin to e to actually like stables and and the volume is significant when you look at like comparable like traditional Financial volumes the value transferred on stable coin on like public blockchains today is almost the scale of say a Visa Network right it has over the last few years grown to a significant value so the Val the the the the the exchange of value is
actually happening very well with stable coins and as we kind of like we keep talking with thousands and thousands of businesses who are kind of using usdc in different ways these are like complete onchain Primitives like defi we're using usdc the erc20 token in in in in their daps right to more like traditional kind of companies who are using it as like finex payment providers a bunch of different people so across this track more on the offchain world as well as the onchain world and how they're kind of using um uh using usdc to to make it easy for them to exchange value and I think we keep coming we we we we kept hearing
back that as as more and more people try to use USC there's still a lot of friction in the way uh value transfer happens right the the friction and and we thought a lot about what the friction is there was friction for end users there was fictions for developers who were trying to integrate USC into their apps and as we talk to more and more of these businesses it became very clear that a lot of this friction was actually at a wallet level right I'm going to just point out a few different things which I guess all of us are familiar with right nobody wants to manage like secret Keys Gas is a big pain in paying that in Native tokens on every chain we're increasingly be going into a multi-chain
world and having usdc having different assets across different chains you still have to remember different addresses a simple transfer if I have to to do to any one of you it is two or three lines of questioning to actually do that simple P2P transfer you have to sign for every transaction just a bunch of basic problems that people ex people have and what like end users really want and what we hear is just a simple like web to experience right that's exactly what people kind of want and when you look at the building side of it right if I'm a developer trying to build an onch app all I all I want is like it has to be secure this is like crypto rails cryp everything is pro proved cryptographically it there has to be a
simple SEC secure way to do it it has to be flexible for different use cases it has to be scalable and I think this is very interesting because a lot of our initial customers or customers who we are trying to talk to were like big Enterprises web to Enterprises trying to build like an app and the kind of questions we get on the scalable side is like how can we support thousand TPS uh on on blockchain Rails because that's what they're used to right and it has to be bundled there's also a lot of fragmentation as like if if you're trying to build an app you have to have like five different providers based on what you're trying to do right and all developers care is just like give me a simple developer experience so I can focus on the actual problem that I want to work on which is
whatever the problem they're trying to solve by by bringing their users on chain and this really led us to building like programmable wallets like a yor in a half pack so we launched like a beta in June 30th with a very simple kind of goal right how do you enable web to experience with a simple devx to get more and more people on chain right name is the name is self- explan like how do we make wallets more programmable and and that that was the key thing which kind of brings me to like what is like a programmable wallet or like how do we think about wallets and what level of programability they they have we thought a lot about this and I think where we
landed that is the key to building a wallet is like three different parts and these three different parts are equally very important and critical in how wallets work obviously one is like the whole account side of things you have externally owned accounts EAS or smart contract accounts and how that part can be taken care of the next thing you have is like securing the key right and the third part also which we think is a very integral part of our wallet should be kind of function is like the blockchain infra kind of part which is the way you read and write onchain at scale I think it's easy to do like a few transactions Reading Writing on chain but when you're thinking of thousands of kind of transactions when you're think thinking of Enterprise scale uh it becomes uh a
lot more interesting and based on like our initial kind of customers which were typically like web to Enterprises we kind of thought about how can we make the key management layer and the blockchain infra extremely programmable how can we make simple rest apis that make it very easy to create a key management solution which is which which was very easy for the developer we kind of landed at MPC back Keys which were either developer controlled or end user controlled as the name suggest in one case the end us end user has complete control and in the other case the developer has complete control and then like you can read and write on blockchains at scale so I'm like thinking Enterprise scale big companies
trying to go on chain how do we make that happen our first kind of like anchor customer or use case that we kind of went live with was grab uh for those of you not familiar grab is like a uh super app in Southeast Asia almost 200 million users uh uh they're think of them as like a mixture of like uber do Dash It's like a super app which a lot of people use in in Southeast Asia and they they had a simple request they we wanted scale they wanted to focus on use cases and they were kind of like as you can see they trying to get like a bunch of people on chain or and kind of create like this embedded invisible web3 wallet inside their app and they needed simple things right and we kind of went live
with them around June or August last year uh and it was one of the first like Enterprise deployments of 4337 compatible smart contract accounts because we thought like like gas management was a big part of what they wanted to uh offload and this is just like one type of example we see a bunch of different other compan kind trying to go on chain over there which is um which is a big publisher trying to do payouts in usdc work with like r. pay which is trying to get issue credit uh debit cards uh which are completely backed on chain so a lot of like use cases of what we like like real world use cases of using usdc required this very scalable wallet right but we kind of keep coming back to like
how do you like The Experience still when you kind of build programmability at the blockchain infr level as well as the um as well as the uh Key Management layer I think is like not enough like where we landed at is you still need experiences which are one click or actually no click at all right you still need things onchain a lot of like what we are building is essentially like offchain logic to enable an onchain use case right and that made sense in a world where gas fees were very high but we are increasingly going to a world where gas fees are low a lot of a lot of that code which is actually offchain can rest onchain and the third thing which is extremely important it has to be noncustodial I think building a good ux
is very easy if you have the key in control but it's extremely hard if it's uh if it's non-custodial that's why like a lot of transactions still today happen on centralized exchanges because of that simple ux which we thought a lot about this and it kind of came back to how can we make the account layer of a wallet as a service a lot more programmable right um we were a lot more focus on the other two parts but what if we make the account creation part focused a lot more and a lot more programmable and and that's what I wanted to talk to you about today which is we are very excited to launch like
modular smart wallets right um this is what we think is where wallet infra is going and this is what we think is super interesting in terms of uh uh what we can kind of do and what what all good experiences we can enable what are modular wallets modular wallets are nothing but modular smart contract accounts uh that make the account side a lot more programmable right there're completely onchain there are like a bunch of different smart contracts that can extend the functionality of a wallet so on the right as you can see like you have a base account and you have like different types of modules that you want to extend the functionality of an account somebody could have like pass keys somebody could have session keys
and it's basically like a simpler way to build an build a wallet and and and I'll talk a bit more about why we think this is important but I think the Crux of it is that all of this is onchain with onchain stuff code is always law right uh it is always available right it's open these are smart contracts anyone can use them you can add a smart contract extend like like the functionality of it we are kind of co-authoring a standard around this ERC 6900 around modular smart contract account so they're extremely composable to anyone else writing it it's not just us writing it there a bunch of people trying to write composable smart contracts which anyone can plug in and
it's very flexible so that you can have a specific user experience depending on what you're kind of building I'll share an analogy and this is like by no means perfect but I think something which I've been thinking a bit of about like you have externally owned accounts and those were the dominant way in which people were transacting and still transacting right and the analogy there is a lot like a feature phone it does two things it signs a message and it stores asset very similar to how feature phones were extremely good to send an SMS or call somebody right extremely good for that use case and then we started seeing few examples around smart contract accounts right U I think smart contract accounts were a lot
before uh account abstraction in 2023 you had like safe you had a bunch of different people trying to build very good smart contract accounts and did a great job on certain use cases right but there the the analogy really is the the it's a lot like initially uh smartphones trying to build both the hardware and the software right and I think with account abstraction smart contract accounts obviously became a thing in 2023 everyone last year was talking about account abstraction still is talking about account abstraction and it is a key unlock for ux but I think where this is going is towards model or smart contract accounts right and I think of this more as like the smartphone moment
for wallet infra right very similar to how the iPhone and the Android kind of build these app stores wherein they were very composable systems on which people could build apps and enable more functionality very similar to that like these these erc's and this for different standards and there are two standards 6900 and 7579 which are a lot focused on building modularity at a wallet level and it's just not like wallet developers writing any dab can write a module anyone can actually write a module what's an example of that we get a lot of businesses who are focused on how can we store our USC a lot more safely right I think you can create an account with say like three different modules
you can have like a weighted multisig you can have an onchain white list you can have like spending limits all that enforced onchain so you can like get a base account and get these three modules and all of that exists on chain you don't have to write any code offchain or rely on any provider offchain in order to get like those functionalities right if you we also get a lot of people who are wanting to like frictionlessly exchange value so imagine like a dab creating an embedded smart wallet and what they really want is very simple automatic experiences so you can have like a base account which has like pass keys for like a different type of key management you can have something something like session Keys wherein you can give a scoped permission to a specific address to pull money at
regular times so think like a circle we thinking of things like how can we enable usdc Le subscriptions on chain and and things like that and a lot of that can be enabled by these modules and it's important to know that it's just not like the wallet developer who's building these modules right as usdc as an asset issuer we can also say that you know what this is a good experience of how somebody can use USC or how somebody can use um CCT and we build these two modules and suddenly any wallet which is compatible to this standard can start using it I think whenever you build something modular or trying to build something composable I think standards are very important I think we don't want to be in the app store on the Android store
wherein this is just like a closed ecosystem which nobody else can build the openness of the standard is important and we kind of adhere to a ERC 6900 which is a modular account standard written by Alchemy engineers at the ethereum foundation Quan stamp and a few Engineers on our side and the idea of doing this is can we make it open can we make it composable so that anyone and everyone can build on top of these standards and I think like to me when I often think about what like the 10x wallet is I think having as a developer when you're trying to build that 10x wallet having programmability at each part of the system right account creation key management and block chain
infra I think is super important right and then you can pick and choose what is the use case that you're trying to solve how you want to seamlessly kind of solve that so we as I said we are soon announcing and and launching like modular wallets we're going to work on a bunch of different modules just as like a wallet as a service provider but also like as USC and cctp figure out how we can further improve the like the experience of using USC and the exper of using cctp by this by building more modules that anyone can attach to their wallet to make it more extensible so these are just like some modules which we are working on uh with some of them
which we are writing some of that which we working with like ecosystem Partners to kind of write but we're always uh if you want to learn more about modules if you want to talk about how we can further improve stable coin experience uh more than happy to kind of talk about that thank you so much [Applause] [Music]