Using DeFiEscrow
Unanimous Approval in a Multi-Party Escrow
In a multi-party escrow, funds move only after every participant approves. A holdout blocks release until a deadline or a dispute refunds deposits.
· 4 min read · DeFiEscrow
A multi-party escrow on DeFiEscrow pays out only after every participant has approved. Not a majority. Not the buyer alone. Not whoever happens to be online. Until those approvals are in, release does not exist as a successful transaction. That single rule is why a complicated closing can use one contract instead of a chain of trust-me transfers.
It is also why you should list the parties with a cold eye. Every extra wallet is a person who can stall the deal until a deadline refunds everyone, or until a dispute runs for 30 days and refunds deposits. Unanimity protects payers from a premature release. It gives each required signer a veto that lasts until the exit rules fire.
Who counts as a participant
A party is an address stored at creation. Three roles in the app map onto that list.
A depositor must send a token amount and, like everyone else, must approve. A withdrawer is allocated a payout and must approve even if they deposited nothing. An acknowledger deposits nothing and receives nothing, and must still approve. The acknowledger is how you add a lawyer, a broker who is not being paid from this escrow, or a co-founder whose consent you want without moving their tokens.
The protocol fee address is also stored as a party, because the fee is a payout line and the totals have to include it. The approval check skips that address. The fee recipient cannot veto the humans. Everyone else can.
If someone must consent and they are not on the list, their consent is not enforced. If someone is on the list and they lose their keys, you do not have an override. You have the deadline or the dispute refund, which return deposits, not a rewritten set of signers.
What approval means, and when it is accepted
Approval is a transaction from that party's wallet. It is accepted only when the escrow is already Funded, or when it is Approved and this party has not approved yet. It is rejected if the funding is still incomplete. It is rejected after the approval deadline. A party cannot approve twice.
When the last required approval lands, the state becomes Approved. Release is then a separate call. Anyone can send it. Approval is the decision. Release is the accounting step that credits payouts. Withdrawal is the step that moves tokens to a wallet. People collapse those three into "we signed" and then wonder why the funds are still in the contract. They are still in the contract until release credits them and each party withdraws.
Once the state is Approved, the approval deadline no longer cancels the escrow. A fully approved deal does not expire at midnight. It waits for release, unless a party raises a dispute. Funding deadlines and approval deadlines spells out that edge, because it is the one that sounds backwards the first time you hear it.
A holdout is a refund, not a partial deal
Suppose a business sale locks 250,000 USDC. The buyer has deposited. The seller and an acknowledger-lawyer must both approve. The seller approves. The lawyer does not, and the approval deadline passes. Anyone can terminate the escrow. The buyer withdraws the deposit. The seller does not receive 250,000, and does not receive a slice of it. There is no function that says "two out of three, pay the seller anyway."
That is the point of unanimity, and it is also the reason the off-chain agreement should say what each person is supposed to do before they approve. If the lawyer's job is to approve after a document is signed, write that down where the humans can see it. The contract only sees the missing transaction.
If the holdout is active rather than absent, a party can raise a dispute while the escrow is Funded. A dispute freezes release even if approvals were about to finish. The 30-day dispute path also refunds deposits rather than forcing a payout. Read how disputes work before you treat a dispute as a way to punish the other side. It is a freeze with a refund at the end, not a claim you win.
Designing the list for a real closing
For a simple sale, two humans and the fee line are enough: buyer deposits, seller receives, one of them bears the fee. Add a person only when their approval is a condition you are willing to wait for.
For a business closing, the list is the closing statement turned into addresses. Each payee needs a payout amount. Each person who must consent, even if unpaid, needs to be an acknowledger. The sum of deposits must equal the sum of payouts, fee included. If the numbers do not balance, the contract rejects creation. That error is a gift. It means the closing statement and the escrow were telling different stories.
Gas and coordination grow with the list. Each deposit and each approval is its own transaction, from its own wallet, on the network you selected. A party in another time zone who does not understand the wallet step can miss a deadline that looked generous on your calendar. Share the escrow id, tell them which address must act, and leave enough time that a failed gas estimate is not the whole contingency period.
Unanimous approval is the feature that replaces the trusted clerk. It works only if the clerk's actual duties are either encoded as a required signature or written into the agreement the signatures are about. The contract will not invent the missing name.