By Ellis Ferro. Free to copy, share, and adapt.
☐ Put the network in words, not just the logo: "USDC on Base (not Ethereum mainnet, not Solana)."
☐ Paste your full receive address, and tell the client to confirm it with you on a second channel before the first payment.
☐ Write a due date as a date ("due 2026-12-01"), not "net 30".
☐ Give every invoice a number you can search later (INV-0007).
☐ Say what counts as paid: "Paid when the transfer is confirmed on Base and I've replied with a receipt."
☐ Check your address on a Base explorer (search the address, filter for USDC transfers in).
☐ If nothing arrived, don't chase yet. Note it.
1 to 7 days late, friendly:
> Hi {name}, quick nudge on invoice {number} for {amount} USDC on Base, due {date}. If it's already sent, could you share the transaction hash so I can match it? Thanks!
8 to 14 days late, clear:
> Hi {name}, invoice {number} ({amount} USDC on Base) is now {days} days past due. Could you let me know when to expect it? The address is the same one we confirmed earlier.
15 to 30 days late, firm:
> Hi {name}, I still haven't received payment for invoice {number} ({amount} USDC, due {date}). Please send it by {new date}, or tell me what's holding it up so we can sort it out.
31+ days late, final notice:
> Hi {name}, this is a final notice for invoice {number} ({amount} USDC, {days} days overdue). If I don't hear back by {new date}, I'll pause further work and follow up through {next step}.
☐ Ask for the tx hash every time. It turns "I paid" into something you can check in ten seconds.
☐ Never accept "I sent it to your other address." Only the confirmed one counts.
☐ A transfer on the wrong network is usually not reversible. Say so up front, kindly.
Want this as a working spreadsheet? Invoice Chaser ($15, paid once in USDC on Base) tracks every invoice, flags what's overdue, counts the days, and fills in the right reminder for each row: https://shieldz.cash/unlock/cptOcrE6HwCXZAodeBRU