Curvy Payments

Get paid in stablecoins without making your business public

Customers pay as usual. Only you see the totals.

Watch the demo
0x7b3c…9af2
inbound
visibility
14:02
list price
49.00 USDC
PUBLIC
14:09
list price
49.00 USDC
PUBLIC
14:26
5 seats, 40% off
2,940.00 USDC
PUBLIC
14:52
via Curvy
hidden
SHIELDED
Rows 1–3: anyone can read them. Row 4: nobody can.
Viewing keys

Same payment. Two views.

Every payment settles onchain. Only your viewing key can read it.

  • The public A transfer to an address nobody can link to you.
  • You Merchant, amount, order reference and running revenue.
  • Your accountant Everything you see, if you share the key. It can’t move funds.

The public

  • merchant unknown
  • amount encrypted
  • customer not linked
  • revenue unavailable

You, with your viewing key

  • merchant Werkstatt GmbH
  • amount 340.00 USDC
  • customer order M-02
  • revenue full ledger
The problem

A public address is a public P&L

Point a checkout at one address and anyone can read your business from it, for as long as the chain exists.

  • Revenue

    Sum the transfers. Updated every block.

  • Customers

    Count, and how often they return.

  • Pricing

    Discounts and enterprise rates.

  • Costs

    Suppliers paid from the same wallet.

How it leaks

From address to P&L in three steps

  1. your checkout
    • Pay to: 0x7b3c…9af2

    01 Your address is on every invoice.

  2. block explorer
    • 312 payments this month
    • total: 41,880 USDC
    • top customer: 0x2ce8…

    02 A rival sums the transfers.

  3. rival’s deck
    • Their revenue: ~42k/mo
    • Their biggest client: …

    03 Your numbers are in their pitch.

Payment flow

How it works

  1. Payment request Created
    ref
    order M-02
    amount
    340.00 USDC

    01

    Create a request

    Your server, one per order

  2. Payment request Paid
    ref
    order M-02
    amount
    340.00 USDC
    from
    customer wallet

    02

    Customer pays

    From the wallet they have

  3. Payment request Shielded
    ref
    order M-02
    amount
    340.00 USDC
    from
    customer wallet
    to
    hidden

    03

    Shielded on arrival

    Fresh address, every time

  4. Payment request Confirmed
    ref
    order M-02
    amount
    340.00 USDC
    from
    customer wallet
    to
    hidden

    04

    Order confirmed

    Matched by reference

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

See it in 70 seconds

A customer pays in USDC. The order confirms on its own.

Compare

Public checkout vs Curvy

The same stablecoin payment, settled two ways.

Feature Public checkout Curvy
Revenue hidden from the public No Yes
Customers not linkable to you No Yes
Fresh address for every payment No Yes
Arrival timing shielded No Yes
Full record for your accountant Yes Yes
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.

How the compliance model works
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

Private, not unaccountable. How the compliance model works

Audited by Ethernal Full report public on GitHub Open-source contracts github.com/0xCurvy Published research Stealth address protocols
10+ years together Two PhDs in ZK and cryptography
Screened at the door Global Ledger checks incoming funds
Non-custodial You hold the keys. Always.
Viewing keys Your accountant sees everything
Settled onchain USDC and USDT on Arbitrum
Backed by Ethereum FoundationStarknet FoundationArbitrum FoundationLI.FI
FAQ

Questions

Does the customer need a Curvy account?

No. They pay from the wallet they already use. The private part happens on your side.

Is the customer’s transaction hidden?

No. Their transfer is public. It doesn’t show who received it, or that this customer buys from you.

How do I reconcile shielded payments?

Each payment request has a reference. Your backend confirms against it, and your viewing key shows every payment.

Is it non-custodial?

Yes. You keep your keys. Curvy never holds your funds.

Which stablecoins and networks?

USDC and USDT, settled on Arbitrum. Fees are taken from the payment, with a $0.50 minimum.

Your revenue is not a public good.

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