Company

Ramp Network

Industry

Crypto fintech

Ramp Wallet

Ramp Wallet — Building a Non-Custodial Stablecoin Wallet from 0→1

Building a Non-Custodial Stablecoin Wallet from 0→1

Ramp Network built a non-custodial stablecoin wallet to enter the remittance market, leveraging its existing user base for frictionless onboarding. I was part of the core team (alongside the CEO, Head of Product, and PM) that shaped the product vision from early sketches to launch. The wallet now serves 25K+ users with ~10% weekly growth and is evolving from a single-chain stablecoin product into a multi-chain wallet supporting cross-chain swaps.

Context & Problem

Ramp Network had the infrastructure (on-ramp, off-ramp, in-ramp, compliance, KYC) and the user base, but no owned product surface at the level wallets did. Users always interacted with Ramp through partner products. The wallet was a bet on owning the relationship directly, starting with a high-value niche: people who need to send money across borders and are underserved by traditional remittance services. The core thesis: if we have millions of verified users, most wouldn't need to re-verify. One-click onboarding into a stablecoin wallet with built-in on-ramp and off-ramp. The wallet becomes the entry point, stablecoins become the medium, and Ramp earns on every conversion.

Strategy

The biggest strategic question was scope: single-chain or multi-chain? We chose to start single-chain (stablecoin-focused) to validate the core experience quickly, with multi-chain as the planned evolution. This was the right call — it let us ship faster and learn that the stablecoin-only value proposition wasn't strong enough without additional features like card integration and yield earning (via Morpho). That learning directly shaped the v2 roadmap. The non-custodial architecture was a deliberate choice with significant UX implications. It means users hold their own keys — more secure, but introduces complexity around transaction signing, seed phrases, and recovery. We mitigated this by pushing passkey-based authentication and designing features like send-via-link and send-via-username that abstract away wallet addresses entirely. The team was intentionally small: a blockchain developer, a frontend developer, a product manager, and me. Small enough for fast, concrete conversations — diverse enough to cover all perspectives.

Onboarding

The onboarding was designed to feel more like signing up for a fintech app than creating a crypto wallet. Here's the actual flow:

  1. Sign in — Social login (Apple, Google) or email. No wallet-first experience — identity first.

  2. Consent — Terms of Service and Privacy Policy acceptance.

  3. Biometrics — FaceID opt-in with clear benefits explained. This enables passkey-based transaction signing later.

  4. Username creation — User picks a username for receiving funds. Benefits are explained upfront. Privacy control: users can hide their username from public search. Validation ensures uniqueness and formatting.

  5. Tax residency — Regulatory requirement. Country of residence is pre-filled based on location. User confirms or updates.

  6. Wallet creation — A drawer explains what a self-custody wallet is in plain language. One tap creates the wallet via passkey. Email-based recovery is offered as a backup option.

  7. Wallet confirmation — Information about what's possible (and what's regulated). Wallet type and supported assets are clearly stated.

  8. Ready — User sees their empty wallet and is prompted to fund it.

    After onboarding, the user lands on the main app screen with a clear call-to-action to top up. Funding requires KYC verification (if not already completed through the main Ramp product), followed by payment method selection (card, Apple Pay, Google Pay, bank transfer, ACH). The user selects an amount, confirms, and USDC arrives in their wallet.

Send-via-Link & Hiding Crypto

Send-via-link was designed to make sending stablecoins as simple as sharing a link — no wallet address needed, no chain selection, no gas fee decisions.

From the sender's side: tap Send → choose "Send via link" → enter amount → confirm with biometrics (passkey signing happens invisibly) → share the generated link via any messaging app. Funds are locked in escrow (USDC on Base) until claimed, and the sender can revoke the link at any time to reclaim their funds.

From the receiver's side: tap the link → create an account (or log in) → claim the funds. If the receiver doesn't have a Ramp wallet, the link is their onboarding entry point.

Every transaction requires signing — a technically complex operation that most users have never encountered. The design principle was to make this entirely invisible. When a user sends funds, signs a claim, or creates a link, biometric authentication (FaceID/TouchID) triggers the passkey signing in the background. The user never sees a signing prompt, a transaction hash, or a gas fee. They tap, confirm with their face, and it's done.

This required careful alignment with the blockchain developer to understand exactly which actions require signing, what feedback the UI should show during the signing process, and how to handle edge cases (biometric failure, passkey not found, network timeout).

User Feedback & Evolution

The most valuable feedback was that users didn't see enough value in a stablecoin wallet without the ability to spend (card) or earn yield (DeFi integration). This was honest and correct — without those features, the wallet was essentially a holding account that only appealed to active remittance users. This insight is driving the v2 architecture: the stablecoin side evolves into an "account" with card integration and Morpho yield, while a new multi-chain wallet surface enables cross-chain swaps. Users will receive multiple wallets at onboarding and be able to swap between assets (ETH ↔ BTC ↔ USDC) without leaving the product — all non-custodial, all on their own keys.

Impact

  • 25K+ users and growing ~10% week over week

  • Onboarding completion rate: ~80%

  • Average time from signup to first funded wallet: Less than 10 minutes

  • Validated the remittance thesis and identified its limitations (needs card + yield to reach mainstream)

  • Multi-chain wallet in active development, enabling non-custodial cross-chain swaps

  • Architecture reuse: wallet leverages the same design system and component library as the widget

Tradeoffs & Reflection

We intentionally cut external wallet integrations, multi-chain support, and DeFi features from v1. The principle was: ship the smallest version that validates the thesis, then iterate. Some of these cuts — particularly multi-chain — are now being addressed in v2 based on real user feedback rather than assumptions. When building 0→1, the most important skill is knowing when to stop refining and ship. You can't iterate on something that doesn't exist. But that first version needs solid preparation, the right team, and the discipline to step away from what you've built for a few weeks before returning with fresh perspective. Many decisions that seem obvious in retrospect weren't obvious at the time — we didn't know how the market would respond, or whether users would trust a non-custodial wallet from a company known primarily as an on-ramp.

Testomonial

"Michał is a rare designer who truly lives in the problem space he works on. His deep crypto expertise and genuine curiosity show in every decision he makes. He brings incredible energy, strong product intuition, and real ownership to the team. When he commits to a problem, he goes deep and pushes for solutions that truly click. I genuinely love working with him."

Maciej Młynarczuk

Engineering Manager

Create a free website with Framer, the website builder loved by startups, designers and agencies.