Zeal Deconstructed: How to Make a Safe Feel Deconstructed Like Revolut
Dappcon·Tue, Jun 17, 2025, 04:46 PM · 20:13
by Hannes
Transcript
Hey there everyone, my name is Hannes and I'm one of the builders of ZEAL. First off, how many here have used ZEAL? Can I get a show of hands? Oh, nice. Okay.
Well, maybe I can recruit a couple of more faces today. Not all the hands are up yet. I'm one of the builders of ZEAL. Most of the ZEAL team are former Revoluters. Not yet.
We spent years implementing the front-end of banking, helping shift the industry from high-street offices to mobile app, but realized that the user experience had changed, but the back-end hadn't really. And fundamentally, Revolut was still a normal bank built with traditional infrastructure. So with ZEAL, we saw the opportunity to change both the front-end as well as the back-end, but most importantly, to do it while protecting people's fundamental freedom to transact. So that's what I'm here to talk about today, how we're building ZEAL on top of battle-tested safe contracts. Nice to be after Lucas on that one.
And solving the problems for our target customer, which is the daily earning spender. But to prove that this model delivers more value directly to you, we have a special offer for everyone in this room, which is free money, but you won't get it now. You'll get it at the end of the presentation. So stick around and follow through. And this is to prove that the core to ZEAL's mission, which is to remove middlemen, we can pass more value back to the users.
So instead of paying for Google and Facebook ads, I'd rather pay you to use ZEAL directly instead of paying Google. So let's dive into how we make this possible. For those of you who haven't tried ZEAL yet and what it is, at its heart, ZEAL is a smart wallet that acts as an orchestrator for a suite of powerful financial services. We're not trying to reinvent everything. We're reintegrating the best-in-class services into a single seamless experience.
So we're building ZEAL for these earning spenders, someone who wants their money to be earning yield when idle, but still be available instantly when they want to use it. It all starts with a smart wallet built on safe and secured path keys, which means your wallet is protected by metrics in your phone, not a password or a seed phrase that you can lose. And we integrate directly with protocols like AAB and Sky and allows you to earn passive yield on your assets. And through our integration with Notis Pay, which maybe some of you know us for, you can also use those assets in the real world very easily via a crypto credit card, a debit card, where you can see the transactions with your card. This is me buying coffee yesterday, side-by-side, while I'm buying tokens, tokenized S&P 500.
So you have your on-chain and your real-world actions side-by-side. And also with free bank transfers, we have partners like Monero and Unblock that allows you to move money on and off easily. So by orchestrating these services, we create a simple and powerful experience, but this obviously raises a key question, how do we ensure that it's all secure? And we decided to not roll our own, but to build on top of safe smart contracts. So we're building on top of the standard vanilla safe 1.
4.1 contracts, the same battle-tested contracts that have been securing billions of dollars in assets for years. And by using this solid foundation, we are de-scoping that as part of our focus so we can build a constellation of other services around that. In terms of how I'm implementing this, when we integrated pass-keys, which I'll talk a bit more about, we've done that with a validator that checks your biometric signature, not as an external module, but as a signer on the wallet, and this is a security decision that allows us to not alter the core logic of the safe contracts and maintain security, but simply adding a new security to the front door. So by building on this trusted foundation, we minimize smart contract risk, but as we're solving this problem, we then introduce another question, which is how do you secure safe?
Typically with private keys and seed phrases, but we have a different approach to that. So probably all of you, or many of you, have had anxiety of figuring out what to do with a 12-word seed phrase or more, or a private key, which is a source of frustration for people in the industry, but even more, one of the biggest barriers for adoption for people outside the industry. So our solution is to replace them entirely with pass-keys to secure a biometric-based standard that's built into your phone, among other devices, but this creates a fundamental technical challenge because pass-keys, they use a cryptographic curve called FECP256R1, but Ethereum was built to understand a different type of curve, which is FECP256K1, and so they speak different mathematical language, and the common solution here is to use a centralized server to translate the signature, but that creates a centralized dependency. So we said, no, let's not do that. Let's focus on, we're here for decentralization, so in order to avoid this centralized point of failure, we decided to solve this problem on-chain.
So we built a pass-key validation contract, which is essentially an on-chain verifier for this curve, and this contract teaches the blockchain how to understand pass-key signatures. So a biometric signature is verified directly on-chain with no central dependency, making it more secure and decentralized like the network itself. So this helps us use the smart contracts without worrying about the private keys that otherwise would continue to be a big problem, but there's another issue then, how do we ensure that we have the same address across all networks? So how do we solve this address fragmentation? We do this by deploying the wallet deterministically, and we do this with a single bundle transaction when you use your wallet the first time.
In one operation, we construct the entire account architecture from ground up. We deploy this personal pass-key validator contract that I mentioned, which is a contract which basically is your on-chain identity. It's built to just verify signatures from your specific pass-key and nothing else. We use that address on the granular validator as the unique create-to salt to then deploy the safe smart wallet, which makes us have this deterministic address creation on all the chains where you use this account. And finally, we configure this as a multi-stage from the very beginning, where we, in addition to the pass-key validator, also have a secondary local private key, which is created one per device that you install your wallet on.
So the pass-key validator basically becomes your high-security root owner, controlled by biometrics, and then these locally stored private keys allows you to act with the speed of a traditional private key, but still doing it within the context of a smart wallet. Pass-key signatures are generally more expensive to validate on-chain, so that's why having a local private key as part of the multi-stage setup allows you to operate it faster and So this kind of architecture of both gives us the best of both worlds. So then you might ask, okay, if this appears tomorrow, what happens to my assets? Well, your funds are safe, nothing happens, because in Zeal, we think of ourselves as kind of a convenience layer on top of these different services. We're not a custodian.
We don't have access to your keys or your assets. Your wallet is the standard safe, careful control. You can go to apps.safe.global interface and you can connect to that with one of your signers and you can interact with a smart wallet there, even if Zeal is not around.
So what happens if you lose a device? Well, this is where the one-out-to-multi-stage setup becomes valid. Let's say you lose your phone, which holds your session key or your local smart private key. You get a new phone and you finance your Apple or Google account with your pass-key, which is this root key. It syncs automatically your wallet onto this new device, but it also works the other way.
So if you happen to lose access to your Apple or Google account with your pass-key, then your device or an exported session key can be used to control your wallet still. So there are different ways that you can make this work, depending on what you have access to. The bottom line is that the wallet is yours. It's designed with resiliency with multiple on-chain recovery paths that don't rely on Zeal and on us. So that's the kind of fundamental – the fundaments that this wallet is built on in terms of safe contacts and pass-keys.
But let's talk about some of the features and the stuff that you can do on top of this. So the problem here, people have money that's idle, doesn't generate yield, and then they have money that they spend and they have money that they do earn yield with separated from that typical bank account, right? You have your current account and your savings account. We have a solution that allows you to combine these two in a very smooth UX. We call the feature Recharge, but basically it works through these couple of steps.
So imagine it's a Friday night. Your wallet has a balance of €3,000. You have €2.8K in AVA earning 3.6% APY, and you have your card, you have €200.
You tap your NoSysK card at the cashier, and then four things happen in this flow at the same time. And for the user here, you just – I pay and it works. But what happens then is the tokens get pulled from your card safe, the merchants get their money, and then when the tokens get pulled from the card safe at the same time, a cash swap order is created to move money from AVA in this case over to the card safe to ensure that you continue to have money accessible to spend with your card. This way, you can maximize your yield while still being able to continue spending by having these two integrated in a very smooth flow. So another problem that we keep running into is a lot of different chains, different assets in different chains.
If you ask a Revolut user, is your account on Amazon WS, AWS, or Google Cloud Platform, or Microsoft Azure, they'll just look at you with a weird face, right? They don't know, and they shouldn't have to care. They also shouldn't have to care the difference between Optimism, Arbitrum, Polygon, and Nostradam, or whatever. They should just want to be able to use the assets when they want to do something, right? So our solution is to move away from telling the system how to do something and instead looking for the intents, right?
So instead of getting users to bridge assets over first and then swapping tokens to do it, say I just want to deposit 50 euro into my Nostradam card, then the user should be able to do that with assets from different networks in one click, in one go. And so this is what you can do now. You can deposit into your card, into Aave or Sky from a lot of different networks with a lot of different assets. It's funny, even though we have this feature, a lot of people still are in the old world of, I have to bridge the asset over and then do the swap, and then I can deposit. And then we say, no, you can actually do this with one transaction.
They're like, oh, okay. But that's not what normies, when people come in who aren't into it already, that's not how they think. They don't think I'm going to bridge between different chains, right? They just want to put the money into the card. And that's the type of use that we're building for.
So we work with intent platforms like Swaps.io. We integrate also with Bungie from the bidding stuff. There's all kind of tightly coupled inside the products. You can do things with less friction.
But for all this to work flawlessly, then the underlying transaction structure has to work solidly. Let's talk a bit about that and some of the problems there. Transactions are complex. So gas, if you have any onboarding money, crypto, right? Gas, what's that?
We subsidize all transactions in those exchanges. You really don't have to think about it. If you are on other networks, because it's a smart wallet, right, it's a safe account, you can pay for gas with a bunch of other tokens, all the major stable coins, for example, and a bunch of other tokens as well. So if you have any assets in your wallet, you can generally make that transaction. So you don't really have to think that much about gas.
Many confirmations, but when you're a smart wallet, you can bundle those, right? So you have fewer things you need to read through and confirm, and you can make it much more simpler for a user. We have played around with different relay. We work with different relay infrastructure. There's still a lot of fragmentation in 4337, right?
No consistent approach there. We hope there will be a public free market to provide a better UX brand users. Right now, every provider has its own type of approach, right? So it's not that standardized, even though there's a standard behind it. And we still see errors with RPCs and outages with not all providers that aren't comparable with what we would expect from a Web2 environment, right, where we target like less than 10 basis points of errors.
So there's still room to move forward to kill the error ratios across the board, not just us, but generally in the industry, I think. So, okay, let's say we have these transactions working, but fees, right? People are very fee-sensitive. Not if they're willing to do 100x on a meme coin, right? If you're going to make 100x, you're fine to pay 3% fees to on-ramp and off-ramp because you're rich anyway, right?
But if you're looking at daily finance and you're spending 3% to on-ramp to earn 3% in a year, that immediately defeats the purpose, right? So if you want to build a daily finance solution, which is what we're building with Zeal, you need to make sure that you can move money in and out of the account as easily and as cheaply as the normal bank transfer. So we have free on- and off-ramping with Monerium and Unblock inside Zeal to make this money be able to flow easily and smoothly. So let's say we have a working product with free and reliable transactions. We then get a flood of new users.
Next problem arises. How do we find the signals in what can be the noise? We've had our fair share of adopters. Mass installs, mass churn, low long-term retention, and it's easy to drown in that noise and not find the signal. We're building for earning spenders, so we're building for people who use their wallet in their daily life and still want to earn money, and these users have much higher retention, and they also give us feedback that's extremely valuable towards our mission.
So this is our target customer with Zeal. So we're now attracting and getting more and more earning spenders on board that are looking for reliable daily finance solutions, not just speculative stuff, and working hard to build trust and engagement with these users and listen a lot to them. If you have Zeal, there's a little chat button up in the top right corner on most screens. If you click that, then I get a notification, and I am your – if you want to chat with me, do that via that button, and I love to chat with you. So if you have anything you're wondering about or any requests or whatever, please talk to me.
I love doing notifications at 2 a.m. and talking. That's not a joke. I really do.
So here's that feedback loop so we can keep on building a better product for you and your daily finance use cases. So then, of course, we have this product features on real-world use cases and real-world people and using your crypto. When you touch the real world and real finance, then compliance becomes the big question. How do you handle that? And so with Zeal, we are a pure-play software provider, right?
So we don't store any personal information. We don't even know the names of our users unless you tell me in the chat, and I will know it. But we don't store names. We don't store IP addresses or those things, right? So we're like just a wallet, but it's made out of bytes and bits instead of leather.
And we work closely, because this is important, because we enable our users to connect to licensed financial use cases. We work very closely with partners who hold these various licenses that handle the various compliance questions. And we're connecting the users with those partners for those financial use cases, right? But our focus is to be a self-destructive wallet, a piece of software that you can use as an interface with many different, both regulated financial services as well as decentralized finance services. So the road ahead, today we're launching a special activation program.
We actually started rolling it out a couple of days ago, but today we're launching a turbo version for you guys. And next up, I'd like to show a program to empower Zealots to recruit more Zealots. And then a very focused cross on real-world utility and to increase utility for on-chain assets, and then geographic expansion and bringing Zeal and various services to more markets. The future of billing is one where you can earn while you spend, and I want you to join us. If you don't have Zeal already, please take out your phones and scan the QR code.
It will let you download Zeal with a special activation campaign code enabled. We have a special offer for everyone here. The first 100 people who register with this link and spend 50 euros with their card will receive a 40 euro reward. Even if you're not in the first 100, you will still get a reward. That will be five instead, so first come, first serve.
And this will allow you to experience the combination of your card together with earning. So you'll get your reward into Aave or Sky or that's the keys, and you can then spend it with your card. So you can get this flow of money where you can both earn and spend at the same time. Thank you for your time and attention. We're super excited to break down the barriers between the on-chain and off-chain world, make this thing just be finance world where things work.
Welcome to Zeal. That was great. So we've also got time for one question this time. Thank you very much for the nice bullet. I use it mainly for the closed pay card and all the other nice features I don't use because when I'm on mobile, I don't have a sheet where to write down all my transactions that might be tax relevant.
And that's just convenient for me that I do just other transactions only on a PC and not on the mobile wallet, although I would like to do, but not if there is no documentation which I might keep on with this information. And also I would like to know, is it possible to use a private RPC with a mobile wallet? Can you change that in the app? So a couple of things there. First, yeah, that's great feedback.
Thank you so much for letting us know that. We have heard that from some other people as well, that they want to have a more detailed account statement, which is a pretty standard feature for most Web2 banks, right? So we'll build that. Especially it comes around a lot of requests around tax season when that question comes up. We started by building your cumulative earnings.
You can see that now, how much you've earned so far in your earning accounts. But we'll build a more dedicated account statement feature where you can see it with wherever you are keeping track of your finances. So that's coming. We're not building it right now, but we hear you. We'll build it.
Thank you for the feedback. What's your next question? RPC, customer RPC. So yeah, you actually can use that on a desktop. So Zeal is a mobile app, but also a browser extension.
And in the browser extension version, you can add in your customer RPC. It doesn't work with smart wallets, so I talked a lot before about building built-in safe contracts. But you can import your private key, your seed phrase, your hard wallet, and connect your Trezor, your ledger, so you can use all your normal type of things. And if you do that on a PC, you can use customer RPCs. Not on mobile.
Yeah, we have that on desktop. If it's in demand for it, yeah, we'll build it. So thank you for this feedback, and we might add that to mobile. It's difficult with the smart wallets. Do you use a smart wallet, by the way, or no, private key?
Do you know if you use a smart wallet? Okay, okay. All right. I'll see you in the chat.
Automatic transcript — names and jargon may be misspelled.