Getting paid in Bitcoin as a freelancer means pricing your services in fiat or BTC, generating a payment request (on-chain address or Lightning invoice), receiving funds into a wallet you control, recording the fair market value at receipt for tax purposes, and deciding how much to convert versus hold.
This guide covers the practical workflow: choosing payment rails, creating invoices, receiving funds safely, managing volatility, keeping tax-ready records, and avoiding scams. It is not tax or legal advice, investment guidance, or a tutorial for altcoin payments. It is built for independent contractors and self-employed individuals who want a repeatable system for accepting Bitcoin.
How does a freelancer actually get paid in Bitcoin?
You send the client a payment request containing either a Bitcoin address (on-chain) or a Lightning invoice (layer-2). They transfer the specified amount. You verify receipt on-chain or via your Lightning node, record the USD fair market value at that moment, and deliver the work once your confirmation threshold is met.
The process mirrors a traditional invoice with two differences: settlement is final once confirmed (no chargebacks), and the payment's dollar value changes after receipt unless you convert immediately.
Choosing payment rails: On-chain vs Lightning
The decision depends on three variables: invoice size, urgency, and the client's wallet capabilities.
On-chain transactions settle directly to the Bitcoin blockchain. They are universally supported by exchanges and wallets, create an immutable audit trail, and require no channel liquidity. The trade-off is confirmation time (typically 10-60 minutes for 1-6 confirmations) and higher fees during congestion.
Lightning Network payments use a layer-2 protocol for near-instant settlement at minimal cost. They suit recurring small-to-medium payments where speed matters. The limitation: the client must have a Lightning-capable wallet, and invoices expire (usually within 60 minutes).
Decision rules:
Invoice under $500, client has Lightning wallet: request Lightning
Invoice over $1,000 or milestone payment: request on-chain with 3-6 confirmations
Client uses exchange-only withdrawal: accept on-chain (Lightning likely unavailable)
Time-sensitive delivery tied to payment proof: Lightning preferred
Always offer both options on your invoice. This prevents delays when a client cannot use one method. From a platform standpoint, freelancer accounts tend to show a consistent pattern of regular incoming transfers followed by partial conversions, and the ones who maintain separate receive and hold wallets generate cleaner transaction histories for both tax reporting and compliance review. For deeper technical coverage of Lightning mechanics, see our guide on how Lightning payments work.
Setting up your receiving wallet
Before accepting your first payment, establish a receiving wallet, a backup method, and a separation between business income and personal holdings.
Self-custody vs custodial: Self-custody (you hold the private keys) eliminates counterparty risk but places full responsibility for security on you. Custodial services simplify operations but introduce dependence on a third party. Many freelancers use a custodial wallet for daily operations and a hardware wallet for long-term savings.
The two-bucket model:
Receive wallet (operations): where client payments land. Accessed frequently for conversion or spending. Can be custodial for convenience.
Save wallet (treasury): long-term BTC holdings. Self-custody or hardware wallet. Accessed rarely.
This separation simplifies tax reporting because business income stays distinct from personal holdings. It also limits damage if your active wallet is compromised.
Day 1 checklist (15 minutes):
Choose wallet type based on your volume and risk tolerance
Generate a receiving address (on-chain) and confirm Lightning invoice capability
Record your seed phrase offline on paper or metal backup (self-custody only)
Send yourself a test payment to verify receipt
Document your wallet address for invoicing
Never store seed phrases in cloud notes, screenshots, or email drafts. Any request for your seed phrase is hostile. For recovery procedures, see our seed phrase guide.
Creating a Bitcoin invoice with clear terms
A structured invoice reduces disputes and protects you from volatility between quote and payment.
Required fields:
Invoice ID and date
Client name and service description
BTC amount (and satoshi equivalent)
Fiat reference amount and currency
Exchange rate, rate source, and UTC timestamp of rate lock
Lightning invoice code (preferred) and on-chain BTC address (backup)
Rate lock expiry (30-60 minutes for standard invoices)
Confirmation requirements: 3-6 for on-chain, immediate for Lightning
Overpayment and underpayment policies
Pricing model recommendation: Price in your local fiat currency, compute BTC at invoice time using a documented rate source (CoinMarketCap spot price, Kraken midprice, or Bitstamp). Lock the rate for 30-60 minutes. If the client misses the window, the invoice expires and they request a fresh one at the current rate. This shifts volatility risk to only the payment window.
For crypto-native clients who prefer BTC-denominated pricing, consider adding a 1-3% volatility premium to cover potential downside during the hold period. State this clearly on the invoice.
Receiving payment safely: Confirmations and proof
Understanding what "received" means in practice prevents premature delivery and unnecessary panic.
Three states of a Bitcoin payment:
State | What it means | Action |
|---|---|---|
Broadcast (0 conf) | Transaction visible in mempool, not yet in a block | Wait; do not deliver |
Partially confirmed (1-5 conf) | Included in a block; growing harder to reverse | Deliver small jobs at 1-3 conf based on risk |
Settled (6+ conf) | Standard threshold for high-value work | Safe to deliver irreplaceable work |
What to require from the client as proof:
On-chain: full transaction ID (txid) and link to block explorer showing the transaction
Lightning: wallet screenshot showing invoice marked "paid"
Never accept verbal confirmation alone. Verify independently on a trusted explorer (source: Mempool.space; Blockstream; Blockchain.com).
Common delays and fixes:
Exchange batching: Client initiated withdrawal, but exchange batches multiple withdrawals. Ask for the withdrawal confirmation email; the on-chain transaction appears once the exchange broadcasts.
Low fee / congestion: Transaction stuck in mempool. Guide clients to use Replace-By-Fee (RBF) to bump the fee, or wait for congestion to clear. For detailed troubleshooting, see our stuck transaction guide.
Expired Lightning invoice: Client tried to pay after expiry. Generate a new invoice at the current rate. This is a protocol feature, not an error.
Managing Bitcoin volatility as a freelancer
Volatility is a solvable cash-flow problem, not a dealbreaker. The framework: decide what percentage to convert, when to convert, and what buffer to maintain.
Three conversion policies (pick one):
Policy | Convert to fiat | Hold as BTC | Best for |
|---|---|---|---|
Conservative | 90-100% at receipt | 0-10% | Freelancers covering fixed bills entirely from BTC income |
Balanced | 50-75% | 25-50% | Those with income stability and moderate risk tolerance |
BTC-heavy | 0-25% | 75-100% | Those with other income sources covering expenses |
Rate-lock language as volatility control: The 30-60 minute invoice expiry window is your primary protection. If the client delays payment past expiry, they pay at current market rate, not the original quote. Include this on every invoice: "Rate locked until [TIMESTAMP]. Invoice void after expiry. Request new invoice at current rate."
Should you charge a premium for BTC payments? If converting immediately (Conservative policy), your margin already absorbs exchange fees (typically 0.5-1.5% on major platforms). No additional premium needed. If holding (Balanced or BTC-heavy), a 1-3% premium offsets potential downside. State it transparently.
BloFin's trading interface supports instant BTC-to-stablecoin conversion with competitive spreads, which freelancers using a Conservative or Balanced policy can use to lock in fiat-equivalent value within minutes of receiving payment. The conversion executes at the live order-book price rather than a quoted spread, giving you tighter fills than most retail exchange "sell" buttons.
Taxes and recordkeeping for Bitcoin freelance income
Receiving BTC as payment and later selling or spending that BTC are two separate taxable events in most jurisdictions. This section covers the framework; it is not tax advice.
Event 1: Receiving BTC as income
In the United States, the IRS classifies cryptocurrency received for services as ordinary income, subject to both income tax and self-employment tax (15.3% on net earnings: 12.4% Social Security + 2.9% Medicare). The taxable amount equals the fair market value in USD at the moment of receipt (source: IRS).
Beginning with tax year 2025, custodial brokers issue Form 1099-DA reporting gross proceeds from digital asset transactions (source: NerdWallet). Cost basis reporting becomes mandatory in subsequent years.
Event 2: Disposing of BTC (selling, spending, or exchanging)
Any disposal triggers a capital gain or loss calculation: proceeds minus cost basis (the fair market value you reported at receipt). Held over one year qualifies as long-term capital gain (lower rate). Held under one year is short-term (taxed at ordinary income rate).
What to record at each receipt (minimum viable records)
Invoice ID and client name
Date and time received (UTC)
BTC amount received
Exchange rate and rate source used
Fair market value at receipt (BTC amount multiplied by rate)
Transaction ID (txid for on-chain; invoice ID for Lightning)
Wallet address used
At each disposal, add
Date and time of disposal (UTC)
Fiat proceeds or fair market value of goods exchanged
Conversion fees
Original cost basis
Gain or loss calculation
Consider crypto tax software (Koinly, CoinTracker, TokenTax) to auto-import transactions and generate reports. For a broader treatment of Bitcoin tax obligations, see our Bitcoin taxes guide.
Client operations: refunds, disputes, and underpayments
Clear policies stated upfront prevent disputes about wrong amounts and exchange rate changes.
Overpayments:
Under 1%: accept as payment complete
1-5%: contact client; offer refund or credit toward future work
Over 5%: refund the excess minus network fees
Underpayments: Do not deliver. Contact the client immediately with the exact shortfall. Issue a supplemental invoice or updated payment request.
Refund after price movement: Price movement is not grounds for refund. Services exchanged are separate from market value fluctuations. State this in your contract and invoice terms.
Recommended refund language: "Refunds for freelancer error issued in BTC at original invoice amount minus network fees. Refunds for non-delivery issued as fiat equivalent at original rate minus conversion fees. No refunds issued for market price changes after confirmed payment."
Security and scam avoidance
Most losses in freelance Bitcoin payments come from predictable vectors: address substitution, fake payment proofs, and social engineering.
Verification checklist before delivering work:
Confirm txid exists on a trusted block explorer
Verify the recipient address matches your wallet address exactly (character-by-character)
Check confirmation count meets your threshold
Cross-reference payment amount with invoice (accounting for network fees)
Red flags (treat as hostile):
Any request for your seed phrase
Payment proof that does not match independent explorer lookup
Urgent pressure to deliver before confirmation
Requests to send BTC to "verify" your wallet
Email addresses with subtle misspellings of known contacts
Bitcoin is not insured by the FDIC or any federal deposit insurance scheme. Losses from hacks, scams, or exchange failures have no government backstop. Take security seriously: use unique passwords in a password manager, enable authenticator-app 2FA (not SMS), and keep wallet software updated. For a full security framework, see our Bitcoin security checklist.
Frequently asked questions
Should I invoice in BTC or compute BTC from a fiat price at payment time?
Invoice in your local fiat currency with BTC computed at invoice time using a documented rate source and UTC timestamp. This protects your income from volatility during the gap between sending the invoice and receiving payment. Lock the rate for 30-60 minutes and void the invoice after expiry. Corporate accounting departments handle fiat-denominated invoices more smoothly, and your tax records stay cleaner because the fair market value at receipt closely matches your quoted price.
How many confirmations should I wait before delivering work?
For small payments under $500, one to three confirmations provides adequate security given the low economic incentive for reversal attempts. For mid-range work ($500-$5,000), wait for three to six confirmations before delivering files or granting access. For high-value or irreplaceable deliverables above $5,000, insist on six or more confirmations because the cost of a successful double-spend attack drops only at that depth. Lightning payments are effectively final on receipt because the cryptographic proof settles instantly with no confirmation wait. Adjust thresholds based on work recoverability, client history, and whether the deliverable can be revoked if a problem surfaces.
What records do I need for tax compliance when paid in Bitcoin?
At minimum, capture the invoice ID, UTC timestamp of receipt, BTC amount, exchange rate and its source, fair market value in your local currency, transaction ID, and client name with service description. If you later sell or spend the BTC, record the disposal date, proceeds, fees, original cost basis, and the resulting gain or loss. The IRS and most tax authorities treat each receipt and each disposal as separate reportable events.
Can a confirmed Bitcoin payment be reversed or charged back?
No. Once a transaction reaches sufficient confirmations, it is cryptographically final with no built-in reversal mechanism. There is no chargeback process like credit cards and no dispute window like PayPal. This protects freelancers from payment reversal fraud, which is a common problem with traditional payment processors. The trade-off is that refunds must be handled manually through a separate outbound transaction at your discretion. Make this finality clear to clients upfront in your contract so they understand the payment becomes irreversible after your stated confirmation threshold is met.
What do I do if the client says they paid but I see nothing in my wallet?
Check three things in order.
First, ask for the full transaction ID and look it up on a block explorer. If it exists in the mempool, the payment is real but unconfirmed, so wait.
Second, if the client paid via exchange withdrawal, the exchange may be batching transactions with a delay of minutes to hours. Ask for the withdrawal confirmation.
Third, if the client used Lightning and the invoice expired, the payment was automatically rejected by the protocol. Generate a fresh invoice at the current rate.
Researched and written by the BloFin Academy editorial team with AI-assisted drafting. Primary sources: IRS Virtual Currency FAQ (irs.gov), Lightning Network BOLT-11 invoice specification (github.com/lightning/bolts), Bitcoin Core RBF documentation (github.com/bitcoin/bitcoin). All facts independently verified.
Disclaimer: This content is for educational purposes only and does not constitute financial, investment, legal, or tax advice. Crypto assets are highly volatile and carry significant risk of loss. Always verify local regulations and consult a qualified professional before making financial decisions.
