Requests protocol

A buyer posts what they need. Suppliers answer with a price and a time, and the buyer chooses one offer. The request, every offer and the choice are permanent records, and the chosen offer settles the way the request said it would: recorded only, paid directly, or held in escrow.

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. How it settles
  3. Who can do what
  4. An example
  5. What makes it hold
  6. In the contracts
  7. Other protocols

How it flows

  1. Post. The buyer posts a request: a reference to what is needed, the time until which offers are accepted, the token it will be paid in, and how it settles.
  2. Offer. Suppliers answer with a price and a time to deliver. An offer cannot be edited once it is made. Its supplier can only withdraw it, and only while the request is open.
  3. Award. The buyer chooses one offer. The choice is recorded and no other offer can be chosen afterwards. In the same transaction the offer settles the way the request stated: nothing is paid, the supplier is paid directly, or the payment is held in escrow for the time the supplier offered.
  4. Deliver. When the payment is held, the buyer releases it on delivery. A supplier who cannot deliver hands it back. If neither acts before the deadline, anyone can trigger the return to the buyer.

How it settles

Each request or listing states how it settles when it is accepted. A workspace can switch direct payment or escrow off. Recording only is always available.

WayIn the contractsWhat happens
Recorded onlySettlement.NoneNothing is paid. The choice itself is the record.
Paid directlySettlement.DirectThe payment passes through the vault to the supplier in the same transaction.
HeldSettlement.EscrowThe payment becomes an escrow. The supplier's time to deliver becomes its deadline.

Who can do what

Every call below writes a record. None of them can be undone or edited afterwards.

StateWho may actCallWhat happens next
Any timeA buyerpostRfp(…)A request is recorded as Open
Open, while offers are acceptedA supplierbid(rfpId, amount, timeframe)An offer is recorded
OpenThe supplier who made the offerwithdrawBid(rfpId, bidId)The offer is marked withdrawn. It stays on the record.
OpenThe buyeracceptBid(rfpId, bidId)Awarded: the choice is recorded and the offer settles
OpenThe buyercancelRfp(rfpId)Cancelled: no offer can be chosen

When the payment is held

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

A request that settles by escrow, from the award to the held payment. The figures are an example.

Request#310 · offers accepted until 2026-08-01 · settles by escrow
Chosen offer12,500 USDT · delivered in 6 weeks · awarded 2026-08-05
Becomes the escrow
Escrow#4822 · opened by the award
Buyer (issuer)the buyer who posted the request
Supplier (receiver)the supplier whose offer was chosen
Deadline2026-09-16 · six weeks after the award
Deliveredthe buyer calls release() → paid to the supplier
Not deliveredafter the deadline anyone can call expire() → returned to the buyer

What makes it hold

A tender anyone can check

The request, every offer and the award are records. A supplier who was not chosen can check that nothing was rearranged afterwards.

Offers cannot be edited

An offer stays as it was made. Its supplier can withdraw it and never change it, so the buyer awards exactly the terms they read.

Wording can stay private

The record holds a fingerprint of the request's text, not the text itself. The wording can stay private, and its owner can still prove later what it said.

The same escrow underneath

A request that holds the payment uses the escrow protocol unchanged: the same three outcomes and the same limits on who can act.

In the contracts

The contracts call a request an Rfp (request for proposal), an offer a Bid, and the buyer's choice an award (acceptBid). The buyer is the requester and the supplier the provider. A request is Open, then Awarded or Cancelled.

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

  • Escrow protocol: how a held payment works, and the only three things that can happen to it.
  • 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.