Credit Card Onramp for sBTC: Looking for Solutions (MoonPay, Coinbase, etc.)

Following up on the discussion about smart wallets and onboarding in Treasury Committee 2026: BD + Marketing + Growth Wishlist - #27 by StacksArt — I wanted to share what we’ve learned exploring credit card onramps for Pillar and see if others have found better solutions.

Our Use Case

Pillar uses passkey-authenticated smart wallets. Users who don’t have crypto need a way to fund their wallet. Our ideal flow:

  1. User clicks “Buy with Card” in-app
  2. Embedded widget lets them purchase BTC with credit card
  3. BTC is sent to a taproot (bc1p) address generated via Emily API
  4. sBTC bridge automatically mints sBTC to their smart wallet

This isn’t a simple “buy STX to a Stacks address” flow — we need BTC sent to a custom Bitcoin L1 taproot address.

What Works Today (Mainnet)

We already have this working on mainnet:

  1. User opens “Deposit BTC” in Pillar
  2. We generate a taproot deposit address via Emily API linked to their smart wallet
  3. User buys BTC on Coinbase/Kraken/Cash App with credit card
  4. User withdraws BTC to the taproot address
  5. sBTC bridge mints sBTC to their smart wallet

This works. The UX gap is that users have to leave our app, go to an exchange, buy, copy/paste the address, and withdraw manually. We wanted to embed this flow directly in our app.

The Coinbase Paradox

Here’s what’s frustrating:

Coinbase (the exchange): If a user has a Coinbase account and buys BTC, they CAN withdraw to any Bitcoin address including taproot (bc1p). This is exactly what our users do today — it works.

Coinbase Onramp (the developer widget): Does NOT support Bitcoin L1 as a destination network. Supported networks are only: Base, Ethereum, Optimism, Arbitrum, Polygon, Avalanche, Solana, BNB Chain. You can buy BTC through the widget, but it stays in their Coinbase account — the widget cannot send to a custom Bitcoin address.

Why the gap? Coinbase Onramp seems designed for EVM/smart contract wallets, not Bitcoin L1. The functionality exists on their main platform, just not exposed through their developer API.

Other Options

MoonPay

  • Cost: $3,000/year subscription
  • Fees: $3.99 minimum / 4.50% per transaction
  • Supports: BTC to custom addresses (taproot support needs verification)
  • Integration: Embeddable iframe widget

Compare to Coinbase’s fees: 2.5% credit card / 0.5% ACH — MoonPay is significantly more expensive for users, plus the $3k/year is steep for indie builders.

Transak

  • Haven’t fully evaluated, unclear if they support taproot addresses

Questions for the Community

  1. Has anyone found an onramp provider that supports BTC withdrawals to custom taproot (bc1p) addresses with embeddable widget + competitive fees?
  2. Is there appetite for a shared/subsidized onramp integration that Stacks ecosystem apps could use?
  3. Should someone reach out to Coinbase about adding Bitcoin L1 support to Onramp? Seems like a natural fit given they already support BTC withdrawals on their main platform.
  4. For those building with sBTC: what onboarding flow are you using for users who don’t have crypto?

Would love to hear what others have discovered.

1 Like

Just reiterating what I proposed in the Pillar group here.

Perhaps the better UX work around for fiat onramp is through USDC?

User pays with credit/debit card through moonpay, transak, etc into USDC on Ethereum. Then USDC is routed through bridge to USDCx. USDCx then funds whatever is needed in the app.