Writing Essay

We interviewed our users. The money path was the product.

What user testing taught me about building a trading app: what we saw, what we decided, what I'd do differently, and the lessons I'd hand any PM or founder shipping fintech or crypto.

We interviewed our users in moderated sessions on our app, a product for buying tokenized U.S. stocks and trading perps with USDC. The format was simple. Someone shared their screen, used the app the way they normally would, and talked out loud. We stayed quiet unless they were truly stuck. If they put money in, we promised they'd get it back, plus gas and anything that went wrong.

I went in expecting feedback on the dashboard. What I got was a lesson I keep relearning: in a trading app, the chart is the easy part. The product is the path the money takes to get in, move around and get back out. Almost everything that hurt in those interviews happened on that path. The moments below are examples from them.

Here's what we saw, what we decided, what I'd do differently, and what I think carries over to anyone building a money product.

What we observed

One session went badly, and it taught me the most. The participant was a light trader who opened by asking whether he could buy Take-Two before GTA 6 comes out. He couldn't. Take-Two wasn't tokenized anywhere he could reach, and we only listed stocks we could verify were backed. That was a deliberate choice, and I still think it was right. But it was a reminder that people show up with a specific trade in mind, not a desire to browse.

Then he tried to fund. A swap from SOL failed. He tried again and it failed again. A couple of stock tokens didn't have enough liquidity to fill a small order. When he moved to the leverage side, he found out about a 10 USDC minimum only after the button refused to work. Nobody told him the deposit was a cross-chain move. When a transaction failed underneath, the screen just kept spinning. His summary of what he expected was short: it should work without any thinking.

When he tried to withdraw, the money left one side and sat on a bridge for several minutes. The gas step failed three times. The fees on the way out came to about $2 on a balance of around $12, which is a big bite for someone testing with a small amount. About forty minutes in, I stopped the session. Getting his money back mattered more than finishing the script. We refunded him and sent the reward we'd promised.

Another was with someone who'd used DeFi apps for years and works in marketing. He liked the rupee on-ramp through UPI and IMPS a lot. He called the web app beginner friendly and the mobile app cramped. But he had to deposit twice, once for spot and once for the leverage account, and he asked why one balance couldn't do everything. He had 6.1 USDC and couldn't deposit any of it, because the minimum was 10. He wanted the leverage control bigger, with 25%, 50% and 75% presets. He said the dashboard had too much on it. In his view serious traders already know what they want, so market intel panels are noise for them, and buy and sell should sit in the middle of the screen, not the portfolio total. He also said our branding looked like two other apps stitched together. Then he hit a real bug: he couldn't move funds into the leverage account at all.

A builder liked the Light mode for being clean but couldn't find what he owned. He had to go into a different dashboard to see his holdings. Then the app told him he didn't have enough SOL for a network fee. He said we should sponsor every transfer and withdrawal, full stop. He also asked a question I wrote down and kept: if I can buy this directly on the aggregator and trade perps on Hyperliquid, what brings me here?

One session came right after India's Enforcement Directorate raided several crypto on-ramp companies. The participant was a developer who wanted to buy U.S. stocks with rupees. He couldn't. The rupee on-ramp we depended on had gone down with the raids, and we honestly didn't know when it would come back. I wrote about that crackdown in the India on-ramp essay. He didn't hold any SOL, so crypto wasn't a fallback for him either. He clicked "add funds" and nothing opened. He left without depositing a dollar.

What makes that session hard to forget is that he liked the product. He said getting started was faster and easier than the mainstream Indian investing app he'd used before, with far less paperwork. He wanted tax documents for filing, wanted to find the "how it works" page again, and thought the Pro screen was cluttered. But his one-line pitch to a friend was positive. He just had no way to put money in.

Chart titled What users hit, step by step, from our user-testing interviews. Onboarding: faster than the investing apps they already used; couldn't find how it works again after the first screen; rewards tiers felt like a game nobody explained. Deposit, marked worst: rupee on-ramp down after the raids; two balances for spot and leverage; 6.1 USDC in the wallet but the button disabled because of a 10 USDC minimum; not enough SOL for the network fee. Trade: cluttered Pro dashboard; leverage control too small with no presets; holdings hard to find in Light mode; thin liquidity on some stock tokens. Withdraw: a failed swap left the screen spinning; a bridge withdrawal stuck for minutes; about $2 of fees on a balance of about $12; we stopped the session and refunded.
Where people got stuck in our user interviews. Deposit and withdraw did most of the damage.

What we decided, and why

The same problems came up again and again, clear enough to act on, and every decision had a cost.

We went invite-only. The marketer suggested it first, pointing to apps that had built demand with a handful of codes at a time. We agreed, but not mainly for the hype. We had just watched a user's money get stuck on a bridge. Opening the doors wider would have multiplied that moment. Invite-only let us grow in cohorts we could actually support. The cost was slower growth while the market was paying attention. I'd make the same call again. In a money product, a stable small launch beats a loud broken one, because the people you burn early don't come back to check whether you fixed it.

We covered the fees completely. Network fees and withdrawal fees, all of them. The builder said it plainly, and the failed-withdrawal session proved it. Asking someone to hold SOL so they can move USDC is asking them to solve our problem. A $2 exit cost on a $12 test balance tells a new user the product isn't for small amounts, and small amounts are exactly how people try you first. It cost us money. I think of unsponsored fees as a tax on your smallest and newest users, which is the worst group to tax.

We fixed the bugs right away. The swap failures, the withdrawal errors and the leverage-transfer bug went to the top of the list ahead of everything else. We had a long list of good ideas from these sessions: branding, a ticker, clearer rewards, panel layouts, a bigger leverage control. The rule I used was simple. If a problem can make someone wonder where their money is, it goes first. Clutter costs you attention. A silent failure costs you trust, and that's much harder to win back.

We fixed the money path and cleaned up the onboarding funnels. Fewer steps between signing up and a first trade, clearer messages when something fails, and constraints like minimums shown before the click instead of after.

We kept the built-in wallet. Several people asked to connect Phantom or MetaMask. We said no on purpose. Our wallet was embedded and non-custodial, powered by Privy. Connecting an external wallet is hard for new users, and it's where a lot of them quit. External wallets also ask for a signature on every action, which breaks automation and anything agentic. An embedded wallet can act within the permissions the user set. One wallet model also meant one funding flow to make reliable. And because users signed in with email, we could reach them with newsletters and in the app, not just when they happened to open it.

We added more on-ramps. After the outage we didn't stop at one backup. We added multiple on-ramp providers. Then the government shut that path down too. I want to be honest about this one, because it's the decision that taught me the most. Adding providers inside the same country and the same regulatory regime didn't reduce our risk. It just gave us more doors in the same wall. When the rule changes, every door closes at once.

What I'd do differently

I'd spread the app across regions from the start. That's the big one.

Early on, a VC we met gave us advice drawn from his time at FTX. Launch in developed markets like the EU and focus there, he said, because that's where the bigger numbers are. We didn't follow it. We started with India because that's where our earliest users were already signing in and using the product, and that pull felt like the stronger signal. It concentrated us in one country. When India squeezed the on-ramps, there was no second market to lean on.

The frustrating part is that we had users in Germany. They were a real signal, and we should have concentrated there. We didn't understand the culture well enough to have the nerve to focus on it and pivot. Comfort with a market is not the same as a good bet on it, and I let the first stand in for the second.

A few smaller things still hold. I'd build one balance from day one. Splitting spot and leverage made sense for our architecture and none to the user, who had to understand our plumbing just to place a trade. I'd design the failure states before the happy path. The worst moment in that failed session wasn't the failed swap. It was the spinner that kept going after the transaction had already failed. I'd ship a smaller Pro mode, because the people we built the intel panels for told us they were in the way. And I'd pair sessions like these with a group using the app for a week. As the developer put it, half an hour shows you first impressions, and a week shows you where the friction really is.

What carries over to any PM or founder

De-risk everything you can. A startup is already risky enough. Jeff Bezos has described what early-stage companies should do with their first money: "you go about systematically trying to eliminate risk," picking the biggest problems and removing them one at a time. He said it in a 2001 interview with the Academy of Achievement. We worked hard on product risk and payments risk. We left regional risk sitting there, and it was the one that hit.

A trading app is a money-moving app with a chart on top. If you're a PM on one, spend most of your time on deposit, transfer and withdrawal, because that's where users decide whether to trust you.

Redundancy inside one jurisdiction isn't redundancy. Coverage only counts if the path stays open and the person can finish the transfer.

Every minimum, fee and extra token is a wall someone will hit with 6.1 USDC in their wallet. Put it on the screen early, or remove it.

A failed transaction that keeps spinning is the product telling a lie. Users forgive failures. They don't forgive not knowing where their money is.

Stop the session when someone's money is stuck. The research can wait. How you handle that moment is the most honest product demo you'll ever give.

Pick the wallet model that fits where the product is going. If you want automation or agents to act for users, a signature on every action is a ceiling. I've come back to this from another direction in my essay on agentic commerce: whether it's a person or an agent, the moment that decides everything is getting the right money to the right place.

The hardest question in those interviews came from the builder: why would I come here instead of going direct? A distribution product has to answer it with a smoother money path, because the assets are the same everywhere.

There was one thing users liked without being asked. Getting started was fast. Nobody complained about onboarding, and several compared it favorably to apps they'd used for years. It just turns out a fast way in only matters if the money can follow.

Related on the site: why squeezing India's on-ramps is the wrong move and the funding gap in agentic commerce. More in the writing hub.