PrivacyARC Overview
PrivacyARC is privacy infrastructure on Arc Chain. It breaks the on-chain link between who paid and who was paid, by routing USDC through a shielded pool in randomised amounts and at randomised times, and exposes it through two payment surfaces: Private Pay for people, and Agent Rails for machines.
The same confidential settlement core serves both consumers and autonomous agents. People pay by phone number; agents pay by x402. Neither exposes balances, counterparties, or origin on-chain.
What PrivacyARC is
PrivacyARC is a privacy layer for USDC settlement on Arc Chain. A deposit lands in a single-use holding wallet, is broken into randomised chunks spaced minutes apart, and enters a shielded pool through intermediate wallets. Payments are then settled out of that pool by an intermediate rather than by you, so the amount you deposited and the payment that leaves do not line up in value, timing, or sender.
Privacy here is traffic analysis resistance, not cryptography. Balances are ledger entries, not ciphertexts, and the pool authorises settlement by a relayer allowlist rather than by verifying a proof. That is a real and useful guarantee, and it is a different one from encrypted balances — so it is stated plainly rather than implied. See Architecture for exactly what each component does.
What you can do today
Pay any phone number. The recipient gets an SMS claim link — no app, no seed phrase, no gas. Funds sit in an SMS escrow contract until claimed or refunded.
Issue an agent passport with per-transaction and per-day spend caps enforced on-chain, and a kill switch you control that freezes it immediately.
Your balance sits in the shielded pool under an intermediate wallet, not your own address. Nothing on-chain ties the pool entry back to the wallet that funded it.
Deposit in the open, move inside the pool, withdraw to a fresh address. The deposit and the withdrawal share no on-chain link.
Product hierarchy
- Privacy infrastructure — the shielded pool, the splitting pipeline, and the intermediate wallets. Everything else is built on it.
- Private Pay — the consumer product: deposits, username and address payments, pay links, withdrawals. Phone-number payments are built but switched off pending SMS delivery.
- Agent Rails — the extension: private x402 payments and agent passports with on-chain spend caps.
Private Pay
Send USDC to any phone number. The recipient claims from an SMS link — wallets optional, privacy default.
How a payment works
- Deposit — send USDC to a single-use holding wallet generated for that deposit. You sign an approval and the deposit itself.
- Shield — the backend splits the deposit into randomised chunks, spaced minutes apart, and moves each through an intermediate wallet into the pool. Your privacy tier sets how many chunks and how far apart.
- Send — pay a username or an Arc address. An intermediate wallet settles it out of the pool, so the payment does not originate from your wallet.
- Withdraw — move USDC back out to any Arc address, ideally a fresh one.
Payments to a phone number are built and deployed but switched off in the Dashboard until SMS delivery is configured — the control is labelled “soon”. Pay links use the same escrow contract and work today; only the delivery channel differs.
Privacy tiers
| Tier | Chunks | Spacing | Trade |
|---|---|---|---|
| Full | Up to 4 | 2–6 minutes | Hardest to relink, slowest to settle |
| Semi | 2–3 | 1–3 minutes | The default |
| Standard | 1 | None | Settles at once; the pool entry matches your amount |
Splitting and spacing are the whole mechanism, so a tier is a real trade of settlement speed against how hard your deposits are to relink — and nothing else. Set the default in the Dashboard’s Privacy Centre.
Pay links
Create a one-time link for a fixed amount and share it anywhere. The payer opens the link, reviews, and settles. Unclaimed links auto-refund after 7 days.
Withdrawals
Move USDC from your pool balance back to any public Arc address. Send it to a fresh address to keep the exit unlinked — withdrawing to the address you deposited from undoes the separation the pool bought you.
Agent Rails
An extension of the privacy core for autonomous agents: private x402 settlement, portable identity and reputation, and hard on-chain spend limits.
Private x402 payments
x402 is the HTTP-native payment handshake: a service responds 402 Payment Required, the agent pays, and retries with proof. PrivacyARC settles x402 payments out of the shielded pool, so the resource operator is paid by an intermediate wallet and never sees the agent’s own address or balance. Live on testnet — the Dashboard’s terminal runs the real handshake.
Agent identity
Each agent gets a non-transferable passport in the registry: an on-chain handle with an owner, a verification flag and a revocation flag. The interface is shaped after ERC-8004 — register, verify, revoke, metadata — but the contract is purpose-built and does not inherit the standard. Reputation today is a counter of completed settlements, not a scoring system.
Agent passports and spend caps
A passport carries hard spend caps enforced on-chain: per transaction and per day, the daily counter resetting on the UTC day boundary. Caps are contract-enforced, not policy-enforced, so an agent cannot exceed them even if its own logic is compromised — and the cap is consumed in the same transaction that checks it, so two concurrent payments cannot both pass the check and together overspend.
A passport is a registry entry, not an ERC-4337 smart account. There are no session keys and no per-counterparty limits. Payments are submitted by this backend, which the pool authorises as a relayer.
Kill switch
Every passport has an owner-controlled kill switch. Revoking it freezes the agent's ability to transact immediately, on-chain, without touching the agent's runtime.
Paying as an agent
There is no published SDK yet. Today the Dashboard’s AI / x402 terminal is how you drive a passport end to end — select one, request a quote, and settle it against its caps:
parc> agents
parc> agent 0x… # pay as this passport; its caps apply
parc> x402 https://api.example.com/paid-endpoint 0.25
← HTTP 402 Payment Required
→ settling from shielded balance…
✓ paid 0.25 USDC · HTTP 200 OKThe terminal calls the same endpoints a client library would. A packaged SDK is planned, not shipped.
Testnet Guide
PrivacyARC is live on the Arc public testnet. Everything you can do on testnet today, and how to try it.
Network details
| Network | Arc Testnet |
| Chain ID | 5042002 (0x4cef52) |
| Gas token | USDC (native, stablecoin-denominated fees) |
The Connect Wallet button in the navigation adds or switches to Arc Testnet automatically in MetaMask.
What to test
- Deposit and shield — deposit USDC and watch it enter the pool. The minimum is 3.05 USDC, because a smaller amount cannot be split once gas is reserved.
- Pay — send to a username or an Arc address, then withdraw to a fresh address.
- Pay links — create a one-time link, claim it, and refund an unclaimed one.
- Privacy tiers — set Standard, then Full, in the Privacy Centre and compare how the same deposit reaches the pool.
- Agent Rails — create a passport, set caps, settle an x402 quote under it in the terminal, then breach the cap and watch the contract refuse.
Arc Testnet USDC has no value, and the faucet at faucet.circle.com issues it freely. Transactions here are real transactions on a test chain — they cost test funds, they can fail, and nothing on testnet is a live mainnet payment. The Dashboard labels testnet state throughout.
Mainnet Transition
Arc public mainnet launches September 16, 2026. PrivacyARC's roadmap is staged so every layer is proven on testnet before it settles real value.
Roadmap
- Private Core — the shielded pool, randomised split shielding, and the PARC fee flywheel.
- Consumer Reach — SMS escrow, claim links, pay links, and refunds.
- Privacy Tiers — Full / Semi / Standard shielding profiles, and settlement by an intermediate rather than your own wallet.
- Agent Rails — private x402 and agent passports with on-chain spend caps.
- Arc Mainnet Launch — September 16, 2026.
What changes at mainnet
The same contracts and the same interfaces move from chain 5042002 to Arc mainnet (5042). Testnet state does not carry over: balances, escrows, and passports are re-initialized on mainnet. The Dashboard will prompt a network switch at launch and clearly label which network you are on at all times.
PARC fee flywheel
Protocol fees are collected on pool exits and split into buyback, reward and treasury shares by a configurable ratio. Today those shares are computed and recorded, not executed: the split is derived from the ledger and written to an events table so collected and distributed can be reconciled, and a buyback or burn is logged when one is actually performed. There is no automated on-chain buyback, and no PARC token has been deployed.
The flywheel is a roadmap item. Fee parameters and the token itself land with the mainnet configuration; nothing on testnet mints, buys or burns PARC.
Architecture
Four contracts and a relay network, composed into one confidential settlement core on Arc Chain.
Components
| Layer | Component | Role |
|---|---|---|
| Shielded pool | PrivacyARCPool | Holds pooled balances; settlement authorised by a relayer allowlist |
| Deposit path | PrivacyARCDepositRouter | One transaction to fund a single-use holding wallet and forward gas |
| Shielding | Split queue and intermediate wallets | Randomised chunk sizes, ordering and timing between deposit and pool |
| Consumer escrow | PrivacyARCEscrow | Hash-locked lock / claim / refund behind pay links and SMS |
| Agent passports | PrivacyARCAgentRegistry | Per-tx and daily caps consumed on-chain, plus a kill switch |
| Commitments | uploadProof | Stores commitment bytes. A Groth16 verifier would drop in here |
Chain configuration
| Chain IDs | Mainnet 5042 (0x13b2) · Testnet 5042002 (0x4cef52) |
| Gas | USDC — stablecoin-denominated, predictable fees |
| Compatibility | EVM-compatible Layer-1 built for stablecoin finance |
Known limits
Stated here rather than left to be discovered:
- Commitments are not proofs.
uploadProofstores bytes; the pool authorises settlement by relayer allowlist, not by verification. - Relayer trust. An intermediate wallet key can settle any commitment it uploads. They are hot wallets, kept at working balances.
- Privacy is traffic-shaping. Randomised sizes, counts, ordering and timing, plus intermediate hops. Real, and a different guarantee from encrypted balances.
- Flywheel distributions are recorded, not executed. Fees are computed from the ledger; buyback and burn are logged when performed.
Security & audits
No third-party audit has been completed. Audits are scheduled ahead of mainnet and reports will be linked here as they are published. Everything on Arc Testnet today uses test USDC.
FAQ
Do recipients need a wallet to receive a payment?
To claim, yes — the recipient opens a pay link and withdraws to an Arc address they control. They do not need a PrivacyARC account, and they do not pay gas. Embedded wallet creation at claim time is planned, not built, so today a recipient needs somewhere to receive.
Are my balances encrypted on-chain?
No, and it is worth being exact about it. Your balance is a pooled position held under an intermediate wallet, recorded in the pool contract and in the protocol ledger. What privacy buys you is the missing link: nothing on-chain connects the wallet that deposited to the balance that later pays. Encrypted balances are a different design and are not what runs here.
What’s the difference between the privacy tiers?
How a deposit is broken up on its way into the pool. Standard sends one chunk immediately, so the pool entry matches your amount. Semi splits it into two or three, one to three minutes apart. Full uses up to four, two to six minutes apart. More chunks and wider spacing make deposits harder to relink by value or timing, and take longer to settle.
What stops an agent from overspending?
Per-transaction and per-day caps written into its passport and enforced by the registry contract, consumed in the same transaction that checks them — plus an owner-controlled kill switch that freezes the passport on-chain and takes effect immediately, without touching the agent’s runtime.
Is testnet value real?
No. Arc Testnet (chain 5042002) uses test USDC. The Dashboard labels testnet state explicitly and never presents testnet actions as live mainnet transactions.
When mainnet?
Arc public mainnet launches September 16, 2026. PrivacyARC's five roadmap phases complete with that launch.
Open the Dashboard to send your first private payment on Arc Testnet.