# Interactive tokens

An Interactive Token is basically a web page. You can use any technology you would use on the web and package it into a ZIP file. When packaging the files, make sure that the top level contains a file named `index.html`. A token zip might look like this for example:

```
.
├── index.html (mandatory)
├── style.css
├── index.js
├── js/
|   ├── lib1.js
|   └── lib2.js
└── styles/
    ├── style1.css
    └── style2.css
```

Make sure that all files are referenced relatively: (`js/lib1.js` and not `/js/lib1.js)`. Also make sure you don't reference any external files or make external requests. These will all be blocked. If you're relying on third-party resources such as p5.js, please make sure you bundle them into your project and that it doesn't rely on any third-party references.

### Presentation

Once the token is minted,  it will run in a sandboxed iframe environment directly on objkt.com.&#x20;

#### Allow features

The following permissions are enabled in the iFrame `allow` attribute:

```
accelerometer; camera; gyroscope; microphone; xr-spatial-tracking; midi;
```

#### Sandbox

By default, the iframe running your token is sandboxed with the following properties using the sandbox attribute:

```typescript
allow-scripts allow-downloads
```

If the user enables `Advanced Mode` the `allow-same-origin` property will be added to the sandbox attribute:

```typescript
allow-scripts allow-downloads allow-same-origin
```

### Advanced Mode

Users have the option to enable Advanced Mode which adds the `allow-same-origin` property to the iFrame sandbox attribute (see above). The setting can be enabled and disabled globally in the user settings:

<figure><img src="/files/x0gVeosolqtKlDkAUjpi" alt=""><figcaption></figcaption></figure>

Or on a per-token basis directly in the token Properties tab:

<figure><img src="/files/HGJBIYXYcHKuMBWvgci5" alt=""><figcaption><p>Click on Button "Advanced Mode" below the NFT Image</p></figcaption></figure>

<figure><img src="/files/69dyBaFSiJmGZVmPUpR9" alt=""><figcaption><p>Enable Advanced Mode</p></figcaption></figure>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.objkt.com/product/product-guides/minting-a-token/interactive-tokens.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
