Kiosk

Get to know Kiosk - a standard and a decentralized system for trading digital assets on Sui.

Kiosk Overview

Kiosk is a decentralized system for commerce applications on Sui. It consists of kiosks - shared objects owned by individual users that store digital assets and allow listing them for sale and utilizing custom trading functionality, such as an auction. It is designed to transform how digital assets like NFTs, digital art, music, and more are bought and sold. It empowers creators by allowing them to create their digital storefronts called Kiosks to showcase and sell their unique digital assets.

Kiosks are shared objects owned by individuals and used to store and list objects with unique properties for sale. Simply put, a kiosk is nothing but an NFT marketplace or auction.

Kiosk is natively deployed on Sui, is available to anyone, and operates on three core components:

  1. Kiosk: A digital storefront owned by individual creators or IP holders.
  2. Digital Assets: The items or products listed for sale within the Kiosk.
  3. Terms: Custom trading rules defined by the Kiosk owner for their listed assets, including price, royalties, fees, and transfer policies.

Issues Addressed

Kiosk's innovative approach addresses long-standing issues in the digital marketplace, and its true potential lies in reshaping the future of decentralized commerce:

  1. Creator Control: Kiosk empowers creators by giving them complete control over their assets and the terms of trade, addressing issues like royalty enforcement faced on centralized platforms.
  2. Decentralized Ecosystem: Kiosk operates on a decentralized blockchain, eliminating the need for intermediaries and enabling direct creator-to-buyer transactions.
  3. Transparency and Immutability: All transactions and terms are recorded on the blockchain, ensuring transparency and immutability of data.
  4. Composability: Kiosk can integrate with other decentralized applications and services, enabling a composable ecosystem for decentralized commerce.

Roles

Four roles can interact with a kiosk: an owner, a buyer, a marketplace operator, and a kiosk creator.

Owner

A kiosk owner is a user who created and owns a Sui kiosk. Kiosk ownership is ruled by the KioskOwnerCap - a special object that grants full access to a single kiosk. Kiosk owners can sell any assets with a shared transfer policy available by adding them to their kiosk and then listing them with a specified offer amount, for which anyone can buy such assets.

A Kiosk owner can:

  • place and take items;
  • list items for sale;
  • add and remove extensions;
  • withdraw profits from sales;
  • borrow and mutate owned assets;
  • access the complete set of trading tools, such as auctions, lotteries, and collection bidding.

Buyer

A buyer is a user who can purchase assets via a Sui kiosk. A buyer enjoys the following benefits of using a kiosk:

  • access to global liquidity and get the best offer;
  • buyers can place bids on collections through their Kiosks;
  • most transactions performed in kiosks are free for buyers (no gas has to be paid);

However, all buyers abide by the following responsibilities:

  • a buyer is obliged to pay a fee in case this is provided by the transfer policy;
  • a buyer must follow the rules set by creators; otherwise, a transaction will fail.

However, a kiosk guarantees that the listed items will remain unchanged until the trade is complete, in case a custom trading logic is applied.

Marketplace Operator

Marketplaces aggregate and display all offers listed in kiosks. Marketplace operators are individuals who deploy and own such marketplaces. They can implement a custom system using Kiosk extensions. For example, marketplace operators can use transfer policy capabilities to implement application-specific transfer rules.

Creator

A creator is a user who creates objects listed in kiosks and defines and applies the transfer policy for a single asset type. For example, the authors of SuiFrens are the Creators of the SuiFren type and act as creators in the Kiosk ecosystem. Creators are those guys who create NFT collections, for example. They set the transfer policy and might also be the first sellers of their assets through a Kiosk.

A creator can:

  • set trading rules;
  • set multiple ways ("tracks") of rules;
  • enable or disable trades at any moment with a policy;
  • enforce policies (fees, royalties, terms) on all trades;
  • perform a primary sale of their assets through a Kiosk;

At the same time, a creator can't:

  • take or modify items stored in someone else's kiosk;
  • Restrict items from being taken from kiosks if the trading policy doesn't specify the locking rule.

Guarantees

Sui Kiosk provides a set of guarantees that Sui enforces through packages that include the following:

  • Every trade in Sui Kiosk requires a transfer policy resolution granting creators control over the trading procedures for the objects they have created.
  • True asset ownership meaning that only a kiosk owner can take, list, borrow, or modify the assets added to their kiosk. This is similar to how single-owner objects work on Sui. This is, in fact, part of Sui's more extensive policy to enhance digital asset ownership (see Sui Advantages).
  • Changes to a TransferPolicy apply instantly and globally.
    In practice, these guarantees mean that:

All the aforementioned put digital assets that are created, managed, and sold via Sui Kiosk in full ownership of their creators and owners.

Kiosk Objects

What assets can be listed, sold, and purchased in a Sui kiosk? Almost anything: NFTs, collections, domain names, gaming objects, tickets, and other unclassified objects.

A Kiosk object should have a type that looks like this: {object ID}+{Object Type}+{Object Name}. For example:

https://suiscan.xyz/mainnet/object/0x59785f6826c2a2b85231836dc3a14e15681ccccec66dec9df76efaea3210e970.

NFTs are a most vivid example of a Kiosk object. Their use cases include, among others, in-game assets (gaming items, characters, accessories), ownership and authenticity proofs (records of ownership), cross-game interactions (tokens, renting unique items), gaming collectibles (custom gaming objects), ticketing (asset transferability), renting virtual land, temporary assets and subscriptions, and more.

When an object is added to a kiosk, it gets one of the following statuses:

PLACED - an object is placed in the kiosk using the kiosk::place function.

LOCKED - an object is placed in the kiosk using the kiosk::lock function. Any object placed in a kiosk that has an associated Kiosk Lock policy is LOCKED.

LISTED - an object in the kiosk that is listed for sale using the kiosk::list or kiosk::place_and_list functions.

LISTED EXCLUSIVELY - an object is placed or locked in the kiosk by an extension that calls the kiosk::list_with_purchase_cap function. Only the kiosk owner can approve calling the function.

When someone purchases an asset from a kiosk, the asset leaves the kiosk, and ownership transfers to the buyer’s address. The diagram below illustrates what states a Kiosk object can take.

The table below shows what actions are available with objects in different statuses.

StatusBorrow mutablyBorrow immutablyWithdrawList for saleModifyDelist
PlacedYesYesYesYesNoNo
LockedYesNoYesYesNoNo
ListedNoYesNoNoYesYes
Listed ExclusivelyNoYesNoNoNoYes

Suiscan tracks Sui Kiosk objects and Marketplaces.