Governed markets

Watch an agent-run auction clear — fairly, and provably

The third governed action, and the most watchable: a €12M reverse auction where two suppliers bid through governed agents, each bound by a sealed mandate floor. Price formation lives in the neutral standard — not in any operator's platform.

A reverse auction is a standardised process, not an operator feature. This is the Prozorro insight: when the rules of price formation live in a neutral layer that every operator implements identically, the market clears the same way no matter whose software runs it. SIGNET puts the auction rules and the bid record in the standard; the operators compete on experience.

A €12M contract goes to reverse auction. Two suppliers — acme and globex — bid through governed agents. Each agent carries a private Mandate floor below which it cannot bid. Over discrete rounds the agents undercut each other; the harness enforces every floor and the reserve; and when a full round brings no improvement, a neutral auctioneer closes the auction deterministically.

The result is the property no operator-run auction can prove on its own: the close is deterministic. Re-run it and you reach the identical Award — because the rules, not the platform, decide. The winning price is set where the runner-up's mandate stopped; the winner never revealed its own floor.

The committed run

Open → undercut → floor → close → seal

Produced by the deterministic auctioneer at build time and verified against the SIGNET conformance tests. Nothing here executes in your browser — it is the proof, rendered. The price descends round by round until a supplier hits its mandate floor and passes.

€12.0Mstart price
€11.6Mbest: globex
€11.4Mbest: globex
€11.2Mbest: globex
€11.0Mglobex · wins
acmePASSED · AT FLOOR
€11.1Mmandate floor sealed
globexWINNING
€11.0Mmandate floor sealed

The Award goes to globex at 11,000,000 EUR. The clearing price is set where the runner-up’s mandate stopped — acme passed at its floor; the winner never revealed its own. Because the 11,000,000 EUR award exceeds the €10M autonomous ceiling, a named human approval is attached before it stands.

  1. Reverse auction auction-3310 opens. Start 12,000,000 EUR, reserve 9,000,000 EUR, step 100,000 EUR, close on no-improvement.
  2. Bidders (each a governed agent, mandate floor sealed): acme, globex.
  3. — Round 1 (openings) —
  4. acme opens at 11,800,000 EUR.
  5. globex opens at 11,600,000 EUR.
  6. — Round 2 —
  7. acme bids 11,500,000 EUR.
  8. globex bids 11,400,000 EUR.
  9. — Round 3 —
  10. acme bids 11,300,000 EUR.
  11. globex bids 11,200,000 EUR.
  12. — Round 4 —
  13. acme bids 11,100,000 EUR.
  14. globex bids 11,000,000 EUR.
  15. — Round 5 —
  16. acme passes (mandate floor reached).
  17. globex passes (currently winning).
  18. No improvement — auction closes.
  19. Close: Reverse auction closed on no-improvement. Lowest standing bid wins: globex at 11,000,000 EUR. Runner-up acme at 11,100,000.
  20. Note: the winning price 11,000,000 EUR is set where the runner-up's mandate stopped — acme passed at floor 11,000,000 EUR; the winner never revealed its own floor.
  21. Award 11,000,000 EUR exceeds the €10M autonomous ceiling → human approval approval-auc-55 required.
  22. Award award-auc-3310 → globex at 11,000,000 EUR. Buyer saved 1,000,000 EUR off the start price.
  23. Event stream: 12 events, hash-chained.
Conformance verification of the auction closeconformance-clean
  • ValidThe Auction, every Bid, the Award and its Decision carry their required SIGNET fields, and exactly one Bid is marked winning. CI runs full JSON-Schema validation on each commit.
  • Deterministic close — the hero propertyRe-running the close over the same bids under the same rules reaches the identical Award — any conformant operator reaches the same result. Price formation lives in the standard, not the operator.
  • BoundedMandate-bound — the 11,000,000 EUR award exceeds the €10M autonomous ceiling, so a named human approval is attached.
  • Tamper-evidentThe 12-event bid+close hash chain holds; mutating any bid event's payload breaks it.
  • AttributableThe Award Decision and every Event carry cryptographic provenance (who acted, when, from what).
award.json
{
  "@context": "https://concert.foundation/signet/v0.1/context.jsonld",
  "type": "Award",
  "id": {
    "scheme": "did",
    "id": "did:web:buyer.example#award-auc-3310"
  },
  "sourcingEvent": {
    "scheme": "did",
    "id": "did:web:buyer.example#event-1207"
  },
  "awardedParty": {
    "scheme": "did",
    "id": "did:web:globex.example#globex"
  },
  "value": {
    "amount": 11000000,
    "currency": "EUR"
  },
  "rationale": "Reverse auction closed on no-improvement. Lowest standing bid wins: globex at 11,000,000 EUR. Runner-up acme at 11,100,000.",
  "decision": {
    "scheme": "did",
    "id": "did:web:buyer.example#decision-auc-3310"
  },
  "standstillPeriod": {
    "startDate": "2026-07-02T00:00:00Z",
    "endDate": "2026-07-12T00:00:00Z"
  }
}
decision.json
{
  "@context": "https://concert.foundation/signet/v0.1/context.jsonld",
  "type": "Decision",
  "id": {
    "scheme": "did",
    "id": "did:web:buyer.example#decision-auc-3310"
  },
  "decisionType": "award",
  "madeBy": {
    "scheme": "did",
    "id": "did:web:buyer.example#auctioneer"
  },
  "inputs": [
    {
      "scheme": "did",
      "id": "did:web:buyer.example#bid-auction-3310-acme-r1"
    },
    {
      "scheme": "did",
      "id": "did:web:buyer.example#bid-auction-3310-globex-r1"
    },
    {
      "scheme": "did",
      "id": "did:web:buyer.example#bid-auction-3310-acme-r2"
    },
    {
      "scheme": "did",
      "id": "did:web:buyer.example#bid-auction-3310-globex-r2"
    },
    {
      "scheme": "did",
      "id": "did:web:buyer.example#bid-auction-3310-acme-r3"
    },
    {
      "scheme": "did",
      "id": "did:web:buyer.example#bid-auction-3310-globex-r3"
    },
    {
      "scheme": "did",
      "id": "did:web:buyer.example#bid-auction-3310-acme-r4"
    },
    {
      "scheme": "did",
      "id": "did:web:buyer.example#bid-auction-3310-globex-r4"
    }
  ],
  "rationale": "Reverse auction closed on no-improvement. Lowest standing bid wins: globex at 11,000,000 EUR. Runner-up acme at 11,100,000.",
  "outcome": {
    "awardedBid": {
      "scheme": "did",
      "id": "did:web:buyer.example#bid-auction-3310-globex-r4"
    },
    "awardedParty": "did:web:globex.example#globex",
    "value": {
      "amount": 11000000,
      "currency": "EUR"
    },
    "ranking": [
      {
        "bidder": "did:web:globex.example#globex",
        "value": 11000000
      },
      {
        "bidder": "did:web:acme-networks.example#acme",
        "value": 11100000
      }
    ]
  },
  "provenance": {
    "generatedBy": {
      "scheme": "did",
      "id": "did:web:buyer.example#auctioneer"
    },
    "generatedAt": "2026-07-01T09:00:00Z",
    "derivedFrom": [
      {
        "scheme": "did",
        "id": "did:web:buyer.example#bid-auction-3310-acme-r1"
      },
      {
        "scheme": "did",
        "id": "did:web:buyer.example#bid-auction-3310-globex-r1"
      },
      {
        "scheme": "did",
        "id": "did:web:buyer.example#bid-auction-3310-acme-r2"
      },
      {
        "scheme": "did",
        "id": "did:web:buyer.example#bid-auction-3310-globex-r2"
      },
      {
        "scheme": "did",
        "id": "did:web:buyer.example#bid-auction-3310-acme-r3"
      },
      {
        "scheme": "did",
        "id": "did:web:buyer.example#bid-auction-3310-globex-r3"
      },
      {
        "scheme": "did",
        "id": "did:web:buyer.example#bid-auction-3310-acme-r4"
      },
      {
        "scheme": "did",
        "id": "did:web:buyer.example#bid-auction-3310-globex-r4"
      }
    ]
  },
  "humanApproval": {
    "scheme": "did",
    "id": "did:web:buyer.example#approval-auc-55"
  }
}
auction.json
{
  "@context": "https://concert.foundation/signet/v0.1/context.jsonld",
  "type": "Auction",
  "id": {
    "scheme": "did",
    "id": "did:web:buyer.example#auction-3310"
  },
  "sourcingEvent": {
    "scheme": "did",
    "id": "did:web:buyer.example#event-1207"
  },
  "procuringParty": {
    "scheme": "did",
    "id": "did:web:buyer.example#buyer"
  },
  "auctionType": "reverse",
  "rules": {
    "roundStructure": "multi-round",
    "maxRounds": 8,
    "startPrice": {
      "amount": 12000000,
      "currency": "EUR"
    },
    "reservePrice": {
      "amount": 9000000,
      "currency": "EUR"
    },
    "minStep": {
      "amount": 100000,
      "currency": "EUR"
    },
    "closeCondition": "no-improvement",
    "tieBreak": "earliest-bid",
    "identityDisclosure": "anonymous-ranks"
  },
  "eligibility": {
    "requiresQualification": true,
    "minStatus": "active"
  },
  "status": "closed",
  "period": {
    "startDate": "2026-07-01T09:00:00Z",
    "endDate": "2026-07-01T10:30:00Z"
  }
}

Produced by auction/run-auction.js; verified against the SIGNET conformance tests and the same harness that certifies implementations. It runs in CI on every commit to concerthq/signet-standard at v0.12.0: every Bid and the Award must validate, the event chain must hold, and re-running the close must reach the identical Award.

Run it yourself

Drag the mandate floors

Play the rounds to run the deterministic auction client-side — identical logic to the repository, so the descending-price ladder and the hash-chained bid events match CI exactly. Then drag a mandate floor: lower one agent below its rival and it keeps undercutting — the winner flips and the clearing price tracks whichever floor stops second. Re-run to reach the identical Award; tamper with a bid and the verification turns red.

Mandate floorsdrag to re-run

The clearing price tracks the runner-up’s floor, not the winner’s. Lower a floor below the rival’s and that agent keeps undercutting — the winner and price move.

Press Play the rounds to run the reverse auction in your browser — the same deterministic logic that runs in CI, so the descending-price trace and the hash-chained bid events are byte-identical to the repository’s. Then drag a mandate floor and watch the winner and clearing price move live.

This is what certification tests

The three controls above are exactly the profile’s three browser-checkable requirements:

  • Run → valid objects AP-1 — every Auction and Bid validates against the published schemas.
  • Re-run, identical award → deterministic close AP-2 — the recorded winner is the deterministic function of the bids and the published rules.
  • Tamper → red → tamper-evident record AP-3 — any alteration breaks the hash chain and is detectable.

Platforms are certified against exactly these properties, with the same public tooling. Read the auction conformance profile ↗ or the certification announcement.

Why a deterministic close matters

Price formation in the standard, not the platform

An operator-run auction asks you to trust its software cleared fairly. A SIGNET auction proves it: the rules and the bid record are normative and operator-independent, so any conformant operator closing the same bids reaches the same Award. Three governed actions — award, onboarding, auction — one harness.

Deterministic by design

These are the deterministic reasoners — the bidding agents and the auctioneer both run fixed logic, so the close is identical on every run, which is what makes it a proof rather than a one-off. Live frontier models can drive the identical flow via MCP/A2A with no change to the governance: mandate-floor enforcement, the reserve, provenance, the tamper-evident bid chain, and the deterministic close are unchanged. The live version needs an API key and network, so it is not run on this public page — but the governance around it is identical either way. The demo standardises the rules and the record, not the millisecond dynamics: real-time sub-second bidding, sniping protection, and latency fairness are operator-side engineering, out of scope here.

Concert

The first GUILD. The first SIGNET.

Concert is building the open infrastructure layer for a new era of governed, intelligent, multi-party commerce. Join the founding consortium.

Get in touch