Status: Complete on Stellar testnet, 2026-08-17
Scope: Sealed-auction integration kit (public receipt, template, and three live rounds)
SCF boundary: This is completed Instawards work and a pre-SCF baseline. Rounds 21-23 do not count toward any SCF post-award round target or future SCF-funded deliverable.
Download the completed SOW PDF | Read this evidence pack online
All three rounds use Core v2 Auction, native testnet XLM escrow, three distinct
bidders, and the same public testnet contract:
View the contract on Stellar Expert
| Round | Public receipt | Raw evidence | Create transaction | Atomic settlement + refunds |
|---|---|---|---|---|
| 21 | Open receipt | JSON | 33c8...4aeb | 60c0...feee |
| 22 | Open receipt | JSON | 47c6...90b4 | bbc7...972a |
| 23 | Open receipt | JSON | 2eb7...5301 | 161f...4c32 |
The settlement and refund columns intentionally contain one transaction per
round. Core v2 performs the seller payment, winner surplus refund, every losing
bidder refund, and lot transfer atomically in that single settle_v2 call.
The PublishedAuctionEvidence SDK module pairs the canonical Core v2 receipt
with all lifecycle transaction hashes. Its verifier checks the canonical
receipt, Auction/Settled status, bidder minimum, transaction evidence, and the
atomic settlement/refund hash. The public page additionally reads the current
round from Stellar RPC and compares status, mode, bidder count, winner, and
winning amount with the published record.
The Core v2 contract test v2_auction_binds_full_payload_and_conserves_funds
proves exact seller payment, winner surplus, loser refund, drained contract
balance, and lot transfer. The full contract suite contains 100 passing tests.
The copy-paste runner and setup guide are in
services/auction-template. The same
runner created rounds 21-23 using only the public @sub-rosa/sdk surface. It
creates rounds, submits three time-locked bids, fetches the real Drand beacon,
reveals, clears, settles, and exports verified evidence without persisting any
secret key.
Rounds 21-23 each have three bidders and ten public lifecycle transactions: one create, three commits, one open-reveal, three reveals, one clear, and one atomic settle/refund. The live links above expose the result and every Stellar Expert transaction link from one page.
- The seller escrows the lot and fixes identical 25 XLM bidder escrow.
- Three allowlisted testnet accounts submit encrypted, commitment-bound bids.
- No bid amount is readable before Drand round 31393417.
- After the beacon arrives, the envelopes reveal and the contract records the valid bid amounts.
- After the reveal window, anyone can clear the highest valid bid.
- One atomic call pays the seller, refunds unused and losing escrow, and sends the lot to the winner.
- The SDK exports a canonical receipt and verifies it offline; the public page separately reconciles the receipt with live contract state.
pnpm install
pnpm packages:build
pnpm --filter @sub-rosa/auction-template test
pnpm contract:test
pnpm web:buildTo run a new testnet auction, follow the
template quickstart. Generated public
records use sub-rosa/published-auction-evidence/v1 and are indexed by
manifest.json.
- Testnet only; no real-value or mainnet claim is made.
- The auction lot is a test asset; bidder escrow is native testnet XLM.
- The runner is demo-grade, not highly available keeper infrastructure.
- No third-party security audit is claimed.
- No production database, multi-tenant dashboard, anti-sybil layer, custom wallet, governance, or fee market is included.
- The offline verifier proves receipt consistency. High-value consumers should also reconcile the receipt against live ledger state, as the public page does.
