Sealed envelopes for public procurement, on the world computer.
RUNTIME · STACK · STATUS:
Sepolia · live
Zama fhEVM
Built on ERC-7984
Solidity 0.8.27
✓ 329 / 329 tests
11 contracts
THE STAKES
Public procurement is where your tax money meets contractors.
15–30%
GDP · PUBLIC SPENDING
₺1T+
TENDER VOLUME / YR (KIK 2023)
3–5%
LOST TO BID LEAKAGE · ~$400–600B / YR
TÜRKIYE
KIK 4734 sayılı Kanun Madde 36 says bidder names are
"only known by the procurement commission."
Commission staff are human. Leaks recur in audit reports. The legal property has never been enforced cryptographically.
GLOBAL
World Bank and OECD anti-bribery surveys repeatedly cite bid-rigging in 15–20% of audited public-procurement files across developing economies, with cartels typically inflating winning prices 15–30%.
IMPACT
When over-charging is structural, what gets cut is concrete, rebar, oversight.
Bid-rigging is not abstract — it shows up in the physical world long after the tender closes.
This is not a software bug. It is a 200-year structural assumption that humans in the middle won't peek.
They do.
THE PARADOX
Open tenders leak prices. Sealed tenders trust the operator.
Cryptography has tried to fix this. Commit-reveal needs a reveal phase that can stall. MPC needs every bidder online for the ceremony. TEE needs hardware vendors you have to trust.
Each solution adds a new trust point.
FHE is the first PRACTICAL primitive that gives privacy AND transparency together.
THE TRANSLATION
Sealed envelopes are 200 years of fair procurement.
SealTender puts them on the world computer.
Bids never leave their envelopes. Bonds settle in confidential USDC (ERC-7984).
The chain compares blind; losing bids stay sealed by default.
OZ CONFIDENTIAL CONTRACTS 0.4.0
THE BOND RAIL · ERC-7984 cUSDC ENVELOPE
PLAIN ERC-20
USDC
balance public
→ wrap() →
ERC-7984 · CIPHERTEXT
cUSDC · euint64
balance encrypted · ACL-gated
→ setOperator →
BIDESCROW
euint64 bond
held confidentially
Bond amount stays encrypted on-chain. Only owner + escrow hold ACL.
For the first time, a sealed bid and a publicly verifiable bid are the same thing — on Ethereum.
THE FHE PRIMITIVE · TWO ENCRYPTED RAILS, ONE TENDER
Compute on ciphertext. Decrypt only the result. With a quorum.
BID CIPHERTEXT · FHE euint64
Price, years, projects encrypted client-side; compared blind on-chain.
Bond escrow is cUSDC (ERC-7984) — every deposit is an encrypted
euint64; refund + slash move ciphertexts via confidentialTransfer. No bond amounts leak via on-chain events.
OPTIONAL · v6
publishAllBids — procurement entity opts into
4734 Madde 36 transparency: each loser bid landed plaintext via per-bidder KMS roundtrip. Default mode keeps loser bids sealed.
DEMO · FRONTEND SHOWCASE
sealtender.vercel.app
Four routes. Self-sovereign decryption. Live on Sepolia.
Enforced by 3-of-5 ArbitrationSafe (KIK + Idari Mahkeme + 2 sector reps + 1 NGO) · Residual trust: 4734 Madde 12 commission rule on chain.
5
LIQUIDITY · DEPOSITS NEVER FROZEN
Enforced byBidEscrow.claimRefund permissionless after Cancelled · Residual trust: none.
+
BOND AMOUNT CONFIDENTIALITY · ERC-7984 ACL CHAIN
Enforced byFHE.allowThis on deposit, recipient ACL via OZ ERC7984._update · Residual trust: none.
FUTURE WORK · ROADMAP
The path from Sepolia to production.
ETHEREUM MAINNET
v8 · DEPLOY TARGET
Sepolia → Ethereum mainnet (Zama TKMS live since Dec 30, 2025)Multi-sig tender owner (Ownable2Step)ANNOUNCE_TIMELOCK 48h · REVEAL_TIMELOCK 7dFHE.ge gate on encrypted bond ≥ requiredDeposit
AUDIT + ADOPTION
EXTERNAL DEPENDENCIES
Trail of Bits / Halborn formal auditEKAP / Vergi / SGK bridge (Türkiye adoption)
THANKS FOR WATCHING.
SealTender.
FHE-Encrypted Sealed-Bid Procurement.
Public procurement, on Ethereum.
CODE
github.com/Himess/sealtender
LIVE
sealtender.vercel.app
PERMISSIONLESS REVEAL · TX
sepolia.etherscan.io/ address/0xb01B…d5AA
ZAMA DEVELOPER PROGRAM S2 · SKILLS + DAPP TRACK · MAY 10, 2026