Mucho
Command-line tool that simplifies the development and testing of Solana blockchain programs.
Install / Use
npx skills add solana-foundation/muchoInstalls into whichever agent you are using.
README
mucho
This is the mucho, a command-line tool designed to simplify the development
and testing of Solana blockchain programs. The tool provides an array of
commands to manage Solana Toolkit installations, clone and manage blockchain
fixtures (accounts, programs, etc), and simplifying the experience of running a
local test validator with all the required state for a consistent development
experience.
muchois in beta and subject to change. Please feel free to open issues with any feedback, feature requests, or issues you experience.
Installation
System Requirements:
- NodeJS (version >= 22)
Install with NodeJS already installed
With NodeJS already installed on your system:
npm install -gy mucho@latest
Or to install mucho and all the core Solana development tooling at once:
npx mucho@latest install
Install without NodeJS already installed
The following command will install NodeJS, Node Version Manager
(NVM), and mucho itself:
curl -sSfL https://raw.githubusercontent.com/solana-foundation/mucho/master/install.sh | bash
Updating mucho
To update mucho to the latest version, use the self-update command to perform
any required update migrations:
npx mucho@latest self-update
To update mucho to a specific version:
npx mucho@latest self-update <version>
Usage
mucho --help
Commands
install- Install and manage the Solana Toolkit's local development tooling on your system.clone- Clone accounts and programs (aka fixtures) from any Solana cluster desired and declared in theSolana.toml.validator- Run thesolana-test-validatoron your local machine, including loading all the cloned fixtures for your repo.build- Build all or a single Solana program in your workspace.deploy- Deploy a Solana program in your workspace.coverage- Run code coverage tests on a Solana program.info- Gather helpful troubleshooting info about your setup.docs- Show the documentation for the Solana development tools.balance- Get an account's balances for all clusters.inspect- Inspect transactions, accounts, and block in the CLI (like a block explorer)
Token commands
token- Create, mint, and transfer tokens.token create- Create a new token (with metadata).token mint- Mint new tokens from an existing token (raising the supply).token transfer- Transfer tokens from one wallet to another.
install
Install the Solana Toolkit local development tooling on your system.
Usage:
mucho install --help
The Solana Toolkit includes the following tools:
- Rust and Cargo - The Rust program language and Cargo package manager are installed via Rustup.
- Agave CLI tool suite - the standard tool suite required to build and deploy Solana programs (formerly known as the "Solana CLI tool suite").
- Mucho CLI - a superset of popular developer tools within the Solana ecosystem used to simplify the development and testing of Solana blockchain programs.
- solana-verify - A command line tool to build and verify Solana programs.
- Anchor and AVM -
The Anchor framework and the Anchor Version Manager (AVM)
- Yarn is currently installed as a dependency of Anchor. This dependency is expected to be removed in the near future.
- Trident Fuzzer - Rust-based fuzzing framework for Solana programs to help you ship secure code.
- Zest - Code coverage CLI tool for Solana programs.
inspect
Inspect transactions, accounts, and block in the CLI (like a block explorer)
mucho inspect <INPUT>
The <INPUT> value should be one of the following:
- account address
- transaction signature
- block number
By default, inspect will use your Solana CLI configured cluster unless
overriden with the --url or -u flag.
Examples:
Solana wallet account:
mucho inspect --url mainnet GQuioVe2yA6KZfstgmirAvugfUZBcdxSi7sHK7JGk3gk
Program account:
mucho inspect --url mainnet TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA
Successful transaction:
mucho inspect --url mainnet 58cX3fXzRcUEcjVJ7mGxPH9jsLRwDtbkkKp6ypE1iagcZXaQSyQp3o9aWUAoQhCevLKMtgzgwvT7e56YdGdh3NXs
Failed transaction:
mucho inspect --url mainnet 5tb4d17U4ZsBa2gkNFEmVsrnaQ6wCzQ51i4iPkh2p9S2mnfZezcmWQUogVMK3mBZBtgMxKSqe242vAxuV6FyTYPf
Block:
mucho inspect --url mainnet 315667873
clone
Clone all the fixtures (accounts and programs) utilizing your Solana.toml
file.
Usage:
mucho clone --help
The default behavior for fixture cloning is as follows:
- All cloned fixtures are stored in the
fixturesdirectory, unless overridden by your Solana.toml'ssettings.accountDir. - All fixtures are cloned from Solana's mainnet cluster or the declared
settings.clusterin Solana.toml. - All fixtures are cloned from the same cluster, unless individually overridden.
- If any fixtures already exist, they are skipped from cloning.
- If a Solana account is cloned, the
ownerprogram will automatically be cloned from the same cluster, unless the program is explicitly declared in the Solana.toml.
To override the default cloning behavior for any fixture, declare the desired override setting in your Solana.toml file. Some of the supported overrides include:
cluster- Desired cluster to clone the particular fixture from.frequency- Desired clone frequency when performing the clone operation.- Each fixture type (account, program, etc) may support other specific overrides.
See the Solana.toml's clone configuration for details about all options.
The cloned fixtures are recommended to be version controlled via git in order to facilitate a consistent local Solana ledger (via
validator) and therefore reproducible and testable blockchain state for anyone with access to the repo.
build
Build all or a single Solana program in your workspace.
Usage:
mucho build --help
deploy
Deploy a Solana program in your workspace.
Usage:
mucho deploy --help
The default behavior for deploying is as follows:
- The
deploycommand will default to your Solana CLI declared cluster, unless overridden with the-u, --urlflag.
validator
Run the Solana test validator on your local machine, including loading all the cloned fixtures for your repo.
Usage:
mucho validator --help
Under the hood, the
validatorcommands wraps the Agave tool suite'ssolana-test-validatorcommand but also helps provide additional quality of life improvements for Solana developers. To view the generatedsolana-test-validatorwrapper command, runmucho validator --output-only.
The default behavior for running the test validator is as follows:
- If the ledger does not already exist, or when resetting the ledger via the
--resetflag, all the currently cloned fixtures will be loaded into the validator at genesis. - All programs declared in your Solana.toml's
programs.localnetdeclaration will be loaded into the validator at genesis. - All loaded programs will have their upgrade authority set to your local
keypair's address (via
settings.keypair).
coverage
Run code coverage tests on a Solana program, powered by the Zest CLI.
Usage:
mucho coverage --help
To pass additional arguments to the Zest CLI, append them at the end of this
tool's command starting with --. For example, to run the Zest CLI's help
command:
mucho coverage -- --help
info
Gather helpful troubleshooting info about your setup, including tool versions and general info about your operating system and Solana CLI configuration.
Usage:
npx mucho info
docs
Open documentation websites for Solana development tools. Without any arguments, opens the Mucho documentation. With a tool name argument, opens documentation for that specific tool.
Usage:
mucho docs --help
Examples:
mucho docs # open Mucho documentation
mucho docs solana # open Solana documentation
balance
Get an account's balances for all clusters.
Usage:
mucho balance --help
Examples:
# balances for the default keypair's address: ~/.config/solana/id.json
mucho balance
# balances of a specific address
mucho balance nicktrLHhYzLmoVbuZQzHUTicd2sfP571orwo9jfc8c
token
Create, mint, and transfer tokens.
Usage:
npx mucho token --help
Considerations:
- All
mucho tokencommands will use the--keypairwallet as the transaction fee payer. Defaults to the Solana CLI wallet (~/.config/solana/id.json).
token create
Create a new token on the Solana blockchain, including adding metadata to the token for viewing on explorers and in wallets.
By default, the legacy token program
(TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA) will be used to create the
token's mint.
npx mucho token create --url devnet \
--name NAME \
--symbol SYMBOL \
--metadata https://raw.githubusercontent.com/
Related Skills
node-connect
385.5kDiagnose OpenClaw Android, iOS, or macOS node pairing, QR/setup code, route, auth, and connection failures.
blender-python-addon
40.5kBlender Python add-on rules for operators, panels, properties, registration, testing, and API-safe scripting
flutter-development-guidelines-cursorrules-prompt-file
40.5kCursor rules for Flutter development with MVVM architecture, Riverpod state management, Material widgets, and Dart style guidelines.
commit-push-pr
140.6kCommit, push, and open a PR
