Sell digital goods without a public sales counter

Buyers pay in USDC. Nobody can count your sales but you.

Watch the demo
store inbound address
inbound
visibility
10:02
template pack
29.00 USDC
PUBLIC
10:04
course, launch week
149.00 USDC
PUBLIC
10:05
course, launch week
149.00 USDC
PUBLIC
10:09
via Curvy
hidden
SHIELDED
Rows 1–3: anyone can read them. Row 4: nobody can.
The problem

What a competitor can chart today

Sales during your launch public today
9:00 10:00 11:00 12:00 13:00 14:00

sales per hour

Sales during your launch with Curvy

Nothing to chart

The payments aren’t linkable to you.

Your launch, watched live from one address. Values are illustrative.

On the public record

What a store address leaks

All of it is readable from one public address, by anyone, for as long as the chain exists.

  1. 01 Sales per product Fixed prices map each transfer to an item.
  2. 02 Launch results Watch a launch work, live.
  3. 03 Pricing tests Every discount shows the moment it’s used.
  4. 04 Your buyers Every wallet that bought from you.
Customer side

What your buyer sees

Three screens. No account and no browser extension. The private part happens on your side.

Example screens
  1. your site

    Course: Design systems

    149.00 USDC

    Pay by card Pay with USDC or USDT

    01 One more button at checkout

  2. hosted checkout

    Amount due

    149.00 USDC

    NetworkArbitrum
    Pay withUSDC
    Pay from wallet

    02 Pay from the wallet they have

  3. confirmation

    Payment received

    order #5520

    03 Done. No account, no extension

An example of what your customer sees. Not a live checkout.

Payment flow

How it works

  1. Payment request Created
    ref
    order #5520
    amount
    149.00 USDC

    01

    Buyer checks out

    Your server creates a request

  2. Payment request Paid
    ref
    order #5520
    amount
    149.00 USDC
    from
    customer wallet

    02

    Buyer pays

    From the wallet they have

  3. Payment request Shielded
    ref
    order #5520
    amount
    149.00 USDC
    from
    customer wallet
    to
    hidden

    03

    Shielded on arrival

    Fresh address, every time

  4. Payment request Confirmed
    ref
    order #5520
    amount
    149.00 USDC
    from
    customer wallet
    to
    hidden

    04

    Delivered

    Download or key released

  • No customer account
  • Hosted checkout
  • USDC + USDT on Arbitrum
  • From $0.50
Visibility

Who sees what

The payer’s own transfer is always public.

who The payment That they bought Sales per product
The public Can see Hidden Hidden
You Can see Can see Can see
Your accountant Can see Only if you share your viewing key Only if you share your viewing key
sees it hidden only if you share the key
Practicalities

But what about…

Refunds
A new payment back to the customer, from your own process.
Tax and accounting
Your accountant reads every payment with the viewing key.
Compliance
Incoming funds are screened before they’re shielded.
Custody
You hold the keys. Curvy can’t move your funds.
Chargebacks
None. Onchain payments are final.
Customers without USDC
Keep your other methods. This is one more option.
Fit check

Is it right for you?

Good fit if

  • Your customers pay, or ask to pay, in USDC or USDT
  • Your revenue or customer list is sensitive
  • You’re happy to receive stablecoins, not fiat
  • You can add a server-side call to checkout

Not yet if

  • You need fiat paid into your bank automatically
  • You need chains other than Arbitrum
  • Your customers pay in Bitcoin or other coins
  • You need a no-code store plugin today
Trust

Built to be checked

Backed by Ethereum FoundationStarknet FoundationArbitrum FoundationLI.FI
FAQ

Questions

Can I sell low-priced items?

Yes. The minimum payment is $0.50, and fees come out of the payment.

When do I deliver?

When your backend confirms the payment against the order reference. Then release the download or licence key.

Is the buyer’s payment hidden?

No. Their transfer is public. It doesn’t show that it went to your store.

Which stablecoins are supported?

USDC and USDT, settled on Arbitrum. The minimum payment is $0.50, and fees are taken from the payment.

Keep your sales numbers yours.

Tell us how you take payments today, and we’ll show you where Curvy fits.

Watch the demo
On a call, we go through
  • Your payment flow, step by step
  • What stays visible, and to whom
  • How the SDK fits your stack
  • Your compliance questions