Curvy Payments

Receive stablecoin payments without publishing your revenue

Stablecoin rails hand your numbers to anyone with a block explorer. Curvy Payments takes the payment and leaves your side out of it.

Non-custodial and independently audited. No token, no ICO.

0x7b3c…9af2 inbound
14:02 list price 49.00 USDC
14:09 list price 49.00 USDC
14:26 five seats, 40% off list 2,940.00 USDC
14:52 settled through Curvy •••••
Three rows tell a competitor your price and the size of your enterprise deal. The fourth tells them nothing.
Audited by Ethernal, with the report public on GitHub
Ethereum FoundationStarknet FoundationArbitrum FoundationLI.FI

What Curvy Payments is

A hosted checkout for merchants who accept stablecoins and would rather not publish their business.

The buyer pays the way they already do. The payment lands on a fresh Portal address and shields into the Privacy Aggregator, so the merchant behind it stays off the public ledger.

You hold the view key. That is the part most privacy tools get wrong: your accountant sees everything, and a competitor sees nothing.

What a public observer reads

  • merchant unknown
  • amount encrypted
  • buyer relationship not linked
  • revenue to date unavailable

What your accountant reads, with the view key

  • merchant Werkstatt GmbH
  • amount 340.00 USDC
  • buyer relationship order M-02
  • revenue to date full ledger

A public address is a public P&L

Point a checkout at one receiving address and you have published a live feed of your company. A competitor reads all of it with a block explorer and no relationship to you.

Revenue, daily

Sum the inbound transfers. That is your gross, updated every block.

Customer count and repeat rate

Distinct senders, and how often they come back.

Your pricing floor

Discounts and negotiated enterprise rates show up as amounts.

Your cost base

Suppliers paid from the same treasury put your margin one subtraction away.

Rotating to a new address per order does not fix this. Payments still arrive in a pattern, amounts still match your price list, and the sweep into a treasury collapses the whole set back into one entity.

How a private checkout works

  1. 01

    Request

    Your backend creates a signed payment request with the amount, the asset, and an order reference.

  2. 02

    Pay

    The buyer is redirected to a Curvy checkout page and pays from any supported wallet.

  3. 03

    Shield

    The payment lands on a fresh Portal address and shields into the Privacy Aggregator as an encrypted Note.

  4. 04

    Reconcile

    Your backend verifies settlement against the reference and releases the order.

One checkout, start to finish

Seventy seconds, no cuts. A buyer picks a product, pays in USDC, and the merchant's order status updates on its own.

0:00

The storefront

A normal product page with a Pay with Curvy button next to the price. No chain picker.

0:20

One approval

Curvy derives the payment address in the background. The wallet approves a single transfer.

0:35

Live settlement status

Each step clears on screen: signature verified, address created, funds received.

1:05

Confirmed both sides

The buyer gets a receipt. The merchant's Orders view updates with no manual step.

The address in this demo was created in the background for this order. Nothing on the buyer's side identifies the merchant.

Privacy costs less than the card fee

Curvy Protocol has no token and charges protocol fees instead. Fees are 0.1% to shield, 0.1% to aggregate, and 0.2% to unshield. There is no monthly minimum and no per-transaction flat fee.

Card rails on a $49 order

$1.72

A typical online card rate of 2.9% plus 30 cents, with your revenue visible to the processor and the scheme.

Shield + unshield on a $49 order

$0.15

Shield and unshield at 0.3% combined, with your revenue visible to nobody you have not given a view key.

The $0.15 example covers shielding and unshielding only. If aggregation applies, its 0.1% fee brings the total to about $0.20. Figures exclude network gas, which varies by chain. The card comparison uses an illustrative rate rather than a quote.

Private from the public, legible to your auditor

Tools that hide everything from everyone leave a finance team with nothing to work with, which is why serious businesses avoid them and their banks block them. Curvy Protocol was built the other way round.

View keys

Hand an accountant, an auditor, or a processor a key and they can reconstruct every payment. Revoke the access without touching your funds.

Transaction screening

Global Ledger provides KYT, alongside extended screening and deposit address tainting, embedded in the architecture rather than bolted on.

Selective disclosure

You choose what to disclose and to whom, per counterparty and per payment. Nothing is disclosed by default.

A real legal entity

Curvy Tech d.o.o. Beograd, with an EU holding entity in progress. There is a company to sign a contract with.

Who this is for

Software and subscription businesses

Accept USDC without turning your MRR into a public chart.

Privacy-preserving services

If your product is privacy, your payment rail cannot be what deanonymizes your users.

Marketplaces and payout platforms

Sellers get paid without their earnings being readable by every other seller.

Agents and machine payments

Metered API calls under x402. An API provider should not be able to profile a customer usage curve from the payments alone.

Public checkout vs. Curvy Payments

Property Public stablecoin checkout Curvy Payments
Merchant revenue Readable by anyone Held as encrypted Notes
Customer list Readable by anyone Not linkable on-chain
Per-order pricing Public Not published
Buyer-to-merchant link Permanent and public Not visible to public observers
Address reuse Standard practice Fresh Portal address per payment
Timing correlation Unmitigated Shielded by Portal Broadcasters
Audit path Forced and public Optional and key-gated
Settlement rails One chain at a time Multichain, aggregated on Arbitrum

Frequently asked questions

What is a private stablecoin checkout?

A checkout where the payment settles on-chain but the merchant identity and the buyer-merchant relationship are not readable by public observers. The merchant keeps a view key for disclosure.

Does the buyer need a Curvy account?

No. The buyer pays from a wallet they already use. The privacy work happens on the receiving side.

Is the buyer's transaction hidden?

No, and we will not claim otherwise. The buyer's wallet transaction is a public transaction. What it does not reveal is who the merchant is, or that this buyer and this merchant have a relationship.

How do I reconcile payments if the amounts are shielded?

Each payment request carries a unique reference. Your backend verifies settlement against that reference. The shielding applies to public observers, not to you.

Can my accountant see my revenue?

Yes. A view key lets finance or an auditor reconstruct your payment history without putting it on a public explorer.

Is this a mixer?

No. A mixer pools funds and gives you no disclosure path. Curvy Payments gives you a view key and a reference for every order.

What does it cost?

Curvy Protocol has no token and charges protocol fees instead. Fees are 0.1% to shield, 0.1% to aggregate, 0.2% to unshield.

Does it work with x402?

Yes. The facilitator supports one-off payments and batched settlement under EIP-3009 permissions.

Which stablecoins are supported?

USDC and USDT across the supported chains, alongside the other assets in the Privacy Aggregator.

Which chains does it work on?

Full support on Ethereum, Arbitrum, Base, Optimism, Polygon, BNB Smart Chain, Linea, Gnosis, Solana, and Tempo. Stealth-address support is available on Starknet through the legacy protocol.

Is Curvy Payments non-custodial?

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

Is the protocol audited?

Yes. Ethernal completed an independent audit and the report is public in the GitHub repo.

Your revenue is not a public good

Take stablecoin payments on the rails you already use, without handing your numbers to anyone who can read a block explorer.

Read the docs