@mysten/sui v2.0 and a new dApp Kit are here! Check out the migration guide
Mysten Labs SDKs
Kiosk client

Querying

You can use client.kiosk to query kiosk data. It helps you get owned kiosks for an address, as well as fetching all the contents of a specified kiosk.

Querying owned kiosks

Querying owned kiosks returns a list of kioskOwnerCaps, as well as a list of the kioskIds.

KioskOwnerCap is important in this case, as it is used for managing an owned kiosk, as well as purchasing.

const address = '0xAddress';
// You can perform actions, like querying the owned kiosks for an address.
const { kioskOwnerCaps, kioskIds } = await client.kiosk.getOwnedKiosks({ address });
console.log(kioskOwnerCaps);

/**
 * An example response for an address that owns two kiosks (one of which is personal)
[
  {
    isPersonal: true,
    digest: '9mstxLa87E3VEewQ62EEQDKb7ZH2irrEXeMetQjQHzXz',
    version: '18',
    objectId: '0x5d4df1b8da5e1b6bafbb4b7dc5c73e532324d82c86e331f71bf1ea5dff18dccc',
    kioskId: '0x8453fc71611ce8ff73efcca42ed241dcaf7dc65411b56a7be42e6a0bc3d72c13'
  },
  {
    isPersonal: false,
    digest: '8fsKgCh5c2ycPKMVUqUz2H6D9WkPjRHmGP454z67afJh',
    version: '15',
    objectId: '0x84f5a9a1379d73eceae03d0578637936e208daa809e04ec07a8085c798a980fd',
    kioskId: '0xf8c826aae52bc576768032ce496b7fc349f9003603ed1541c8033fc5c2dd2d2c'
  }
]
 */

Querying kiosk content

You can follow the sample to query a kiosk's contents. We recommend saving the items structure (KioskItem), as it's useful when you're trying to purchase from one.

listing field only applies on items that are listed for sale.

const id = `0xKioskId`;

// You can perform actions, like querying a kiosk's contents.
const res = await client.kiosk.getKiosk({
	id,
	options: {
		withKioskFields: true, // this flag also returns the `kiosk` object in the response, which includes the base setup
		withListingPrices: true, // This flag enables / disables the fetching of the listing prices.
	},
});
console.log(res);
/**
 * An example response of an existing kiosk
 *
{
  items: [
    {
      objectId: '0xf65e88a33466763cabd11b7c2a57938cf4fa707c6cf767cb428894e14caf1537',
      type: '0xd12f8e0fdae3f5d88d2fc4af2e869ea503491e2d8da5f3136320b65bdcf70ab3::hero::Hero',
      isLocked: false,
      kioskId: '0x6d45df1942c11048a9182e3f732262e6e3c95ddd2e5f338c565f531717c2617f',
      listing: undefined,
      data: {
        objectId: '0xf65e88a33466763cabd11b7c2a57938cf4fa707c6cf767cb428894e14caf1537',
        version: '18',
        digest: 'As9fkLEP4QVChhYuGemB185xyyzWG4hspSa3UZ6TWR8b',
        display: { data: null, error: null },
        content: {
          dataType: 'moveObject',
          type: '0xd12f8e0fdae3f5d88d2fc4af2e869ea503491e2d8da5f3136320b65bdcf70ab3::hero::Hero',
          hasPublicTransfer: true,
          fields: {
            id: {
              id: '0xf65e88a33466763cabd11b7c2a57938cf4fa707c6cf767cb428894e14caf1537'
            },
            level: 3
          }
        }
      }
    },
    {
      objectId: '0x34def97cb8c357fcfdf22f72421d4f6f01706662acf7be1afb6e7391d5491372',
      type: '0xd12f8e0fdae3f5d88d2fc4af2e869ea503491e2d8da5f3136320b65bdcf70ab3::hero::Hero',
      isLocked: true,
      kioskId: '0x6d45df1942c11048a9182e3f732262e6e3c95ddd2e5f338c565f531717c2617f',
      listing: undefined,
      data: {
        objectId: '0x34def97cb8c357fcfdf22f72421d4f6f01706662acf7be1afb6e7391d5491372',
        version: '15',
        digest: 'J1MdmHUCXJEKd86rkmMwWASMV86wGkVS9P6SFPyRaKVV',
        display: { data: null, error: null },
        content: {
          dataType: 'moveObject',
          type: '0xd12f8e0fdae3f5d88d2fc4af2e869ea503491e2d8da5f3136320b65bdcf70ab3::hero::Hero',
          hasPublicTransfer: true,
          fields: {
            id: {
              id: '0x34def97cb8c357fcfdf22f72421d4f6f01706662acf7be1afb6e7391d5491372'
            },
            level: 1
          }
        }
      }
    }
  ],
  itemIds: [
    '0xf65e88a33466763cabd11b7c2a57938cf4fa707c6cf767cb428894e14caf1537',
    '0x34def97cb8c357fcfdf22f72421d4f6f01706662acf7be1afb6e7391d5491372'
  ],
  listingIds: [],
  extensions: [],
  kiosk: {
    id: '6d45df1942c11048a9182e3f732262e6e3c95ddd2e5f338c565f531717c2617f',
    profits: '100000',
    owner: '96300f8d9064f954f99db2d7fbe2ad0c5e4344f0e22392330285d399498cfaf3',
    itemCount: 2,
    allowExtensions: false
  }
}
 */

Query kiosk extension

Queries an extension's data. Returns null if there's no extension with that type installed.

// The type of the custom extension.
const type = '0xAddress::custom_extension::ACustomExtensionType';

const extension = await client.kiosk.getKioskExtension({
	kioskId: '0xAKioskId',
	type,
});

console.log(extension);

/**
 * An example output of the response
{
  objectId: 'extensionObjectId',
  type: '0xAddress::custom_extension::ACustomExtensionType',
  isEnabled: true,
  permissions: "3",
  storageId: '0xExampleStorageId',
  storageSize: "0",
}
*/

Querying transfer policy for type

const itemType = '0xAddress::hero::Hero';
// You can perform actions, like querying transfer policy for type.
const policies = await client.kiosk.getTransferPolicies({ type: itemType });
console.log(policies);

/* An example output of the response
[
  {
    id: '0x074847055fe4ea9a7f51eeaf095c05875509403059115af121cfea9b8de355de',
    type: '0x2::transfer_policy::TransferPolicy<0x85926b03d56e49bedfca558fc6a2540d43bdfb5c218190d63b571f33afe255f8::hero::Hero>',
    owner: { Shared: { initial_shared_version: 5 } },
    rules: [
      'a82212d931d3bc7c3401552d935abced7b7fd41d4f57a99f0f47b9196b2f57f5::kiosk_lock_rule::Rule',
      'a82212d931d3bc7c3401552d935abced7b7fd41d4f57a99f0f47b9196b2f57f5::floor_price_rule::Rule',
      'a82212d931d3bc7c3401552d935abced7b7fd41d4f57a99f0f47b9196b2f57f5::royalty_rule::Rule',
      'a82212d931d3bc7c3401552d935abced7b7fd41d4f57a99f0f47b9196b2f57f5::personal_kiosk_rule::Rule'
    ],
    balance: '20000'
  }
]
*/

Get owned transfer policies

Queries to find all the owned transfer policies. Useful to manage transfer policies, and can be combined with TransferPolicyTransaction to easily add or remove rules and withdraw profits.

// The address that owns the transfer policies.
const address = '0xAddress';
// You can perform actions, like querying the owned transfer policies for an address.
const policies = await client.kiosk.getOwnedTransferPolicies({ address });
console.log(policies);

/**
 * An example output of the response
[
  {
    policyId: '0x6b6eca8df6e70ea6447e639ef26b519039b5e9123642258eea1b3c781e94faca',
    policyCapId: '0x34a4794d4ad6578ac345d23ca0f7a4632ca88de297daaf24a1cdbc91e1547be4',
    type: '0xbe01d0594bedbce45c0e08c7374b03bf822e9b73cd7d555bf39c39bbf09d23a9::hero::Hero'
  },
  {
    policyId: '0x87ac2dd80011ed2de9c7916a19145ff520959acd3d8c3dbd100aa74b34155a0a',
    policyCapId: '0x858edda13c5c9086b2491eafed39e0ea58511268bb90d90464a2d7b5ed3f3880',
    type: '0xbe01d0594bedbce45c0e08c7374b03bf822e9b73cd7d555bf39c39bbf09d23a9::hero::Villain'
  }
]
*/

Get owned transfer policies by type

Queries to find all the owned transfer policies for a specific type. Useful to manage transfer policies, and can be combined with

// The address that owns the transfer policies.
const address = '0xAddress';
// The type of the transfer policy.
const type = '0xbe01d0594bedbce45c0e08c7374b03bf822e9b73cd7d555bf39c39bbf09d23a9::hero::Hero';

// We can query by type.
const policies = await client.kiosk.getOwnedTransferPoliciesByType({ address, type });

// An example output of the response
// [
//   {
//     policyId: '0x6b6eca8df6e70ea6447e639ef26b519039b5e9123642258eea1b3c781e94faca',
//     policyCapId: '0x34a4794d4ad6578ac345d23ca0f7a4632ca88de297daaf24a1cdbc91e1547be4',
//     type: '0xbe01d0594bedbce45c0e08c7374b03bf822e9b73cd7d555bf39c39bbf09d23a9::hero::Hero'
//   }
// ]

On this page