Sealed-bid auctions
in one npm install.
Drop the SDK into your marketplace, domain registry, NFT drop, or DAO treasury sale. Bids are encrypted in the bidder's browser, compared inside an MPC cluster, and settled trustlessly on Solana. Losing bids stay encrypted forever.
The whole pitch
12 linesimport { createAuction, configure } from 'auco-sdk';
configure({ connection });
const auction = await createAuction({
type: 'vickrey', // second-price sealed bid
asset: nftMint,
reservePrice: 1 * LAMPORTS_PER_SOL,
duration: 86_400,
authority: sellerKeypair,
});
await auction.bid(bidderKeypair, 5 * LAMPORTS_PER_SOL);
await auction.settle(sellerKeypair);You write the frontend. We handle the contract, the MPC circuits, the settlement, the refunds. The same SDK powers the VaultDrops live demo →
What you stop worrying about.
The Anchor program is deployed and audited. You never touch Rust.
x25519 keys, Rescue ciphers, MXE pubkey fetches, callback handlers — gone.
Unlike commit-reveal, bidders bid once and walk away. MPC settles autonomously.
Today's 'sealed' auctions trust the auctioneer. MPC removes the operator.
The reserve price itself can be encrypted. Public auctions structurally can't do this.
Strict types, JSDoc, treeshakeable ESM. Works in Next.js, Remix, anything.
Compared to what you'd build otherwise.
| auco-sdk | commit-reveal | off-chain "sealed" | |
|---|---|---|---|
| trust model | Arcium MPC threshold | honest reveals | trust the operator |
| reveal phase | none | required | none |
| losing bids stay private | yes — forever | no — revealed | trust the operator |
| sealed reserve | yes | no | no |
| dev LOC for an auction | ~12 | ~200 | ~500 + backend |
API.
Creates a fresh auction PDA. Options: type, asset, reservePrice, duration, authority, sealedReserve.
Encrypts the bid amount client-side, escrows lamports into a per-bid PDA.
Queues the MPC settlement computation. Anyone can call after endsAt.
Winner pays the seller; for Vickrey, recovers the rebate to the second-price.
Losers recover their full escrow.
Polling subscription that fires once the on-chain state transitions to settled.
Install
pnpm add auco-sdk @solana/web3.js @coral-xyz/anchor
Peer dep on @arcium-hq/client for the encryption primitives.
Use with Claude
↳ skip the docsauco-sdk ships with a Claude Skill. Drop it in ~/.claude/skills/ and ask Claude to scaffold the integration — it knows the wallet adapter setup, the vault flow, the MPC latencies, and the gotchas. No SDK docs to read.
mkdir -p ~/.claude/skills/auco-sdk && \ curl -fsSL https://raw.githubusercontent.com/shibu0x/auco/main/.claude/skills/auco-sdk/SKILL.md \ -o ~/.claude/skills/auco-sdk/SKILL.md
add a sealed-bid auction page to my Next.js app using auco-sdk
Read the skill source: github.com/shibu0x/auco/.claude/skills/auco-sdk/SKILL.md ↗