Escrow protocol

A payment held by a public contract until a deadline, with its outcomes fixed in advance. The buyer can only release it to the supplier. The supplier can only hand it back to the buyer. After the deadline it can only be returned to the buyer, and anyone can trigger that.

Technical reference. Today the contracts run on BNB Smart Chain Testnet, a public test network, and have not been independently audited.

Contents
  1. How it flows
  2. Who can do what
  3. An example
  4. What makes it hold
  5. In the contracts
  6. Other protocols

How it flows

  1. Open. An escrow opens when a buyer awards an offer on a request, or takes a listing, that is set to hold the payment. The buyer, the supplier, the amount and the deadline are fixed at that moment.
  2. Hold. In the same transaction the buyer's payment moves into the workspace's vault. Both sides can see it there. Neither can spend it.
  3. One action each. The buyer can only release it to the supplier. The supplier can only hand it back to the buyer. Neither can move it toward themselves.
  4. Settle. Before the deadline, the buyer releases or the supplier hands back. After the deadline neither can act, and anyone can trigger the return to the buyer. Every path ends with the payment with the supplier or back with the buyer.

Who can do what

One held payment, one action on each side. Each action moves the payment in one direction only. After the deadline the only action left is the return to the buyer. It does not happen by itself: someone has to send that transaction, and anyone can.

StateWho may actCallWhat happens next
Active, before the deadlineThe buyer (issuer)release(id)Released: paid to the supplier, less the platform fee
Active, before the deadlineThe supplier (receiver)cancel(id)Handed back (Cancelled): the held amount goes to the buyer
Active, after the deadlineAnyoneexpire(id)Returned (Expired): the held amount goes to the buyer, the only place it can go
release(id)   // the buyer (issuer) only, before the deadline: pays the supplier (receiver)
cancel(id)    // the supplier (receiver) only, before the deadline: hands the payment back to the buyer
expire(id)    // anyone, after the deadline: returns the payment to the buyer

An example

What both sides see for as long as the payment is held. The figures are an example.

Escrow#4821 · held (Active)
Buyer (issuer)0x3d9f…8a2c
Supplier (receiver)0x7e4b…c3f1
Opened2026-08-05 · 14:32 UTC
Deadline2026-09-04 · 14:32 UTC
Buyer canrelease() → paid to the supplier
Supplier cancancel() → handed back to the buyer
After the deadlineanyone can call expire() → returned to the buyer

What makes it hold

A deadline set up front

Every escrow has an opening time and a deadline. Between them the rules cannot change, and nobody can extend or shorten the term.

Each side can only give

Release belongs to the buyer and hand-back to the supplier. No action moves a held payment toward the wallet that calls it.

After the deadline, one way out

Once the deadline passes, the payment can only go back to the buyer. Someone has to send the transaction that returns it, and anyone can: the buyer, the supplier or a third party. Until someone does, it stays in the vault.

Nobody else can move it

The payment sits in the workspace's vault, a public contract. BitRegalo never holds it, and neither BitRegalo nor the workspace admin can move it. They can pause new escrows. A release, a hand-back and a return always work.

A limit to know

If the buyer does not release and the supplier does not hand back, the payment goes back to the buyer once the return is triggered. A supplier who has already delivered depends on the buyer releasing. A commitment that pays the supplier after a set time unless the buyer objects is planned, not built.

In the contracts

In the contracts the buyer is the issuer, the supplier is the receiver, and the three outcomes are release, cancel and expire on the workspace's EscrowVault. The states are Active, Released, Cancelled and Expired.

A developer gets the contract addresses, the interface files and code examples for these calls from the Connect a platform page. The whitepaper sets out the rules that hold across all three.

Other protocols

  • Requests protocol: a buyer asks, suppliers answer with a price and a time, and one offer is chosen.
  • Listings protocol: a supplier offers something at a fixed price, and a buyer takes it as it stands.

Questions about any of them? Contact us.