# FAQ

***

### General Questions

**1. What is Q-Remix IDE?**\
Q-Remix IDE is a smart contract development platform built for ease and power. It leverages the **Monaco Editor** (the same as VS Code), providing tools for writing, compiling, deploying, and interacting with smart contracts. It’s designed to be beginner-friendly while offering advanced features like AI-assisted coding, real-time feedback, and robust deployment environments.

### Editor and Compilation

**2. What editor does Q-Remix use?**\
Q-Remix uses the **Monaco Editor**, which supports syntax highlighting for Solidity, JavaScript, and more—offering a smooth, intelligent coding experience.

**3. How do I compile a smart contract in Q-Remix?**\
To compile a contract:

* Click the **Compiler Icon 🛠️** in the left sidebar.
* Select the appropriate Solidity version.
* Choose the `.sol` file to compile.
* Click **Compile**.

**4. What happens after a successful compilation?**\
Upon successful compilation, Q-Remix generates:

* **ABI (Application Binary Interface)**
* **Bytecode**

These are stored in the `artifacts/` folder for deployment and interaction.

**5. What should I do if there are errors during compilation?**\
Errors will appear in the compiler panel, highlighting the file, line number, and description of the issue to help you debug efficiently.

### Deployment and Interaction

**6. How do I deploy a contract in Q-Remix?**\
To deploy:

* Click the **Deploy & Run** tab.
* Choose an environment: **Q-Remix VM** or **Injected Provider (MetaMask)**.
* Select the account.
* Choose the compiled contract.
* Click **Deploy**.

Deployment details appear in the terminal, including the contract address and transaction hash.

**7. What environments are supported for deployment?**

* **Q-Remix VM:** A local environment powered by Hardhat, with 20 test accounts (10,000 ETH each). State persists unless the tab is closed.
* **Injected Provider - MetaMask:** Connects to Ethereum Mainnet or Testnets like Goerli or Sepolia via MetaMask.

**8. How do I interact with a deployed contract?**\
Go to the **Deployed Contracts** section:

* Click a contract to expand its functions.
* Input required parameters and click the function’s button to call it.
* Outputs like transaction hash, gas used, and returned values appear in the terminal.

### Settings and Customization

**9. How can I change the theme or language of the IDE?**

* Open the **Settings** panel.
* Use the toggles to switch between **light/dark** themes.
* Select your preferred **language**.
* Click **Reset to Default Settings** to revert to the original setup.

**10. What does the "Reset to Default Settings" button do?**\
It resets:

* **Theme** to Light Mode
* **Language** to English\
  Useful for restoring default preferences.

### Troubleshooting

**11. Why are my contract states resetting when using Q-Remix VM?**\
Contract states are preserved only as long as the **browser tab remains open**. Closing the tab resets the state and test accounts.

**12. Can I deploy a contract on Ethereum Mainnet using MetaMask in Q-Remix?**\
Yes. Use the **Injected Provider - MetaMask** option to deploy to Ethereum Mainnet or supported testnets like **Goerli** or **Sepolia**.

**13. How many deployed contracts can I interact with in Q-Remix?**\
Q-Remix retains the **five most recently deployed contracts**. Deploying additional contracts will push out the oldest one.


---

# 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.qremix.org/introduction/faq.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.
