Your members joined a community, not a public list

Members pay in USDC. Who belongs stays between you and them.

Watch the demo
community wallet
inbound
visibility
0x5c21…a9e0
member tier
15.00 USDC
PUBLIC
0x7d0e…33b1
founding tier
150.00 USDC
PUBLIC
0x5c21…a9e0
renewal
15.00 USDC
PUBLIC
via Curvy
member not linked
hidden
SHIELDED
Rows 1–3: anyone can read them. Row 4: nobody can.
Six members of a guild in black hats around a table, looking up at the viewer
Rembrandt, The Sampling Officials of the Drapers’ Guild, 1662. The members look up, as if someone has just walked in.
The problem

How a member list leaks

  1. block explorer
    • → community wallet
    • 0x5c21… 15 USDC
    • 0x7d0e… 150 USDC

    01 Someone opens your wallet.

  2. wallet lookup
    • 0x7d0e… = jane.eth
    • linked exchange account

    02 Wallets match to names.

  3. public post
    • Guess who’s a
    • founding member…

    03 Your members are outed.

On the public record

What a membership wallet leaks

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

  • Who’s a member Every paying wallet, linked to its owner.
  • Which tier Tier prices give it away.
  • Growth and churn Who joins, and who lapses.
  • Revenue Your income, for rivals to benchmark.
Customer side

What your member sees

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

Example screens
  1. your site

    Founding tier

    150.00 USDC

    Pay by card Pay with USDC or USDT

    01 One more button at checkout

  2. hosted checkout

    Amount due

    150.00 USDC

    NetworkArbitrum
    Pay withUSDC
    Pay from wallet

    02 Pay from the wallet they have

  3. confirmation

    Payment received

    member #0381

    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
    member #0381
    amount
    150.00 USDC

    01

    Join or renew

    Your system creates a request

  2. Payment request Paid
    ref
    member #0381
    amount
    150.00 USDC
    from
    customer wallet

    02

    Member pays

    From the wallet they have

  3. Payment request Shielded
    ref
    member #0381
    amount
    150.00 USDC
    from
    customer wallet
    to
    hidden

    03

    Shielded on arrival

    Fresh address, every time

  4. Payment request Confirmed
    ref
    member #0381
    amount
    150.00 USDC
    from
    customer wallet
    to
    hidden

    04

    Access granted

    Matched by reference

  • 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’re a member Member count
The public Can see Hidden Hidden
Other members Can see Hidden Hidden
You Can see Can see Can see
sees it hidden only if you share the key
FAQ

Questions

Do you support recurring memberships?

Each renewal is its own payment request, created by your membership system. The member pays it, and you extend access once it’s confirmed.

Can members see who else joined?

No. Payments land on fresh addresses that aren’t linked to you, so nobody can build a member list from the chain.

Is a member’s payment hidden?

No. Their transfer is public. What it doesn’t show is that it went to you.

Which stablecoins are supported?

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

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
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.

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

Keep membership between you and your members.

Watch the demo