Overview
Scrypto is Radix's smart-contract language, built on Rust. 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 that predates the Scrypto 1.3.1 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. Scrypto 1.3.1 supports Rust 1.81.0 and newer (tested up to 1.92.0).
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.3.1Unpinned, 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.
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. Checked at source on 12 August 2026:
radix-clispublished 1.3.1 on 20 January 2026 alongside the Scrypto v1.3.1 release. An unpinnedcargo install radix-clisresolves to it.- The install scripts still set
RADIX_CLI_VERSION=1.3.0on both themainanddevelopbranches, while settingRUST_VERSION=1.92.0. Their last commit is 7 January 2026 – thirteen days before 1.3.1 shipped – 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.3.1 it pinschannel = "1.92.0"withrustfmtandrust-src–rust-srcbeing what the 1.3.1 build pipeline needs in order to rebuild the Rust standard library with an MVP WebAssembly feature set. - 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.3.1The official documentation carries the same lag. The install and compatibility page 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 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 – write, build, and run a component on the local simulator
