> For the complete documentation index, see [llms.txt](https://cascadia.gitbook.io/gitbook/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://cascadia.gitbook.io/gitbook/developers/cosmwasm/install-requirements.md).

# Install Requirements

**Step 1: Setting Up Your Development Environment**

**Install Golang**

Required for `wasmd`. Install Go from its [official documentation](https://github.com/golang/go/wiki#working-with-go). Ensure you have Go version v1.18+.

**Install Rust**

`rustup` is used to manage dependencies and seamlessly switch between different versions of `cargo` and `rustc`, both crucial for Rust development.<br>

**Step 2:  Installing Rust (for Linux & Mac):**

Begin with `rustup` installation.

Set up wasm32 target with the following commands:

{% code overflow="wrap" %}

```
rustup default stable
cargo version
rustup update stable
rustup target add wasm32-unknown-unknown
```

{% endcode %}

**Installing Rust (for Windows 10):**

Obtain `rustup-init.exe` from rustup.rs or rust-lang.org.

If needed, download [Visual C++ Build Tools 2019](https://visualstudio.microsoft.com/visual-cpp-build-tools/). Ensure "Windows 10 SDK" and ''English language pack'' are selected.

Run the setup for Rust and then install the wasm32 target similarly to the Linux & Mac setup.

**Step 3: Install `wasmd`**

{% code overflow="wrap" %}

```
git clone https://github.com/CosmWasm/wasmd.git
cd wasmd
git fetch --tags
git checkout v0.27.0  # Replace with stable version if needed.
make install
```

{% endcode %}

**Step 4: Install the Command-Line Tools:**

```
apt install jq curl
```

**Step 5: Choose your IDE**

An Integrated Development Environment (IDE) is needed. Here are two options:

**VSCode:** Equipped with Rust Language Server (RLS) capabilities. Combine it with the rust-analyzer extension for optimal Rust code support.

**IntelliJ IDEA Community Edition:** Comes with the IntelliJ Rust plugin, providing swift inline language feature support. Particularly useful for developers familiar with IntelliJ products.

#### **Step 6: Enhance Development**

A toolset to boost the lifespan of CosmWasm smart contracts. It consists of three repositories:

[**CosmWasm Gitpod**](https://github.com/oraichain/cosmwasm-gitpod)

Provides a ready-to-use development environment, integrating Rust, VS Code browser, crucial extensions, and Keplr wallet compatibility.

[**CosmWasm IDE extension**](https://github.com/oraichain/cw-vscode)

A VS Code extension simplifying the building & deployment of CosmWasm smart contracts.

[**CosmWasm IDE extension webview**](https://github.com/oraichain/cw-ide-webview)

A React application facilitating Keplr wallet interactions and enabling custom network additions.


---

# 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://cascadia.gitbook.io/gitbook/developers/cosmwasm/install-requirements.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.
