Skip to main content
Version: 0.16

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, formatter, local package registry, and protocol packages — 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 source

Formatter

miden-format — format Miden Assembly source files.

Kernel libraries

Protocol packages

Core, protocol, standards, and transaction-kernel MASP packages used by the toolchain.

Package management

Local registry

miden-registry — publish and inspect packages in a filesystem-backed local registry.

Toolchain management​

Install a channel​

midenup install testnet       # follows the release named by the testnet manifest
midenup install 0.16.0 # pin to a specific release line

Switch the active toolchain​

midenup set 0.16.0            # pin for the current project (writes miden-toolchain.toml)
midenup override 0.16.0 # 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.16.0

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 buildmidenc miden-project.tomlBuild the current Miden project
miden new-walletmiden-client new-walletCreate a local wallet account
miden accountmiden-client new-accountCreate a local account
miden faucetmiden-client mintMint your own asset from a faucet account you control
miden mintmiden-faucet-client mintRequest native test tokens from the public faucet
miden callmiden-client callCall a local account procedure
miden simulatemiden-client execDry-run a transaction without committing
miden transfermiden-client transferTransfer assets to another account
miden formatmiden-formatFormat MASM source (install with --component format)
miden registrymiden-registryManage the local registry (install with --component local-registry)

Use the component name to access commands that do not have an alias. The v0.16 channel has no miden deploy alias. new-wallet and new-account create accounts locally; fund and publish an account through its first successful transaction. Older channel aliases that add --deploy cannot be used with the stable v0.16 client.