Anatomy of a Stellar-powered Auction

Anatomy of a Stellar-powered Auction on Litemint

We have just recently released the Auctions feature on Litemint! NFT owners on Litemint can now run live, time limited auctions with reserve price to further engage with their potential buyers. Collections also accept a dynamic filter for your auctions, show them off!

It is important to mention that Litemint auctions are fully decentralized, require no escrow, with full settlement on the Stellar DEX. Stellar offers all the tools to power such auctions, let’s uncover these tools and dissect these auctions!

Auction Requirements

  • Decentralized, at no time should a third party (e.g., Litemint) have ownership or access to the assets being traded.
  • Participants should be guaranteed that their bids cannot be filled before the auction expires.
  • NFT owners should be guaranteed that execution only occurs if the best price is at or above their reserve price at the end of the auction.
  • At any time before the end of the auction, NFT owners should be able to withdraw their NFT from auction.
  • At any time before the end of the auction, bidders should be able to retract their bids.

🛠️ The Stellar Toolbox

Time-Bound Transactions

Stellar allows us to specify time bounds for transaction validity so transactions can fail if submitted too early (or too late) to the network. Using these properties, we can ensure that a settlement transaction cannot happen before a specific time determined by the auction duration.

✍️ Pre-Authorized Transactions

Stellar allows an account to pre-authorize transactions on the network. These transactions can be used to lock accounts and have them execute very specific operations for settlement, and nothing else.

💱 Path Payment Operations

Path payments can be used for filling the highest bidder on SDEX at the end of the period. The pathPaymentStrictSend operation also allows us to specify a destination minimum amount, the auction reserve. If this amount is not met, all other operations fail.

📜 The Contract

Piecing all this together, we can now bind participants to a contract implemented via a time bound, pre-authorized transaction on Stellar. By locking the contract holder account, we can guarantee that the bids can never be filled before the end of the auction.

Although Litemint does it automatically, anyone can submit this pre-authorized transaction to the network at the end of the auction, ensuring the execution is fully decentralized.

Here is a sequence diagram to help visualize the various operations.

You can find a sample XDR from this link on Stellar laboratory with the contract transaction generated for the live auction below. This transaction is automatically summited at the end of the auction.

https://litemint.com/items/GCNHTITV7X6YJOAVMCMK44MJF66V3RTFCQ5HVL57J5SCNWKDAGS2HJRF/NFT

Again, thanks for being with us, making NFT on Stellar a reality, and happy auctioning on Stellar! Any questions or comment, feel free to let us know.

Also make sure you follow us on our social channels to keep posted about our latest news:

Website: https://litemint.com/
Github: https://github.com/litemint
Twitter: https://twitter.com/LitemintHQ
Facebook: https://www.facebook.com/litemint
Youtube: https://www.youtube.com/litemint
Web App: https://litemint.app/
Google Play: https://play.google.com/store/apps/details?id=com.litemint.app
Discord: litemint.gg
Reddit: https://www.reddit.com/user/blockonomy

Thanks for reading.