> For the complete documentation index, see [llms.txt](https://qubetics.gitbook.io/qubetics-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://qubetics.gitbook.io/qubetics-docs/getting-started/qubeqode-basic-user-guide/workspace.md).

# Workspace

## **Overview of the Workspace Interface**

1. **Work Space Navigation Panel**
   * Located on the left-hand side, this panel provides quick navigation between the following key actions:
     * **Work Space**: The main area where you define and customize your smart contract.
     * **Compile**: Allows you to compile the smart contract to identify syntax or logical errors.
     * **Deploy**: Facilitates the deployment of the compiled contract to the blockchain.
2. **Contract Categories**
   * At the top of the workspace, you can choose from various contract types:
     * **ERC20**: For creating fungible tokens.
     * **ERC721**: For creating non-fungible tokens (NFTs).
     * **ERC1155**: For multi-token standards.
     * **Stablecoin**: For creating pegged assets.
     * **Real-World Asset**: For tokenizing tangible assets.
     * **Governor**: For building governance contracts.
     * **Custom**: For creating custom smart contracts.
3. **Settings Panel**
   * Located on the left side of the workspace, this section allows you to customize your smart contract with various options:
     * **Name and Symbol**: Specify the token's name and symbol *(e.g., "My Token," "MTK")*.
     * **Pre-mint**: Define the initial supply of tokens to be minted upon contract creation.
     * **Features**:
       * **Mintable**: Enables token minting after deployment.
       * **Burnable**: Allows token holders to burn (destroy) tokens.
       * **Pausable**: Adds the ability to pause contract functionality in certain scenarios.
       * **Permit**: Enables gasless approvals using EIP-2612.
       * **Flash Minting**: Supports flash loans with immediate repayment.
     * **Voting Options**:
       * **Block Number**: Voting based on blockchain block numbers.
       * **Timestamp**: Voting based on timestamps.
     * **Access Control**:
       * **Ownable**: Grants ownership-based access control.
       * **Roles**: Enables role-based permissions for contract management.
       * **Managed**: Allows for advanced management of contract functionalities.
     * **Upgradeability**: Adds support for upgradable contracts.
4. **Code Editor**
   * The central area displays the generated Solidity code based on the selected options in the settings panel.
   * Users can preview, edit, or copy the code for further modifications.
   * The editor includes comments and import statements for necessary libraries like `ERC20` and `ERC20Permit`.
5. **Download Button**
   * Located in the top-right corner, the ***"Download"*** button lets you export the generated Solidity code file for external use.

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

## **Step-by-Step Guide to Using the Workspace**

1. **Choose a Contract Type**
   * Select the desired contract type (e.g., ERC20) from the tabs at the top.
2. **Configure Contract Settings**
   * Enter the **Name** and **Symbol** for your token.
   * Adjust additional settings like pre-minting, mintability, burnability, and more, depending on your use case.
3. **Customize Access Control and Voting**
   * Enable access control mechanisms such as ownership or roles.
   * Configure voting mechanisms based on block numbers or timestamps if applicable.
4. **Preview and Edit the Code**
   * Review the generated Solidity code in the editor.
   * Make manual changes if necessary to meet advanced or unique requirements.
5. **Download the Code**
   * Once satisfied with the contract, click the ***"Download"*** button to save the Solidity file for further compilation or deployment.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://qubetics.gitbook.io/qubetics-docs/getting-started/qubeqode-basic-user-guide/workspace.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
