AllWalletDevs #10

AllWalletDevs · March 2023 · 14:04

Call 10 of AllWalletDevs, held in March 2023. Wallet developers meet to coordinate on the Ethereum standards and protocol changes that affect their products.

Topics

From AllWalletDevs, hosted by ECH Institute.

Transcript

looks good um okay so for for people who don't know candidates who are building a 437 compatible Mobile wallet and you're seeing here my emulator um the wallet should be available both on IOS and Android it supports it does Support Recovery contacts similar to Urgent Guardian so basically you can go to a security Tab and then add the recovery contract you can add any essentially any ethereum modeled on the same network we're not going to be supporting email because we use the service called

magiclink and the experience so far we cannot fully control so we decided not to go with email in production we're going to be supporting family and friends and another tab that says Hardware wallet but essentially it's the same you just input an address and we image make sure to clarify that the address is on the same chain I can show you an idea I can here add a metamask and call it like mm Guardian so the idea behind this is that you can send a message from another account and and change the key on your uh candid wallet uh yes so the idea is that you

can recover uh yeah recover the account in case you you lose your phone or you delete the app and then you go to an another interface and then with your guardian or recovery contact you can change the owner if they assign it I think I have trouble in the demo maybe something I'm not running but I think you get the idea um here it's unknown button I can call it like the mask Guardian you can also remove a guardian in case you want to remove someone let's say and an ex-girlfriend um you can see we have a transaction classic transaction history uh something actually quite complex that costs took

us some time to like get um is monthly accounts for contract wallets so the idea is that we cannot guarantee in the future the same address for a contract account on a different network uh so what we did is that on the UI every time someone wants to create an account we specifically ask which which chain they want to have their account on so I'll say here uh Mark uh optimism Godly and then we create their accounts and we purposely never give the same address on a different chain so if I went here and did the created onwardly

I'll I will get a different account and we have a kind of different UI than EOS like users cannot just like simply switch networks they actually need to go to their account and select their account so I'll show you here Mark quarterly and it's always like a different address we don't let users copy directly we actually have a warning here as well so that they don't consider the same address on a different Network it says like basically Smart Control waters are independent even in terms of security you can think of a safe if you

have a safe one with the three owners on midnet it can never be the same um on for example optimism and then we have another warning here so once they copy they should like know that this is only for their this uh Network we were just practicing on testnet technically we're going to only erase on optimism for now um and uh hopefully once we are ready to support another chain we will be ready with this ux experience um what else yeah you can uh something to take into consideration for others or

building smart contract wallets we know that if you're sending it to an exchange especially from um I don't have it here but especially from from a contract account on Layer Two they're not gonna support native currency so it's going to be lost so we have warnings we have warnings I'm not gonna show it to you here but we do have warnings in case they're sending it if they're sending um erc20 it does uh does work fine um so this is an erc20 and yeah it would be something like that so

we do have one here the person I'm sending to has a wallet that supports optimism Corey Network and then the other warning is basically I'm not sending to an exchange if they're sending it uh um yeah that's it uh oh something interesting is that I didn't show you is that you can play guys in an erc20 so we'll be supporting uh a stablecoin I don't know about usdc but hopefully you can support as many is that uh 4337 uh yeah that's using playmasters uh on 47 years um

so that's one thing I want to ask um when you copy your address it just copies the raw hex right it does yes um have you considered using the 681 URLs that embed the chain ID because that might be a way of I don't know how well supported they are in other in other wallets but that might be a good way to make sure that you only send on the correct chain I wasn't aware what is it what's the number uh eip681 okay I'll take a look is it the same as gnosis are using I'm not sure I've never used nurses okay but if you look at that little blob it just scroll up a little bit there uh yeah so you can oh there it is so

ethereum schema prefix Target address and then optionally chain ID so if you make it the default to include the chain ID um when you copy the link that might be helpful yeah I think that's that would be quite helpful we have to try it with different Wireless and see if they support it um okay yeah thanks a lot I'll take a look at this uh we're yeah we're definitely worried that um I mean for now we're only on autism but we definitely worry if someone sends to another Network and we're not supporting it then we we don't let users export their seed phrase as part of the experience of using the wallet if

someone that does it I'm not sure if you can help them or not maybe you can have a special build uh for them um so yeah we're trying just to avoid that at all costs I'm curious with the cross chain use case where each wallet has a different address across change and can't have the same address across chains what led you guys to use that implementation as opposed to using uh Factory on each chain that made it such that each wallet could have the same address across chains you could have it but what if for example uh there's a the contract got upgraded for example we were using the

entry point contract which is the proton 437 and there might be future upgrades where uh there maybe security wise or maybe it's a gas efficiency so any upgrade that happened to your contract today and then in the future we released to another Network um then we cannot guarantee the same address interesting is that is the entry point the contract that's deploying these wallets and no the answer point doesn't deploy the wallets um the user deploys the wire we're basically running on safe [Music] um and it's a special version of safe to

make it compatible with 487. uh interesting and so why why would an upgrade to the entry point Cause wallet addresses to change if the entry point isn't the deployer uh specifically it could also be an an upgrade to uh to save itself so we could let's say safe have a new upgrade a version 1.4 um you cannot guarantee the same address for a new for a new network also same with also same with the notice we have recovery and designer could change so let's say a

user loses their wallet and then have a new phone they recover and they have a new signer to the address and then you wouldn't be able to recover the original key and exactly yeah oh that makes sense so because of upgradability and because of recovery is what makes the cross chain uh same address is difficult yes very cool foreign there's also the um I think it happened to a nurses safe where they changed the keys on maidenet um but on like to get it to the same address you have to deploy it initially with the same keys that the first wallet was initially deployed with uh because the Constructor arguments are appended

onto the end of the bytecode so that's also kind of a security issue if you want to use the same address so it's probably a really good idea to use different addresses on each chain yeah makes sense exactly yeah I'd argue for privacy reasons as well these things are actually better to go different directions because there's oftentimes implicit assumptions that are being made because of these types of like address things on the DAP side so like for example uh in sign in with ethereum today there's an assumption that the account that you sign in with is also the account that you're going to use funds from if you're logging into like a D5 protocol and that's because of the way the API has been designed and

because the account is being reused even though it's not necessary for that interesting I wasn't aware of that cool um I think yeah I think that's it that's all the features that we have um also the last thing is the bundle cause I um I cannot I cannot have a demo right now but essentially I need that can use the multi-call that we have and they can offer a one-clip experience so the classic case is a proven deposit instead of doing it one by one you can do it in a simple TX and we're working with like

a few gaps so that they can support it all right [Music] if anyone is interesting to look we have everything open source from client to contracts to uh we're even building a bundle which is a piece of software that's going to operate in the P2P mempo of 437 in Python so if you're interested to contribute to the software as well then yeah please let me know awesome thanks for uh presenting I'm

really excited about candid I think it might be my wallet uh once it's deployed so awesome yeah great thanks everybody um I think that's about all we had to discuss today um we'll see you all in about a month I was just wondering if I could ask um if anyone had information on resources uh sorry can you repeat again um I know that there's an open round for account abstraction proposals

I was trying to find resources about how to write a successful proposal um uh I think I don't specifically have specific research on how to write a good proposal but but maybe others might have and I would be happy to take a look as well and then give you feedback uh we did make a proposal as well and we we asked feedback from like uh others in the space and that was helpful so I can also like help you out thank you that's awesome

all right thanks everyone take care all right thank you thanks everybody see you thanks