Disputes and safety

A Wallet Checklist Before You Fund

Use this wallet checklist before you fund an escrow: site, network, addresses, amounts, and the approval your wallet is actually asking you to sign.

· 4 min read · DeFiEscrow

This wallet checklist is the last pass before you fund an escrow, approve a deal, or withdraw a payout. DeFiEscrow cannot undo a signature. There is no support transaction that moves tokens from the address you typed to the address you meant. The checks below are ordinary, and they are where the money is actually lost.

Do them in order. If one fails, stop and fix it before the next signature. The walkthrough of the app explains what each signature is for. This page is only about not signing the wrong one.

The site and the wallet

Open the app from a bookmark you created, or by typing the domain yourself. The production app is app.defiescrow.io. A result in a search ad, a link in a direct message, or a domain that adds a character is how a copied interface asks you to sign a transfer the real app would not build.

Your wallet should be one you already use, with the seed phrase stored offline. Do not type a seed phrase into the website. The app will ask to connect. It will not ask for your seed. A page that does is not the app.

MetaMask is the wallet the interface expects you to have available. Whatever wallet pops up, read its URL bar and its account. Connecting is not depositing. You can connect, look at the review screen, and disconnect without moving funds. Do that once before a large deal so the screens are familiar.

The network and the asset

The network shown in the wallet and the network the app is using have to be the same. A test network is for rehearsal. Its ETH and its USDC are not the assets that have market value on Ethereum mainnet, even when the names match. If you meant to rehearse, stay on the test network the whole way through. If you meant to move real tokens, confirm you are not looking at a testnet balance that merely says "USDC."

ETH, USDC, and USDT are the supported assets, and each escrow uses one. On the review screen, the token should be the one in your agreement. For stablecoins, the deposit step will ask for a token approval first. Set that allowance to the amount of this deposit when the wallet lets you edit it. An unlimited allowance is a standing permission you do not need for a single escrow.

You need a little ETH for gas even when the escrow itself is USDC or USDT. A wallet that holds only the stablecoin will fail the transaction at the moment you can least afford a surprise.

The addresses

Every party address should be checked out of band. Read the entire address, not the first and last four characters. Send the address in a channel you already trust, and have the other person confirm it from their side in a different channel than the one that delivered the original instruction. If a counterparty "updates" an address in a hurry, treat the update as a new fact that has to pass the same check, not as a small edit.

Only the named party can deposit. If you send tokens from a second wallet you also control, the escrow does not count them. Only the named withdrawer is credited on release. If you put your exchange's deposit address in as the seller, you may be creating a payout that an exchange will not credit as a contract withdrawal, and you cannot change it later. Use a wallet the person controls.

The fee recipient is a protocol address the app adds. It should appear as the fee line you already read about, not as a substitute for the seller.

The amounts and the deadlines

Deposits and payouts must balance, fee included. If you are the buyer paying the fee on 100,000 USDC, you should expect to deposit 101,000, not 100,000, and you should see the seller at 100,000 and the fee at 1,000. If the numbers are a round headline with no fee line, you are not looking at the final transaction.

Deadlines should match the written agreement, including the timezone you converted into the form. A funding deadline that has nearly passed is not a detail. It is a refund waiting to happen.

The signature itself

Read the wallet prompt. Creating an escrow, approving a token, depositing, approving the deal, releasing, disputing, and withdrawing are different actions. withdrawTo sends your credited balance to a destination. That destination should be yours. A site that asks you to withdraw to an address you do not recognize is asking you to hand over the payout.

Reject anything you did not mean to do. A rejected signature does not spend the escrow. A confirmed one can. If the wallet shows a token approval for a contract you did not intend, reject it and start again from the bookmark.

After the transaction confirms, save the escrow id and the transaction hash somewhere the other parties can use. Saving them is not a substitute for the checks above. It is how you find the deal again without trusting a screenshot in a chat.

Nothing in this wallet checklist requires you to be sophisticated. It requires you to slow down at the moment the interface is designed to feel fast. The contract will do exactly what the signed transaction says, which is a good property only after you have read the transaction.