DAPPCON 2025: One Account Many Doors: Unlocking Portable Smart-Account Experiences for Any dApp

DappCon 2025 · June 2025 · 23:30

A single smart account can be made portable across many different dApps instead of requiring a new wallet for each one, and this DappCon 2025 talk walks through what that takes. It digs into the account abstraction patterns needed to make smart accounts interoperable rather than locked into one app's infrastructure. The session frames portability as a key unlock for smoother onboarding and cross-application user experience.

Speakers

Topics

From DappCon 2025, hosted by Dappcon Berlin.

Transcript

Um, hi everyone. My name is uh Zeus. I'm the safe ecosystem manager at the safe foundation. Uh, and today I wanted to talk to you about building doors rather than cages. And just to set expectations, I'm not going to be talking for a full hour. This is more a talk of like 20 30 minutes. So don't worry about the time. Um, and what we're going to talk about is basically unlocking portable smart accounts for any DAP. And what I would like you to imagine right now is a beautiful building with glass walls, you know, this kind of skyscraper

experience, uh, which you're really attracted into. You go in and you're super happy to be inside, but the moment you turn around, you realize that the door locked behind you and you can't leave anymore. On the other side, we have a building with multiple doors that are wide open for you to enter and you can have different experiences behind them and you can leave whenever you want. This is exactly what I would like to encourage you to do. To build the doors that are wide open for the users to enter and allow them an easy way to exit rather than log them in within your products.

And let's be honest, like we're all lazy. I've been a developer myself. I know what it means to be a lazy developer. We go for the shortcuts. We go for the easier solution. And I'm sure that all of us have been through for the experience of going for a checkout to buy something and we were going through this long form that again asked us for our our address and what happens is that basically we rage quit and uh we don't end up buying the item that we were wanting to buy. Uh so basically the more complications the more friction the more likely that the user will basically leave.

The other thing is that the modern customers are jumping between different apps daily even like within one minute. What we can do is to go to WhatsApp, Twitter, Instagram, go on Telegram and all on the same phone all with the same identity with the same pass keys that allow us to enter them and there's no friction whatsoever and what users want is basically the same experience in web 3 as well. And lastly, the account portability is actually keeping your users loyal to your product rather than discouraging them from it. And the concept of making the account just work whenever a user wants to use your app is

something that will encourage them to use it more. It's basically compounding network effects where users do not have any friction because they can see their transaction history, they can see their balances, they can have all their settings uh that are associated with their account or they can have also their social graph and the portability doesn't dilute your brand. It's rather supercharging the adoption and the acquisition. Quick primer on the EOS and smart accounts. Um, when we talk about portability, this is something actually very typical for the EOAs. And actually, the fact that EOAs are portable. You can plug them into any app is what made

Ethereum grow so much. But let's think about it for a second as an debit card, credit card that you use in an ATM. What it can do, you just plug it in, enter your PIN, take the cash out. That's it. When we talk about smart accounts, it's again the same card. that you can use with your ATM. However, it adds an extra layer of flexibility. So you may have like a digital bank associated with it. You can have different apps within that bank. Even uh you can set different limits like for example say you cannot withdraw money post 10 p.m. for security reasons for yourself. Uh you want to split a payment with your partner or you want to set limits for example for your

children if they are using the card. This is exactly what smart accounts are. They are adding these extra functionalities for your users and they are making them uh more friendly and practical to use. However, they come with a price and they come with this need to make the solution really unique and shiny and attractive for the users which starts to slowly kill the portability because the apps want to really create a unique experience and you we can see that across the industry with the smart accounts. uh the apps are kind of going into this like shiny sign up sign in process for the users. Uh and this from our perspective

might be amazing because like we we own this we create a a unique flow. However, this again brings us back to the world gardens where we basically log the users in. Uh and this goes through gaming through social through uh DeFi dashboards. Now with the recent boom of the AI agents, what it's going to cause is basically the hidden lockins um that are going to like really limit the user who has to create a new account or go through an entire new process whenever they use your application.

How does it look like? Like the hidden lockets that basically are undermining the portability and the ownership. For example, the smart contracts behind the product are only validating the interface that's specific for that app. So if there is a transaction coming from a different interface, uh the contract will send check for the message sender and we'll basically block that transaction. So we only accept the traffic from within the product. Um gas sponsorship. So basically the marketing team will say the app is gasless. But actually the pay master only accepts um gasless transaction on polygon. So then if the user wants to

use any other L2 they will have to bridge their assets and by default they actually will have to leave your app because it doesn't promise what has been officially communicated. And then we also have MPC custody. And while multi-party computation is um is a comfortable security solution, it's actually a bit tricky because if the vendor is owning one of the shards offchain and you can't really export it as a user, you end up locked in. And if you want to change a provider, it's kind of like a kidney surgery. And you what

you really have to do is to migrate to a new account, migrate to a new wallet. So the account portability what it actually means it means that I can access my assets regardless of what is the interface or the device that I'm using and I do not need to take any migration steps. I don't need to create or bridge anything. And from the user perspective, it's about the freedom of moving and reusing our accounts without moving the assets.

Uh I can switch the devices and the interfaces without any issue. Think about uh your laptop. Think about your smartphone, two different smartphones, whether it's iOS, whether it's Android, um hardware wallets and so on. And lastly, you can think about this as email implementation where with your one email address, you can actually plug it into all the different uh platforms. You can use Gmail, you can use uh Outlook, you can use uh the Apple mail and whenever I log in, I see all the same emails coming in and coming out. Uh and if I can do it with an email, why shouldn't I be able to do it with my

onchain account as well? So let's talk about the pillars that are key for the account portability. Starting with the keys, basically the account portability should enable seamless key rotation so that the ownership stays flexible and secure. What it means for the users is that they can add and rotate the keys whenever they need. They can add new signaturaries, new um owners of the account. uh they can replace a lost iPhone with a new device or with a pass key or for example with a new hardware wallet. Uh and this all happens without

any issue. The account stays the same and as I mentioned this can be a rotation process or they can be added on top of each other. The second key are interfaces which basically allow us to to decouple the accounts from specific apps to be independent and be able to be plugged in into any platform um that they are interacting with. And what it means, whether it's a web- based product, whether it's an mobile application, whether it's a client that you uh interact with in the terminal, whether it's an independent bot that is

basically running trades for you 247, they are all equal citizens and they all have the same right to verify signatures uh from the same account. And moreover, there is no special contract code which is verifying whether this interface is actually the one able um to perform operations with the account. So we're not closing the door behind our users. And lastly, data so that we can preserve the onchain settings related to the account. Uh so that basically they travel with the account across the apps and the user doesn't have to redo them every single time on their new profile.

They don't have to worry about the imports. all the limitations, flexibilities, new functionalities that they want to add to their account are basically automatically imported in your product. So what it means we can export modules, guards and settings. The history, the transaction history is following you. Um and it also works crosschain regardless of which network uh your assets are on. So to recap the three pillars of account portability go as kids we have the keys we have interfaces and we have the data freedom pretty easy

to remember. So now safe the safe smart accounts are giving you portability out of the box. Um thanks to which you can really accelerate the ecosystem innovation because obviously without having this unique experience and tying the user to your product, you have to be more competitive to actually win their attention and make sure that they do want to use you. But with more competition, the market grows faster and there is more innovation coming in. When it comes to the safe smart accounts, the most important things uh safe contracts are open source. Anyone can have a look

at them. They've been audited. Uh anyone can deploy smart accounts on any chain at any time. Uh and actually the coverage of uh smart accounts is very broad. Uh moreover, right now I don't know if you've seen Lucas talk on Safecon, um basically we already have now pre-eployments for several different stacks. Um which means that whenever there is a new L2, for example, coming to optimism, the safe accounts will already have their addresses pre-eployed so that the users will be able to operate multi-chain.

Second of all, the safe smart account framework is modular. Modular is also the word we've heard quite a lot during this week I suppose. Um but it's been with us since the beginning. Um what the magic is here behind the smart accounts is that the safe contracts are very simple. But what we can do, what the the apps can do, what the users can do is basically build like this Lego structure out of the modules which add different functionalities, add more flexibility to the accounts, the guards which basically do pre and post transaction checks and can add limitations when it comes to the execution of the transactions. And also

we have the owners array which allows you to easily add, remove, check for owners that are linked to the specific account. And lastly, the contracts are battle tested. Um they've been adopted um by many different products uh and the accounts uh are used by individuals medium-siz organizations to really big players that hold their assets uh within the safe smart accounts. And if we have a look at an example, a one safe account can actually travel through a variety of different apps. Uh one use case would be um gaming where the user uh is simply playing they get

some assets maybe lose some assets after losing the assets they rage quit the game but then they log into a different dashboard can be a D5 product and within that D5 product which is completely unrelated to the game they can actually see their NFTts they collected or just lost on their dashboard. So they do not need to have a specific account for gaming, specific account for their D5 dashboard. It all belongs to them to the same account. The same user, the same account may be into trading where they delegate the trading to an AI bot which is working behind the scenes 247 and it will either automatically um approve the trades or

for example user can login through a dedicated UI or a different UI uh where they have the right for example to veto the transactions in a specific amount of time. Lastly, more of a organizational social case. Um, the user is part of a DAO and with the same account again that holds a specific DAO tokens, they can vote through snapshot um to take part in the governance. So we do not have any specific account creation any specific signin logics is the one identity and the one account that the user owns and it follows him throughout the diversity of different products and within the ecosystem we already have a lot of

different projects uh like worldcoin snapshot filever which actually provides the agenda for you guys during the entirecon um payment providers like bas uh cow house swap uh Brahma fluid key for example who's also based on uh on safe accounts and many many many more uh and these products already can dip into the uh the power of the account portability. So in terms of more practical matters let's have a look at how safe enables the these three key pillars um that they've been talking about before. So, first of all, the key freedom uh is enabled thanks to the owner array as well as the EAP 1271 um signature

standard, which basically allows you to have instant non-custodial key portability. And in terms of the actual use case, the user can swap their lost phone for a new device. Um, another phone, for example, hardware wallet. They can add a pass key. Um, and also allow other signers to perform the actions for them, like for example, right now the AI agents. Second of all, the interface freedom. Um the safe core SDK and the 4337 um pack allow any UI to connect to the same safe account. Um what we have in

the safe core SDK is um the protocol kit, starter kit, API kit, react unity hooks. Um and basically the front ends can regardless regardless really of the platform where where they live uh can create sign execute same transaction with a really short code snippet. Second of all, we also have the wallet connect support combined also with 4337 um which uh like regardless of which app is using is allow is allowing the user to uh use their same account across multiple different applications.

Then the data freedom and this is where the modularity comes in. The modules and guards basically are exporting the rules that are set for a specific safe account. Um and you can list them with get modules, get guards. Apart from that uh the team is currently working on the new version of the contracts 1.5 uh which will also combine the modules and guards together. So guards will be basically like built into the module um structure which will make it easier uh to implement. And what you can do with that, for example, set spending limits, um define the time locks, uh enable social recovery logic within the same safe account, uh and then any UI

integrating safe accounts can read these settings for a specific uh for a specific user. And lastly, something I didn't mention before is um the crosschain freedom which is basically enabled through the the terministic deployment counterfactual addresses. Uh and you can find that in the multi-chain deployment guide guides in our documentation. Uh and basically what it allows you to do is to premputee the same safe address on several networks. Um so that then other UIs can map it one to one.

More examples um in terms of different flows when we talk about like the game signup with a pass key and then going into a D5 dashboard. What uh you can do as a builder is basically use the start starter kit enable a pass key signer and import the same safe through the protocol kit from the SDK. Another example, guest sponsor uh sponsored mobile on boarding. Uh here we go into 437 user operations. You can use the relay kit which is using for example gelato pack that is paying the fees and then the same safe account remains valid in any other gas uh any other app that might not be for example gas free.

Then um managing crosschain treasuries uh you can deploy the deterministic saves multi with a multi-chain guide um across multiple L2s and then the the the solution that allows you to read those balances from different networks is the API kit. And lastly, we have the social recovery um that can be announced uh that can be enabled by the social recovery module. Um users can then add guardians to their account that will be the players um allowed to recover the account. Uh and uh the the toolkit that you have here

are the modules and as well the protocol kit. That's it from me. Let's build doors, not cages. And let's allow users to have a smoother experience and not have to create hundreds of v various accounts, hundreds of different storing hundreds of different seat phrases and having a more smoother experience. Thanks so much everyone. Any questions? [Music] Can you grab the mic?

I think it's working now. 111. Okay. So, uh you mentioned the like new version of the safe contracts being in development uh the 1 5.0 Z and that in this case the guards will be integrated like in the motor flow right so right now for example we don't see a wide adoption of the guards of the modules and probably kind of uh because of its complexity.

like to set up for the usual for free user like this kind of the configuration that for sure pro provides a lot of benefits but still rather too complex to get into get through and to set up. Do you see it being changing like with this new version of contract interaction or it's also like UIUX improvements on the safe itself? Do you mean the users as the address owner or you mean the developers integrating the uh yeah the address owners for example? So it because it's not maybe useful only for the like complicated like protocols with a huge I don't know the setups and everything for managing the treasury. I would say this

sits on the UXUI side um where we are going to make it easier with the new version of the contracts for the developers but then what the interface is for the user to set those guards because like I guess you're talking right now about safe. Yeah. But these can be these can be defined in any interface uh where they are integrated and basically um showcased to the user uh to set them up. Uh so it's really the what they see what they have to go through the friction that we've been talking about. Um so hopefully making it easier for the developers this will be also easier to implement for the end user. Okay. Thank you.

Perfect. Thanks everyone. By the way, we have Safecon going on upstairs on the fifth floor. Um so make sure to join uh the talks. There will be some announcements and clarifications about what is the current focus on safe. Thank you.