sui-kiosk-sdk-js

Implements Sui Kiosk TypeScript SDK conventions for listings, purchases, and transfer policies.

2|Updated May 16, 2026
One-click install
npx skills add https://github.com/avbel/ai-skills --skill sui-kiosk-sdk-js-avbel
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: sui-kiosk-sdk-js
Source: https://github.com/avbel/ai-skills/tree/main/skills/sui-kiosk-sdk-js
Command: npx skills add https://github.com/avbel/ai-skills --skill sui-kiosk-sdk-js-avbel

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires @mysten/kiosk, @mysten/sui, and includes scripts (resource) components.

What problem does it solve? Working with the @mysten/kiosk SDK involves many subtle rules—client extension setup, KioskTransaction finalization, transfer policy resolution, and breaking changes from older APIs—that are easy to get wrong and cause failed transactions or incorrect marketplace behavior. ## Core Features & Use Cases - Client and Transaction Conventions: Enforces correct setup with $extend(kiosk()), SuiJsonRpcClient or SuiGraphQLClient (never SuiGrpcClient), and proper KioskTransaction chains ending in finalize(). - Marketplace Flows: Covers placing, listing, delisting, borrowing, purchasing with purchaseAndResolve(), and managing transfer policies with royalty, lock, floor price, and personal kiosk rules. - Migration Guidance: Maps removed low-level helpers (createKiosk, confirmRequest, transactionBlock) to the current builder-pattern API. - Use Case: When building a Sui NFT marketplace in TypeScript, use this Skill to scaffold the kiosk client, list items for sale, and resolve purchases against transfer policies without reintroducing deprecated APIs. ## Quick Start Ask the agent to set up a Sui Kiosk client on mainnet and write a transaction that places and lists an item using KioskTransaction.

Frequently Asked Questions about sui-kiosk-sdk-js

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I set up the Sui Kiosk client in TypeScript?▼

Create a SuiJsonRpcClient or SuiGraphQLClient and add the Kiosk extension with .$extend(kiosk()). Install @mysten/kiosk alongside @mysten/sui, and ensure package.json uses "type": "module" since the SDK is ESM-only.

How do I purchase a listed item from a Sui kiosk?▼

Use kioskTx.purchaseAndResolve() with the item's itemType, itemId, price, and sellerKiosk. It queries the transfer policy and resolves supported rules automatically, so you should not manually confirm transfer requests.

Can I use SuiGrpcClient with the Kiosk SDK?▼

No. The Kiosk SDK requires SuiJsonRpcClient or SuiGraphQLClient because Kiosk relies on event queries that are not available through gRPC. Use one of the supported clients when adding the kiosk() extension.

Why does my KioskTransaction fail or leave the kiosk in a bad state?▼

The most common cause is missing finalize(). Every KioskTransaction chain must end with finalize() as the last call, which returns caps for personal kiosks, shares newly created kiosks, and completes pending transfers.

Does the Kiosk SDK work on Sui devnet or localnet?▼

Mainnet and testnet work by default, but devnet and localnet require passing explicit packageIds for the rules and extensions you use. Mysten rules are not supported on devnet by default because network wipes change package IDs.

How do I migrate from the old Kiosk SDK helper functions?▼

Kiosk SDK v0.7+ uses builder classes, so map old helpers to methods: createKiosk becomes kioskTx.create(), confirmRequest is handled by purchaseAndResolve(), and the transactionBlock constructor parameter is now transaction.