# Miden roadmap
## Protocol
### v0.9 - released May 20, 2025
Full changelog available is [here](https://github.com/0xMiden/miden-base/releases/tag/v0.9.0). Key highlights:
- **Network accounts**: introduced the concept of network accounts ([#1275](https://github.com/0xMiden/miden-base/pull/1275) and [#1349](https://github.com/0xMiden/miden-base/pull/1349)). These are public accounts which are explicitly monitored by the network to enable network transactions (see discussion [here](https://github.com/0xMiden/miden-node/discussions/606)).
- **Note execution checker**: implemented ability to check which notes out of a set of notes can be executed against a given account ([#1269](https://github.com/0xMiden/miden-base/pull/1269)). This functionality was required for the network transaction builder.
- **Error reporting**: upgraded to the latest version of `miden-vm` which significantly improved error reporting and debugging experience ([#1353](https://github.com/0xMiden/miden-base/pull/1353)).
Other notable changes:
- **Storage map key hashing**: user-provide keys are now hashed before inserting key-value pairs into the storage map ([#1250](https://github.com/0xMiden/miden-base/pull/1250)).
- **Batch and block formats**: batches and blocks now keep track of full transaction headers ([#1247](https://github.com/0xMiden/miden-base/pull/1247)).
- **Token symbol encoding**: fixed a bug in token symbol encoding ([#1334](https://github.com/0xMiden/miden-base/pull/1334)).
- **TransactionExecutor refactoring**: inputs notes are passed to the transaction executor now directly ([#1229](https://github.com/0xMiden/miden-base/pull/1229)); the same mechanism is used to load native and foregin account data into the executor ([#1311](https://github.com/0xMiden/miden-base/pull/1311)).
- **Blockchain struct normalization**: moved core blockchain structs from `miden-node` to `miden-base` ([#1304](https://github.com/0xMiden/miden-base/pull/1304)) and normalized naming ([#1308](https://github.com/0xMiden/miden-base/pull/1308)).
- **Testing infrastructure improvements**: moved testing framework (`MockChain`, `TransactionContext`) into a separate `miden-testing` crate ([#1309](https://github.com/0xMiden/miden-base/pull/1309), [#1310](https://github.com/0xMiden/miden-base/pull/1310), [#1315](https://github.com/0xMiden/miden-base/pull/1315)).
### v0.10 - released July 8, 2025
Full changelog available is [here](https://github.com/0xMiden/miden-base/releases/tag/v0.10.0). Key highlights:
- **In-kernel account deltas**: implemented tracking of account deltas inside transaction kernel and outputting account delta commitment as part of transaction outputs. This makes transaction authentication schemes more flexible by allowing users to sign account deltas rather than new account states. One of the benefits of this is enabling out-of-order transaction processing in multi-sig settings. Another benefit is the ability to check validity of account delta for public accounts simply by verifying transaction proofs. This simplifies transaction validity checks in the node. ([#1404](https://github.com/0xMiden/miden-base/pull/1404), [#1460](https://github.com/0xMiden/miden-base/pull/1460), [#1481](https://github.com/0xMiden/miden-base/pull/1481), and [#1491](https://github.com/0xMiden/miden-base/pull/1491)).
- **Authentication procedures**: introduced the concept of account authentication procedures. These procedures are automatically run by the transaction kernel in the transaction epilogue. This mechanism guarantees account owner-defined code is executed last in the transaction (i.e., after the transaction script) giving the user more control over how to authenticate transactions ([#1480](https://github.com/0xMiden/miden-base/pull/1480)).
Other notable changes:
- **Account ID anchors**: removed anchoring from account ID generation process. This simplifies generation of new account IDs and makes restoring of public accounts from seed phrases possible ([#1391](https://github.com/0xMiden/miden-base/pull/1391)).
- **More flexible note construction**: `create_note` and `add_asset_to_note` kernel procedures can now be called directly from note and transaction scripts. One consequence of this is allowing users to delay asset consistency checks until transaction epilogue enabling such capabilities as transaction-level "flash loans" ([#1525](https://github.com/0xMiden/miden-base/pull/1525)).
- **`P2IDE` note standard**: replaced the existing `P2IDR` note standard with a new `P2IDE` note standard which, in addition to all capabilities of `P2IDR`, also enables time-locked notes ([#1483](https://github.com/0xMiden/miden-base/pull/1483)).
- **`RpoFalcon512Acl` component**: introduced new `RpoFalcon512Acl` authentication component which lets the user selectively specify account procedure which require authentication ([#1531](https://github.com/0xMiden/miden-base/pull/1531)).
- **`ScriptBuilder`**: created a simplified way to build note and transaction script via a `ScriptBuilder` interface. This interface is exposed to the user via the `miden-client` ([#1507](https://github.com/0xMiden/miden-base/pull/1507)).
### v0.11 - released August 26, 2025
- **`Unauthorized` event** - added `Unauthorized` event in the transaction kernel events. This event can be emitted by the user to abort transaction execution and return a `TransactionSummary` which contains information about all effects of the transaction (e.g., consumed/created notes and account changes). This is useful for use cases like multisig accounts when we want to distribute `TransactionSummary` to the multisig participants to collect signatures ([#1596](https://github.com/0xMiden/miden-base/pull/1596)).
- **Transaction introspection procedures**: added a set of procedures to the transaction kernel to enable retrieving of detailed information about input/output notes and account changes. This allows, among other things, authentication procedures to check which assets are being sent out of the account in a given transaction enabling things like rate-limiting ([#1609](https://github.com/0xMiden/miden-base/pull/1609), [#1638](https://github.com/0xMiden/miden-base/pull/1638), [#1648](https://github.com/0xMiden/miden-base/pull/1648)).
- **Async transaction execution**: enables asynchronous callback from the transaction executor to the transaction authenticator (and in the future, data store). This enables the `WebClient` to implement more robust and safe key-management, paving the way for future support of signing via hardware wallets ([#1636](https://github.com/0xMiden/miden-base/pull/1636)).
- **Multisig auth component**: created a PoC multisig authentication component do be used in the multisig app ([#1599](https://github.com/0xMiden/miden-base/pull/1599)).
- **Initial fee model**: introduced fee handling in the transaction kernel. In the initial approach fees, in the native token, are automatically computed in the transaction epilogue. In the future, this will be expanded to allow fee payments in non-native tokens and to enable more fine-grained and user-defined fee payment strategies ([#1614](https://github.com/0xMiden/miden-base/issues/1614)).
- **New address format**: generalize our current address format to enable attaching more metadata to addresses. This is needed for capabilities like private note distribution ([#1454](https://github.com/0xMiden/miden-base/issues/1454)).
### v0.12 - Released on November 5, 2025
- **Lazy account loading**: implement the ability to load only relevant parts of an account during transaction execution. This is needed to enable FPI calls in network transactions and support for accounts which use large amounts of storage ([#401](https://github.com/0xMiden/miden-base/issues/401)).
- **ECDSA signature**
- **Address refactoring**: new format, encryption keys.
- **Kernel API enhancements**
### v0.13 - planned for late December 2025
- `[WIP]` **Named storage slots**: replace the current storage-slot indexing scheme with named storage slots. This will address several outstanding bugs and simplify management of account components ([#1394](https://github.com/0xMiden/miden-base/discussions/1394)).
- `[WIP]` **Agglayer bridge contracts**: implement a set of account components and notes required to support bridging assets to/from the Agglayer ([#1676](https://github.com/0xMiden/miden-base/discussions/1676)).
- **Note tag refactoring**: simplify our current note tags to make routing of notes (especially for network transactions) unambiguous. This may end up being expanded to make handling of public note data more flexible ([#1449](https://github.com/0xMiden/miden-base/discussions/1449)).
- **Account storage schema**
- **Procedure signatures**
### v0.14 - planned for early February 2026
- **Stable serialization**: refactor serialization of all objects to ensure that the serialization format is tightly controlled and allows for migrations over time (**issue TBD**).
- **Fee processing**: implement fee processing logic in transaction batches and blocks ([#1689](https://github.com/0xMiden/miden-base/issues/1689)).
- **Network account controls**: implement the ability to specify which notes can be accepted by a given (network) account. This is needed to prevent griefing attacks against network accounts (**issue TBD**).
- **Programmable assets**: enable the ability to attach custom logic to assets to supports such capabilities as asset transfer rules. ([#1068](https://github.com/0xMiden/miden-base/discussions/1068)).
- **Updatable account code**: implement ability to update account code post deployment ([#1771](https://github.com/0xMiden/miden-base/discussions/1771)).
### v0.15 - planned for late March 2026
- **Batch and block kernels in MASM**: implement batch and block kernels in Miden assembly. This will enable proving transaction batches and blocks ([#1122](https://github.com/0xMiden/miden-base/issues/1122), [#1706](https://github.com/0xMiden/miden-base/issues/1706)).
## Miden Node
### v0.9 - released June 02, 2025
Full changelog available is [here](https://github.com/0xMiden/miden-node/releases/tag/v0.9.0). Key highlights:
- **Network transactions**: introduced the network transaction builder component (NTX builder) and enabled initial support for network transactions ([#833](https://github.com/0xMiden/miden-node/pull/833), [#840](https://github.com/0xMiden/miden-node/pull/840), [#841](https://github.com/0xMiden/miden-node/pull/841)).
- **Proving service**: moved proving service from `miden-base` to `miden-node` and enabled setting configuration via env variables ([#1281](https://github.com/0xMiden/miden-base/pull/1281), [#926](https://github.com/0xMiden/miden-node/pull/926)).
- **Faucet**: added various DoS protection measures to the faucet ([#831](https://github.com/0xMiden/miden-node/pull/831), [#839](https://github.com/0xMiden/miden-node/pull/839), [#865](https://github.com/0xMiden/miden-node/pull/865)) and offloaded transaction proving to remote prover ([#830](https://github.com/0xMiden/miden-node/pull/830)).
Other notable changes:
- **Status endpoint**: added `/status` endpoint to all components for easier monitoring ([#817](https://github.com/0xMiden/miden-node/pull/817)).
- **Version consistency checking**: added HTTP accept header to enforce semver requirements against client connections ([#844](https://github.com/0xMiden/miden-node/pull/844)).
- **Account tree**: migrated to using SMT-based account tree for the account database ([#783](https://github.com/0xMiden/miden-node/pull/783)).
### v0.10 - released July 10, 2025
Full changelog available is [here](https://github.com/0xMiden/miden-node/releases/tag/v0.10.0). Key highlights:
- **Network transaction**: simplified and improved handling of network transactions. Now, the network transaction builder subscribes the events emitted by the mempool and is able to learn about network notes as soon as corresponding transactions are admitted into the mempool. This addresses several race conditions which existed in the previous implementation. ([#1039](https://github.com/0xMiden/miden-node/pull/1039), [#1051](https://github.com/0xMiden/miden-node/pull/1051)).
- **Node deployment and telemetry**: implemented Open Telemetry reporting for all node components, added Honeycomb collectors, and set up Slack-based alerts to monitor network activity. Additionally, automated infrastructure setup (via Terraform) and deployment workflows to simplify devenet and testnet deployments ([#1061](https://github.com/0xMiden/miden-node/pull/1061), [#1073](https://github.com/0xMiden/miden-node/pull/1073)).
- **Proving service migration**: migrated Miden remote proving service into `miden-node` components. This normalized and simplified deployment of all node components ([#926](https://github.com/0xMiden/miden-node/pull/926)).
Other notable changes:
- **Configurable genesis**: implemented the ability to specify a customizable set of accounts for the genesis block. This simplifies integration testing of the node components ([#1000](https://github.com/0xMiden/miden-node/pull/1000)).
- **Faucet DoS protection**: improved Faucet DoS protection via proof-of-work requirements ([#974](https://github.com/0xMiden/miden-node/pull/974)).
### v0.11 - released on August 28, 2025
Full changelog available is [here](https://github.com/0xMiden/miden-node/releases/tag/v0.11.0). Key highlights:
- **Faucet refactoring**: moved Miden faucet into a separate repo, refactored it to use `miden-client` under the hood, and updated the design to match Miden's new styles ([#7](https://github.com/0xMiden/miden-faucet/pull/7), [#11](https://github.com/0xMiden/miden-faucet/pull/11), [#20](https://github.com/0xMiden/miden-faucet/pull/20)).
- **Network transactions**: improve handling of failures during network transaction execution to identify "offending" notes, and apply retry-strategies without exhausting the node's resources ([#1071](https://github.com/0xMiden/miden-node/issues/1071), [#1089](https://github.com/0xMiden/miden-node/issues/1089)).
Other notable changes:
- **Accept header**: requests to the RPC can now add genesis block commitment to the accept header. This let's clients ensure that they are connecting to the right network ([#1084](https://github.com/0xMiden/miden-node/pull/1084)).
### v0.12 - planned for mid October 2025
- `[WIP]` **Account retrieval API**: refactor account retrieval gRPC endpoints to enable syncing of large accounts ([#1095](https://github.com/0xMiden/miden-node/issues/1095), [#1099](https://github.com/0xMiden/miden-node/issues/1099), [#1185](https://github.com/0xMiden/miden-node/issues/1185), [#1207](https://github.com/0xMiden/miden-node/issues/1207)).
- `[WIP]` **User-defined batches**: refactor mempool to support the ability for users to submit proven batches of transactions (rather than individual transactions). This enables atomic execution of multiple transactions - that is, all transactions in a batch must be applied to the chain state as a single unit ([#1112](https://github.com/0xMiden/miden-node/issues/1112)).
- `[WIP]` **Actor-based network-transactions**: refactor network transaction builder to handle each network account as an independent actor ([#1192](https://github.com/0xMiden/miden-node/issues/1192)).
- **Training wheels**: implement collection and storage of underlying transaction data for transactions involving private account and notes. This includes re-execution of all submitted transactions and transaction batches to double-check proof validity ([#613](https://github.com/0xMiden/miden-node/issues/613)).
- `[WIP]` **Network monitor**: create a separate light-weight binary which periodically checks statuses of all network components (e.g., RPC, faucet, block explorer, remote provers) ([#1190](https://github.com/0xMiden/miden-node/issues/1190)).
- **Large capacity SMT**: upgrade to use persistent Sparse Merkle tree for account and nullifier databases. This improves node startup times and allows the node to function even with large number of accounts and nullifiers in the system. ([#1189](https://github.com/0xMiden/miden-node/issues/1189)).
- **Account Merkle data**: **issue TBD**
- **Public notes in network transactions**: [#1159](https://github.com/0xMiden/miden-node/issues/1159).
### v0.13 - planned for late November 2025
- **Fee processing**: integrate fee handling logic into the mempool to enable prioritizing transactions be their fees and filtering out transactions which do not meet the base fee requirements (**issue TBD**).
- **Fast block construction**: separate block proving and sequencing such that blocks can be constructed without requiring ZKPs validating the correctness of block construction. The ZKPs will be appended to the blocks at a later point in time, but before blocks are sent to the L1 (**issue TBD**).
- **Agglayer integration**: implement submitting of execution proofs to the Agglayer (**issue TBD**).
- **Dababase backups**: implement centralized backups for the node's database (**issue TBD**).
### v0.14 - planned for early January 2026
- **DA layer integration**: implement submitting public account and note data to Ethereum blobs or a 3rd party DA layer (**issue TBD**)
## Miden client
### v0.12 - planned for late October 2025
- **Address support**: support the recent addition of Address to `miden-base` with first-class support for `Address` in the client’s DB. This involves creating and storing the default `Address` upon `Account` creation, as well as adding and removing secondary ones. ([#1260](https://github.com/0xMiden/miden-client/issues/1260)).
- **Long-running client synchronization**: remove the need to manually sync client state (wait and retry), and instead support a client which continuously syncs with the chain. ([#467](https://github.com/0xMiden/miden-client/issues/467)).
- `[WIP]` **Transaction pipeline**: create a wrapper around transaction execution, proving and submission methods to simplify the transaction lifecycle. Sophisticated users can isolate the steps, while common use cases benefit from high-level APIs. ([#1152](https://github.com/0xMiden/miden-client/pull/1152)).
- **Connect to note transport layer**: integrate a transport client that can send and fetch private notes over the transport service. [#1229](https://github.com/0xMiden/miden-client/issues/1229)
- **Actionable error messages**: aside from providing solely the source and type of the error, show actionable steps the developer can take to address it, where relevant. ([#1337](https://github.com/0xMiden/miden-client/issues/1337)).
## Miden VM + Prover
### v0.15 - released June 06, 2025
Full changelog available is [here](https://github.com/0xMiden/miden-vm/releases/tag/v0.15.0). Key highlights:
- **ACE chiplet**: finished implementation of the _arithmetic circuit evaluator_ chiplet (started in v0.14.0). This is needed to speed up recurisve verifier and simplify constraint evaluation computations in MASM ([#1759](https://github.com/0xMiden/miden-vm/pull/1759), [#1766](https://github.com/0xMiden/miden-vm/issues/1766), [#1820](https://github.com/0xMiden/miden-vm/issues/1820)).
- **Recursive verifier**: integrated ACE chiplet-based constraint evaluation into the recursive verifier, added support for varible-length public inputs, and optimized randomness generation ([#1760](https://github.com/0xMiden/miden-vm/pull/1760), [#1810](https://github.com/0xMiden/miden-vm/pull/1810), [#1813](https://github.com/0xMiden/miden-vm/pull/1813)).
- **Error reporting**: added soruce location information to the errors generated by the VM greatly improving debugging experience ([#1717](https://github.com/0xMiden/miden-vm/pull/1717), [#1765](https://github.com/0xMiden/miden-vm/pull/1765), [#1863](https://github.com/0xMiden/miden-vm/pull/1863)).
Other notable changes:
- **Kernel ROM chiplet**: fixed a bug and optimized bus message handling for the Kernel ROM chiplet ([#1818](https://github.com/0xMiden/miden-vm/issues/1818)).
- **Advice stack debugging**: added ability to introspect advice stack via `debug` instructions ([#1828](https://github.com/0xMiden/miden-vm/pull/1828)).
- **Breakpoint instruction**: added `breakpoint` instruction to improve debugging experience ([#1860](https://github.com/0xMiden/miden-vm/pull/1860)).
### v0.16 - released July 08, 2025
Full changelog available is [here](https://github.com/0xMiden/miden-vm/releases/tag/v0.16.0). Key highlights:
- **Fast processor**: integrate error context tracking into the fast processor to enable better debugging. Enable asynchronous execution of the fast processor to support async transaction execution ([#1914](https://github.com/0xMiden/miden-vm/issues/1914), [#1933](https://github.com/0xMiden/miden-vm/issues/1933)).
- **Assembler refactoring**: refactored the assembler to address several existing bugs and prepare for the introduction of Miden packages. This included internal refactoring of the module graph, as well as splitting out assembly syntax and debug info handling into separate crates ([#1881](https://github.com/0xMiden/miden-vm/pull/1881), [#1921](https://github.com/0xMiden/miden-vm/pull/1921), [#1945](https://github.com/0xMiden/miden-vm/pull/1945)).
- **Advice provider refactoring**: converted the `AdviceProvider` interface into a concrete struct and moved it from the host interface into the processor. This simplifies further work on user-defined event handlers and asynchronous requests to the host itnerface ([#1906](https://github.com/0xMiden/miden-vm/issues/1906), [#1936](https://github.com/0xMiden/miden-vm/issues/1936)).
- **Recursive verifier**: simplified handling of constraint evaluation at the out-of-domain point ([#1848](https://github.com/0xMiden/miden-vm/pull/1848)).
Other notable changes:
- **Word-sized constants**: enabled defining of word-sized constants in MASM. This is required for allowing MASM files to include advice data ([#1855](https://github.com/0xMiden/miden-vm/pull/1855)).
- **Advice data in MASM**: enabled specifying advice data (advice map entries) in MASM. This allows generating MASM files in AirScript which contain full description of arithmetic circuits to be evaluated in the context of recursive verifiers ([#1862](https://github.com/0xMiden/miden-vm/pull/1862)).
### v0.17 - released on August 6, 2025
- **Event handler refactoring**
- **Async processor execution**
### v0.18 - released on September 21, 2025
- **Procedure signatures in MASM**
- **Initial precompile support**: Keccak
### v0.19 - planned for late October 2025
- **Parallel trace generation**: ([#1558](https://github.com/0xMiden/miden-vm/issues/1558)).
- **Debugger overhaul**: ([#1776](https://github.com/0xMiden/miden-vm/issues/1776)).
- **Type signatures** for the standard library
- **Precompiles**: ECDSA and EDDSA
- **Finish MASM modules for `Smt`**
- **Calls inside syscalls**
### v0.20 - planned for early December 2025
- **Recursive verifier**: proof standardization
- **Pre-compile proof generation**
- **Migration to Plonky3**
- **IDE integration for MASM**
## Compiler
### v0.1.0 - released May 26, 2025
Full changelog available is [here](https://github.com/0xMiden/compiler/releases/tag/v0.0.8). Key highlights:
- **Pure Rust programs**: the compiler supports compilation of arbitrary pure-Rust programs, the only limitation being that libstd is not supported (but liballoc can be used for heap-allocated types).
- **IR rewrite**: the internal IR of the compiler was rewritten from the ground up to provide a more sound foundation for analysis and rewriting.
Other notable changes:
- **Account code and note scripts**: initial support for defining Miden accounts and note scripts in Rust has been implemented, but is not yet complete in this release.
### v0.4.0 - released on August 15, 2025
Full changelog available is [here](https://github.com/0xMiden/compiler/releases/tag/v0.4.0). Key highlights:
- Alpha version of the account, note scripts, transaction script projects support with limited Miden SDK API.
- Basic wallet and P2ID note example implemented in Rust.
- `cargo miden example` extension command to copy and explore the example projects.
- `struct` type support in function arguments and results in the account API (total size limited to 16 felts);
- **Hashing API**: `merge()` and maybe `hash_elements()`
-
- **Cross-context calls**: pass/return structs
- **Wallet & P2ID note & transaction script**
### v0.5.0 - planned for late October 2025
- `[done]` **Type signature support**: dependency management
- `[wip]` **Consuming and emitting packages**
- `[wip]` **Integrate `mienup`**
- `[wip]` **Standard library & protocol library** bindings
- `[wip]` **Finish cross-context calls** (option, result), use advice provider (for lists)
- `[wip]` **WIT interface refactoring**: get WIT interfaces from package files
- **Auto-generated bindings** from MASM
### v0.6.0 - planned for mid-December 2025
- **Avoid lowering to unstructured control flow**
- **Developer ergonomics**: Rust proc-macros to hide lower-level protocol API
### v0.7.0 - planned for end of January 2026
- **Compilation in WASM**
- **Performance optimizations**
- **Integrated testing framework**