Pearl Auction

sealed-bid PRL auctions · the auction hall

List the auction

The auctioneer commits to the item terms, the minimum bid, the commit deadline and the reveal deadline (both block heights) in a tamper-evident descriptor. Publish the descriptor before the commit deadline — that is what makes the sealed-bid phase provably fair.

The auction rules (published with the descriptor)

  • One bidder, one commitment. A second commitment from the same address is flagged and both are excluded.
  • Commitment hashes must be published before the commit deadline block — late hashes are refused.
  • Bids are revealed after the commit deadline and before the reveal deadline. A reveal whose (bid, salt) does not reproduce the recorded commitment is refused loudly.
  • Revealed bids below the minimum are refused. Highest verified bid wins; ties are broken by earliest reveal.
  • The winner pays the seller directly, off-page. This page never moves PRL.

Commit a sealed bid

A bidder computes their commitment locally — address + bid + a random 16-byte salt, hashed as SHA-256("pearl-auction-commit:v1:⟨descriptorHash⟩:⟨address⟩:⟨bidGrains⟩:⟨saltHex⟩"). Then they publish only the hash. The bid stays secret until the reveal phase.

1 · Generate the commitment

2 · Organizer: record published commitments

Bidders publish their hashes themselves. The organizer records each (address, hash) pair. The page refuses hashes published at or after the commit deadline, duplicate hashes, and a second hash from the same address.

Commitment ledger (0)

Reveal the bids

After the commit deadline and before the reveal deadline, each bidder reveals their bid + salt. The page re-derives the commitment — a mismatch is refused loudly and the bid is rejected. Bids below the minimum are refused. Reveals are processed in order; ties go to the earliest reveal.

Reveals — in reveal order (0)

No reveals yet. The order below is the reveal order — it breaks bid ties.

Settle the auction

Every commitment is re-checked, every reveal re-verified, cheaters (hash collisions, double reveals) excluded, and the ranking computed: highest verified bid wins; ties go to the earliest reveal. The winner pays the seller directly, off-page — the plan below gives the exact pearl: payment URI with a QR code. This page never moves PRL.

Verify an auction

The standalone verifier. Paste anyone's descriptor, their published commitments, and the reveals (in reveal order) — the app re-derives the auction hash, re-checks every commitment, recomputes the winner. Tampered input gets a loud ✗ NOT PROVEN refusal.

Track the auction

Reload a descriptor to re-derive it, see committed/revealed counts (bids stay hidden until reveal), and count down to the commit and reveal deadlines via Blockbook or a manually entered height.

Honest limits