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.17.0 # pin to a specific release line
Switch the active toolchain
midenup set testnet # select for the current project (writes miden-toolchain.toml)
midenup override testnet # set the system-wide default
midenup show active-toolchain # which one is active right now?
Midenup selects the toolchain in this order: an explicit +<toolchain> selector,
the MIDENUP_TOOLCHAIN environment variable, a miden-toolchain.toml in the current
directory or a parent directory, the system default, then mainnet.
Update a channel
midenup update testnet # follow updates to the testnet toolchain
Run a local node
Use Docker with Compose v2.34.0 or newer to run a local network:
midenup install testnet --component node
miden +testnet node up
miden +testnet node logs
miden +testnet node down
up starts the network in the background. down stops it and keeps its volumes.
For instructions to build the node from source, export accounts, and configure
clients, see Local node testing.
Uninstall
midenup uninstall testnet
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 | Build the current Miden project |
miden new-wallet | miden-client new-wallet | Create a local wallet account |
miden account | miden-client account | Inspect and manage local accounts |
miden client mint | 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 exec | miden-client exec | Execute a compiled script without submitting a transaction |
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, such as miden client new-account. To register an account on a network that requires invitations, run miden client account --register <ACCOUNT_ID> --invitation-code <CODE>. The v0.17 channel has no miden deploy alias. new-wallet and new-account create accounts locally; register the account if required, then fund and publish it through its first successful transaction.