# How can a shared object represent a Kiosk?

**URL:** <https://forums.sui.io/t/how-can-a-shared-object-represent-a-kiosk/46643>\
**Category:** Move\
**Created:** [December 2, 2024, 3:05pm UTC](https://forums.sui.io/t/how-can-a-shared-object-represent-a-kiosk/46643 "2024-12-02T15:05:55Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![Stefanos](https://dub1.discourse-cdn.com/sui/user_avatar/forums.sui.io/stefanos/32/1459_2.png) [@Stefanos](https://forums.sui.io/u/Stefanos)\
**Post date:** [December 2, 2024, 3:05pm UTC](https://forums.sui.io/t/how-can-a-shared-object-represent-a-kiosk/46643/1 "2024-12-02T15:05:55Z")

</div>

Question from Discord:

> Hi Guys,  
> I’m new to sui chain, i’m unable to understand the concept of shared Kiosk.  
> As per the docs, the Kiosk can only be owned by one party.  
> When I do an api to call to fetch a Kisok which is a parent Object of an NFT Kiosk Item,  
> It stats that kiosk owner is shared.

```json
# RPC CALL INPUT
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "sui_getObject",
  "params": [
    "0x72348a59e8873af4c8f31924e91595afb8250307776c3c791d975a938065bae0",
    {
      "showType": true,
      "showOwner": true,
      "showPreviousTransaction": true,
      "showDisplay": false,
      "showContent": true,
      "showBcs": false,
      "showStorageRebate": true
    }
  ]
}

# RPC CALL OUTPUT

{
    "jsonrpc": "2.0",
    "result": {
        "data": {
            "objectId": "0x72348a59e8873af4c8f31924e91595afb8250307776c3c791d975a938065bae0",
            "version": "416951386",
            "digest": "5G5w9ca2s9m5cXQUULTBqpL8QqYnm5cx4L64nU3FEFX3",
            "type": "0x2::kiosk::Kiosk",
            "owner": {
                "Shared": {
                    "initial_shared_version": 416711813
                }
            },
            "previousTransaction": "AMjMtHsSLJgB3Ph2HaDAK2X3aHb7bTHG6c2VAU2gJfpe",
            "storageRebate": "1611200",
            "content": {
                "dataType": "moveObject",
                "type": "0x2::kiosk::Kiosk",
                "hasPublicTransfer": true,
                "fields": {
                    "allow_extensions": false,
                    "id": {
                        "id": "0x72348a59e8873af4c8f31924e91595afb8250307776c3c791d975a938065bae0"
                    },
                    "item_count": 2,
                    "owner": "0x3c7d2017c9e53854e5334ce30e3ecb0edb9ca8b2b3ef43953e663d5c34d8fc26",
                    "profits": "0"
                }
            }
        }
    },
    "id": 1
}

```

---

<div class="post-metadata">

**Author:** ![Stefanos](https://dub1.discourse-cdn.com/sui/user_avatar/forums.sui.io/stefanos/32/1459_2.png) [@Stefanos](https://forums.sui.io/u/Stefanos)\
**Post date:** [December 2, 2024, 3:07pm UTC](https://forums.sui.io/t/how-can-a-shared-object-represent-a-kiosk/46643/2 "2024-12-02T15:07:03Z")

</div>

Hi! Indeed Kiosks are shared objects but only their owner is authorized to perform privileged operations over their assets. Think of it like an actual Kiosk, it helps if is a shared object so that other users can interact with it to purchase things the owner places on it. The way only the owner is allowed to do stuff over their assets is through a Move pattern called [capability](https://move-book.com/programmability/capability.html#:~:text=It%20is%20a%20pattern%20that,can%27t%20open%20the%20door.)). Each Kiosk, once created, is tied to their owner via a KioskOwnerCap, Cap standing for capability, which is another object on chain that is owned. So no one can use it or pass it as a transaction argument other than their owner. You can also find the owner of the Kiosk by looking at the result.data.content.fields.owner value from the RPC call you did. You can read more about the Kiosk [here](https://docs.sui.io/standards/kiosk). You might also find interesting these [docs on Move Concepts](https://docs.sui.io/concepts/sui-move-concepts)
