Specification, not yet live. Shadow Protocol is Numpay’s design for private payments. The endpoints (api.numpay.io/zk) and SDK packages (@numpay/zk-sdk, @numpay/core) described in this section are not published yet. Today’s Numpay app uses the public USDC transfers described in Architecture.
A ZK-powered payment protocol for Numpay with privacy, gasless transactions, phone-linked wallets and x402 support.
Shadow Protocol adds privacy to Numpay payments with zero-knowledge proofs. Amounts are encrypted with ElGamal, the sender is hidden behind a Groth16 proof, and network fees are absorbed by Numpay. The same proofs can pay for API access through x402, the HTTP 402 Payment Required flow. The proposed Shadow Protocol uses a private proof, a relayer and on-chain settlement. The proposed Shadow Protocol uses a private proof, a relayer and on-chain settlement.

Private

ElGamal-encrypted amounts and ZK proofs hide who paid and how much.

Phone-linked

Pay a phone number without revealing either party’s wallet address.

Zero-fee

Numpay absorbs network costs.

Gasless

Relayers submit and pay for settlement transactions.

x402-native

Pay-per-request APIs using HTTP 402 Payment Required.

Decentralized

No central authority, data store or tracking.

In this section

Architecture

The six-step payment flow.

Privacy model

What is hidden, partially hidden and public.

Integration

Client and server integration outline.

API reference

Planned /verify, /settle and phone endpoints.

Security

Guarantees and integration best practices.