How to get paid in crypto as a freelancer
Getting paid in crypto is not a technical problem. The transfer is the easy part — it is minutes and cents. What goes wrong is everything around it: agreeing the unit, naming the chain, and proving afterwards what you were actually paid.
Agree it before the work, not on the invoice
A wallet address appearing for the first time on an invoice reads as a compromised email, and a cautious client is right to stall. Settle it in the engagement: which asset, which chain, which unit the price is in, and who absorbs the network fee. One paragraph, once.
Decide what the price actually is
- Priced in a currency, settled in stablecoin — the common case. "€4,000, payable in USDC on Base." The obligation is the euro figure; say so.
- Priced in the coin — "0.1 BTC". The obligation is the coin, and the price risk between issue and payment is your client's.
- Priced in a currency, settled in bitcoin — the ambiguous one. Name a rate, a source and a date, or accept whatever they decide it was.
What goes on the invoice
- Everything an ordinary invoice carries — see how to write an invoice. Being paid on a chain does not exempt you from the tax lines.
- The asset by ticker and the network in full.
- The address, monospaced, plus a QR code — a hand-typed address is a total loss when it goes wrong.
- A due date, the same as any other invoice.
- Optionally a bank account beside it, so a client who cannot send crypto this week still can pay you.
Confirming it, without watching a block explorer
Turn on Watch the chain for that invoice and a job reads the address it prints every ten minutes. A transfer of exactly the amount outstanding settles the document and says so in Telegram. It is exact on purpose: one address serves every invoice you send, so a near-miss is more likely somebody else's client than yours. Bitcoin is counted only once confirmed.
Afterwards
- Record what you received, in the coin and in your currency, on the day. That figure is your income, and reconstructing it a year later from a block explorer is miserable.
- Assume the conversion is its own event. In many places selling the coin is a separate taxable moment from earning it.
- Do not leave a year of income on an exchange you do not control the keys to.
For the position rather than the invoice — cost basis, PnL, what today did to last month's payment — that is the Perly app, on the same account.
Common questions
- Is it legal to invoice in crypto?
- In most places, yes, and it is ordinary income when you receive it. Some jurisdictions restrict it and a few require the invoice to state a national-currency equivalent. Ask your accountant about yours.
- What if the client has never sent a stablecoin before?
- Ask for a small test transfer first, and put both a wallet and a bank account on the invoice. A client who fails to pay you is worse than a slow rail.
- Who pays the network fee?
- Convention is the sender, as with a bank transfer. Say so anyway — on Ethereum mainnet it is enough money to argue about.
- How do I prove I was paid?
- The transaction on chain, plus your own invoice marked paid with its date. Perly prints the paid date on the document and keeps the timeline.
- Should I ask for stablecoins or bitcoin?
- Stablecoins for work you are pricing in money, which is nearly always. Bitcoin when both sides genuinely want the exposure — see [bitcoin invoicing](/bitcoin-invoicing).
Make one now
The generator is the front page. No account, no sign-up, no watermark — fill the document in and the PDF is yours.
Open the invoice generator