Skip to content

Auctions

The AuctionSDK and AuctionFactorySDK manage on-chain auctions. Akita uses a “crack auction” model with an optional VRF-powered raffle for non-winning bidders.

A crack auction is a standard ascending-price auction where:

  • Bidders place increasingly higher bids
  • The highest bidder wins when the auction ends
  • A portion of bid fees can fund a VRF raffle for losing bidders

Optionally, bid fees accumulate into a prize pool. When the auction ends, losing bidders compete in a weighted raffle for the accumulated pool — bidders who placed higher bids have proportionally greater chances. A VRF (Verifiable Random Function) beacon provides on-chain randomness for the draw. This makes participation worthwhile even for non-winning bidders.

import { AuctionSDK, AuctionFactorySDK } from '@akta/sdk/auction'
const auctionFactory = new AuctionFactorySDK({ algorand })
// Interact with an existing auction
const auction = new AuctionSDK({
algorand,
factoryParams: { appId: auctionAppId },
})
const auction = await auctionFactory.newAuction({
bidAssetId: 0n, // Bid with ALGO
startingBid: 1_000_000n, // 1 ALGO minimum
bidMinimumIncrease: 100_000n, // 0.1 ALGO min increment
bidFee: 5n, // 5% bid fee
startTimestamp: BigInt(Math.floor(Date.now() / 1000)),
endTimestamp: BigInt(Math.floor(Date.now() / 1000) + 86400), // 24h
prizeAsset: nftAssetId,
prizeAmount: 1n,
name: 'My NFT',
proof: merkleProof,
marketplace: marketplaceAddr,
gateId: 0n, // No gate
weightsListCount: 0n, // No raffle weights
})
  • Configurable duration — Set auction start and end times
  • Reserve price — Minimum bid to start the auction
  • Bid increments — Minimum amount each new bid must exceed the previous
  • Raffle integration — Optional VRF raffle from bid fees
  • Double-sided fees — Both listing and purchasing platforms can take fees
  • Composable fees — DAO-controlled auction creation fees and sale percentages

Auction operations through a wallet use the AuctionPlugin. See Wallet Plugins.