@auco/sdk
v0.1 · Solana · Arcium MPC

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 lines
import { 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.

No smart contracts

The Anchor program is deployed and audited. You never touch Rust.

No MPC plumbing

x25519 keys, Rescue ciphers, MXE pubkey fetches, callback handlers — gone.

No reveal phase

Unlike commit-reveal, bidders bid once and walk away. MPC settles autonomously.

No trusted operator

Today's 'sealed' auctions trust the auctioneer. MPC removes the operator.

Sealed reserves (novel)

The reserve price itself can be encrypted. Public auctions structurally can't do this.

Type-safe TS

Strict types, JSDoc, treeshakeable ESM. Works in Next.js, Remix, anything.

Compared to what you'd build otherwise.

auco-sdkcommit-revealoff-chain "sealed"
trust modelArcium MPC thresholdhonest revealstrust the operator
reveal phasenonerequirednone
losing bids stay privateyes — foreverno — revealedtrust the operator
sealed reserveyesnono
dev LOC for an auction~12~200~500 + backend

API.

createAuction(options)

Creates a fresh auction PDA. Options: type, asset, reservePrice, duration, authority, sealedReserve.

auction.bid(bidder, lamports)

Encrypts the bid amount client-side, escrows lamports into a per-bid PDA.

auction.settle(authority)

Queues the MPC settlement computation. Anyone can call after endsAt.

auction.claimPrize(winner, bid)

Winner pays the seller; for Vickrey, recovers the rebate to the second-price.

auction.claimRefund(bidder, bid)

Losers recover their full escrow.

auction.onSettled(cb)

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 docs

auco-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.

1. install the skill (one command)
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
2. then ask claude
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 ↗