One RFQ. Sealed bids. Two gates. Paid by milestone.
Northwind needs a vendor. Three suppliers bid without seeing each other's prices. Before any money moves, the award has to pass two gates — and after that, payment follows delivery. Every arrow below runs on Arc.
Bids go on-chain as hashes
Each supplier posts a commitment and a USDC deposit. Prices stay invisible until the reveal window, and a supplier that never reveals forfeits its deposit.
The model scores against a published rubric
The rubric's hash is fixed when the RFQ opens, so it cannot be rewritten to fit a favoured bid — and so are the buyer's terms and requirements. Revealed bids are screened against them automatically; a requirement no bid can prove, like a certification, is reported as still needing a human rather than quietly passed. The memo is anchored whether it recommends or rejects.
The contract decides if the award is allowed
Budget cap, minimum bidders, deposit ratio, rubric match and concentration limits are enforced inside award(). An over-budget recommendation reverts with AwardExceedsBudget.
Payment follows delivery
One escrow job per milestone. The supplier submits a deliverable hash; the buyer accepts or rejects with a reason. If the buyer goes silent, payment auto-releases. Retention is held until final acceptance.