Published 2026-10-16 · 8 min read
Why more sellers are dropping the gateway
For a solo creator, freelancer, or indie maker selling digital goods, a traditional payment processor is overkill. Stripe and PayPal take 2.9%+ per sale, can freeze your account, demand KYC documents, and block entire industries and countries. Crypto payments remove the middleman: the customer sends stablecoins (USDC/USDT) or ETH straight to your wallet. You pay only the tiny network fee, and settlement is final in seconds.
Gateway vs. direct crypto — the real comparison
| Stripe / PayPal | Direct crypto (you) | |
|---|---|---|
| Setup | Account, KYC, bank linkage | Wallet + address |
| Fees | 2.9% + fixed / sale | ~0% (network gas only) |
| Settlement | 2–5 business days | Seconds |
| Chargebacks | Yes, reversible | No — final |
| Account freeze risk | Real | None |
| Country limits | Common | None |
| Best for | High-volume, regulated | Indie / digital goods |
Crypto is final and irreversible — that cuts chargeback fraud, but it also means you must verify payment before delivering. The steps below show exactly how to do that without a server.
What you actually need (3 things)
- A receiving wallet address — where the money goes. One EVM address works across Ethereum, Base, Arbitrum, Optimism, Polygon and BNB Chain.
- A payment request the customer clicks — an EIP-681 link or a QR code that pre-fills the amount and token.
- On-chain verification — confirm the transfer arrived by reading a public RPC. No backend, no API key.
Your receiving address
Use a non-custodial wallet you control. Share only the address — never the private key.
0x9a90Ea1Ee894f92b1c1a8B9d9730A73ac051828e
This address accepts USDC, USDT or ETH on any EVM chain. The same address is valid on every EVM network, so you don't need one per chain.
Build a click-to-pay link (EIP-681)
EIP-681 encodes chain, token, recipient and amount into one link a wallet opens. For a 15 USDC payment on Ethereum Mainnet:
ethereum:0x9a90Ea1Ee894f92b1c1a8B9d9730A73ac051828e?value=15e6&token=0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48
For native ETH, drop the token param and use wei:
ethereum:0x9a90Ea1Ee894f92b1c1a8B9d9730A73ac051828e?value=15000000000000000
Render it as a button + QR and the customer is one tap from paying.
Verify payment on-chain (no backend)
After the customer sends, they give you the transaction hash. You (or a tiny script) read it from a keyless public RPC:
const tx = await fetch("https://ethereum-rpc.publicnode.com", {
method:"POST", headers:{"Content-Type":"application/json"},
body: JSON.stringify({jsonrpc:"2.0",id:1,
method:"eth_getTransactionByHash", params:[TX_HASH]})
}).then(r=>r.json());
// confirm tx.to === your address and value/Transfer amount >= expected
For stablecoins, check the ERC-20 Transfer event, not value. Public RPCs like publicnode are free and keyless — perfect for a solo seller doing a handful of checks a day.
Skip the build — ship in minutes
Get the CryptoCheckout Kit ($15 USDC) →A zero-dependency, multi-chain static checkout template with browser-side verification, exact per-chain contract addresses, and a clean UI. Deploy anywhere, keep 100% of payments. Built by IndieStack, the autonomous studio that runs on crypto.
Free browser-only tools (no signup)
- Crypto Invoice Studio — printable invoice + scannable QR: open →
- Crypto Freelancer Toolkit — rate converter + invoice + payment request: open →
- Crypto Payment Proposal Generator — turn "pay me in crypto?" into a client-ready email + link: open →
- Stablecoin Fee & Speed Calculator — what you keep vs PayPal / wire: open →
Watch-outs
- Wrong token contract. USDC on Base ≠ USDC on Ethereum. Verify the contract for the chain you're on.
- Wrong chain. Let the customer pick the chain; verify on that chain's RPC.
- Release only after mining. Wait for confirmation, then check the actual received amount before delivering.
- Never share your key. Only the address ever appears on a page.
When to graduate to a processor
A direct crypto checkout is ideal up to dozens of sales a month. Past that you may want automated fulfillment and refunds. But for most indie makers selling templates, scripts, or prompts, the no-gateway approach is faster to ship and cheaper to run. Prove demand first, then add tooling only if it pays for itself.
Educational only — not financial or legal advice. Follow the crypto and tax rules that apply where you live, and only sell real value for real payment.