Auctions on Solana, settled privately.
Two auction mechanics — sealed-bid commit–reveal and a descending Dutch sale — pay the seller through MagicBlock's Private Payments API. Funds move from a buyer's ephemeral rollup balance with visibility: "private", so the settlement leg is not a public “who paid whom” edge.
How a private settlement runs
Three steps the buyer does in the app — same path for sealed-bid and Dutch.
- Step 1
Deposit to the rollup
Buyer signs a MagicBlock-built
POST /v1/spl/depositthat funds an ephemeral USDC balance on devnet. We refresh the blockhash just-in-time so wallet UX stays snappy. - Step 2
Run the auction in app
Sealed-bid: SHA-256 commitments during bidding, reveals after close, highest valid bid wins. Dutch: price ticks down on a schedule until a buyer takes the lot.
- Step 3 · Private
Pay the seller privately
POST /v1/spl/transferwithvisibility: "private"and ephemeral balances on both sides. Confirmation returns a Solana signature you can open on Explorer.
Pick a mode and try it
Or scroll the guided panel on each page for a narrated, no-wallet walkthrough — handy for recordings.
Sealed-bid auction
Bidders publish SHA-256 commitments during the window. After close, amounts are revealed and verified; the highest valid bid wins. Payout is a private MagicBlock transfer.
Open sealed-bidPrivate Dutch sale
The ask drops on a timer until someone takes the lot. The buyer pays the seller at the live price using the same private transfer path as sealed-bid.
Open Dutch saleStack and references
Real MagicBlock integration
Deposit and private transfer go through payments.magicblock.app.
Devnet wallet flows
Phantom-compatible adapters, blockhash refresh, “already processed” recovery, and Explorer links for every confirmed signature.
Privacy first, demo-able
Auction logic is in-app for fast resets while recording, the settlement leg is the one that matters and lives on chain.