This button scrolls you to the top of the screen.

Case Study

Carbonmark's Wallet and Account Abstraction

UI / UX Redesign

An effort to remove some of the pre-requisite technical knowledge of blockchain in a Web-3 marketplace.

Quick Facts

  1. Used Lucky Orange to gather preliminary data about user pain points & watch recorded user sessions to see how the customers encounter & deal with those pain points.
  2. Reviewed dozens of recorded video meetings with customers who eventually turned us down, capturing the specific reasons they opted not to move forward with our product.
  3. Identified one key issue with our product from the above research.
  4. Prototyped a solution.
  5. Tested with our target audience.
  6. Adjusted the prototype based on user testing results.
  7. Final product ships next month.

An image of the prototype we tested with crypto-hesitant users


After speaking with a few members of our core user base, I got the feeling that our blockchain might be too crypto. You know- riddled with jargon and too dependent on the assumption that our users come to our product with a certain amount of prior blockchain knowledge.

Our team has Lucky Orange set up to record all our user sessions and give us some insights about when users drop off, how long they generally spend completing certain tasks, and compile a few other helpful metrics. So I dove into a few session recordings to see if my suspicions held any water. Sure enough, the vast majority of our potential users bounced upon the discovery that they needed a web3 wallet to interact with our product. So I hopped on a call with one of our lead salespeople.

"What's the main reason a customer decides not to move forward with us?" I asked him. He told me that for the most part, our potential customers generally fear anything Crypto. They just want to buy, sell, and retire carbon credits. They don't want to endure all the minutiae of finding a reliable web3 wallet provider, creating a wallet, loading that wallet up with USDC, and then connecting that wallet to Carbonmark, all before even making their first purchase. In fact, that whole process seems shady to them, and reduces our credibility in their eyes.

"I'll send you the link to our meeting repository. You can watch the meetings yourself. Although I'd recommend you do it on 2x speed. There's a lot of them," he chuckled.

The Problem

We created a web3 platform that solves a huge problem in the industry. However, the vast majority of our users fear the complexity of the blockchain at best, and flat-out despise web3 at worst. The very nature of our product seemed to repel our core audience. But existing on the blockchain constitutes the most essential element of our product. Without web3, our product literally could not exist. So I posed the question: Would it be possible to abstract away the web3?

Some sticky notes from my brainstorming session as I tried to work through the problem.


The team and I batted around several ideas. Ultimately we decided we'd offer a web2-style login experience. But each logged-in user would be issued a web3 wallet under the hood. The user perceives themselves to be simply logging into an eCommerce platform, depositing some funds into their account (which we automatically convert into USDC), and purchasing some carbon credits. But in reality, they're signing into a web3 platform and using crypto currency to exchange tokens on the blockchain.

The first draft of the prototype we tested


I put together a group of a dozen testers who had a self-reported crypto knowledge of 5/10 or lower. To counter-act the Dunning-Kruger effect, I also gave them a short survey about crypto currency and blockchains and adjusted their crypto knowledge scale accordingly. I wanted to test the following:

  1. Do users intuitively understand how to connect a bank account?
  2. Do users intuitively understand how to set up deposits?
  3. Do users intuitively understand the term "wallet?" (Or should we come up with a different term that users are more familiar with?)
  4. Do users intuitively understand how to withdraw funds from their Carbonmark-issued wallet?

Final Result

Conceptually, we seem to have nailed it. Users found the new designs very easy to use. Here's what we found:

  1. It took users an average of 26 seconds to connect their bank account and deposit USDC into their Carbonmark wallet.
  2. For 96% of users, the "set up deposits" button was the first thing they saw on the page.
  3. All 12 participants described the term "wallet" (with some variation) as a place to store your money or your payment methods or payment information.
  4. Cashing out took users an average of 48 seconds to "cash out" (sell their USDC for USD and then ACH that USD to their connected bank account). We'd like this number to be lower. It seems the friction came from a poorly labeled button (it was called "manage assets" instead of "cash out")

So, with the exception of the cashing out process taking a little bit longer than desired, these designs seemed to have solved our issues and met our goals. I made a few cosmetic adjustments before shipping the designs over to the devs for implementation:

An image of the final prototype shipped to the development team for implementation.
"Oh, it's like Dave & Busters! I just load some money onto my account and use that to play the games, which cost different amounts of tokens to play. Or in this case, I do it to buy and retire carbon credits." - One of the users who participated in the test.

Obviously, abstracting away the web3 from a blockchain-based application will affect far more than just the account-creation user journey. However, this is all I'm allowed to show for now due to NDA. As we ship the rest of the updated designs, I'll write more case studies about the process. For now, you can head to to see what's currently in production!

Sound like a service your product could use?

Reach out (it's easy)