Overview
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 Rust toolchain, the WebAssembly 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 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.
- Download and install VS Code.
- Install the Dev Containers extension from the Extensions sidebar, then follow its prompts to install Docker Desktop.
- Clone the starter repository:
git clone https://github.com/radixdlt/scrypto-starter.git - 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).
- 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.
Quick Install (Automated)
The Scrypto repository ships official install scripts for macOS, Debian/Ubuntu, and Windows that install a known-good, pinned toolchain in one step – WASM target included. They pin Rust 1.92.0, LLVM 21, and radix-clis 1.3.0 – a CLI pin two releases behind the current Scrypto 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. Scrypto declares no minimum Rust version in its manifest; what it pins is a toolchain, and 1.4.0's 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.
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source "$HOME/.cargo/env"# Download and run the installer from https://rustup.rs
# Choose "Proceed with standard installation"2. Add the WASM Target
Scrypto compiles blueprints to WebAssembly for deterministic execution on the Radix Engine.
rustup target add wasm32-unknown-unknownThe Other WASM Target
Rust is not the only compiler in the chain. Scrypto's cryptography pulls in 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 21. The manual path does not. Install LLVM and point Cargo at it:
brew install llvmexport 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).
cargo install --force radix-clis@1.4.0Unpinned, cargo install radix-clis resolves to the same 1.4.0, published 9 September 2026 alongside Scrypto 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.
IDE Setup
For the best experience, install VS Code with the rust-analyzer extension. This gives you inline type hints, autocompletion, and error checking for Scrypto code.
Troubleshooting
Missing WASM target
If Rust reports wasm32-unknown-unknown target not found, re-run:
rustup target add wasm32-unknown-unknownblst 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 updateVersion 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):
radix-clispublished 1.4.0 on 9 September 2026, two days after the GitHub release. An unpinnedcargo install radix-clisresolves to it. The previous release, 1.3.1, is of 20 January 2026.- The install scripts still set
RADIX_CLI_VERSION=1.3.0, while settingRUST_VERSION=1.92.0. Not only onmainanddevelop: the copy taggedv1.4.0carries the same line, so the release ships the lag inside itself. Their last commit is 7 January 2026 – before either of the two releases that have followed – although the repository's ownrust-toolchain.tomlcarries 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 arust-toolchain.tomlinto your project from a bundled template. Under 1.3.0 that template pinschannel = "1.81.0"with no extra components; under 1.4.0 it pinschannel = "1.92.0"withrustfmtandrust-src, exactly as 1.3.1 did –rust-srcbeing what the modern build pipeline needs in order to rebuild the Rust standard library with an MVP WebAssembly feature set. 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 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.
Pin the CLI explicitly if you want the modern toolchain:
cargo install --force radix-clis@1.4.0The official documentation carries the same lag, and 1.4.0 is documented less than 1.3.1 was. The install and compatibility page 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 at least exists and reads "Content to be added." The GitHub release body is licence boilerplate with no notes, and the Radix blog names neither the release nor Eagle Ray. What 1.4.0 contains is legible only from the diff: 18 commits over 300 files, among them the Eagle Ray receiver-access 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 – write, build, and run a component on the local simulator
External Links
- Official install guide
- Scrypto GitHub repository
- Scrypto v1.4.0 (Eagle Ray) release – the current release
- Scrypto 1.3.1 release blog – the last release that got one
- Official install scripts (version pins in the header of each)
- radix-clis on crates.io
