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.

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

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 →