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.
midenup on GitHub ↗
The installer repo. Tracks the canonical channel manifest and publishes prebuilt toolchain releases.
Channel manifest ↗
Machine-readable inventory of available toolchain channels and the component versions each one pins.
Install
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
Miden VM
The MASM interpreter, prover, and verifier. Used by every Miden program.
Compiler
midenc and cargo-miden — the Rust frontend that compiles #[miden] code to MASM.
Miden client
miden-client — accounts, transactions, notes, proving.
Formatter
miden-format — format Miden Assembly source files.
Protocol packages
Core, protocol, standards, and transaction-kernel MASP packages used by the toolchain.
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 command | Delegates to | What it does |
|---|---|---|
miden new | cargo miden new | Create a new Miden Rust project |
miden build | midenc miden-project.toml | Build the current Miden project |
miden new-wallet | miden-client new-wallet | Create a local wallet account |
miden account | miden-client new-account | Create a local account |
miden faucet | miden-client mint | Mint your own asset from a faucet account you control |
miden mint | miden-faucet-client mint | Request native test tokens from the public faucet |
miden call | miden-client call | Call a local account procedure |
miden simulate | miden-client exec | Dry-run a transaction without committing |
miden transfer | miden-client transfer | Transfer assets to another account |
miden format | miden-format | Format MASM source (install with --component format) |
miden registry | miden-registry | Manage 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.