Skip to main content
Version: 0.13 (unstable)

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 Quick Start.


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 ChangesTransactionEventTransactionEventId
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-objectsmiden-protocol imports
  • Rename miden-libmiden-standards imports
  • Rename StdLibraryCoreLibrary
  • 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 buildno errors
  • Run cargo testall tests pass

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