New Ethereum talks, every Monday. The week's conference uploads by event, in your inbox.

Loading player…

Building a Privacy-First Wallet | Cloaked | Common S3nse - 2026

CryptoCanalFri, Sep 18, 2026, 12:00 AM

Transcript

[music] Okay. Hello everyone. We're just going to get started here. Um, so I'm Olivia and this is Blaine. And today we're going to talk about um when privacy hits the wallet.

So, we've spent this past year um building a self-custodial wallet and we've been uh working hard to bring privacy primitives into the wallet and we have some lessons we would like to impart, some learnings, some friction points. Um and actually the the biggest challenge um has been not the primitives themselves, but preserving that wallet experience that people expect. Um, so we're going to talk about two specific examples. We're going to talk about fresh addresses, otherwise known as stealth addresses and uh privacy pools. Um, and both of these primitives meaningfully improve privacy on chain for users, but they also both come with um difficulties and integrating in the wallet and things that we need to think about when we bring them into the wallet.

Um, and we like to think of this as sort of like the first wave of privacy in a self-custodial wallet. Um, and practical improvements that we can bring in to uh raise the privacy floor now. Okay. So, one second. Okay.

So, this is your typical wallet, right? This is what the vast majority of self-custody users are using. It is one address, one account. It's very simple to reason about um because the one address um is easy to query for one balance um one history one place to send from um and it's very easy to understand as an internal model because it matches what's on chain. But that simplicity also gives us really bad privacy uh exposure, right?

Like if you receive a payment to a single address wallet um that person who paid you can see everything you've ever done at that wallet in perpetuity. Um, it's terrible privacy. Um, but it's really easy to use and it's also got really good uh UX at this point in time. Um, so let's see. Okay, so for the people who actually care about privacy today, um, they're actually doing a lot of work, a lot of overhead, right?

They're taking their single address wallet, they're going to privacy.com, they're depositing there. They have to keep in mind like I have a balance at this wallet. I have a balance in the privacy pool. Oh, I'm going to withdraw it.

Okay, I need a fresh address. I'm going to make that manually. I'm going to remember that it's in this other wallet over here. Right? That's a lot of overhead um that people are dealing with today.

Um and frankly, most people are just not doing it right. The average crypto self-custody user is not dealing with privacy at all. Um they are just using a single address wallet and not thinking about it. Um, the other thing to think about here is gas, right? People have to manage gas at this new fresh address.

They have to deal with not linking addresses. It's an operational nightmare. Um, and the privacy comes from the operational discipline, not the wallet. The wallet is really being worked against here. Um, okay.

So, this brings me to my little graph. Um and you can see here there's number of users um on the y- axis and willingness to sacrifice UX for privacy. I would argue that the vast majority of people are not willing to sacrifice UX to get privacy. Um now if you ask them if they care about privacy, they will say yes. Right?

We've we've been doing this this past year. They want privacy. The same privacy that they get from their bank account balance. Right? the idea that it's private to them, only they can see it.

If someone pays them, they can't see all of their transactions. They expect that kind of privacy, but they're actually not willing to wait two minutes for their balance to load, right? They want it to be as snappy as the self-custody wallets are today. Um, and they're not going to run a node. They're just not going to run a node to to get their balance.

Um, so and this this is probably more of the people in the room, right? you care about um secrecy from infrastructure and you're willing to deal with a lot of friction to get this. Um so um we are arguing that these people are are currently underserved in the market. Um and that while we need to keep raising the floor like the work that these people are doing is extremely important. We need to keep raising the ceiling of of the privacy primitives that exist.

We also need to raise the floor for the people who are not getting any privacy right now at all in their crypto experience. Okay, now I'm gonna pass it on to Blaine.

Thank you. So yeah, just uh segue on from what Olivia just mentioned in the graph she she showed us, we have this large uh amount of users under the curve who I think it's pretty u it's it's not [clears throat] a big statement to say that these users aren't willing to sacrifice UX. They're in using crypto. they're probably trading and they just want um the the the basic privacy with um feature parity if not better UX than the existing single address wallet that Olivia mentioned. So, we're calling this um the idea of raising the the floor, the privacy floor.

And to do this, we want to I want to talk about two privacy features that allow us to do this. And then I want to mention the problems that they introduce and then at the end the trade-offs. Right? So today [clears throat] we have these single address wallets. um you know it might linear thinking might tell us okay let's use many addresses and actually this is a pretty good approach to preserving the unlinkability property that we want right and what I mean is when you start to give a wallet many addresses you introduce this idea of the balance is spread across tens dozens like thousands of addresses and from the external observer looking in, they don't they cannot calculate your entire balance because only you know all the addresses you own.

Um and uh this gives this nice property of unlinkability, right? And the fact that a single address in a way is this glass bank account. You can see everything that's happening. And um it's funny with our product at the minute, one [clears throat] of the the features that people tell us they love the most is this idea of getting a fresh address instantly from a static identifier. That means uh from like an ENS name.

So every time a user in our app resolves the their ENS name, it actually creates a brand new address that they own and only they control. So this is fresh addresses. But of course with every positive here, there's always some kind of negative because we're working with these decentralized systems. And the point I want to get across here is that okay, now we've just said, you know, your B your wallet now controls a thousands of addresses. What does that mean?

Right? We have to create now a service with a bunch of responsibilities. That means getting balances for every single address. That means in a Bitcoin UTXO style model, selecting which addresses we want to use in the next transaction, spending atomically from many addresses in the one transaction. Right?

So this requires a lot of primitives that have actually been built on built up over the years. So for example in cloaked we use 7702 we lazy deploy every staff address becomes a 7702 account and [clears throat] what happens is we're users selectively disclose to cloak to say okay I'm happy with you knowing my addresses for the convenience or for for that give uh selective disclosure I will take the property of good UX Right. So with cloaked you get instant fresh addresses, instant balances. You don't have to wait for any balances. Our selection algorithms work uh seamlessly and it looks like a normal send.

And what you've got now is a wallet that has balances spread across. So myself, I've got 5,000 addresses with uh dollars, tens of dollars at different addresses, and there's no lag, and it it just works. But of course there's a trade-off, right? If you were to do this client side, it would be a lot of work and we don't have that technology to keep the UX bar very high and also do this client side. So the idea here is that we want to serve the largest amount of users under the curve while giving them that UX because they're not willing to sacrifice it.

So that's the first one, stealth addresses, fresh addresses that we call them. [snorts] And then the second primitive is this idea of breaking the onchain link. And these are protocols most of you guys have probably used in this room. This is tornado cache. This is privacy pools.

It's rail gun. And this is if if the previous property was unlinkability. This is untraceability. meaning you can't [snorts] you c you can't uh link the deposit to the send. Okay.

And the idea here is that you can do this again all client side. And if you've used some of these client side secrecy wallets, you'll notice the trade-offs. They're not cross device, right? That's that's a lot of users under the curve. The graph earlier will not use a product if it's not cross device.

Secondly, if you want to get your balance if and the protocols on Ethereum mainet, you might be waiting 10 minutes, 20 minutes for your client to catch up with the chain. And then third, [clears throat] you've introduced a new concept of separate balances, which is again kind of tricky, a tricky UX burden. So, um, that's the primitive and it's really nice. We want this in our wallets. Side tangent.

Then related to this, we built stealth addresses. Um, we made the UX really nice, of course, with some trade-offs. And then we added privacy pools. And the original intention was let's make this a fully private send where the client doesn't have to selectively disclose any information to cloaked. And what we quickly found is it worked right but the UX was not up to par right.

It was it it started to to degrade very quickly. We had to manage new types of concepts client side. We had to ma manage notes. There was a livveness issue, right? You you got to be online if you want to have instant balances.

And that's all to say we have really strong cryptography. We have really strong privacy protocols. But if you're going to be a privacy protocol engineer today, you also need to be thinking about the wallet layer. and how these wallets are going to implement your primitives into their app. A question you could ask and it's very telling is why haven't many of the largest self-custodial wallets today added these privacy protocols that have proven themselves with large volume over the years.

Why has MetaMask not integrated a privacy protocol? And one of the reasons is doing all that work client side is a lot and it degrades the experience. So I'm going to hand it over to Olivia here for the next slide. Right. So both of those examples, the stealth addresses, the privacy pools, um they illustrate what we're trying to get across here, right?

which is that a lot of the privacy primitives that we have today, which are great um and really do give users onchain privacy, they break wallet assumptions. Um and this complexity, it has to move somewhere. Is it moving client side or is it being pushed more onto the server? In either case, the wallet itself is a more complex piece of software. um going from one account, one address to many many addresses, ephemeral addresses is a complicated uh move and the wallet needs to absorb this safely.

Um either the wallet's absorbing it or the user is, right? And right now the user's absorbing it, right? The user who wants privacy is managing um a MetaMask wallet, is manually creating addresses, is going to privacy pools.com. They're doing it themselves.

Um, but we're trying to push for a wallet that kind of absorbs more of this um, complexity. Okay. So, if I'm going to leave you guys with anything, it's that privacy has to survive contact with the wallet. Um, privacy we think should be boring. Like, we don't think that users should be thinking about notes, should be thinking about proof generation, should have to care that their balance is sitting across a thousand different addresses, right?

Right? Like it's silly to think that users are going to hold all of this in their heads. Certain power users will still want to do this. They like getting into the nitty-gritty, but the vast majority of users who want basic onchain privacy the same way that their their bank account is private. They're not going to deal with this.

Um, and they just want to be thinking, I'm receiving money. I'm sending money. It's as easy as a click and it loads instantly. Um, so the challenge to this room is we need to keep raising the privacy ceiling, right? We need to keep building these new primitives, proving them out, but we also need to help raise the floor.

We need to think about how the wallet is integrating these primitives, and we can't just say, "Oh, yeah, it's all right that it takes two minutes for the balance to load, and um you know, it's we're showing users a private balance, a public balance, a pending balance. It's too confusing for people." So, um yeah, the primitive isn't finished when the cryptography works. That is my final statement here. Um, and thank you guys for having us.

And I think we have like four minutes for questions if anybody has any. Yes. Yeah, totally. Stealth addresses are not perfect privacy. like they're um unlinkability, right?

So, they're great for receiving payments and not just totally revealing your balance trivially, but like you said, as soon as you send, if you do a max send from your wallet, you are linking all of your addresses together. So, that's why I really think stealth addresses married with privacy pools is the way to go, right? Because privacy pools, you need a fresh address that is yours to withdraw to anyway. Um, so I really think the I think ideally users don't care about that because it's as simple as you receive to a stealth address, it gets put into the pool potentially automatically and withdrawing always goes to a fresh address. We're not at that stage yet where like we can do that, but um there are other things we can do, right?

introducing tags so people know this is kind of in this bucket of addresses versus this and I'm linking this or this on chain. Um I think that the the transition phase is basically just being really transparent about what's going on. Um but yeah, ultimately I hope I hope users don't have to think about that. Do you have anything to say on that?

Yeah. Yeah, I think it's a great question. Um you know, we've spent a lot of time thinking about this. We have, like Olivia alluded to, we have this idea that when you receive to an address, uh you can tag that deposit. We have a whole flow in our app that allows you to tag a deposit and that gets categorized.

So when I go to send later, I'm not going to mix my salary payment with a payment from friends because then that's uh traceable onchain. And and then what Olivia also alluded to was this idea of auto depositing into a privacy pool. And I think this is like really interesting direction that we're trying to go in where when you receive to a staff address, right? If we just facilitated that deposit into the pool, you're automatically don't need to worry about um actually linking uh more than one stealth address on chain because that's that's an atomic action that actually then goes into the pool. So um I think there are solutions to these things, but if I was to say one thing, there's also tradeoffs.

And you know, I love secrecy as much as the next person. Um but in reality sometimes uh selective disclosure uh is actually really good for uh raising the bar on UX and um you know I I I I I love to use these protocols myself but it's also true that in many cases I'm quite lazy and I want the software to do it for me. So that's what we're doing here. Any other questions? Yep.

at the back there. Yeah, project's been live for the last four months. Um, processed over uh 1.4 million in volume and uh 1 million in deposits. So, we've been we've been live building it for eight months at this point.

Uh you can go to uh you can go to cloaked.xyz xyz clkd or you can if you want to register uh you can go to app.clkd.xyz XYZ and um you know it'll take you right through the registration flow. You'll get a uh you can choose your ENS name on the registration flow and that will be the name that generates these stealth addresses for you and uh yeah it's you know you don't need ETH in your wallet to to send transactions anymore.

It's all account abstraction and um yeah we think it's really nice. Oh, sorry. Yep. Um, what we've found is that we when we can convince people to actually deposit into the app, they stare. And I know that's that's a pretty big statement, right?

Like, oh, um, just use it and you'll love it and you'll never leave. But this is a recurring theme where people people get it pretty quickly that, oh, now I just have this identifier and um, I have a single balance that I look at. I don't need to think about addresses anymore. I don't need to think about multiple wallets anymore. Um so yeah to to answer your question the the platform is actually quite sticky.

Uh, and we believe it's sticky because of course the the statistics, but there's features in there where um when you start to tag deposits um this is uh user data that you're building up and uh we we actually don't know this all encrypted client side. So, we don't actually see the the tags that you add onto these deposits. But, uh, when you start to invest in to the app, uh, it actually gets better over time because when you kind of squint your eyes at it, it's it's um address management software. And um, yes, it's a wallet. Yes, you can send, you can swap, you can bridge, you can privacy pull a deposit.

But remember all of the pain points you had with five different wallets. You want to get ETH into a fresh wallet. So you deposit into Coinbase, you withdraw to Coinbase, get ETH in there, and it's a fresh address. This you can do all that now self-custodially, no KYC through cloaked, and um we find that users stay when they um when they actually start using the app. Yeah.

Yeah. I I mean that's like the fa my favorite part of the job is like when people reach out and say that um this is what they're looking for. I think what surprised me is that there have been a few people who've reached out um and said actually the stealth addresses are are all that I need. Right? They're not even using privacy pools.

they are looking for literally a an app that they can have a single entry point, an ENS name. They can hand it out. Um, this one guy is using it for a Discord server he's running and getting tips and he's getting payments to a stealth address every time. And that for him, and we've told him, you know, you can then move these things into the privacy pool and have even an untraceability. He's like, I don't care.

I actually just want it so that it's not trivially easy to look up how many tips I'm receiving. Right. That's one guy. Um there have been a few others that

Yeah. And and there there is another user persona there. Um and it it points to what Olivia said that there's people that want the stealth addresses for reasons that I didn't uh realize uh when we built the thing. So, when you're withdrawing from, let's say, like a crypto PayPal account or an exchange, a lot of people want to withdraw to a fresh address and then they want to deposit from that fresh address into a new exchange, right? And in that case, there there are exchanges upon deposit that will blacklist your funds if you've had any sort of interaction with any tainted address and and you're sort out of your control, right?

So um we see a lot of people just using cloaked to as a sort of bridge like a a safety gap uh fresh address no history before they go and do something else in the market and um that that was a really interesting flow that uh didn't expect. Another thing is stable coins, right? Stable coins can freeze your funds. And what is the heruristics for them to freeze your funds? It's your wallet's activity.

So there's one guy who um said this is his pain point. He said like if your wallet has done anything, you're you're all automatically under the spotlight of USDT contract, USDC contract, and they can freeze your fund funds. But if you have a fresh address, that's not in their heristic. They're not going to freeze a fresh addresses uh funds with no history. So that's another interesting um Exactly.

And uh risk mitigation. So it's not no longer honeypot one one single address. It's sort of like spread across many addresses. [snorts] The ENS is just a nice identifier UX thing. Thank you.

Automatic transcript — names and jargon may be misspelled.