Skip to main content
Version: 0.15 (unstable)

midenup

midenup is the Miden toolchain installer. One install gives you a unified miden command that delegates to the Miden VM, compiler (midenc + cargo-miden), client, stdlib, and transaction kernel — all versioned together as a single release channel.

Install

>_ Install midenup
cargo install midenup && midenup init

midenup init sets up $MIDENUP_HOME, writes a miden symlink into $CARGO_HOME/bin, and prepares the toolchain cache. Since most Rust users already have $CARGO_HOME/bin on their PATH, the miden command is ready immediately.

Components it manages

Execution

Miden VM

The MASM interpreter, prover, and verifier. Used by every Miden program.

Rust → MASM

Compiler

midenc and cargo-miden — the Rust frontend that compiles #[miden] code to MASM.

SDK + CLI

Miden client

miden-client — accounts, transactions, notes, proving.

MASM stdlib

Standard library

miden-stdlib — the canonical MASM standard library.

Kernel library

Transaction kernel

miden-base — the transaction kernel that runs inside every account and note script.

Roadmap

(more coming)

Additional Miden components will be added to midenup as they ship.

Toolchain management

Install a channel

midenup install stable        # latest matching component set
midenup install 0.14 # pin to a specific release line

Switch the active toolchain

midenup set 0.14              # pin for the current project (writes miden-toolchain.toml)
midenup override 0.14 # set the system-wide default
midenup show active-toolchain # which one is active right now?

A miden-toolchain.toml in the current directory always wins — otherwise the system default applies, falling back to stable if none is set.

Uninstall

midenup uninstall 0.14

Delete $MIDENUP_HOME to uninstall midenup itself. Find its location with midenup show home.

The miden entry point

miden delegates to the right component based on the subcommand. Common aliases:

miden commandDelegates toWhat it does
miden newcargo miden newCreate a new Miden Rust project
miden buildcargo miden buildBuild the project
miden new-walletmiden-client new-wallet --deployCreate and deploy a wallet account
miden accountmiden-client accountCreate or inspect a local account
miden faucetmiden-client mintFund an account from the faucet
miden deploymiden-client -s public --account-type regular-account-immutable-codeDeploy a public, immutable-code contract
miden callmiden-client account --showRead state from an account (view)
miden sendmiden-client sendSend a state-changing transaction
miden simulatemiden-client execDry-run a transaction without committing

Everything outside the alias table is forwarded to the underlying binary — e.g., miden exec … goes straight through to miden-client exec.