Skip to main content
Version: 0.13

v0.13 Migration Guide

Quick Upgrade​

Try upgrading first—most projects migrate with just a dependency update:

Cargo.toml
# Replace these
miden-objects = "0.12"
miden-lib = "0.12"

# With these
miden-protocol = "0.13"
miden-standards = "0.13"

Then run:

cargo update && cargo build

If you encounter errors, continue reading for detailed migration steps.


This guide is for:

  • Rust client developers migrating from v0.12 → v0.13
  • App developers using miden-objects, miden-lib, or legacy MASM syntax
  • Smart contract authors using storage slots or note APIs

If you're starting fresh on v0.13, you can skip this guide and go directly to the Get Started.


What's New in v0.13​

This release brings significant improvements alongside the breaking changes:

FeatureBenefit
Named StorageMore intuitive and self-documenting storage access
Unified AuthSimpler authentication with AuthScheme enum
Note AttachmentsCleaner separation of note data and metadata
Modern MASM SyntaxCleaner syntax aligned with Rust conventions

Compatibility​

ComponentRequiredTested With
Miden VM0.20+0.20.0
miden-crypto0.19+0.19.0
Rust1.75+1.82.0

Migration Philosophy​

We group breaking changes into major releases to minimize disruption. When possible, we deprecate before removing—this guide covers features deprecated in v0.12 that are now removed, plus new breaking changes in v0.13.

Expect migration guides with each major version (roughly quarterly).


At a Glance​

Key themes in this release:

ChangeSummary
Named StorageStorage slots now identified by StorageSlotName instead of numeric indices
Note AttachmentsNoteMetadata no longer stores aux or NoteExecutionHint; use NoteAttachment
Unified Input NotesInput notes no longer split into authenticated/unauthenticated lists
Authentication APIsAuth APIs unified around AuthScheme enum

Migration Sections​

Work through these sections in order for a complete migration:

SectionTopics
1. Imports & DependenciesCrate renames, miden-protocol, miden-standards
2. Account ChangesNamed storage, keystore, components, procedure roots
3. Note ChangesAttachments, tags, NetworkAccountTarget, MINT notes
4. Transaction ChangesTransactionEvent → TransactionEventId
5. Client ChangesRust RPC, WebClient store, CLI changes
6. MASM ChangesSyntax modernization, crypto renames
7. Assembler ChangesLibraryPath removal, debug mode changes

Final Checklist​

Complete these steps to verify your migration:

  • Update Cargo.toml dependencies to v0.13
  • Rename miden-objects → miden-protocol imports
  • Rename miden-lib → miden-standards imports
  • Rename StdLibrary → CoreLibrary
  • Update storage slot access to use StorageSlotName
  • Refactor NoteMetadata to use NoteAttachment
  • Update input notes API to use unified interface
  • Update MASM syntax (const. → const , etc.)
  • Run cargo build — no errors
  • Run cargo test — all tests pass

If your project builds and all tests pass, you've successfully migrated to v0.13.