Paying for code or design in crypto, safely
Hiring someone you met on Discord to build a bot, write a script or design a logo comes down to one question: who goes first? If you pay up front, you carry the risk. If they deliver first, they do. The fix is to make each step smaller: a clear brief, short milestones, and one escrow deal per milestone.
Start with a written brief
Most fights over code or design aren't scams. They're two people who remember the deal differently. A short written brief prevents most of them. It should cover:
- What exactly is being made. Features, commands, pages, sizes, style. Link a few examples you like.
- What "done" means. For example: "the bot answers
/ticketin my test server and opens a private channel". - What you get at the end. Full source code, or only a hosted bot? Editable design files, or only PNGs? Are fonts and other assets included?
- Who can use it, and how. Can you resell it? Can the seller reuse it for other clients?
- Revisions. How many rounds are included, and what counts as a new request.
- Deadline and price, in USD, for each milestone.
Keep the brief somewhere you can both see later, like a pinned message or your deal ticket.
Split the work into milestones
A milestone is a piece of the work that can be checked on its own. Each one should be small enough that losing it wouldn't hurt either side too much. Agree on the milestones and their prices before any work starts.
Example: a Discord bot
- A working prototype with the main command, shown running in your test server.
- The full feature list, tested by you.
- Handover: the source code, setup notes, and help getting it running on your own hosting.
Example: a logo or banner
- Two or three rough concepts.
- The chosen concept, refined.
- Final files in the agreed formats and sizes.
What counts as delivery
Agree on how each milestone will be shown before any money moves.
For code
- A live demo in your own test server, or a screen share where you choose what to try.
- Code you can run yourself, ideally through a private repository you've been invited to.
- Watch for code that is obfuscated (made deliberately unreadable), locked behind a licence key nobody mentioned, or that connects to servers you don't recognise. Ask about it before you release payment.
- Never hand over your bot token, passwords or wallet keys so someone can "test" something. Set those up yourself from the setup notes.
For design
- Watermarked or low-resolution previews before the final payment are normal, and fair to the designer.
- Final files in the agreed formats, sizes and resolution, with the layers you asked for.
- A reverse image search on the final design can show whether it was copied from somewhere else.
One escrow deal per milestone
Open a separate escrow deal for each milestone, right before work on it starts. The buyer deposits, the seller sees the money is locked, the work is delivered, the buyer releases. Then on to the next one.
- Less money is at risk at any moment.
- Each release is a clean checkpoint that both sides agreed on.
- If the project stops halfway, the finished parts are already paid for and the unfinished part was never paid out.
Splitting costs a little more in fees, and it's better to know that up front. With Truzor, a $300 job as one deal has a $3 platform fee (1%) plus a 1.5% network-fee buffer of $4.50, so the seller receives about $292.50 worth of crypto. As three $100 milestones, each has a $2 fee and a $1.50 buffer, so the seller receives about $289.50 in total. That $3 difference buys a much safer deal. See Fees for the full table.
Step by step with Truzor
Truzor is an escrow bot inside Discord that works with Bitcoin (BTC) and Litecoin (LTC). For each milestone, the buyer is the Sender and the developer or designer is the Receiver.
- Agree on the brief and the milestones. Each milestone gets a price in USD.
- Both join the Truzor Discord at discord.gg/u3TZ5SXncm, then open a ticket in
#start-dealfor milestone 1. Pick BTC or LTC and add the other person. - Pick roles and enter the amount. The buyer picks Sending and enters the milestone price in USD. The bot locks the exchange rate and shows a fresh deposit address for this deal only.
- Deposit and wait for 1 confirmation. The ticket shows the payment as received. The seller can check the deposit address on a block explorer too.
- The seller delivers the milestone the way you agreed: a demo, a repository invite, preview files.
- The buyer checks it and presses Release. Only the Sender can, and the bot asks for confirmation. The seller pastes a payout address, and the bot sends the payment and posts the transaction hash in the ticket.
- Repeat for the next milestone in a new ticket.
If something goes wrong
- Don't release for work that doesn't match the brief. Talk it through in the ticket first; most problems are misunderstandings.
- If you can't agree, open a support ticket. In the Truzor Discord, pick Disputes, and include the deal ticket name, the brief and what was delivered. A real person reviews the deal and can refund the deposit by hand, minus the 1.5% network-fee buffer.
- Keep the brief clear. Truzor can't test your code or judge a design. A clear written brief is the best evidence either of you will have if you disagree later.
More guides
Commissioning something soon?
Truzor holds each milestone's payment in its own BTC or LTC address until the buyer releases it. It's new, so start with a small milestone and check every transaction yourself.