Installation
This guide walks you through installing the Miden development tools using the midenup toolchain manager.
Prerequisites
Install Rust
Miden development requires Rust. Install it using rustup:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
Reload your PATH environment variable:
. "$HOME/.cargo/env"
Verify the installation:
rustc --version
Expected output
rustc 1.92.0-nightly (fa3155a64 2025-09-30)
Install Node.js & Yarn
For TypeScript development with the Miden Web Client, you'll need Node.js and Yarn.
Install Node.js:
# Install Node.js using the official installer or package manager
# For macOS with Homebrew:
brew install node
# For Ubuntu/Debian:
curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash -
sudo apt-get install -y nodejs
# For Windows, download from nodejs.org
Install Yarn:
# Install Yarn globally via npm
npm install -g yarn
Verify installations:
node --version && yarn --version
Expected output
v22.x.x # or higher
1.22.x # or higher
Install Miden CLI
Install midenup
The Miden toolchain installer makes it easy to manage Miden components:
cargo install midenup
Until published to crates.io, install using: cargo install --git https://github.com/0xMiden/midenup.git
Initialize midenup
midenup init
This creates the $MIDENUP_HOME directory and sets up the miden command by creating a symlink in your Cargo bin directory ($CARGO_HOME/bin/, typically ~/.cargo/bin/). Since Rust users already have this directory in their PATH, no additional PATH configuration is needed.
Verify it works:
which miden
Expected output
/Users/<USERNAME>/.cargo/bin/miden # macOS
/home/<USERNAME>/.cargo/bin/miden # Linux
Install Miden Toolchain
Install the latest stable Miden components:
midenup install stable
You may see No artifact found. Proceeding to install from source during installation. This is expected — it means pre-built binaries aren't available for your platform, so midenup compiles components from source. This can take 15-30 minutes.
Verify Installation
Check that everything is working correctly:
midenup show active-toolchain
Expected output
stable
Troubleshooting
"miden: command not found"
Ensure $CARGO_HOME/bin (typically ~/.cargo/bin/) is in your PATH. This should already be configured if you installed Rust via rustup. Verify with:
echo $PATH | tr ':' '\n' | grep cargo
"config error: missing field" when running miden client commands
If you have config files from a previous Miden installation, they may be incompatible with the current version. Delete the old config and database, then re-initialize:
rm -f miden-client.toml store.sqlite3
miden client init
Set Up a Project
The Quick Start guides let you follow along in either Rust or TypeScript. Scaffold whichever language you prefer — the two tabs in every later code example map 1:1 to the files below.
Rust Project
miden new my-test-project
cd my-test-project
If successful, you'll see a new directory with Miden project files. For each Rust code example in the following pages, add a new binary under integration/src/bin/ and run it with cargo run --bin <name> --release.
TypeScript Project
The TypeScript examples use the @miden-sdk/miden-sdk package and its MidenClient API. The SDK ships WebAssembly that runs in the browser, so the simplest runnable setup is a minimal Vite project:
npm create vite@latest miden-app -- --template vanilla-ts
cd miden-app
npm install @miden-sdk/miden-sdk
Open src/main.ts and replace its contents with a simple entry point that calls your demo:
import { demo } from "./demo";
demo().catch(console.error);
For each TypeScript snippet in the following pages, save it as src/demo.ts (or another name imported from main.ts) and run:
npm run dev
The SDK initialises WebAssembly on first use; open the Vite dev server URL in your browser and watch the devtools console for output.