← Back to guides

How to report Upwork USDC payments on your taxes

A practical guide for freelancers

This is general information, not tax advice. Rules vary by country and change over time — confirm your specific situation with a qualified accountant.

Upwork doesn't pay in USDC by default

It's worth clearing up a common mix-up first: Upwork's standard payout methods are bank transfer, PayPal, and similar fiat rails — it does not natively pay freelancers in USDC or any stablecoin. If you're receiving USDC for Upwork work, it's typically because a client paid you directly in USDC outside Upwork's own payout system, or because you're using a third-party tool to convert a payout. Either way, the tax treatment below still applies to whatever USDC actually lands in your wallet.

USDC income is still ordinary income

For most tax authorities (the IRS, the CRA, and most EU tax administrations), receiving USDC in exchange for freelance work is treated the same as receiving cash: it's ordinary self-employment income, valued in your local currency at the fair market value on the day you received it. The fact that USDC is designed to track the US dollar 1:1 doesn't exempt it from being reported — it just makes the valuation step simpler than it would be for a volatile token.

What you actually need to record for each payment

The information you'll want on hand for every USDC payment you receive:

  • The date and time you received it
  • The amount in USDC
  • Its value in your local currency at time of receipt
  • Who paid you (client or platform)
  • The on-chain transaction hash, as proof

Doing this by hand in a spreadsheet is the part most freelancers find tedious — it's the exact gap Stablance is built to close, by classifying each incoming USDC payment automatically and recording its value at the moment you're paid.

Don't confuse income with internal transfers

If you move USDC between your own wallets, or send some to an exchange to cash out, that's not new income — it's an internal transfer. Only payments coming in from a client or platform count as income. Mixing the two up is one of the most common freelance crypto bookkeeping mistakes, and it can meaningfully overstate what you actually earned.

Invoicing still matters

Even when you're paid in USDC, issuing a proper invoice for each payment — with the client's name, the amount, and the date — makes your bookkeeping far easier to defend if it's ever reviewed, and is often expected by accountants regardless of how you were paid.

Bringing it to your accountant

At tax time, your accountant will want a clean summary: total USDC income for the year, its value in your local currency at time of receipt, and any related invoices. A monthly or annual export in PDF or CSV — rather than a raw list of wallet transactions — is what makes this quick for them instead of a multi-hour reconciliation job.