Aug. 24, 2022

Julien Niset: Argent, building on StarkNet, and a primer on account abstraction

Julien Niset is the cofounder and Chief Science Officer at Argent, a crypto wallet that's used and loved by many people in the crypto ecosystem.

The player is loading ...
Into the Bytecode

Julien Niset is the cofounder and Chief Science Officer at Argent, a crypto wallet that's used and loved by many people in the crypto ecosystem.
In this conversation, we talk about how Argent has evolved to get to where it is today. How Julien sees user experience evolving broadly in the ecosystem, and what the flow of a new person interacting with a crypto application for the first time might look like in the future.

Another topic we get into deeply is L2s, how Julien and Argent have thought about the topic of EVM equivalence and compatibility, and why they ultimately chose to build on ZK Rollups like ZkSync and StarkNet.

And lastly, we dive into what has been like to build on StarkNet, what the early community feels like today, what it's been like to write code in Cairo, and as a bit of a snapshot into this experience we do a deep dive into what account abstraction looks like on StarkNet.

Timestamps:
0:00 intro
1:56 leaning into zk rollups and account abstraction
7:29 scaling the self-custody experience
13:20 what onboarding users to crypto will look like in 3 years
20:24 some of the friction points that still need to be abstracted
33:52 L2s and the trade-offs between different rollups
39:45 is breaking EVM-equivalency worth it?
48:01 Julien's experience in the StarkNet ecosystem
58:24 a primer on account abstraction
1:15:38 session keys
1:28:17 starting a sensible wallet set up from scratch

Relevant links:
Julien Niset: https://twitter.com/jniset
Argent - https://www.argent.xyz/
StarkNet - https://starkware.co/starknet/
zkSync - https://zksync.io/
Topology - https://www.topology.gg/

Transcript

[00:00:18] Sina: Hey everyone. This is Sina with another episode of, into the bytecode. Today. I had a conversation with Julien Niset co-founder and chief science officer at Argent. Argent is a crypto wallet that's used and loved by many, many people in the crypto ecosystem.So this was a really fun conversation.

We, we talked about how Argent has evolved to get to where it is today.

And how, how Julia and CS user experience evolving from here broadly in the ecosystem? Like what happens when a new person is interacting with a crypto application for the first time?

Another topic we get quite deeply into his layer twos and how Julian and Argent has thought about the topic of EVM, equivalence, and compatibility. , and why they've ultimately chosen to build on zkRollups like ZkSync and Starknet. And lastly, we dive into what has been like to build on stark net.

What the early StarkNet community feels like today. What has been like to write code in Cairo?

And as a bit of a snapshot into, this experience, we do a deep dive into what account abstraction looks like on stark net. this was a really fun conversation. I'm grateful. Julian spent the time to chat with me today and I hope you enjoy. what I find interesting is that we started Argent not knowing much about the blockchain. And we came up with all this concept, like having this kind of this fresh, you know, fresh eyes on the ecosystem. And we can't, we, I mean, we realized there was a problem with wallets.

[00:02:13] Julien: There was like a big gap on the ecosystem. And so we, and we really felt that that needed to be solved because we never believed that, you know, mainstream users would kind of adopt the way we do things on, on, you know, blockchain. Like they would start to care about private key seed phrase and all these complex topics.

And so we really felt that something had to change and because we were ki kind of new, we came up. of ideas or we picked ideas from here and there and started building our what? So to come back to my first statement, what I find interesting is that after four years, we basically still doing the same in the sense that there's a lot of companies, because it's an ecosystem that moves a lot that pivot that adapt actually our initial vision of AR is still exactly what we, you know, what we've built and what we continuing building.

So I find that consistency quite, quite, quite interesting. But of course we got some things, right. And we got so things, you know, wrong. And, and one thing that we did got really, really wrong is, is the evolution of, of gas price and transaction fees. We, we, I mean, from the start, we, first of all, we believe that transaction fees should be abstracted to users.

And the way we, we saw that initially, it's, it's a bit like a server. If you go on the website, I mean, you're not charged for where the server of the website is hosted. You're not paying for AWS fees. For example, you're actually interacting with an application and then it has a business model and actually what you pay for the, for the business model compensate for all these infrastructure fees.

And so we felt that this needed to be the same, you know, on Ethereum. And so we came up with that very clever idea of saying we'll subsidize gas. And at that, at that point, gas was well, it was too, it was still a bit expensive, but, but, you know, looking at what we don't know, it was actually dirt cheap, but, but what we felt is that.

It could only go down because again, we would never have an entire, I mean, have, you know mainstream users and billion of users using blockchain. If transaction fees are, you know, one or $2, we always believe that it, we have to go down to five or 10 cents max. And so we know we are there, we're saying, okay, we have, we have VC funded so we can subsidize gas.

And at some point it has to go down. If it doesn't go down, then that means this ecosystem will

[00:04:34] Sina: We have bigger problems.

[00:04:36] Julien: Exactly. And, and I, and I still think that's right, but what we fail to anticipate is that between two point is not always a straight line. And of course it went crazy high. And now it's, it's gonna go gradually down, down with rollups.

So our initial statement, I think is still correct, but of course we got completely wrong how that evolved. And so that impacted us a lot because we were subsidizing for all transaction. And when, you know, transaction were. 20 cents 50 cent a dollar. It started to be a bit expensive, but of course users loved it.

So we had more and more users and then it went to $1 to $10 per transaction, then to a hundred per transaction. And of course that, that,

was, that was terrible.

[00:05:18] Sina: it's, maybe similar to how PayPal in the early days was paying users to like do referrals, but like, you're like we'll subsidize the gas costs and the higher, the gas fees go, the more compelling it is for a

new user to switch to.

[00:05:32] Julien: Yes, But the, the, the more wrong you are and, and the more like it it's becoming possible to make a business out of that. And so of course, we had to kinda change our position on that. We had to adapt the product and we had to surface to the user and so on. So, so that's been one of, one of the learning we made and one of the things we, we did go wrong, I think something we did go right is, is actually our entire model.

I think more and more people are converging to our model of smart contract wallet with these features that are needed. I mean, I'm sure we'd come back to that, but you know, social recovery, fraud monitoring all these things that we believe from the start where needed for mass adoption. I think people are starting to realize that that it is indeed the right, the right model.

And of course with, I mean, now we are really excited, but all, everything that's happening with with their choose, because again, this model of smart contract wallet, I think from the point of view of the user, it's the right model. But there's also a few difficulties with that. One is that it's not smart contract wallet, second class citizen.

And you know, they're not so, so developers don't design and don't build their applications for smart contract wallet, all the tooling and so on. It's. Is designed for EASs. And so as a small contract wallet, you can of an outlier, you are a bit different and there's a bit, a bit too much friction. So that's one problem that we've identified over these past four years.

And of course, it's also still the cost, because if you have logic on chain on every transaction, it's still more expensive. So of course, as the cost of transaction and gas will go down, you still more expensive than using a plate meta mass, for example. And so I think these two fact have kind of limited or gross the past four years.

And so that's why we started really looking at, you know, what would be the future for our model. And so that's where why we got really interested with, with, with develops Z rollup and account attraction in particular, because the combination of these two things actually solve these, these problems.

[00:07:29] Sina: Yeah. That makes a lot of sense. So, so the core premises of a user managing their own keys and figuring all of this stuff out, that's too complicated. We need to use smart contract wallets. That premise is correct, but where it runs into problem on L one is that, smart contract wallets are second class citizens cuz a lot of applications on the protocol itself distinguishes between an externally owned account and a contract.

So that's, that's that thread of thought and that leads into account abstraction and why it's so interesting that some of these rollups have that baked in. And the other premise was that these gas fees should be abstracted away from users, which seems totally sensible. Like it's, it's kind of crazy. Like you said, for a user to pay the AWS fees for a website that they're using and, and you know, we've kind of always known that L one gas fees would go up, but.

I mean me. I also assumed that L twos would probably be ready sooner than they are. And it's just turned out to be a massive feat of research and engineering. So I think it totally makes sense. So these two things coming together means that you go on an L two that has account abstraction baked in at the protocol layer.

And you kind of, you you're kind of well positioned to execute on this like original vision that you've.

[00:08:55] Julien: Ex exactly that, that that's exactly. That's exactly it. I think a, a, a way I like to, to frame it is that I do believe to reach, you know, mainstream adoption. We need two things we need to scale. Like the base technology, like transaction needs to be less than five or 10 cent maximum. And so for that layer twos and, and rollups actually solve that, that problem, but we also need to scale the user experience of se because I, I, I mean, we do believe, and I think everybody on the ecosystem believe that is important.

That that means we also need to scale that experience because if we don't then users, we just use CU study of solutions at some point, because I think mainstream users and, and like the next wave of users will onboard, they will, they won't really care about, about SafeQ study or blockchain. I think people will come for applications.

They will come because there's something they want to do. And it so happened that this, this thing that they want to do relies on the blockchain. But I don't think they will come from philosophical or. Or, or, or, reason like self study decentralization and so on. So we need to, to beg that into the tools that these users, these next wave of users will use.

And so that's why we need to, to scale self study or the user experience of self study. So that's really the way we've been thinking about that at urgent is really, we need to scale the technology and we need to scale the user expense of, of self custody. And so the technology eats roll. And at our, we are specifically excelled about CK products.

And that's why we're building on, on net and zing. And then we also need to have a kind abstraction to scale that user experience of self to study. And again, that's why Starnet combined bones is ZK sync as well. So that that's really why we've been focusing on, on, on net and zing. I mean, we, we are talking to all the other layer twos, and there's a lot of people that would want to, you know, to, to, to come on their rollups and we always have the same position, like, yeah, it's great.

But we do believe that that's what is needed to, to really scale the ecosystem. And so that's why we've been, you know, we've been lobbying for and being quite vocal about Z K and account abstract.

[00:11:02] Sina: Yeah. On this point of user adoption and self custody. It's an interesting one, cuz in some ways like there's a bit of time sensitivity too, right? Like if like there, there, there blockchains do provide value propositions that don't necessarily rely on the self custody. Right? You get this like programmable money that's interoperable across the world and you like all can do all these things.

And like if, if self custody isn't ready for mass adoption, other forms of applications that don't like, don't bake that in they'll they'll they might just start getting adopted. And then we, we lose like one of the, most important pillars of this whole thing in the process.

[00:11:51] Julien: Yeah, F fully agree, fully agree. And, and I think that, I think that's something that's really important and. To tend to forget. I think a year ago I brought a block post, I think, titled something like why EOA are threat to, you know, to the future of blockchain or something like that. I was trying to be a bit controversial, but I do believe that the argument stands in the sense that if we still rely on S I do think that people will turn to, to custodial solutions because again, it's natural users, you know, people want simplicity, they want convenience.

At some point, I think there's always kind of a trade off of how much energy and or, or how much you care about something versus the simplicity to get that thing. And so if it's too complicated to get it, then people will just, you go for, for simpler solutions. And so I do believe that there's a real risk of the ecosystem gradually shifting towards centralized and custodial solutions. And yes, if that happens, there will still be benefit of the technology because I think blockchain has multiple facets. So there will be some interest and it will bring stuff to the world, in a sense. But we will lose, I think, one important factor, which is self-custody. And so we need to fight against that today. And that means, I think we kind of feel at Argent that it's our responsibility to solve that, you know, that problem and provide that alternative today. Because if we don't do it today, I think itll be too late at some point.

[00:13:19] Sina: So be before jumping into like L two S and account abstraction and all of these things, like assuming, assuming that this self custody path works, do you have a, a picture of the world of what that looks like from a user's point of view? Let's say it's like, three years into the future and I'm trying to play a game that, you know, where the items are NFTs and, you know, I can like trade them with other people in like the end game auction or whatever.

Like, what is the, what is the flow that a user goes to from beginning to end? Cause even the, even the piece of like, Go like sign up for a centralized exchange, deposit us dollars to buy like the native token transfer to your wallet. Like when a transaction fails, look at the block Explorer, like all these things are kind of insane.

And, and, and, and there, it's true that there's this curve of like early adopters that, you know, is overlapped with the technology becoming easier to use. Thankfully like the early people are more open to dealing with

this level of pain, but what does it like, do you have an image of like how the puzzle pieces fit together to make this work for someone who doesn't need to go through all this trouble?

[00:14:36] Julien: Yeah. I mean, we, we, we definitely have a, have a picture at AJ and I think we are gradually building and, and moving towards that, that, that solution. I, I think again, I think the majority of people will come as we were saying for an application. So someone will come for a game. I think at first people will just want to play the game.

And I think, for example, the first friction point. Download a wallet or I install a wallet. I think that's already a blocker for a lot of people. So the way we see at urgent is that it's, I think at first users will have a wallet without knowing they have a wallet. So maybe they'll, you know, they'll sign up to something with an email in a password, for example.

But actually what happens in the background is that they will be a smart contract or smart account being deployed. And, you know, there will be some key that will be UNC encrypted with their password and store still in the noncustodial way. But you know, in the cloud or there's different options for that.

So these users, they still there's no value at first and they will come. They actually don't know they're on the blockchain. They sign up like, I think a normal, a normal website or web two, you know, web two flow. If you want,

[00:15:43] Sina: and so add this piece just to like follow. So the, the website, or maybe the website has some partnership with like a wallet provider and they spin up like private public keys. They encrypt them with the user's password and all of this is abstracted away from the user, but also the, you know, these service providers don't have unilateral access and

something like this is doable today.

Okay. So this piece, this piece is like, good.

[00:16:09] Julien: Yeah. It's not, it's not perfect in the sense that, you know, the key, the encrypted key, even if only the users can have access to it, maybe the cloud provider can sensor it. So there's different trade of different thing you can do. But again, it's still it. You can still have a certain level of, of subcu, which is certainly good enough then the users, if he wants to play at some point, they would need, he would need to pay something.

I think it can OnRamp again with the credit. You might not know, but like a normal game, you need to, to have token. So you need to have cons for that game. I mean, that's the experience that, you know, game players may have today. So you take your credit cards, you actually UN ramp some funds, and then suddenly you can play the game and you collect these NFTs and you still actually don't know that this is running on the blockchain.

It could be a normal game, a web to game like you have today. But at some point the users will gradually realize that this is part of a larger ecosystem and that indeed these NFTs that he collects, he can bring them to another application, call an exchange, and then maybe exchange them for, you know, for, or for actually dollars.

And so gradually the users will start to realize that this is part of something bigger. And then at that point, I think the role of, of the wallet would be to accompany the user in that, in that journey. So. At first you add something that you didn't even know it was wallet, but then gradually you become more informed.

And we may tell you, you know, what, if you install that mobile application, then actually you can take this stuff. You we've run on game a and you've run on, on game B and you can bring them to that exchange and do something new with them. And so at that point, users maybe ready to understand that they need to have a piece of software to do that.

The wallet can be still very simple. And again, at that point, they may have accrued more value. So maybe the initial way to store, you know, to store this, this first key was, is no longer relevant or the more appropriate. So maybe at that point, actually what the user want is to have to have that mobile application that works like as, as a remote control, if you want that mobile wallet, which has a key, which is, you know, encrypted in the, the secure enclave of the.

But actually, and it has social recovery and maybe the social recovery in the hood with just the service based on the first email, a password the user provided first. So you, you, you gradually go towards something that is, you know, more controlled to the user and actually more censorship resistant and, and more safe custody.

Because now the key is only on the phone and there's still one guardian that can help the user in case he loses his phone. And then, and then value from there. I think this will be fine for the majority of users that have a little bit of fun, but then there are people that will go towards more financial application.

They will start to have even more fun. And so with that same application, maybe we can tell them, you know what, you should add more. Because now your social recovery only depends on, on that service. If you wanna be really full, secure, you know what, you should have a hardware wallet and use that hardware wallet as a guardian because the user no has a lot of fun and you know, is, is more aware of, of the ecosystem of the blockchain and these things start to make sense.

So the way we see for us, the experience is something that I think should be gradual,

[00:19:21] Sina: Yeah.

[00:19:22] Julien: and should at every stage of a user's journey should abstract as much complexity and as much detail as possible. So that the user experience is very simple, but still baking it. This key principle, which are, you know, self study

and decentralization. So that that's for us, that's kind of, of the way we see the, the, you know, the ecosystem in, in one or two years at a urgent, and we are working on these, on these different pieces. We started working on these. This entry point that we call a cloud wallet. It's a terrible name, but it's the idea that the user has a wallet without actually knowing he has a wallet.

So without studying any, any software, but that, that first moment he already has a smart contract wallet deployed, except that it only leverages limited capability of that smart contract wallet. And through that journey, it'll be basically the same smart contract wallet, but the way to interact and the configuration of that smart contract wallet may change over the user's journey into the blockchain.

[00:20:24] Sina: That makes sense. So it's, it's a bit of, you know, getting application developers to comply with these standards from the beginning and allowing the user to kind of like keep the same basic setup and move, you know, like modify. Various configurations of it as they move forward. And that makes sense. So they start playing this game and they, you know, at some point when they wanna interface with another game or they wanna do some exchange, they find out that there's this new application they need to download, which is a wallet.

And it's kind of like a cross between a bank or like a, you know, a little cool, like FinTech thing and a one password key manager and a, and an authenticator. And it's

important to take care of. And that application will, yeah, probably abstract the way all I all like bridging all the fact that these are different networks.

Block explorers. And these things should, I mean, that's like both, they should probably be more human readable versions of them and also just support, right? Like customer support type things, wrapping them to, to explain what's happening to a user and take care of things on their behalf.

[00:21:43] Julien: Yeah, definitely. And, and, and again, I think what's interesting is that it's in the same, it's the same blockchain account across these different moments, because it's the same smart contract. If you have a smart contract wallet, it's the same smart contract. It's just how you interact with it, that changes.

And to come back to something that you were saying, I think there's a lot of things we can do. You were mentioning like field transactions on today. If you use urgent, because we use meta transactions, we have layers. But that means we can actually guarantee that the transaction goes through on you never have failed transaction, or if you have it's because there's actually a, you know, an issue in our logic.

And that's something that we need to improve because if you make a transaction. If for some reason it fails, our layers will monitor that. And we'll try to replay transaction. Let's say, for example, you, you place a transaction with the gas price that is too low, and there's a sudden, you know, spike of, of gas price.

Your transaction is not going true for five minutes. Our relays, can they take that and can replay the transaction with a higher, you know, with a higher transaction fee. So I think there's a lot of things that can be built to actually make that experience very smooth for the users. I think we are really at the, at the beginning to date, it's very bare bonds for most users.

As you mentioned, you need to, you know, manage your key. You need to have a, a software. You need to look in the transaction Explorer. If it works, you need to set up your own transaction fees. I mean, all these details, they're, they're okay for all the adopters, but I mean, nobody believes that that's the future of, of, of the gateway and the wallet in the blockchain.

It has to change. And there's all these friction points and all these complexities needs to be abstracted. Gradually. But I do think we are getting there. I, I, I, I think, you know, that, that , that, that image that I picture, I think we are, we will be there within a year at agen. We learned the different building blocks.

I do believe that Zs like Starnet and Z Ising will grow very, very rapidly. So there will be a lot of activities. And we'll all these, all these pieces together on these, on these change that can supporting a lot of users. So I think we, that great experience.

[00:23:50] Sina: And the, the, yeah, the path to getting there doesn't seem like it includes any insurmountable obstacles. It's like pretty, there's a lot of like stuff to, to figure out and a lot to build and a lot of product, you know, consumer finesse, but, it seems feasible, which is a, which is a hopeful thought.

[00:24:11] Julien: Yeah, definitely. Yeah. I think it's, it's a matter of engineering in a sense engineering all mostly product, actually, I shouldn't say engineering in the sense that the technology is there. It's more a question of, of building and designing good products for users.

[00:24:26] Sina: Yeah. Okay. So maybe now moving into a bit of the under the hood, the types of things you've been working on. So you have, you have the core urgent wallet, which is, you know, a thing on main net and it has these guardians and all the things we've talked about, but that has the issue of may net applications.

A lot of the times don't understand smart contract wallets. Don't know how to interface with them. Gas fees are high. And so you've built now this new wallet on Starnet called urgent X, and maybe a first question is what is the architecture of these Wallace under the hood? Are they, Are they,

following a very similar model?

Do you see a person having one of these wallets on each, each roll up? Let's say, how do they interface with each other? Like, what are, what is the high level picture of what this looks like?

[00:25:20] Julien: Yeah, that's a, that's a very good question. I think the first point is that actually we have three wallets today, in a sense, because you mentioned this, the, the, that people know on may that we call urgent vault, but actually we also. On the mobile application, you can be on minute, but I can also be on zing V1.

So we are actually already on the layer two with zing V1, which you access to the mobile application. And actually if for new users, that's the default. So if someone installs today, the thing that they will see is zing V1. If they want, they can also deploy a vault, but again, that will cause bit's fee. And so default what you see and you, the believe is one will be gradually transitioned to zing V2. So all the users that are today on V1, at some point, they will automatically be on V2. So that means on the mobile, you will have vault on the net and you will have urgent on zing. With full smart contract and everything, as you mentioned, we also have a, a second form factor of product that is urgent X.

So that's a browser extension, which today we are building on net. Yes, we also, we will also bring Starnet to the mobile application. So the way we see, and it's still a moving it's, it's a moving picture, right? We have a lot of discussion internally, so nothing is fixed, but what really, what we believe is that in a sense, all these are different facet of a common product if you want.

And so at some point it'll be a current experience, whether you use the mobile application or use agen X, or actually you play a game for the first time. And we, you use that cloud wallet that I call that you actually don't know is a wallet. All this will be actually different ways to interact with the same object, which is a smart contract.

In one chain and these smart contract, there will be sense of that smart contract on a small number of chains. So today they are quite separate. The mobile application is completely separate from the browser extension. The reason we did that is because start net is moving very, very fast. I mean, you know, we started even before stag net was, was really relying.

We started building on them and we knew that building, I mean, building that on mobile would be shooting ourself in the foot. Cause mobile, you know, cycles are much, much slower and much longer. So we really wanted to kind of iterate as fast as possible and have the possibility to move as, as quick as possible on X, without thinking too much about the legacy coming from having the vault and zing which is what we've been doing so far.

And I think it's been a, an amazing ride on agen X, but now we are at the moment where we are starting to consolidate this, saying that.

Yeah. So today on agen X, it's purely there's no urgent service. There's, there's no social recovery yet. You know, there's not all the things that are, they are available on the small contract, but they are not surfaced in the front end in the application.

So today, if you use agen X, you use it like a meta mask. If you want, meaning that you are responsible for a seed phrase and there's nothing we can do. So it's still, it's the, yeah, it's kind of the meta experience for now the Phantom experience. But we wanted to make sure that we could have that as, as fast as possible.

And so now we are starting to work on this unique features, which are social recovery, fraud monitoring and so on. And if you do that, that means that you start to be connected to our backend because you interact with our, with our backend. And that means at that point that there will be some careers between a user, which has the mobile application and a user, which has urgent X.

And as chosen to enable these urgent services, it'll be one, you know, one user. So it it'll, it'll be like two different ways to interact with, with the same thing. But again, this picture is, is still a bit blurred. So we are, we are still discussing, you know, how we'll merge that. But fast forward, I would say a year, I believe that on, on your mobile application, you will be on at least three chains.

You will be on main net on ZK V2 and on net, right? I think probably in a year you will still see these different chains. I do believe in the future, the change will be abstracted because again, users won't care about change. They just care about what they do. But I think in a year you'll still be on mobile.

You you'll have like three accounts. If you want one on may net, if you want one on ZK, V2, and one on start net. And then on the browser extension, you will, I think you will be potentially on these three chains as well on the browser extension. Yeah, I'm not sure. I, I, you know, completely answer your

[00:30:31] Sina: no, that, that makes sense. That

[00:30:34] Julien: a topic we are still trying to, to really, you know, see how to create that career.

I think its just a matter of user experience point, there will be different interact.

[00:30:45] Sina: Yeah. I mean, I, I don't think anyone has the definitive answer on what things look like when you're on multiple chains or layer twos. So, so we're all in the same boat, but I guess, yeah, that makes sense to me. So there will be. A kind of urgent, smart contract smart contract wallet, that the user will have on star wear on, on Starnet ZK sync V two and on main net potentially.

And these like mobile and web front ends will interface with all of them. They'll, they'll give the user cohesive view into all three of them. And then the keys, which power, these different wallets, the guardians and the user's own keys will also be somehow, you know, shared across these wallets. They'll have some cross permissioning and, and that's what it potentially will look like.

[00:31:41] Julien: Exactly. And again, that's the power of smart contract wallet or, or smart accounts is that you can write the logic that you want. So you can, you can have a key on your mobile phone that has more power than the key that you have in your browser. For example, we can come back to that later, but be working on that idea of session keys in start net, you can imagine that actually on your browser, it's what we call a session key.

So it's a key that has limited. Limited functionalities and limited permission so that the, the true remote control is still your mobile application, but there are some stuff that you do better on the web and on, on, on your computer. And for that, the browser extension actually makes sense. There's, there's a lot of possibilities.

Maybe you will actually connect the mobile to the browser extension using something like what it connects. So actually there will always be only one key in the mobile application if you install the mobile application, but you can still use the browser extension because you've connected through, through what connect.

So I think there's, there's, there's still some details to,

[00:32:41] Sina: Yeah.

[00:32:42] Julien: end experience is becoming and.

[00:32:45] Sina: That's so cool though, to just hear that in its con concrete form of like your assets will all be in one place and you'll just have different, different ways of interfacing with it with different levels of security. And it's, I mean, that's just like a much more sensible model than what's happening today, which is that we have like a meta mask wallet with you know, insecure, you know, a small amount of funds.

If you wanna use it in applications. And then you have this like hardware wallet, that's like sitting in some vault somewhere and

you don't touch it. and

it's, it's, just kind of a crazy setup that, that we're in.

[00:33:24] Julien: yeah, no, definitely. And, and I think again, yeah, I think smart contract wallet can really bring the best of both worlds. It's exactly that you use meta for the convenience, but you use the hardware wallet for the security. I think you, you cannot both. It's not necessarily a trade off. You cannot convenience and security.

And for that multisig or custom multisig, like the model I think is, is the best way to achieve.

[00:33:48] Sina: Yeah. So how, how do you think about these different L two S and also kind of putting myself in your shoes? Like if you are running this application that all of a sudden is racking up massive gas fees and you are, I mean, you, you are, you're like looking at these different solutions very seriously and thinking about which one leads to the best future for both urgent and like the crypto world that you wanna live in.

And Yeah, it seems like you have a lot of conviction about the ZK rollups and I, I know, you know, from previous talks and whatnot, that you've given that you also have opinions about like Z EVM, equivalence versus like compatibility and these sorts of things. So I'm just curious, like, if you can talk through your, the trade off space here and how you've thought about it.

[00:34:41] Julien: Yeah. So, yeah, as, as I think, as we discussed earlier, we rapidly realized that may net would not be the home of, and so we started looking at, at what would come next and, and at, as at layer twos. And so we discussed with all the teams, I mean, and I think there's, there's a great number of really competent team.

We discuss, you know, with Trump ZK sync and ware initially no, we are also discussing with, you know, the people at, at polygon. There's no people from, you know, polygon, polygon, they are polygon zero. They're doing great stuff as well. There're scroll also, which is doing a lot of, of good things. So there there's more and more people coming, but initially we are really focused on discussion.

We with Optim, you know, stock net and, and ZK sync. And I think the, yeah, the. The first question for us was really which technology we believe would be the long term solution between optimistic, rollup and Z K rollup. And I think from the start, most people kind of agree that Z K rollup would be the long term solution.

Optimistic rollup would be ready, you know, sooner and would be like the show to medium term solution. But a lot of people believe, or yeah, believe that that Z K rollup would be the long term solution. What we realized discussing with know all these teams is that actually Z K rollups like ware and Z K seeing were actually much closer to delivering than, than, than people believed.

And so we believe we, we felt that the gap between how, when optimistic rollup would moves out of alpha to say beat our production and that, that same moment for ZK rollup, the, the, the time delay between the two would be much smaller than people expected. And, and, and so for us, that was kind of an incentive to go towards.

[00:36:28] Sina: Yeah.

[00:36:28] Julien: because we believe it. We, we, we believe that's the long term solution.

[00:36:32] Sina: And, and the, the reason, the reason in the long term CK is better than optimistic is, is because you kind of have this proof that can be immediately verified instead of having a period for a kind of like fraud proof, verification game, And, and the reasons why people. Have thought that it might take longer is that it either requires a developer to kind of write these circuits by hand or, or for there to be a like high level language and a compiler developed that can make it easy for developers to do this stuff and, and do going through that process in a way that you get to pardon, like secure thing that can write like secure, smart contracts, like a compiler that can compile secure smart contracts is a very like difficult and complex process.

So that is that, is that like a fair characterization of

like the high level,

Thinking.

[00:37:35] Julien: You precisely on point. Yes. Yes. And

[00:37:38] Sina: And so your, your kind of like insight has been that, that compiler piece, like, and, you know, the overall architecture is like, it's actually closer than people realize it is.

[00:37:50] Julien: yes. Yes. Well, I think it is there now in a sense, dark net is for me as really Asal or there is still, well, I'm exaggerating a bit still a piece of infrastructure that needs to scale and improve, but, but there are there so We believed that it would come sooner than people expected and it's also, you know, the way we want to build stuff at Argent, we really focus on the, on the long term goal, in the sense that we don't try to go for short term opportunities. We really wanna, we have a vision of what, what it should be and all, you know, these states should be, and we really try to build for that. And so, yeah, it, it made sense to, to focus on the K rollup. And the second argument, which was in favor of, of these twos is actually attraction.

And again, and for us, that was the disease factor. Initially optimism, you know, was supposed to, to ship with kind abstraction, and then they kind of roll back because it added too much complexity. But for us can abstraction is a requirement because we don't want. to be in the same position that we've been on minute, where we need to try to educate that developers of, you know, if you want verifying option signature, you cannot use EC cover, or you should use the IP 1271.

And I mean, there there's, there's all that friction. If you wanna made that transaction, you need to have layers. There's all that complexity that needs to be that needs to be managed if you're a smart contract wallet and all that friction that we didn't want to leave that again. And so we really believe again that we needed to have a rollup, but we were in favor of Z K rollup, but still a rollup.

I do think optimistic rollup ever place, you know, in, in the future as well. And there are great technology but we also wanted to have con abstract. And so the fact that both stock net and ZC decided to, to launch with con abstraction for us, that was a, a no brainer that these were the first environment on which we needed to build.

[00:39:44] Sina: Yeah. And, and the reason that other, that optimistic rollups aren't implementing account abstraction is, is kind of orthogonal to them being optimistic versus CK. Right? It's a decision around like the developer experience and being EVM equivalent,

which like, if you move from having this EOA and contract model to just having account abstraction, that means that what, what are the ramifications of that for like, it means that applications that have been written on main net won't work on, like there theres a bit of a historical problem, but it doesn't also require a change in how the tooling and the ecosystem.

[00:40:32] Julien: yes. I mean, yes, it it's. And, and that's Valenti discussion that people have between VM equivalent, CVM, you know, compatibility and, and so on. Yes, of course. I mean, I understand. The will to being able to take the ecosystem as is and move it to your optimistic rollup. Of course, it's, it's easy. If, if all the tooling is already there, all the depths are already there.

Then you can bring, you know, everything to your, to your rollup. And yes, implementing a abstraction would certainly require a few changes there. I think there are much smaller than people imagine, but they still require a few change from adapt and, and tooling point of view, certainly on the other end, I do feel that we are still so early in that journey in the sense that 99.999% of the population of the world or the developers don't even know about the blockchain.

So I, I do think that taking that legacy and saying, you know, we, we cannot innovate cause we want to take the ecosystem as it is today. Why doing that? The only thing, if I'm a bit, again, controversial, the only thing the ecosystem has done today is improve speculation and, and gambling. I mean, that's certainly not what we should be building, and that's certainly not the future of that technology and that, and I don't think one of the reason we have, you know, we have a lot of speculation and all this.

I mean, there's multiple reason, but one also I think is it's because it's too complicated to interact with the technology. And so people need to have an incentive and people would actually go to that barrier because they can make quick money. And even, even though they might not understand. So, so I understand the point of wanting to bring the ecosystem as is, but again, the ecosystem as an accomplished much yet, I believe.

And so I don't think it's a great opportunity to actually change the stuff that can be changed. Take, take the stuff that did work and actually improve of the stuff that we believe needs to be improved now regarding like dev compatibility. First of all updating adapt. I don't think it would be too complicated, but there's also so many developer everywhere that I believe if you build, let's say you build an with account abstraction and it doesn't have EVM equivalence.

If, for example, uni doesn't build SWA, adapt NWA for that environment, someone else will do because there's so many people and everything is open source. So I do believe that the D D five, for example, which is the majority of the activity today will be the same everywhere. Irrespective of if you have VVM equivalence, if, or if you are in a completely, you know, different chain with different tooling and different, you know, smart contract language, which is exactly what you see on net.

People are writing contract you know, using Kro and, and if SWA is not moving there, company is not moving there. There's actually five team which are taking their ideas they could, and that will actually rewrite it in Kro. So I, I, I do think that. Kind of making a picture and saying, you wanna take all this to, to the, to, to our, our chain and, and not require any change and not innovate, I think is personally, I think it's a mistake.

It's a, it's a short end thinking again. It's easy for me to say that I'm not in their shoes. The future will tell us, you know, who was right and who was wrong. But, but personally, I, I do believe that we are so early that we should, we should still innovate. And I think moving to layer two is actually a great moment to, to innovate and make these key changes that should have been implemented on Ethereum.

I mean, if you look at vital, he's been talking about abstraction and he's been producing an IP every single year. Since, you know, since the beginning of Ethereum, because I think it was always clear that we would go towards that kind abstraction. Of course, now there's so much at stake and there's other priorities.

It never happened. But so yes, I do think that that moving to layer twos and rollout is actually a great moment and a great opportunity to make these changes because there's much less at stake.

[00:44:27] Sina: Yeah. Yeah. And, and from like from a macro ecosystem point of view, it's a very positive thing that these super competent thoughtful teams are taking different points in this like trade off space and are

following different paths. And I think, I think, yeah, E each, each of them has a compelling case to be made for them.

And the one, yeah. I mean, I do resonate with what you're saying of, we have this unique, you know, opportunity. That's not going to come around again in building a new execution environment, right. Because like once something is off the ground and is running and like, you know, it starts building its network effect.

It's really like, there's a strong inertia around changing things at a fundamental protocol level, as we've seen with Ethereum. And so you have this unique opportunity to incorporate the big learnings you've had over these last few years with the protocol. And I also feel like I see both sides of it, you know, like they're, they're, they're in the, you know, developer tooling and whatnot.

It's like, if you compare developing on Ethereum today with five years ago, it's like, so, so much better, but like, it's, it's a lot better, but, but on the other hand, like everyone can learn, like we're, ,

this is like, if, if, if people in this ecosystem have specialized in anything is in dealing with janky early day things and learning things quickly.

So betting on that also seems, seems like a positive thing. If, if the value proposition is compelling enough, which I think in the case of account abstraction, for instance, like, like if you're building a wallet with account abstraction, that's, that's like a huge game changer.

[00:46:17] Julien: yeah, yeah. And, and I mean, we've discussed and I've discussed with, with Mo I mean, almost every single they'll choose and even in optimistic product. And it's like, everybody agrees that they would want to have kind attraction. Everybody's interested. They come talk to us and, you know, they wanna know a bit how we're doing with Starnet ING.

You, you can feel the interest and people know that it kinda makes. But all the people that want to be EVM equivalent, they kind of waiting for, you know, L one to actually adopt it. And then they would adopt, I think it should be the other way around, let let's let's implement abstraction and let's tweak the VM a little bit on, on, on layer two so that we can actually test us and when it works and when we have, you know, the, the, the tooling and we have the things that work, then we can actually update on the one, it would be much easier.

So I do sometimes I do think we should shift the way around, but yes, I agree that having people experimenting on different points on, on these trade offs is, is actually a good thing for the ecosystem. It's, it's healthy. And so we will see where things will go. But my, my personal feeling is that in the end, we'll have ZK rollups and abstraction everywhere.

If that that's something that I've realized lately, but if you look at the architecture of even. It would be actually kind of makes sense at some point to change this 70 period and this challenge, period, by just putting a valid proof. So I do think that even the optimistic rollups that we have today at some point will be zup.

So Timm will be a Zupan will be a Z again, I, you know, I'm not an expert into all that, but I, I do believe that that's how things will play out. And hopefully I also hope that they will all live on abstraction. That will make me very happy.

[00:48:01] Sina: Yeah. Yeah, I think, yeah, I think there's, there's some, there's some path dependence and, and, you know, it's an, there's, there's the question of yeah. Timing and what the order of operations to, to get to this, to get to this future. But I think most people would share the belief that, you know, a, you know, it, it not, not having long, you know, verification periods having account abstraction, like all these things are positive trade offs to make.

So I, and like from ARG's point of view, not going through this whole painful journey of like, oh, we have to, re-implement all of this stuff, even though we think it's gonna get to account abstraction in like some time, and it's gonna kind of turn all of this turn work to Moo and just starting with the account abstraction, like that kind of makes sense.

Yeah, it's super, it's super interesting. I've also realized that you're super deep in the, in the stark star wear and star net ecosystem. Right? I was saying before we started that I was reading some of your code for the urgent contracts. You've been contributing to the accounts, like interface for the protocol.

And, and I thought it might be interesting to just hear your thoughts on, on what building on Starnet has been like. And maybe, maybe a first question is, What mental models do you have in how it's different from building a smart contract on Ethereum? Like if you were going to talk with yourself maybe six months ago, or if you're onboarding someone from onto the, the Starnet system, what sorts of things do you tell them when they're first getting started?

[00:49:48] Julien: Yeah. So, first of all, to, to come back to something that you said earlier, like how the tooling has evolved, you know, has evolved a lot over the past four or five years. That's kind of something that I like, you know, that I like moving to carro is that I felt I was writing solidity four years ago in the sense that when we started urgent, I wrote the small contract, you know, for, for the account and the tooling was terrible.

You know, you had a problem. It was impossible to understand where the issue was from. And there was lack of documentation. And I think working on K is a bit like that, but except that it's moving much faster because of course there's all the

learning of, all the

[00:50:26] Sina: of nostalgia. It's a bit of that positive nostalgia.

[00:50:30] Julien: Yes. And a lot of people say that in your consistent, they kinda feel the excitement that you had like four years ago on, on ethere in a sense.

So yeah, I mean, Right. Moving to Starnet. Yes. There's a few new things to understand. For example, Carrie is a different language. There's a few paradigm that are a bit different, but in the end, it's not that different. I mean, I personally believe that you can learn any language. I mean, it's the logic and the architecture of your code that matters after that.

The detail of the language's just something that you need to learn, but it's, it, it, it goes actually fast and the tooling is improving a lot. So, so I think it's becoming easier and easier to write in carro and on Starnet and carro itself is changing a lot. Like the first version, there was all these pointers that needed to be, you know, binded, rebind.

And there was even though you underst I mean, I could understand in theory it would, it never compiled. And the only way I found to serve is. Putting like temporal variables on local variables here and there. And you kind of try, I used to call that doing voodoo, like meaning that I'm not sure exactly what I'm doing when I'm copy pasting and copying a few temp here, temp there, and suddenly works.

Of course, that's a terrible way to write smart contract, but that's how it was at the beginning. and, and, and and know

carro is

[00:51:50] Sina: instills confidence, you know?

[00:51:53] Julien: well that, you know, that that was,

[00:51:54] Sina: yeah. It's

[00:51:55] Julien: early days was like, that was eight, eight months ago. So it's not, it's still very, very close, but, but since then, carro is actually improved a lot.

I know they deal with all that complexity for you. And so writing in carro is, is a bit like writing in, in sanity. Of course it's a different language, but the maturity and the level of abstraction is still a bit more low level in the sense that there are stuff like there's no string. There's a few of these, these higher level objects that, you know, you are used to use,

[00:52:22] Sina: There's no strings.

[00:52:24] Julien: Yes, there is no there's people it's exactly like Ethereum four years ago. There are people building, you know, libraries for that. And at some point, these libraries will be included, I think, in carro. So it it's, it's going to the same path that I, that I witnessed on my short time, on, in this space, on, on solidity.

I think it's going to that same, same path on carro, but of course, much faster because there's actually the precedent of solidity and it's easier to see what, what works and what doesn't work. What's important for developers, what is not. So I do think that carro will be at the level of solidity in six to, to, to nine months, or, I mean, I, I, I don't know exactly with, with dates, but my feeling is that we are getting closer to, to the experience of writing smart contract in solidity, in the stock net world.

And we are going there very fast. So, so yes, it was a barrier at first, but I think it's, it's no longer a reason not to, to jump and not to try for

[00:53:18] Sina: Yeah, Yeah, Reading some of the early code is a bit scary with all the pointers

[00:53:23] Julien: Yeah, yeah,

Yeah,

[00:53:24] Sina: but, but yeah, I, I totally hear you on that stuff changing and it's actually pretty cool to see this dialogue between application developers and the language developers. It's a, it's a really cool thing to have there.

[00:53:35] Julien: yeah. Yeah. I think that's something that's stuck wear has been doing extremely well. I think and you were mentioning that I contributed to the account interface is actually instead of building everything themselves, they're building really the foundation, the language, and, and then incentivizing people to actually contribute and build what is needed.

So for example, they knew they wanted a kind abstraction. And so they contacted us say, you know, you have experience with smart contract wallet would be great to discuss with you because you make sure you've tried some stuff and you have experience of what works, what doesn't work. What's important, what is not important.

And, and so we could help them, you know, making the right decisions. And sometime we discussed and they wanted to do something. And, you know, I was telling Debbie, if you do that, you are making impossible to have all these use case. So, okay. At least they know what they're gaining, what they're losing. And so for, for the account abstraction and, and the model of account, it was the discussion with, with open Zep, us and, and, and star net.

And they

[00:54:36] Sina: With Martin right from opens up Lynn. Yeah.

[00:54:39] Julien: amazing developer. So yeah, yeah, it, it was, I mean, it was, and it was like an open discussion. Like they really wanted to have a feedback. They really, they really build that, that part with us. And it it's the same for all the other part of the tooling or the platform.

They really. Leverage people, which I think is great. They listen to what, you know, what developers want. They listen to the feedback. They're really building that in the open, in a sense, instead of, you know, building everything and say, okay, this is how it works. No, you can use it. It's really, we have the foundation, let's create an ecosystem and iterate with that ecosystem.

And so that, I think that's something that they've done extremely well. And, and, and there's two benefits. First you're building the product that people want. And also you get people really excited because actually they can contribute and they feel that they can, you know, impact on, on what you're building.

And I think that's part of the reason the start net ecosystem is so passionate it's because people really feel that they can contribute. They're part of something. They are listened when they wanna say something and, and I think that's, so it's been very interesting to watch, to be honest. I'm I'm, I'm, I'm really impressed by the starboard team.

[00:55:45] Sina: Yeah, no, I, I have a similar feeling where I've met multiple people, multiple teams now who are just like, super excited about what's going on. And it almost, it, it has its own kind of community identity, right? Like there's a stark net ecosystem and people are like going to hackathons together and chatting together and sending

these like hack MD, like how to get started with like building on star, you know,

docs back and forth.

And it's, it's pretty.

[00:56:12] Julien: Yeah. It's very, very cool. And yeah. And so at agen, we were actually there really early, so we really wanted to contribute. And so we realized there was like no wallet. And so it's really funny because our real journey, I mean, we've known ware for a long time. We hesitated between zing, V1 and star X initially.

And for different reason, we built on, on, on mobile, on zing V1, but we've been always closed with the team. And so I think it was like in November, I wanted to code something and zing V2 was not ready. Like they were supposed to, to ship and to give us something to play with. And it was a bit delayed. And so I was like, okay, I have some time, you know, I'm gonna try this scare thing and see where, where star net is.

And so I, you know, I started playing, I go on this, I start discussing with a few people. And then I realized that people were there were application developers at the point where they were building DS, but they didn't know to connect the D to the protocol and they were going in, in wrong direction. And so at first I started to kind of argue and say, no, this is, oh, it should be built.

This is the, what is missing. And then we discuss internally were like, well, actually let's build it. You know, there's clearly an opportunity. Let's build it. And so we build a wallet, but we also started building stag net digest, which is the equivalent of Atel digest, like JavaScript library to, to interact.

And so there's all these, all the things that we started building at urgent with other people, because it was needed. So. Some stuff we bid with open zip in, on the contract side for stacks, it was shown from, from a stake that really kickstarted. And we started, you know, contributing and we did that, but there are other team that did, did, you know, equivalent stuff.

There are nevermind who like to have a transaction Explorer and there's all these other team building, you know, like tooling to develop smart contract and so on and so on. So, so yeah, a lot of people being involved and I think Starnet kind of like as a puppet master, nicely incentivizing people to go in one direction, giving grants to those that are needed, but to make sure that the ecosystem is moving is moving fast and in the right direct.

[00:58:22] Sina: Yeah, totally. maybe this can be interesting. It, it might also get too technical and crazy, but, but I'm gonna ask anyway, like you mentioned, developing this account abstraction or the account interface with the star war team with Martin from opens Zeppelin. And it being, it being like an interesting example of the, the language and the application developers kind of talking with each other it might also be an interesting view into like accounts and account abstraction on star net and what that looks like.

So I'm curious, could you just like, describe that a bit in a bit more detail? Like how does the, how does the language and the, the environment think about accounts and how did that conversation between the three of you go.

[00:59:09] Julien: Yeah. So I think the, the initial idea of how to implement account abstraction comes from the stock war team. There's been roughly in parallel, there's been E IP 43, 3 7, which is the last IP on icon attraction, which was like pushed, you know, by, by and a fewer other people. And the idea of actually 4 57 is to bring a code abstraction without requiring any protocol change.

So that means that it's a way to have some form of account abstraction today without requiring a new transaction without requiring a new code. And I think it's actually a great design, but it's meant for, for, from a net. And so the idea of the stock team was actually to take 4, 3, 3, 7, but to bake some of the component in the virtual machine itself, the care of the end.

So in 4, 3, 3, 7, you have like a single, an entry point contract. Like Singleton where you send like, you know user operation and that single tone, we then orchestrate the execution of all this, this transaction in a sense account abstraction net is to, to bring that entry point contract into the virtual machine itself.

So that means that when you execute, when you make a transaction, it'll interact and orchestrate with the account that is needed. And so that means that now. And, and, and if you take a step back on, on Ethereum, if you look at how a new way works, for example, I think it's, it's interesting to go back to understand the difference with account attraction on Ethereum.

A NEWA it's, it's an account that's slightly tied to a. Right. So the, you have typically you have a, a private and public key. That's what the user has. And then on chain, there is an account whose address is related to the public key and only the corresponding private key can trigger transaction. So that means that when you submit a transaction to, to Ethereum, the EVM will identify the account will verify the signature.

So we'll identify the account. We'll verify the signature. We'll make a few check, verifying the signature, verifying the norms and making sure the account as enough value to pay for the transaction. So there's a validation phase. If you want, where the virtual machine validates that the transaction will work and this validation's very fast, it doesn't consume a lot of, of resource.

And that's important because it's a way for miners to rapidly know if they will be paid, if they execute the transaction. So there's a validation phase. And then if that validation phase, then there's actually the execution of the transac. Okay. And, and

[01:01:49] Sina: And this the validation phase probably it's been a while since I've looked at things at this layer of the stack, but it's probably also what, like the check full nodes do prior to passing on

a transaction in the gossip protocol,

[01:02:03] Julien: yes, exactly. When you submit something to the, to, to your node, before it gets into the me pool, the validation is to make sure that the transaction is actually valuable. Yes. And so actually that's what cost 21,000. When you make a, a simple is transfer, it's actually the gas cost of doing all these check of these, these validations.

So it's very limited in gas, and then you have the execution. And so if not, and the problem with the theorum is of course, is that all this is out coded, meaning that the validation is out coded you verify the signature, but it needs to be a signature using EC DSA on a very specific, you know, curve. And, and then the account address is entirely linked to the private key.

So it's like the, the two object are two sides of the same. The signer that the user has this key pair and the account is actually in the sense, the same two side of the same, the same object. And that's where all the, all the problems I believe come from. And so the idea of account abstraction is to decouple that. To say, no, the account is, is actually the account becomes a smart contract, which can choose how to validate the transaction and it can choose how to execute a transaction. Of course they will be constrained, but actually how you validate a transaction is up to the person who deploy the account.

That means that no. You can have one signature on EC D S a in the same curve if you want, but actually you can use another signature scheme. The ECDS a you can use, you know, a different curve. You can have actually multiple signer, all this is that you've ed actually the functionality of validating a transaction and executing a transaction.

And so if you go that to the account, if, you know, say, okay, the account is a smart contract, you still need to have these two functionalities. So that means that your account needs to validate a transaction, to make sure that the transaction will be valued. That is it's actually a legitimate transaction and that the account will be okay to pay for that transaction.

So you need to have this validation phase. And so if you translate that to the account, that means you need to have a validate method on the interface of the account. Every single account on Starnet with account abstraction needs to have a method called. That the virtual machine can actually ping, send the transaction and ping and say, if the validate method says yes or no, meaning, is it a valid transaction for this account or not something that was hard coded in, in the EVM?

No. Becomes the virtual machine actually loading the account by code and then verifying if the validate method is

[01:04:34] Sina: So

in, in, in may net, Ethereum, this check would, is hard coded into the client software, right? Like it's a check that GE does prior to even hitting like the account state space, whereas in the star net world, this, this account, you know, each account has logic associated with it. That's stored in, in the, in the kind of state of the stark net blockchain basically.

[01:05:04] Julien: Yeah. Yeah. I mean, it, it, it, it's, it's similar, right? If, if, even on the EVM, you still need to load the account. If you wanna value the transaction, you need to get the account to know the, and to know the value.

[01:05:15] Sina: it up still.

[01:05:17] Julien: Exactly. And so here you do the same, except that the account has some white code. And instead of doing this hardcoded validation, you execute the validate method if you want.

So that's the first step. And so that's for the validation phase and then there's the execution. And that's similar. That means that the account must have a method to execute. And so coming back to the account interface, that means so far, your account needs to have two method, one to validate and one to execute.

And of course, there, there are a few constraint on this method. The first one is that the validate must be fast. It, it should consume a small number of resource because you want minors or you want no to being able to rapidly evaluate if the transaction will succeed or fail. And there's also some constraint for security reason is that you wanna make sure that during the validation you only access mutable storage of the account itself.

[01:06:10] Sina: Mm.

[01:06:10] Julien: no need to go into the detail, but that's, it's, it's a way to make sure that you cannot, Dedo the system by a maliciously craft account if you want. So you need to have a validate method. It needs, it has some constraint, but that's the first method of interface. Then you have a second method, which is to execute, which will know that the transaction is validate.

It will actually take the call data and execute a transaction. That means calling another contract or transferring value and so on. So there's these two methods. One thing that, so there's, I think there's been two contribution that we had in that discussion at urgent. The first one is to say that in the execution, it would make sense to enable multi on Ethereum.

You can actually make one transaction. If you have account abstraction, you can, you could pass one transaction, but you could also, you could also pass an array of transaction to be executed and which this is something that we're doing on, on, on urgent vault is that you can execute a multi. So multi call.

It's a, it's a sequence of, of calls that you do on chain. And for example, a

[01:07:17] Sina: does that work?

[01:07:18] Julien: a typical example is the approved call, right? If you wanna, if you wanna interact with the app, let's say you wanna, you know, you wanna biologic ticket on some that you need to pay 10 die. For example, you need to make two transaction, one transaction to authorize the, the, the dub contract to actually access your dye and then a second transaction to actually do the operation.

And that will consume the, that you have authorized. So it's two calls and that's a terrible user experience. There's lot of security

implication around that with a multi call, you can do that in one transaction because now your transaction is an array. So you're saying first execute the first item of the array, which will be the approved.

And after that execute the second part, which is calling the data and all this happens in one transaction. At the protocol level because, but you are doing two operations.

[01:08:14] Sina: Got

it.

[01:08:14] Julien: that's why

[01:08:15] Sina: vault on main net. Does this already? You're

[01:08:18] Julien: yes. If you are a smart contract where yes, that, that's why, For example, on Argent, if you want to invest on a DeFi protocol, it's one tap.

If you notice - that's something that we are very proud of, is that in one tap you can put funds into Compound or you can buy staked ETH on Lido and so on, because actually we orchestrate this transaction, we create a multi-call and we send that array of actions that are needed. And we tell your smart contract wallet, execute this array of calls in sequence.

And if one of them fails, you fail. And if they all succeed, then everything is good. And so your smart contract, because it's a smart contract, it'll execute the sequence of operation. So it'll, you know the, the first example of that was was using maker back then. I think, you know, creating an, a CDP require like five operations.

Right because you needed to wrap and wrap transfer. And so on. We could do that in one transaction because you tell your smart contract, do this and one you've done do that and then do that next step and that final step. And so you, you can orchestrate all this. So we do that on, on, on a one, but what we told stark net is that may as well have that big team into the account interface.

And that's why in the execute method now, or in your transaction, you can pass an array of call. So that means that OnStar net you have, by default, every transaction can actually be a multifold. So I think that, that that's something that is very cool. And that was one of our, of our contribution to that discussion.

And the second thing is the is valid signature. So again, that's, that's a big, low level, but one problem of smart contract wallet is that, of course they cannot sign transac. You signed with a key pair, but it's not your contract that is signing. And, and there's a pattern around the ecosystem, which consists of you asking users to actually, to, to authenticate themselves, to sign some chain message.

And so typically with an UA, you sign that message with your private key. And you've said, you know, this is my account. And so the app can locally check that actually you own the private key to the account you, you were claiming to be because the two are linked. If you are a smart contract, it doesn't work because your identity, your account is the address of the smart contract.

But when you sign, you sign with some key, that is, that is not the smart contract itself. So the way this is resolved with smart contract and it's through an E IP called EIP 1271 that was pushed by Pedro from wallet connect is to actually have a method on the smart contract wallet called is valid signature, which accept is.

Basically a signature one and a message. So you can actually ping the smart contract wallet and say, Hey, I have received that signature claiming to be from you, is this valued? And you let the smart contract decide that that if it's valued or not. And so again, that's another method that was needed to be added to the account interface on stock net.

So that means that in the end, the account interface of, so the interface of every account of stock net is very simple. It's basically three method. One view method to check if a signature is valid enough chain signature is valid and then a method to validate transaction and a method to execute transactions.

[01:11:31] Sina: Hmm. Super, super interesting.

[01:11:36] Julien: Yeah. Let, let know if that's clear. That's a lot of

a lot of,

[01:11:38] Sina: No, yeah, it

[01:11:40] Julien: of detail.

[01:11:41] Sina: It is. It is clear. So the, the account interface, basically an account is expected to implement these three methods. One of them, which is the view function. It doesn't, it doesn't write anything to the blockchain. You pass a signature to it, and it tells you whether the signature is valid or not.

And this is to replace a, you know, a contract needing to verify a signature itself. Yes. It it's the equivalent of the EC recover that that developers typically do locally, except that no, you cannot do that locally. You need to ask the account, is this value or not the

Yeah. Yep, yep, totally. That, that makes sense. And then the other two methods are corresponds to these two phases of executing a transaction. The first one checks whether a transaction is valid, which basically checks the signature that is attached to it, checks whether the user has enough gas, like all these sorts of things.

And then the

second thing actually goes on executes the transac.

[01:12:46] Julien: Yes. Yes. And what is great is that you can customize these two face, so maybe you want an account. example where the validation it's actually a multisig, a native multisig. And so in the validation, you wanna check that you have received sufficient signatures because now you can pass an array of signatures.

And so you can check that it's actually, you know, that all the signatures are, are valid or in the validation. If you go back to the agen model, maybe you wanna do a recovery. And in the validation, it can be a transaction sent by a guardian. So by a different key than the owner, but you can still, so, so that, that's the beauty of it in that you have that interface, you have this constraint, but you can put whatever you want in it.

And you can start

[01:13:28] Sina: super flexible.

[01:13:29] Julien: exactly with completely new models. Of accounts, for example, I mean, some of the things that, that, you know, we are excited at at, at urgent is the recovery and the fraud monitoring. We can come back to that, but actually that's two things that you can enable. So you can really have fraud monitoring and you can have social recovery, but you can imagine also that you can start using Thecla because the problem of the, of phone is that it's using a different, you know, analytic curve than the one we are using Ethereum.

But because this is custom, there's actually some very smart developer that wrote a K library that can verify signature on the analytic curve that is on the clave of apple and iOS and Android phones. So that means that now you could start signing transaction with a key that is actually really in the secure wave and where the signature is happening, the secure and never leaves a secure.

So now you have, everybody can never hardware wallet in their pocket because your phone becomes a hardware wallet. I think that's very interesting. Second thing that we're exploring is, and actually we are starting to test that with is the concept of session keys, because you can have, you can program the

account, your accounts the way yeah.

The way you want. You can actually let adapt, create a key locally and as the, to, for the user to approve that key under a certain context. And that context say that key is valid for 25 minutes and it can call this and this and this contract and that, and that method. So it can really define exactly the only thing that this key can do once it's approved the D and that key can actually make transaction directly on the account.

So you no longer need to over want it and all this. And this will go through the validation and the execution, because we've programmed that in in the, in the implementation of the account, I.

[01:15:21] Sina: Yeah. Are you, I realize we have seven minutes left. Do you wanna, are you able to extend by 10, 15 minutes? Just so

[01:15:28] Julien: Yeah. Yeah, sure. No, my pleasure. Actually, I didn't realize it was already that, that

[01:15:33] Sina: yeah, it's kinda, kinda flew by.

[01:15:35] Julien: Yeah. That's a good sign.

[01:15:37] Sina: Yeah. Yeah, this, this last idea of session, keys is very, very interesting. So going back to that, example of playing a game, the user experience of a game would be totally broken.

If you had to approve transactions every single time you wanna make a move, but here, like the game, either the client or even the game server could spin up a key that you give permissions to in your, in your accounts, you know, is like validation method. And you basically say that this is valid until X block number or until, you know, X time by proxy.

And they can, and, and up to, you know, this much value or if it's interacting with these smart contracts and you have so much flexibility in how you implement these things that feels like a total breakthrough.

[01:16:29] Julien: Yeah. Yeah. Yeah. And I mean, yeah, that's all the main pain points for games because now if you think of the user experience, that mean as a user, I go to a game I'm asked to connect my wallet. And then I receive a notification, you know, and this can be, you know, nicely presented to the user. Are you okay?

You know, you wanna start a session? Are you okay to have a se to approve this, this session for 25 minutes? And this session, we only call this and that, that contract as a user, you say yes, and that's it. You no longer see a wallet. You no longer see your transaction. You can start to play the game. And every time you make a game action, that requires a non-chain transaction.

It'll be silently managed by, by the game itself. You, you don't need to see it. You don't need to approve anything. You can actually focus on the game, but you know that you're still secure. You're still within the perimeter of what you have approved. So, yeah, I, I, I think there's a lot of, of game developers, which are very excited about that on, on the stock net ecosystem.

And so we are at the, we are starting to experiment. So meaning that the contract. Is ready again in alpha, right? It's not, it hasn't been edited. There's still a few things that we are modifying. And we are now enabling that as an experimental feature in urgent X. So that games can really start to, to, to leverage that.

And, and what's funny, you were saying it's a breakthrough, it's actually something that we already had in the urgent vaults four years ago,

except that there was, there was no use, but that, that's what I find fascinating is that we actually can, can kind of bring back all these ideas we've been having for four years and know they start to make sense and resonate to people because the environment is, is at the right level of maturity in the sense, or, oh, I mean this, this thing of session keys, we call them da keys four years ago.

But the only thing that has changed is the name, the, the actual, the flow and the concept was already there, but there was no use because yeah, because there was no adapt that needed something like that. No, that you are on stock net. One of the benefit of stock net is that you have. I won't say unlimited computation, but that computation is very cheap and you can have a lot of computation that gets a lot of game developers, very excited because they can now start to put all their own chain logic all the logic on chain.

Sorry. And, and so make much complex games that really live on chain. And I think that's something that's very exciting. Because you can start to have composability, you can start to have all these benefits of, of blockchain, but in the game, the gaming space, but there was still the problem of, of the friction.

So now, if you combine that with these idea of session keys, then you can start to have like through, on chain games with a good or great user experience for users. So I think all these, all these things are cooking and are gradually becoming, you know coming to, to maturity in at least in the stock medical system for now, which is, which is really cool.

And there's some, some amazing game developer there, there are some people with completely crazy ideas. But what is great is that you can actually try them and implement them on start net because you are no longer constrained by, you know, by the compute

[01:19:31] Sina: What are, what are some of the crazier game ideas that, that you've seen are excited about?

[01:19:37] Julien: So there's these people at topology,

which I would encourage you to look at za

[01:19:43] Sina: yeah. Yeah. I know them

[01:19:44] Julien: is, is amazing. It is sometimes hard to follow, but they say, I mean, they have these, these crazy ideas. And so they have these spurs game that they were playing, which is a fully on chain game.

[01:19:56] Sina: three body problem, right.

[01:19:57] Julien: exactly.

Yeah. Which I think is fascinating. And they're really the, the, the vision of their mission is to make like, kind of virtual reality on chain completely. And I think that's, I was, I was having a discussion with him where they kind of want to try to understand some of the laws of physics by saying that you can create actually reality with different, you know, parameters of physical properties, if you want and see where that leads.

Which is a way to say what would happen in the world if, instead of having no gravity at, you know, at, at working like that gravity was working differently, you can start to actually program these kind of things on chain and see how they will evolve and what kind of world people would be on top of it.

So I think these are some of the crazy ideas that, that people are starting to experiment with Inness.

[01:20:46] Sina: Yeah. Like if you take away the computational bottleneck. You can all of a sudden implement a physics engine that isn't kind of like operating in isolation as physics engines would be, but has like economically motivated actors

interfacing with it at all sides, which is super interesting.

I mean, I guess it it's in some ways like the, the promise of these like big multiplayer games, like wow.

And whatnot, but doing it on chain takes it to a whole other level.

[01:21:17] Julien: yeah. Yeah. And, and I think on top of that, you bring the aspect of composibility. Meaning that, you know, I build a game and you can build a game on top of my game and all these benefits that, that, that were basically the reason why defi was so interesting for the two bring something like gaming world, which I think is fascinating.

One of the reason why I think it's, I found that interesting is that it's a non use case.

[01:21:47] Sina: Mm-hmm

[01:21:48] Julien: I mean, I'm not a big gamer, so I don't think, you know, changing the way we make games is gonna change the world, but it's actually a new application, a new use case of the blockchain that can be concrete, that can resonate to a lot of people.

So it might be a way to onboard I mean, hundreds of millions or billions of people to the blockchains for something that is not speculative. And I think that's that's yeah, that's fascinating.

[01:22:11] Sina: Super exciting. Yeah. I actually PED guilty Giza before those podcasts and asked him for his recommendations and getting off to speed with the technical aspects of Starnet. And he sent me a bunch of block posts and I I've been going down a bit of a rabbit hole, which has been fun. like I was saying what do you think it will take to implement account abstraction on main net? And, and is that, is that necessary for us to get to this kind of beautiful vision of the future or, or a world in which like main net continues with this current model and account abstraction is implemented on L two S is that sufficient?

Like, how do you think about that question?

[01:22:55] Julien: it's a, it's a, yeah. It's, it's a good question. I think. One underlying question of that is how do we see the future of, of L one and L twos in the sense that fast forward in, in five years, who is using L once, you know, is there still application and, and like normal, regular users like us using L one or is actually all the normal users, you know, have moved to L two and then maybe there's a few institution or a few, you know, a few protocol which require high level settlement running on in one.

I personally, I think that will be the case. And so if that's true, then it is in a sense it's a bit less relevant because I think the beauty of account abstraction in small contract wallet is really and it's, it's like for user accounts, right? If you are an institution or if you do settlements between bank, they can manage hardware, wallets.

They can, they can have everything. So. If, if, if in the future 99.9% of the user activities on L twos, then I think it is, it doesn't really matter if on abstraction is, is pushed well one or not. But I do think it's important that it is pushed to, to L twos, no, on the other end, if, if L once is still relevant and we still have a lot of activities and we are still using uni swap and compound, and are they on L one and that new fancy up on one, then yes.

Having a abstraction is, is, you know, is very important, I think, but my feeling, if you ask me, my, my good feeling is that the majority of activity will move to L twos. And that L one is, will, will be a settlement layer for rollups, but also for some protocol and maybe some, you know be used by some institution or some, some players.

But I do believe the majority of the user activity will be on, on the twos. And so whether there is a kind abstraction or not is less relevant, of course, If you put account abstraction to one it's, it's a, it's a guarantee to have account abstraction on all DL twos.

So of course I would love that if, if we implement account abstraction, like at the protocol level, at the AVM level on, on Ethereum, you know, in six months after the merge, that's fantastic because I think it's the guarantee that all the twos will implement kinda abstraction.

So, so yes, that would be a great way, but I don't think it's a requirement.

[01:25:20] Sina: Hmm. Yeah. So the, the, the way you see the next. Few years evolving or even, you know, the, the nearer term future is that application developers, you know, working on games would, would build their games on Starnet or other ZK rollups you know, NFT applications like various things like people, people will, you know, gradually choose to build on layer twos.

First, maybe some defi centric protocols will still deploy on main net, but over time, the gas fees on main net will continue increasing. They'll kind of crowd out these less financial applications, which will be on L two S and those are the things that primarily benefit from account abstraction. And so, you know, we're, we're th this is like a, a, a pretty meaningful step towards this, like, Better future where users have both usability and security.

Just having this on L two S is a very good start.

Even if main net takes some time to get there.

[01:26:28] Julien: Yeah. Yes, but, but again, you know, having that on L one would be a quick way to have that on, on L two, not to, I think as part of your question, you were asking what is required for that to happen on L one, I think there's so the, the people that, you know, that design EIP fault, which I think they are kind of pushing for people to start to use that on the one.

And of course, what we're telling them is that it should be at the, the virtual, at the M level in the sense that it it's not sufficient, but, but maybe they would start with that. And then after that, it'll come to, to the protocol. Yet I, I don't know. I mean, I know a lot of people are aim for it. I know.

I mean, it's been, I think something important for, I think after the merge, there would be more bandwidth for, for this chain and we've been through some, I mean, drastic changes, you know, the merge before that there was 50. I think it's reasonable to imagine that we can actually go through and push the ecosystem towards something like having a account attraction at, at the VM level on one.

So I don't think it's unreasonable. It would certainly be great. I don't think it's a requirement and I don't think, you know, as I said before, I don't think layer two should wait for that to start considering attract. But of course, if it happens, I think it it'll be a, a great benefit for the entire ecosystem.

[01:27:52] Sina: Yeah. Yeah. The protocol layer is like moving it. It's a pretty exciting feeling to see it continue to evolve. So I wouldn't be surprised either if we just continue to like, execute these like bigger things.

[01:28:04] Julien: Yeah. And I think, yeah. And in terms of this bigger thing, I, I seriously believe that that's probably the most important one. I, I, I do think that it's a requirement to scale the ecosystem. So, so it, it needs to happen one way or.

[01:28:17] Sina: Yeah. Last question, since you're someone who's been thinking about wallets for a long time speaking today, like concretely, if I want to hold a, an, let's say an unhealthy portion of my net worth in crypto as someone in

this ecosystem, what is a sensible wallet set up to have in today's world?

Because you know hardware, wallets have their own problems smart contract wallets on main net, have those problem of not being, not interfacing with a bunch of applications, like you've been saying. So what do you think if you had to start a setup from scratch to date, what would you do? Concretely speak.

[01:29:00] Julien: so of, of course I'm biased. So disclaimer, but I would seriously, I would, if, if it's a. A good portion of you know, of your assets, assuming that you have a decent amount of asset, I would seriously consider urgent vault. So urgent on one, because yes, as I mentioned, there's two drawback. One is the compatibility with depths, but again, it depends what you want to do if you want to, you know, if you want to interact with the last, you know, the, the newest app that are some crazy yield for two weeks, because it's, you know, it's, it's, it's yeah.

These kind of, of new things that appear if you always wanna be on the last trend and you really want to gamble and make big wins, then maybe yes, it might not be compatible with a smart contract wallet, but if you wanna manage your assets reasonably in the sense that you wanna, you know, you wanna DFI protocol, but you wanna interact with your, with, with Ave, with compound, with Lido, all these protocols that are integrated in one in.

So if you wanna stay within the more. Robust and battle tested and, and most used protocols, then they are compatible with, with large vault. Even if you have NFTs, you know, open C or is compatible with, with, with large vol. So unless you are basically, unless you are agen, if you're agen that maybe vault actually that's, how should I, they started, you are agen, maybe urgent, vault is not the best solution for you because yes, you won't be able to access the new, you know, the new, the new on the ecosystem.

But if you are a normal user and you wanna do normal defi normal NFT, then yes, all these are available to, to urgent vault. And so it will combine for me the best security with the best convenience. There's still the drawback of the cost because yes, your vault will be a bit more expensive than using meta mask.

But again, If you have a decent amount of asset and what decent is, I think is up to everybody. But then you sh you shouldn't, you know, sacrifice security over saving, you know, 20 cents or 30 cents per transaction, because that's what we are talking about. So if you have 10, 10 K or plus, I would use Argent vault without

[01:31:17] Sina: And, and what would you do? Where would the keys be? Would you be using a hardware wallet for one of the keys, or like, how would you

distribute it between your. With the guardians, like how would you think about those types of things

concretely?

[01:31:30] Julien: tell I, yeah, I can tell you my setup. My setup is actually a free audience. One is the, a urgent garden service. To which I can authenticate with email and SMS. So every time the guardian needs to the ion, I need to validate a link on my email and I need to, to validate a link to, to SMS. So validating phone and email.

So that's guardian number one. The second is a friend and the, the third guardian is a hardware. So for me, I use three guardians and I use, yeah, I use, I use this, this, this setup. That means that for convenience, I can always ask a friend and use the urgent service. But if for some reason, something bad happen, I still have that house wallet that I can, you know, that I can use.

If for some reason my friend is not available or for some reason urgent is down which has never happened, but can happen. I still have the hardware wallet. So for me, I would set that up with, with three guardian one, which is called the, a urgent garden service, a friend that you trust and then the hardware.

[01:32:29] Sina: Yeah. And then maybe have like a, like a separate kind of hot wallet for just playing around with, with random applications and move smaller amounts of money from the urgent vault into that one.

[01:32:45] Julien: Yes again, that's not how I use. I mean, I'm not a, I'm a, like, I mean, I'm, I use my, I use my wallet as an old person, meaning that, that, you know, I invest in the protocol and I leave my funds there and then sometimes I will trade, but I do like not so exciting operations. So I, yeah, typically I, I never leave funds from, from, but I know some who do, and they'll a for example, and then they will use meta to do these crazy and between their meta, their

[01:33:17] Sina: Yeah. Awesome. Well, this has been super fun, man. Thanks again for taking the time.

[01:33:25] Julien: pleasure. It's, it's been great.

Hey, I'm going to make a small ask here. If you've been listening to these conversations and want to support what we're doing here, . I would really, really appreciate if you could leave a rating and review for the podcast, wherever you're listening to it. This might seem like a small thing, but it will really help other people also discover the show. Thank you. I'm grateful to be able to do this and look forward to being here together again soon.