Your members joined a community, not a public list
Members pay in USDC. Who belongs stays between you and them.

How a member list leaks
- block explorer
- → community wallet
- 0x5c21… 15 USDC
- 0x7d0e… 150 USDC
01 Someone opens your wallet.
- wallet lookup
- 0x7d0e… = jane.eth
- linked exchange account
02 Wallets match to names.
- public post
- Guess who’s a
- founding member…
03 Your members are outed.
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.
What your member sees
Three screens. No account and no browser extension. The private part happens on your side.
-
your site
Founding tier
150.00 USDC
Pay by card Pay with USDC or USDT01 One more button at checkout
-
hosted checkout
Amount due
150.00 USDC
Pay from walletNetworkArbitrumPay withUSDC02 Pay from the wallet they have
-
confirmation
Payment received
member #0381
03 Done. No account, no extension
An example of what your customer sees. Not a live checkout.
How it works
- Payment request Created
- ref
- member #0381
- amount
- 150.00 USDC
01
Join or renew
Your system creates a request
- Payment request Paid
- ref
- member #0381
- amount
- 150.00 USDC
- from
- customer wallet
02
Member pays
From the wallet they have
- Payment request Shielded
- ref
- member #0381
- amount
- 150.00 USDC
- from
- customer wallet
- to
- hidden
03
Shielded on arrival
Fresh address, every time
- 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
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 |
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.
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
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.
Built to be checked
Private, not unaccountable. How the compliance model works