Quick Start Guide #64
Replies: 2 comments
-
|
First things first: Great work, Philipp – this is looking great already 🙂 Conceptual vs practicalAs mentioned separately, I wanted to bring up a quick reflection on the "conceptual vs practical" ratio we currently have in the Quick Start. To get a better sense of what others are doing, I went through Solana’s and Sui’s Quick Start guides for comparison. TL;DR comparison
ObservationI think we could move closer to Solana’s rhythm by sprinkling short conceptual notes throughout the flow rather than grouping them all at the start. That way, the Quick Start stays practical and fast, while still introducing the key ideas right when they become relevant. But it's not only about being easy to read, it’s also a structural question – whether we want the Quick Start to be a “rubric for monkeys” 🐒 (fastest path to first success) or lean more toward a “learn by doing” guide. Both directions make sense; I just think it's worth aligning on the intention before we iterate further. Small polish & potential fixesThis is just to keep track of a few smaller things I noticed while reading through the new Quick Start. Quick Start page
Create Account
Transactions
Read Storage
|
Beta Was this translation helpful? Give feedback.
-
|
This is a really nice writeup and thank you for all the effort you have put in here. I was thinking about it a bit more as well. Currently the Quick Start Guide uses the miden client CLI quite heavily, but actually, that is not what people should learn. People should learn how to use those concepts in Rust or TypeScript, but there should be quick wins. Let me explain in more detail: I suggest, that we have a overarching "Getting Started" section, that has two sub-sections "Installation" and "Quick Start".
The first section "Installation" can in subsection (2) consists of super simple commands of The second section in "Installation" should explain Now the Quick Start section can use what is in the new Miden project and the user can copy code snippets in there. We follow your structure. First, we create a simple Account, but not using the CLI and explain what is happening. When the user runs it with a command, we see the effects. Then we create a transaction using the |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Quick Start Guide
As of right now, our docs do not offer readers a direct and quick way to get started with developing on Miden.
Henceforth we have decided to work on including that. This guide will mostly work by introducing our users to Miden through CLI tooling and making use of our Miden Rust & Web Client SDKs.
Motivation
Similar blockchain projects like Solana, Sui and Aztec do offer "Quick Start" guides, which often serve as quick reference books for devs and offer anyone a straight and easy to understand way to get started with developing on Miden.
Beyond that, such a guide will also introduce readers to important basic concepts of the Miden protocol, which are vital for developing on Miden (Accounts, Notes, Transaction flow, etc...).
Reference Quick-Start sections of other projects:
Structure & Content
The Quick Start guide follows this structure (each point represents a page in the documentation):
midenupinstallationmidenupCLI Basics: Creating a simple wallet and minting assets from a network faucetmidenupProject CLI Basics: Commands on how to set up a project environment usingmidenup1 Installation & Set Up Instruction
This section provides a streamlined introduction to Miden development using exclusively CLI tools. You'll learn to install the Miden toolchain and perform essential operations like wallet creation and asset minting through simple command-line interfaces. The focus is on getting you up and running quickly with minimal setup complexity.
1.1
This page serves as the entry point for developers. It provides installation and configuration instructions for both
midenupand Rust.1.2
This page serves as a quick reference for essential
midenupCLI commands. It includes guidance on creating a wallet and minting assets from a network faucet, each accomplished with a single CLI command.This page will utilize new miden-client CLI commands for directly instantiating wallets and minting tokens from network faucets.
2. Network Interactions 101
This section guides users through using the Rust and Web Client to create accounts, execute transactions, work with notes, and read values from the network.
This section serves two main purposes: 1) providing developers with a quick reference for basic client SDK operations and 2) teaching core Miden concepts like "Accounts" and "Notes".
2.1
This page guides users through transaction execution on Miden. It explains how to create a Miden account and use it to create and consume notes for asset transfers. The page includes details about account components, types, and general account functionality on Miden, along with comprehensive information about notes.
Additionally, this page introduces users to Miden's unique transaction model, including the actor model, notes, faucets, and assets.
2.2
This page explains how to read values from the network. It serves as a reference for developers who want to interact with the Miden network using the Rust and Web Client.
Beyond learning Rust / Web Client SDK functionality for retrieving storage values, the main learning objective is understanding Account Storage architecture, including words & felts, mapping slots, and value slots.
3. Your First Smart Contract
This guide uses the
miden newcommand to create a local development environment.It walks users through a simple demo smart contract (counter contract or example bank contract) and teaches the complete Miden development workflow: building, testing, and deploying smart contracts.
3.1 Setting up local environment
Covers environment setup using
miden newand teaches users proper repository structure.3.2 Deploying the Smart Contract
This page teaches users how to deploy their contracts. Ideally, this should utilize a CLI-integrated "script" command for contract deployment, similar to the current
miden-client execcommand.The deployment workflow should be as straightforward as deploying contracts using Foundry. See details here: Script deployment using Foundry
3.3 Testing the Smart Contract
This page provides developers with standardized boilerplate code and guidance for structuring tests for Miden smart contracts.
Many community members have requested best practices for testing Miden smart contracts and organizing test suites effectively.
Essentially, this page establishes a best-practice foundation for testing methodology.
Regarding CLI integration, while it may not be strictly required, we might consider adding a
miden testcommand that maps tocargo testfor running all tests in atest/directory.Table
Installation & Set Up Pages
midenupInstallationmidenupand RustmidenupCLI BasicsmidenupCLI commands: creating wallets and minting assetsNetwork Interactions 101 Pages
Your First Smart Contract Pages
midenupProject CLI BasicsmidenupWork-In-Progress version:
The WIP guide can be found on this branch of the miden-docs repo: https://github.com/0xMiden/miden-docs/tree/feat/getting-started
If you want to try out the guide, please be sure to run the following commands in the miden-docs repository to run the local Docusaurus server and view the docs:
Note: The Smart Contract guide is not included yet as many things depend on clarifying
midenupandmiden-clientCLI features.External dependencies for Quick Start Guide
The Quick Start Guide depends on several components across the Miden ecosystem, including
miden-clientandmidenuptoolchain features. Many of these dependencies require consensus on implementation approaches and coordination between different parts of the Miden project. The following sections outline both critical requirements needed immediately and future enhancements that will improve the developer experience.Critical (absolutely needed)
midenupaliases for miden-client commands work out of the box without requiring individual toolchain component initialization (confusing for users interfacing only throughmidenupaliases)Needed in the future for a good dev experience
Goals
The Quick Start Guide serves three core purposes that will accelerate Miden ecosystem adoption:
1. Quick Reference for Common Development Tasks
A practical reference for operations like creating accounts, transferring assets, reading storage, and deploying contracts that remains valuable beyond initial learning.
2. Best-Practice Template for Smart Contract Development
Standardized patterns for project structure, testing, and deployment workflows that our community has been requesting - establishing consistency across the ecosystem.
3. Quick-Guide for Core Miden Concepts
An accessible entry point for understanding fundamental Miden concepts like the actor model, account types, and note-based transactions without overwhelming technical depth.
This guide should match industry standards (Solana, Sui, Starknet), accelerate developer adoption by reducing time-to-first-success from days to hours, and establish the foundation for consistent & high-quality development practices for Miden projects.
Beta Was this translation helpful? Give feedback.
All reactions