Skip to main content
Version: 0.17

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.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 commandDelegates toWhat it does
miden newcargo miden newCreate a new Miden Rust project
miden buildmidencBuild the current Miden project
miden new-walletmiden-client new-walletCreate a local wallet account
miden accountmiden-client accountInspect and manage local accounts
miden client mintmiden-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 execmiden-client execExecute a compiled script without submitting a transaction
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, 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.