---
title: "1. Installing Scrypto"
url: "https://radix-wiki.miow.me/developers/getting-started/01-install-scrypto"
updated: 2026-10-03
description: "Scrypto is Radix's smart-contract SDK for Rust: a crate, a set of macros and a CLI that build a blueprint crate into WebAssembly. You need three things: the…"
---

# 1. Installing Scrypto

## Overview

[Scrypto](/contents/tech/core-protocols/scrypto-programming-language) is Radix's smart-contract SDK for Rust: a crate, a set of macros and a CLI that build a [blueprint](/contents/tech/core-concepts/blueprints-and-packages) crate into WebAssembly. 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 two releases behind the current [Scrypto v1.4.0](https://github.com/radixdlt/radixdlt-scrypto/releases/tag/v1.4.0) of 7 September 2026. 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 declares no minimum Rust version in its manifest; what it pins is a toolchain, and [1.4.0's `rust-toolchain.toml`](https://github.com/radixdlt/radixdlt-scrypto/blob/v1.4.0/rust-toolchain.toml) names **1.92.0**, as 1.3.1's did. Older releases built on 1.81.0, and that number is still what you will meet in the places listed under _Version Pins_ below.

**macOS / Linux**

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

**Windows**

```
# 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).

```
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:

```
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:

```
brew install llvm
```

```
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](/contents/tech/core-protocols/transaction-manifests) compiler).

```
cargo install --force radix-clis@1.4.0
```

Unpinned, `cargo install radix-clis` resolves to the same 1.4.0, published 9 September 2026 alongside [Scrypto v1.4.0](https://github.com/radixdlt/radixdlt-scrypto/releases/tag/v1.4.0); 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

```
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:

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

### blst fails to build

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

```
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:

```
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. Re-checked at source on 12 September 2026, five days after [Scrypto v1.4.0 (Eagle Ray)](https://github.com/radixdlt/radixdlt-scrypto/releases/tag/v1.4.0):

- `[radix-clis](https://crates.io/crates/radix-clis)` published **1.4.0** on 9 September 2026, two days after the GitHub release. An unpinned `cargo install radix-clis` resolves to it. The previous release, 1.3.1, is of 20 January 2026.
- 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`, while setting `RUST_VERSION=1.92.0`. Not only on `main` and `develop`: the [copy tagged `v1.4.0`](https://github.com/radixdlt/radixdlt-scrypto/blob/v1.4.0/scrypto-install-scripts/install-scrypto-macos.sh) carries the same line, so the release ships the lag inside itself. Their [last commit](https://github.com/radixdlt/radixdlt-scrypto/commits/main/scrypto-install-scripts) is 7 January 2026 – before either of the two releases that have followed – 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.4.0 it pins `channel = "1.92.0"` with `rustfmt` and `rust-src`](https://github.com/radixdlt/radixdlt-scrypto/blob/v1.4.0/radix-clis/assets/template/rust-toolchain.toml_template), exactly as 1.3.1 did – `rust-src` being what the modern 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). The template has not changed across the two releases, so the gap the automated installer opens is the same one, a release older.
- [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:

```
cargo install --force radix-clis@1.4.0
```

The official documentation carries the same lag, and 1.4.0 is documented less than 1.3.1 was. The [install and compatibility page](https://docs.radixdlt.com/docs/getting-rust-scrypto) still documents Rust 1.81.0 and `radix-clis@1.3.0`, three CLI releases back. `docs.radixdlt.com/docs/scrypto-v1-4-0` answers HTTP 404, where the [v1.3.1 page](https://docs.radixdlt.com/docs/scrypto-v1-3-1) at least exists and reads _"Content to be added."_ The [GitHub release body](https://github.com/radixdlt/radixdlt-scrypto/releases/tag/v1.4.0) is licence boilerplate with no notes, and [the Radix blog](https://www.radixdlt.com/blog) names neither the release nor Eagle Ray. What 1.4.0 contains is legible only from the diff: [18 commits over 300 files](https://github.com/radixdlt/radixdlt-scrypto/compare/v1.3.1...v1.4.0), among them the [Eagle Ray receiver-access check](/developers/scrypto/03-authorization-and-badges#receiver-check) now enforcing on Mainnet.

Downloads still follow the scripts rather than the release: on 12 September 2026 crates.io recorded **15** pulls of 1.4.0, three days after publication, against 325 of 1.3.1 and 4,885 of 1.3.0.

## Next Steps

- [Your First Blueprint](/developers/getting-started/02-first-blueprint) – write, build, and run a [component](/contents/tech/core-concepts/components) 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 v1.4.0 (Eagle Ray) release](https://github.com/radixdlt/radixdlt-scrypto/releases/tag/v1.4.0) – the current release
- [Scrypto 1.3.1 release blog](https://www.radixdlt.com/blog/scrypto-1-3-1-unlocking-modern-rust-support) – the last release that got one
- [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)
