How to invoice a client in USDC
For freelancers, contractors and DAO contributors who want to be paid in stablecoins without confusion over networks, amounts or proof.
1. Agree on the network before you send anything
USDC exists on many blockchains. The same wallet address works on all EVM networks (Ethereum, Base, Arbitrum, Optimism, Polygon), but a payment sent on one network does not appear on another. Most lost or "missing" stablecoin payments are a network mismatch, not theft.
- Base, Arbitrum, Optimism: fees are usually a few cents. Good default for most invoices.
- Polygon: also cheap; make sure it's native USDC, not the older bridged USDC.e.
- Ethereum mainnet: highest fees; only worth it for large amounts or if your client insists.
Write the network on the invoice in plain words, e.g. "USDC on Base (chain ID 8453)".
2. Put the right details on the invoice
- Your name or business, and contact details
- Client name and billing details
- Invoice number, issue date and due date
- Line items with quantities and prices
- Total in USDC, the network, and your receiving address
- Terms, e.g. "payable within 14 days"
Many jurisdictions also require a tax ID or VAT details. Check your local rules.
3. Make the payment easy to identify
If two clients both pay you 500 USDC in the same week, which payment is which? A common trick is to add a small unique fingerprint to the amount, e.g. 500.0037 instead of 500.00. The cost is a fraction of a cent, and the transaction becomes unambiguous.
4. Let the client pay without copy-paste mistakes
Typing a 42-character address by hand is risky. Offer a QR code (EIP-681 payment links work with most mobile wallets) or a "pay with wallet" button that fills in the token, network, address and amount automatically.
5. Confirm payment on-chain, not by screenshot
A screenshot of a wallet's "sent" screen proves nothing. Look up the transaction hash on a block explorer (Basescan, Arbiscan, Etherscan…) and check the token, amount, recipient and status. Save the hash with the invoice: it's your permanent proof of payment.
6. Keep records for tax
Record the date received, the USDC amount, the fiat value on that day and the transaction hash for every invoice. A CSV export of invoices with their transaction hashes is enough for most accountants.
Do all of this automatically
opnaco makes a USDC invoice with the network spelled out, a unique amount fingerprint, a QR code and a pay button. The invoice link checks the blockchain itself and shows Paid with the transaction hash. Free, no signup.
Create a USDC invoice →