---
title: "1. Installing Scrypto"
url: "https://radix.wiki/developers/getting-started/01-install-scrypto"
version: "1.6.0"
updated: 2026-08-18
last_verified: 2026-08-18
license: CC-BY-4.0
license_url: "https://creativecommons.org/licenses/by/4.0/"
---

# 1. Installing Scrypto

## Overview

Scrypto is Radix's smart-contract language, built on Rust. You need three things: the Rust toolchain, the [WebAssembly](https://webassembly.org) compilation target, and the Radix CLI tools.

## Fastest Path: VS Code Dev Container

If you would rather not install a Rust toolchain at all, the official [Scrypto Starter](https://github.com/radixdlt/scrypto-starter) repository ships a pre-configured VS Code Dev Container with everything below already in place. This is the fastest way to a working environment; the manual steps that follow give you the same result with full control over versions.

1. Download and install [VS Code](https://code.visualstudio.com/).
2. Install the **Dev Containers** extension from the Extensions sidebar, then follow its prompts to install Docker Desktop.
3. Clone the starter repository:`git clone https://github.com/radixdlt/scrypto-starter.git`
4. Open the folder in VS Code (**File > Open Folder**). When prompted, choose **Reopen in Container** – or run **Dev Containers: Reopen in Container** from the Command Palette (**View > Command Palette**).
5. Once the container finishes building, confirm the Radix Engine Simulator is ready:`resim --help`

If that works, you can skip straight to [Your First Blueprint](/developers/getting-started/02-first-blueprint).

## Quick Install (Automated)

The [Scrypto repository](https://github.com/radixdlt/radixdlt-scrypto) ships [official install scripts](https://github.com/radixdlt/radixdlt-scrypto/tree/main/scrypto-install-scripts) for macOS, Debian/Ubuntu, and Windows that install a known-good, pinned toolchain in one step – [WASM](https://webassembly.org) target included. They pin [Rust](https://rustup.rs) 1.92.0, [LLVM](https://llvm.org) 21, and `radix-clis` 1.3.0 – a CLI pin that predates the [Scrypto 1.3.1](https://www.radixdlt.com/blog/scrypto-1-3-1-unlocking-modern-rust-support) release. This is the fastest path to a working setup, but it does **not** give you the same toolchain as the manual steps below; see _Version Pins_ at the end of this page before you choose.

## 1. Install Rust

Install Rust via [rustup](https://rustup.rs). Scrypto 1.3.1 supports Rust 1.81.0 and newer (tested up to 1.92.0).

**macOS / Linux**

```bash
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source "$HOME/.cargo/env"
```

**Windows**

```bash
# Download and run the installer from https://rustup.rs
# Choose "Proceed with standard installation"
```

## 2. Add the [WASM](https://webassembly.org) Target

Scrypto compiles [blueprints](https://docs.radixdlt.com/docs/blueprints-and-components) to [WebAssembly](https://webassembly.org/) for deterministic execution on the [Radix Engine](/contents/tech/core-protocols/radix-engine).

```bash
rustup target add wasm32-unknown-unknown
```

### The Other WASM Target

Rust is not the only compiler in the chain. Scrypto's cryptography pulls in [blst](https://github.com/supranational/blst), a C library. Cargo builds it with the system C compiler. Apple's clang carries no wasm32 backend, so `scrypto build` stops on a fresh macOS install:

```text
error: unable to create target: 'No available targets are compatible with triple "wasm32-unknown-unknown"'
```

The automated script above sidesteps this by pinning [LLVM](https://llvm.org) 21. The manual path does not. Install LLVM and point Cargo at it:

```bash
brew install llvm
```

```bash
export CC_wasm32_unknown_unknown="$(brew --prefix llvm)/bin/clang"
export AR_wasm32_unknown_unknown="$(brew --prefix llvm)/bin/llvm-ar"
```

Add both exports to your shell profile. `brew --prefix` resolves the location on Apple Silicon and Intel alike.

## 3. Install Radix CLI Tools

The `radix-clis` crate provides `scrypto` (compiler), `resim` (local simulator), and `rtmc` (manifest compiler).

```bash
cargo install --force radix-clis@1.3.1
```

Unpinned, `cargo install radix-clis` resolves to the same 1.3.1; the version is written out here because the official install scripts pin an older one. See _Version Pins_ below.

Build time

First install compiles from source and may take several minutes. Subsequent installs are faster.

## 4. Verify

```bash
rustc --version
scrypto --version
resim --version
```

All three commands should print version numbers without errors.

## IDE Setup

For the best experience, install [VS Code](https://code.visualstudio.com/) with the [rust-analyzer](https://marketplace.visualstudio.com/items?itemName=rust-lang.rust-analyzer) extension. This gives you inline type hints, autocompletion, and error checking for Scrypto code.

## Troubleshooting

### Missing [WASM](https://webassembly.org) target

If Rust reports `wasm32-unknown-unknown target not found`, re-run:

```bash
rustup target add wasm32-unknown-unknown
```

### blst fails to build

One error names the same triple and takes a different fix:

```text
No available targets are compatible with triple "wasm32-unknown-unknown"
```

The C compiler raises this one, not Rust, so `rustup target add` will not clear it. Set the two compiler variables from _The Other WASM Target_ above.

### Outdated toolchain

If builds fail on a fresh install, update Rust:

```bash
rustup update
```

## Version Pins: Which `radix-clis` You Actually Get

The automated scripts and the manual steps do **not** install the same command-line tools, and the difference is silent. Checked at source on 12 August 2026:

- `[radix-clis](https://crates.io/crates/radix-clis)` published **1.3.1** on 20 January 2026 alongside the [Scrypto v1.3.1 release](https://github.com/radixdlt/radixdlt-scrypto/releases/tag/v1.3.1). An unpinned `cargo install radix-clis` resolves to it.
- The [install scripts](https://github.com/radixdlt/radixdlt-scrypto/blob/main/scrypto-install-scripts/install-scrypto-macos.sh) still set `RADIX_CLI_VERSION=1.3.0` on both the `main` and `develop` branches, while setting `RUST_VERSION=1.92.0`. Their [last commit](https://github.com/radixdlt/radixdlt-scrypto/commits/main/scrypto-install-scripts) is 7 January 2026 – thirteen days before 1.3.1 shipped – although the repository's own `rust-toolchain.toml` carries a checklist of every place a version bump must land and names those script variables explicitly.
- The divergence surfaces at `scrypto new-package`, which writes a `rust-toolchain.toml` into your project from a bundled template. Under 1.3.0 that template pins [`channel = "1.81.0"` with no extra components](https://github.com/radixdlt/radixdlt-scrypto/blob/v1.3.0/radix-clis/assets/template/rust-toolchain.toml_template); under 1.3.1 it pins [`channel = "1.92.0"` with `rustfmt` and `rust-src`](https://github.com/radixdlt/radixdlt-scrypto/blob/v1.3.1/radix-clis/assets/template/rust-toolchain.toml_template) – `rust-src` being what the 1.3.1 build pipeline needs in order to [rebuild the Rust standard library with an MVP WebAssembly feature set](https://www.radixdlt.com/blog/scrypto-1-3-1-unlocking-modern-rust-support).
- [rustup honours that file over the default toolchain](https://rust-lang.github.io/rustup/overrides.html) and installs the pinned channel on demand. So the automated installer sets Rust 1.92.0 as your default, and then your first package quietly builds on 1.81.0 – the exact pin that [Scrypto 1.3.1 was released to lift](https://www.radixdlt.com/blog/scrypto-1-3-1-unlocking-modern-rust-support).

Pin the CLI explicitly if you want the modern toolchain:

```bash
cargo install --force radix-clis@1.3.1
```

The official documentation carries the same lag. The [install and compatibility page](https://docs.radixdlt.com/docs/getting-rust-scrypto) that the release announcement points at still documents Rust 1.81.0 and `radix-clis@1.3.0`, and the [v1.3.1 release-notes page](https://docs.radixdlt.com/docs/scrypto-v1-3-1) that the GitHub release links to reads _"Content to be added."_ Downloads follow the scripts rather than the release: on 12 August 2026 crates.io recorded 304 pulls of 1.3.1 against 4,883 of 1.3.0.

## Next Steps

- [Your First Blueprint](/developers/getting-started/02-first-blueprint) – write, build, and run a component on the local simulator

## External Links

- [Official install guide](https://docs.radixdlt.com/docs/getting-rust-scrypto)
- [Scrypto GitHub repository](https://github.com/radixdlt/radixdlt-scrypto)
- [Scrypto 1.3.1 release blog](https://www.radixdlt.com/blog/scrypto-1-3-1-unlocking-modern-rust-support)
- [Official install scripts (version pins in the header of each)](https://github.com/radixdlt/radixdlt-scrypto/tree/main/scrypto-install-scripts)
- [radix-clis on crates.io](https://crates.io/crates/radix-clis)
