SilentBid
Sealed-bid token launches on Uniswap CCA in which bids stay private via Chainlink CRE.
What it is
SilentBid is a privacy layer for Uniswap's Continuous Clearing Auction (CCA) that makes token launches fair by keeping bids sealed until the auction closes. Today, every bid on a CCA or LBP is public — MEV bots front-run, snipers copy bids at the last block, and retail participants consistently get worse outcomes. SilentBid fixes this by replacing public bids with keccak256 commitments onchain while handling all sensitive bid data (prices, amounts, identities) offchain through Chainlink CRE workflows. The flow: a bidder signs an EIP-712 typed bid in their wallet. The frontend sends it to a CRE-backed API route that verifies the signature, computes the commitment, and stores the bid privately via Confidential HTTP. Only the commitment hash and the ETH escrow go onchain via submitBlindBid(commitment). After the deadline, a second CRE workflow loads all sealed bids, runs uniform-price discovery to find the clearing price, and returns calldata for a single forwardBidsToCCA transaction that pushes all bids into the underlying CCA. A third workflow handles settlement — winner payouts and loser refunds — with individual transfers staying confidential. The result: the same CCA clearing and Uniswap pool seeding that projects expect, but with zero bid leakage during the auction. No new chain, no black box — just sealed-bid fairness on top of an already battle-tested mechanism.
How it Works
Full-stack Next.js 16 app with Tailwind CSS, RainbowKit, and Wagmi for wallet connection. The smart contracts (BlindPoolCCA, BlindPoolFactory) are written in Solidity and deployed on Sepolia via Foundry. The privacy layer is three Chainlink CRE workflows — bid-ingestion, finalize, and settle — each backed by a Next.js API route that implements identical logic. Bids use EIP-712 typed signing for wallet-native UX. Commitments are keccak256(abi.encodePacked(auctionId, sender, maxPrice, amount, timestamp)). CRE Confidential HTTP ensures bid data and API keys never appear onchain or in public logs. The finalize workflow runs uniform-price discovery offchain and produces a single batched forwardBidsToCCA call. We have 60 vitest tests — all real onchain, zero mocks — covering ABIs, commitment math, chain config, and all three API routes. The CRE workflows can be simulated locally with the CRE CLI before deployment.
Links
Created by
- Shubham T
- Ayush