> For the complete documentation index, see [llms.txt](https://cll-devrel.gitbook.io/bootcamp-2024/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://cll-devrel.gitbook.io/bootcamp-2024/2.-smart-contract-and-solidity-fundamentals/using-remix.md).

# Using Remix

### Using Remix in the Browser

*Remix* Online *IDE* is a powerful toolset for developing, deploying, debugging, and testing smart contracts that are compatible with the Ethereum Virtual Machine. You will understand what this means shortly!&#x20;

{% embed url="<https://remix.ethereum.org/>" %}
Remix Web app IDE
{% endembed %}

### Features of Remix

Remix has several features out of the box that facilitate the quick development of smart contracts, we will highlight the features of the IDE that will help you get going quickly, but feel free to reference the documentation referenced in the application for further features, plugins, and community support.

For this workshop we will be utilizing the **Workspace (File Explorer)**,  **Solidity Compiler,** and the **Deploy &  Run transact**  options.

The  Workspace allows for a directory/tree structure of your code to be viewed on the left side of the screen. This portion houses our raw Solidity code. The [Ethereum Virtual Machine (EVM)](https://www.youtube.com/watch?v=HcOWNxL3Iy0) is not able to interact with the code in this human-readable format. The EVM needs the human-readable code to be converted into machine-readable code.

<figure><img src="/files/4yqfPqBf3FHh5QlLRvpy" alt=""><figcaption><p>Default Workspace</p></figcaption></figure>

The Solidity Compiler allows us to select when and how the code should be changed from the human readable coded into the machine readable code. We will want to select the **Auto Compile** checkbox so that this compilation occurs whenever we save a file.

<figure><img src="/files/jDiSN3kpJ9myOZTNB9rT" alt=""><figcaption><p>Compiler Tab with Auto Compile Selected</p></figcaption></figure>

Lastly we have the Deploy & Run transactions tab. When we take our compiled code, and want to publish the smart contract to the testnet, this tab allows us to deploy in an easy manner, as well as interact with the functions that are in our smart contract.

<figure><img src="/files/wBRXLKotKZWYDk4rPTpY" alt=""><figcaption><p>Default Deploy &#x26; Run Transactions tab</p></figcaption></figure>

Using the drop down you will be able to select an environment to interact with. This selects the chain you would like to use to deploy and test your contracts.

<figure><img src="/files/sTzdpM4gGWwZYz3pnEnx" alt=""><figcaption><p>Inject Provider (MetaMask Option)</p></figcaption></figure>

You will be presented with a MetaMask prompt similar to how you would sign into the Metamask Chrom Extension.

Once your wallet is connected you will be automatically interacting with Chain specified by the MetaMask Extension and will be indicated by a small reference under the Environment drop down in Remix

<figure><img src="/files/2aHcLzk8yxmlLA4BwW84" alt=""><figcaption><p>Injected Provider showing Testnet and Account info</p></figcaption></figure>

You are now ready to write a Smart Contract and Develop for Web3!

### Other options for using Remix

There are other options for integrating the functionality of Remix into other IDEs

{% embed url="<https://github.com/ethereum/remix-vscode>" %}
Remix Extension for VS Code
{% endembed %}


---

# 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://cll-devrel.gitbook.io/bootcamp-2024/2.-smart-contract-and-solidity-fundamentals/using-remix.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.
