CLI reference
The same text is printed by mina <command> --help, apart from the notes this page adds to some commands. Every command also takes -h or --help, and mina itself takes -V or --version; they are not listed below. An option with an environment variable may be set by that variable instead; the option on the command line takes precedence. Before opening the HTTP port to other machines, read viewing it on a server.
- mina
- mina node
- mina node status
- mina node frontier-store-check
- mina keys
- mina keys mina-key-pair
- mina keys p2p-key-pair
- mina build-info
- mina wallet
- mina wallet address
- mina wallet balance
- mina wallet delegate
- mina wallet generate
- mina wallet send
- mina wallet status
- mina ledger
- mina ledger export
- mina ledger hash
- mina ledger currency
- mina fork
- mina fork export
- mina report
- mina triage
mina
Mina node in Rust, with its wallet, ledger and operator tools.
mina [OPTIONS] <COMMAND>Commands
- node: Run a Mina node, or inspect a running one with
mina node status. - keys: Generate or print account and libp2p key pairs.
- build-info: Print this binary's version, commit and build details.
- wallet: Create keys, check balances and send transactions through a node.
- ledger: Export a node's ledgers, and hash or total an exported ledger, as OCaml's
mina ledger - fork: Write the next hard fork's config from a running node, as OCaml's
mina advanced generate-hardfork-config - report: Collect a bug report and file it as a GitHub issue.
- triage: Let an AI agent draft the bug report issue from the redacted report.
Global options
- --network <NETWORK>
The network whose chain and keys the command uses.
Accepted by every command. Default:
devnet. Environment:MINA_NETWORK.devnetmainnet
mina node
Run a Mina node, or inspect a running one with mina node status.
Without options, the node joins the network given by --network as a full node: it finds peers, syncs, then follows the tip of the chain. The HTTP server serves the dashboard, the API and GraphQL on 127.0.0.1:3000. Options add block production, SNARK work and browser peers.
mina node [OPTIONS] [COMMAND]Commands
- status: Inspect a running node using read-only HTTP requests.
- frontier-store-check: Check a frontier store directory offline, with the node stopped.
Network
- -P, --peers <MULTIADDR>
A peer to connect to at startup, as a multiaddr. Repeat it for more peers.
The format is
/ip4/<address>/tcp/<port>/p2p/<peer id>, with/ip6/or/dns4/in place of/ip4/for other addresses. Peers given here, or by--peer-list-fileor--peer-list-url, replace the network's default peers.Alias:
--peer.- --peer-list-file <FILE>
A file of peers to connect to at startup, one multiaddr per line.
Empty lines are skipped. Lines that don't parse are logged and skipped.
Environment:
MINA_PEER_LIST_FILE.- --peer-list-url <URL>
A URL that returns peers to connect to at startup, in the
--peer-list-fileformat.Environment:
MINA_PEER_LIST_URL.- --seed
Run as a seed node: without peers given, the node waits for peers to connect instead of dialling the network's default peers.
Environment:
MINA_SEED.- --max-peers <N>
The most peer connections the node keeps.
Default:
100.- --libp2p-port <PORT>
The TCP port for libp2p peer connections.
Alias:
--external-port. Default:8302. Environment:MINA_LIBP2P_PORT.- --libp2p-external-ip <IP>
A public IP address at which peers may reach this node. Repeat it for more addresses.
- --libp2p-keypair <FILE>
An encrypted libp2p key file, as OCaml's
mina libp2p generate-keypairwrites it, for the node's peer identity.The password is read from the
MINA_LIBP2P_PASSenvironment variable. The file takes precedence over--p2p-secret-key.- -s, --p2p-secret-key <KEY>
The node's libp2p secret key, for its peer identity.
By default the node reads
p2p-secret-keyin the work directory, and creates it on the first start.Environment:
MINA_P2P_SEC_KEY.
HTTP and GraphQL
- -p, --port <PORT>
The TCP port of the HTTP server: the dashboard, the API and GraphQL.
Default:
3000. Environment:MINA_PORT.- --http-addr <ADDR>
The address the HTTP server listens on.
0.0.0.0listens on all IPv4 interfaces.Default:
127.0.0.1. Environment:MINA_HTTP_ADDR.- --http-cors-origin <ORIGIN>
A page origin, like
https://dash.example.org, whose pages may read this node's HTTP API besides pages of this machine.Pages of this machine are
localhost,127.0.0.1and[::1]on any port. Repeat the option, or give a comma-separated list in the environment;*lets every page read the API. Opening the node's pages at a host name rather than an IP address orlocalhostalso needs that name listed, ashttp://name:port.Environment:
MINA_HTTP_CORS_ORIGINS.- --enable-tx-submission
Accept transactions over HTTP:
POST /send-paymentand the GraphQL mutationssendPayment,sendDelegationandsendZkapp.Off by default, so that a public node does not take submissions from anyone who can reach its port. When off, they get HTTP 403 or a GraphQL error. Turn it on only for a node whose HTTP port only you can reach.
Environment:
MINA_ENABLE_TX_SUBMISSION.- --public-graphql
Answer only a read-only GraphQL subset, for a node whose HTTP port anyone can reach.
The subset takes one query per request (no mutations, batches or introspection), with the fields block explorers, o1js and wallets read,
bestChainwithmaxLengthup to 20, and a cost ceiling. It leaves out the peers, SNARK pool, operator and telemetry fields. Refused requests get HTTP 400 before any work is done. The dashboard and GraphiQL are not served.Environment:
MINA_PUBLIC_GRAPHQL.- --enable-ledger-export
Serve whole-ledger exports over HTTP, for
mina ledger exportandmina fork export. Off by default: an export is expensive, so restrict access to the HTTP port first.Environment:
MINA_ENABLE_LEDGER_EXPORT.- --no-dashboard
Don't serve the dashboard at
/. The API routes keep their paths.Environment:
MINA_NO_DASHBOARD.- --metrics-port <PORT>
Serve Prometheus metrics on this separate TCP port. Off by default.
Environment:
MINA_METRICS_PORT.- --metrics-addr <ADDR>
The address the metrics listener listens on.
Default:
127.0.0.1. Environment:MINA_METRICS_ADDR.
Storage
- -d, --work-dir <DIR>
The work directory: the node's chain state, caches, logs and settings.
Default:
~/.mina. Environment:MINA_HOME.- --no-frontier-store
Don't keep a frontier store. The node keeps one by default, from which a restart resumes instead of syncing from the start.
The store holds the best chain's blocks as they come, and a checkpoint of the root's ledgers and staged ledger every
--checkpoint-intervalseconds. A restart restores from it when it passes its checks and isn't too old; otherwise the node bootstraps and logs why.Environment:
MINA_NO_FRONTIER_STORE.- --frontier-store-no-restore
Write the frontier store, but don't restore from it at startup.
- --frontier-store-dir <DIR>
The directory for frontier stores, one per chain, at
<DIR>/<chain id>/frontier. Defaults to the work directory.Environment:
MINA_FRONTIER_STORE_DIR.- --frontier-store-reset
Delete the frontier store when the node opens it, so that the node bootstraps.
- --frontier-store-load-timeout <SECONDS>
Seconds a frontier store restore may go without progress before the node gives it up and bootstraps (1 to 300).
Default:
60.- --checkpoint-interval <SECONDS>
Seconds between checkpoints of the frontier store's root.
Default:
1800. Environment:MINA_CHECKPOINT_INTERVAL.- --no-proof-cache
Keep retained proofs in memory rather than in files under
<work dir>/proof-cache. Takes precedence over--proof-cache.Proofs go to the files by default, except on a block producer (
--producer-key), which keeps the proofs it may read to build and prove a block in memory unless--proof-cacheis given.Environment:
MINA_NO_PROOF_CACHE.- --proof-cache
Keep retained proofs in files under
<work dir>/proof-cacheon a block producer too. A failed read can then cost it a block.- --no-ledger-disk
Keep the staking, next epoch and root snarked ledgers' accounts in memory rather than in files under
<work dir>/ledger-accountsEnvironment:
MINA_NO_LEDGER_DISK.- --no-root-ledger-disk
Keep the root snarked ledger's accounts in memory, while the epoch ledgers' go to files. No effect with
--no-ledger-diskEnvironment:
MINA_NO_ROOT_LEDGER_DISK.
Block production
- --producer-key <FILE>
Produce blocks with the account key in this encrypted key file.
The password is read from the
MINA_PRIVKEY_PASSenvironment variable; unset means an empty password.Alias:
--block-producer-key. Environment:MINA_PRODUCER_KEY.- --coinbase-receiver <PUBLIC_KEY>
The public key that receives the coinbase of the blocks this node produces. Defaults to the producer's own key.
If the key is a zkApp account's, its receive permission must be None.
- --block-inject-delay-ms <MILLISECONDS>
The least milliseconds after the start of its slot before the node publishes a block it produced (at least 1000).
Default:
1000.
SNARK work
- --run-snarker <PUBLIC_KEY>
Run the SNARK worker, with fees paid to this public key (B62...).
As with OCaml's
--run-snark-worker, the worker needs no private key: the public key only goes into the message its proofs commit to. If the key is a zkApp account's, its receive permission must be None, or OCaml nodes reject the work.Alias:
--run-snark-worker. Environment:MINA_RUN_SNARKER.- --snarker-fee <MINA>
The fee asked for each SNARK work bundle, in MINA (for example
0.1), as OCaml's--snark-worker-fee.If the worker's key has no account yet, OCaml nodes only accept work whose fee is at least the account creation fee (1 MINA).
Alias:
--snark-worker-fee. Default:0.1. Environment:MINA_SNARKER_FEE.- --snarker-strategy <STRATEGY>
How the SNARK worker picks its next job:
randpicks any of the jobs it may take at random, as OCaml's default--work-selection, andseqthe first in scan-state order.It applies to a worker started with
--run-snarker, from the dashboard, or from the setting the dashboard saved.Default:
rand. Environment:MINA_SNARKER_STRATEGY.- --snarker-block-first-lead <SECONDS>
Seconds before a won slot in which a node that also produces blocks starts no new SNARK job (0 to 4200; 0 turns it off). No effect without
--producer-keyDefault:
420. Environment:MINA_SNARKER_BLOCK_FIRST_LEAD.- --allow-worker-control
Let the dashboard start, stop and re-price the SNARK worker (
POST /snarker/control). Off by default.The worker's settings decide where fees go, so allow this only on a node whose HTTP port only you can reach. It can't be combined with
--public-graphql. A worker started from the dashboard is saved in<work dir>/snark-worker.jsonand comes back after a restart, with or without this option;--run-snarkertakes precedence over it. Stopping the worker from the dashboard deletes the file, as does deleting it while the node is stopped.Environment:
MINA_ALLOW_WORKER_CONTROL.- --worker-control-origin <ORIGIN>
A page origin, like
https://dash.example.org, that may change the SNARK worker besides pages of this machine.Pages of this machine are
localhost,127.0.0.1and[::1]on any port. Repeat the option, or give a comma-separated list in the environment. Requests from any other page are refused.Environment:
MINA_WORKER_CONTROL_ORIGINS.
WebRTC
- --webrtc-signal-port <PORT>
Serve WebRTC signaling for browser peers on this separate TCP port. Off by default.
Environment:
MINA_WEBRTC_SIGNAL_PORT.- --webrtc-signal-addr <ADDR>
The address the signaling listener listens on. Pages served over HTTPS need a TLS proxy in front of it.
Default:
127.0.0.1. Environment:MINA_WEBRTC_SIGNAL_ADDR.- --webrtc-ice-servers <FILE>
A JSON file of ICE servers for WebRTC connections, in the browser's
RTCIceServerlist format. Defaults to the built-in STUN servers.For example
[{"urls": "stun:stun.example.org:3478"}], or[]for none. A node with a public address needs none. A file keeps TURN credentials off the command line.Environment:
MINA_WEBRTC_ICE_SERVERS.- --webrtc-udp-ports <MIN-MAX>
The UDP ports for WebRTC candidates, as
MIN-MAX, so that a firewall need open only those. Defaults to any port.Each connection takes a port per local address: allow several per
--max-peers.Environment:
MINA_WEBRTC_UDP_PORTS.- --webrtc-nat-ip <IP>
The public address of a 1:1 NAT in front of this node, used in its WebRTC host candidates in place of its interface addresses.
For a cloud host whose interface has a private address. Repeat it, or separate addresses with commas, for IPv4 and IPv6.
Environment:
MINA_WEBRTC_NAT_IP.
Logging
- -v, --verbosity <LEVEL>
The log level of the console and the log file:
error,warn,info,debugortrace.infologs what an operator follows: the settings at startup, sync progress, each new best tip, a status line with the peer count, the blocks produced, the SNARK work sold, warnings and errors.debugadds detail for diagnosis, andtraceadds every action of the state machine.Alias:
--log-level. Default:info. Environment:MINA_VERBOSITY.- --disable-filesystem-logging
Log to the console only, without
mina.logEnvironment:
MINA_DISABLE_FILESYSTEM_LOGGING.- --log-path <DIR>
The directory for the log file,
mina.log. Defaults to the work directory.Environment:
MINA_LOG_PATH.- --log-file-size-mb <MIB>
The size in MiB at which
mina.logis rotated tomina.log.1, older files shifting up one.Default:
20. Environment:MINA_LOG_FILE_SIZE_MB.- --log-file-count <N>
The number of log files kept,
mina.logincluded; the oldest is deleted. The logs take at most--log-file-size-mbtimes this.Default:
10. Environment:MINA_LOG_FILE_COUNT.
Advanced
- -c, --config <FILE>
A daemon config JSON file to start from instead of the network's embedded genesis, as OCaml's
--config-fileEnvironment:
MINA_CONFIG.- --genesis-config <FILE>
A genesis config to start from instead of
--config's.It is either a prebuilt config as
ledger-toolwrites it (bin_prot), or one written with--without-ledgers(JSON). The latter only suits a network that has moved past its genesis, as the ledgers are synced from peers.Environment:
MINA_GENESIS_CONFIG.- --no-peers-discovery
Turn off peer discovery: no Kademlia, and no asking peers for more peers.
The node still dials its initial peers. Those are the network's default peers unless peers are given with
--peers,--peer-list-fileor--peer-list-url, or--seedis set.
mina node status
Inspect a running node using read-only HTTP requests.
mina node status [OPTIONS]Options
- --node <URL>
The running node's HTTP base URL. The report names the network that node is on.
Default:
http://127.0.0.1:3000. Environment:MINA_NODE_URL.- --status-only
Use only GET /status; omit build and verification statistics.
- --json
Print a JSON report, also when a request fails.
- --check
Exit with status 1 if the node is not synced, its best tip is missing or older than
--max-tip-age, or it has fewer peers than--min-peers- --max-tip-age <SECONDS>
The oldest best tip
--checkaccepts, in seconds.Default:
1800.- --min-peers <N>
The fewest connected peers
--checkaccepts; peers still connecting don't count.Default:
1.- --timeout <SECONDS>
Seconds to wait for each HTTP request (1 to 300).
Default:
5.
mina node frontier-store-check
Check a frontier store directory offline, with the node stopped.
Loads the newest valid generation as a restart would, rehashing every ledger by default, and checks the checkpoint's root staged ledger against its block, the parts' protocol states and the chain's blocks. Writes nothing. Exits with an error if a check fails. A running node locks its store: stop it first, or pass --no-lock.
The store is <chain id>/frontier in the work directory, /data in Docker.
Example: mina node frontier-store-check ~/.mina/<chain id>/frontier
mina node frontier-store-check [OPTIONS] <DIR>Arguments
- <DIR>
The store: a chain's
frontierdirectory.Required.
Options
- --verify <VERIFY>
How much of each ledger to rehash:
full(every node),sample(64 leaf paths, as a restart does) orrootDefault:
full.fullsampleroot
- --rebuild-staged
Also rebuild the root staged ledger the slow way, by applying the scan state's transactions again (tens of seconds on mainnet).
- --no-lock
Check without taking the store's lock, while a node writes it.
mina keys
Generate or print account and libp2p key pairs.
mina keys [OPTIONS] <COMMAND>Commands
- mina-key-pair: Generate an unencrypted Mina account key pair, and print it.
- p2p-key-pair: Generate a libp2p key pair for a node's peer identity, and print it.
mina keys mina-key-pair
Generate an unencrypted Mina account key pair, and print it.
Prints the secret key and the public key. For a key file a block producer can use, run mina wallet generate instead.
mina keys mina-key-pair [OPTIONS]Options
- -s, --secret-key <KEY>
Print the key pair of this secret key instead of a new one.
Environment:
MINA_SEC_KEY.
mina keys p2p-key-pair
Generate a libp2p key pair for a node's peer identity, and print it.
Prints the secret key, the public key and the peer id. The secret key goes to mina node --p2p-secret-key.
mina keys p2p-key-pair [OPTIONS]Options
- -s, --p2p-secret-key <KEY>
Print the key pair of this secret key instead of a new one.
Environment:
MINA_P2P_SEC_KEY.
mina build-info
Print this binary's version, commit and build details.
mina build-info [OPTIONS]mina wallet
Create keys, check balances and send transactions through a node.
mina wallet [OPTIONS] <COMMAND>Commands
- address: Print the public key of an encrypted key file.
- balance: Print an account's balance and nonce, from a node's GraphQL API.
- delegate: Delegate an account's stake, as OCaml's
mina client delegate-stake - generate: Generate an account key pair and save it as an encrypted key file.
- send: Sign a payment and send it through a node.
- status: Print a transaction's status, from a node's GraphQL API, with a pooled transaction's amount and fee in MINA.
mina wallet address
Print the public key of an encrypted key file.
mina wallet address [OPTIONS] --from <FILE>Options
- --from <FILE>
The encrypted key file. Its password is read from the
MINA_PRIVKEY_PASSenvironment variable.Required. Environment:
MINA_FROM.
mina wallet balance
Print an account's balance and nonce, from a node's GraphQL API.
mina wallet balance [OPTIONS]Options
- --address <PUBLIC_KEY>
The account's public key.
- --from <FILE>
An encrypted key file whose account to query, in place of
--address. Its password is read from theMINA_PRIVKEY_PASSenvironment variable.- --node <URL>
The node's HTTP base URL (its
--port). Requests go to<URL>/graphqlDefault:
http://localhost:3000. Environment:MINA_NODE_URL.- --format <FORMAT>
The output format.
Default:
text.textjson
mina wallet delegate
Delegate an account's stake, as OCaml's mina client delegate-stake
mina wallet delegate [OPTIONS] --from <FILE> --to <PUBLIC_KEY> --fee <MINA>Options
- --from <FILE>
The encrypted key file of the account delegating its stake. Its password is read from
MINA_PRIVKEY_PASS, or asked for on a terminal.Required.
- --to <PUBLIC_KEY>
The public key to delegate the stake to, as OCaml's
--receiverRequired.
- --fee <MINA>
The transaction fee in MINA, like
0.1, with at most 9 decimal places, as OCaml's--feeRequired.
- --nonce <NONCE>
The nonce. Defaults to the node's inferred nonce for the sender, which counts its pending transactions.
- --memo <TEXT>
The memo, at most 32 bytes.
- --valid-until <SLOT>
The last global slot since genesis in which the delegation may be included. By default it never expires.
- --node <URL>
The node's HTTP address (its
--port). The node must run with--enable-tx-submissionDefault:
http://localhost:3000. Environment:MINA_NODE_URL.- --format <FORMAT>
The output format.
Default:
text.textjson
mina wallet generate
Generate an account key pair and save it as an encrypted key file.
It reads the new key's password from MINA_PRIVKEY_PASS, and stops if that is unset or empty. The key shows how to set it.
mina wallet generate [OPTIONS] --output <FILE>Options
- --output <FILE>
The encrypted key file to write. Neither it nor its
.pubfile may exist.Required.
- -s, --secret-key <KEY>
Encrypt this secret key instead of a new one.
Environment:
MINA_SEC_KEY.
mina wallet send
Sign a payment and send it through a node.
mina wallet send [OPTIONS] --from <FILE> --to <PUBLIC_KEY> --amount <MINA> --fee <MINA>Options
- --from <FILE>
The sender's encrypted key file. Its password is read from the
MINA_PRIVKEY_PASSenvironment variable.Required. Environment:
MINA_FROM.- --to <PUBLIC_KEY>
The receiver's public key.
Required.
- --amount <MINA>
The amount in MINA, like
2.5, with at most 9 decimal places, as OCaml'smina client send-payment --amountRequired.
- --fee <MINA>
The transaction fee in MINA, like
0.1, with at most 9 decimal places.Required.
- --memo <TEXT>
The memo, at most 32 bytes.
- --nonce <NONCE>
The nonce. Defaults to the sender account's nonce in the node's ledger.
- --valid-until <SLOT>
The last global slot since genesis in which the payment may be included. By default it never expires.
- --node <URL>
The node's HTTP base URL (its
--port). The node must run with--enable-tx-submissionDefault:
http://localhost:3000. Environment:MINA_NODE_URL.
mina wallet status
Print a transaction's status, from a node's GraphQL API, with a pooled transaction's amount and fee in MINA.
mina wallet status [OPTIONS] --hash <HASH>Options
- --hash <HASH>
The transaction hash.
Required.
- --node <URL>
The node's HTTP base URL (its
--port).Default:
http://localhost:3000. Environment:MINA_NODE_URL.- --check-mempool
Leave out the hint to use this option when the status is UNKNOWN.
It doesn't change the lookup: the transaction pool is searched only when the node answers the status query with an error.
mina ledger
Export a node's ledgers, and hash or total an exported ledger, as OCaml's mina ledger
mina ledger [OPTIONS] <COMMAND>Commands
mina ledger export
Write a ledger of a running node's best tip, in OCaml-compatible JSON (compact account lines, rather than OCaml's pretty-printed whitespace).
mina ledger export [OPTIONS] <KIND>Arguments
- <KIND>
Which ledger of the node's best tip.
Required.
staged-ledger: The best tip's staged ledger.snarked-ledger: The best tip's snarked ledger.staking-epoch-ledger: The ledger the current epoch stakes from.next-epoch-ledger: The ledger the next epoch will stake from.
Options
- --node <URL>
The node's HTTP address (its
--port). The node must run with--enable-ledger-exportDefault:
http://localhost:3000. Environment:MINA_NODE_URL.- -o, --output <FILE>
Write the accounts to this file instead of standard output; a summary goes to standard output.
- --verify
Recompute the written file's Merkle root and exit with status 4 unless it is the node's (needs
--output).
mina ledger hash
Print the Merkle root of the ledger in an exported ledger file.
mina ledger hash [OPTIONS] --ledger-file <FILE>Options
- --ledger-file <FILE>
A ledger file as
mina ledger exportwrites it (JSON).Required.
- --expect <HASH>
Exit with status 4 unless the Merkle root is this ledger hash.
- --json
Print a JSON object (
ledger_hash,num_accounts) instead of the hash.
mina ledger currency
Print the total currency of each token in an exported ledger file.
mina ledger currency [OPTIONS] --ledger-file <FILE>Options
- --ledger-file <FILE>
A ledger file as
mina ledger exportwrites it (JSON).Required.
mina fork
Write the next hard fork's config from a running node, as OCaml's mina advanced generate-hardfork-config
mina fork [OPTIONS] <COMMAND>Commands
- export: Write the next hard fork's runtime config and ledgers from a running node's state at the stop slots.
mina fork export
Write the next hard fork's runtime config and ledgers from a running node's state at the stop slots.
mina fork export [OPTIONS] --out <DIR>Options
- --node <URL>
The node's HTTP address (its
--port). The node must run with--enable-ledger-exportDefault:
http://localhost:3000. Environment:MINA_NODE_URL.- --out <DIR>
Directory to create. It must not exist; it gets
fork_config.json(every account inline, OCaml's GraphQLfork_configlayout),daemon.jsonanddaemon-migrated.json(ledgers by stable and by OCaml 4.0.2's migrated root),manifest.jsonand, last, an emptyactivatedRequired.
- --state-hash <HASH>
Continue from this best-chain block instead of the newest block before
slot_tx_end- --height <HEIGHT>
Continue from the best-chain block at this height.
- --allow-before-stop
Export even if the best tip has not reached slot_tx_end, so that the fork block may still change.
- --verify
Recompute the three ledgers' stable and migrated roots from fork_config.json and exit with status 4 unless they are the node's.
mina report
Collect a bug report and file it as a GitHub issue.
Gathers, without AI: this binary's version and build; the OS, kernel, CPU (and whether it has BMI2 and ADX), memory and free disk; what the running node says (network, sync, best and highest peer tip, peers, producer and worker); the newest crash file the node wrote; warnings, errors and panics from the end of its log; a check of its frontier store; and the command line it was started with.
Keys, passwords, key files and their paths, and secret environment
variables are never included; IP addresses and peer ids only with
--include-network-ids.
The report is printed first. Once you confirm (or with --yes), a
pre-filled issue opens in your browser, where you review and submit it;
with --gh, gh issue create files it. --output FILE only saves it.
Examples:
mina report mina report -d ~/.mina-devnet -m "stops syncing after an hour" journalctl --user -u mina | mina report --log - mina report --output report.md.
The help text names the systemd unit mina. The unit these docs set up is minanode.service, so read from the journal with journalctl --user -u minanode.service | mina report --log -. Reporting a bug has more.
mina report [OPTIONS]Options
- -d, --work-dir <DIR>
The node's work directory:
last-start.json, crash files, logs and the frontier store are read from it.Default:
~/.mina. Environment:MINA_HOME.- --node <URL>
The running node's HTTP base URL. Default: the port the node last started with (from
last-start.json), else http://127.0.0.1:3000.Environment:
MINA_NODE_URL.- --log <FILE>
A log file to scan (repeatable);
-reads standard input, as injournalctl --user -u mina | mina report --log -. By default, scanmina.logand its numbered rotations, newest first, within 8 MiB.- --log-lines <N>
How many warning, error and panic lines to include (1 to 1000).
Default:
100.- --store-check <STORE_CHECK>
How to check the frontier store:
root(fast),sample,full(rehashes every ledger) oroffDefault:
root.rootsamplefulloff
- --include-network-ids
Keep IP addresses and peer ids in the report (left out by default).
- -m, --message <TEXT>
What happened, in a sentence or two. Asked for when not given and the terminal is interactive.
- -o, --output <FILE>
Only save the report to FILE: nothing is sent.
- -y, --yes
File without asking first.
- --repo <OWNER/NAME>
The GitHub repository to file the issue in.
Default:
minanode/mina-rust.- --gh
Create the issue with the GitHub CLI (
gh), if installed, instead of opening a pre-filled issue page.- --no-browser
Print the pre-filled issue link instead of opening a browser.
- --timeout <SECONDS>
Seconds to wait for each answer from the node (1 to 120).
Default:
5.
mina triage
Let an AI agent draft the bug report issue from the redacted report.
Collects the report mina report would, then runs the claude CLI, if
installed, non-interactively in a new temporary directory that holds only
the redacted report and the redacted last 2000 lines of each log. Claude
runs in its --restricted mode with only Read, Grep and Glob: it can't run
commands, use the web, or read anything outside that directory, and gets
only the environment variables it needs to sign in. Its draft is shown,
and filed as mina report files, only once you confirm.
What it is given goes to Anthropic: you are asked before it runs. codex
can't be confined that way (it could read any file you can read), so it
runs only with --agent codex --allow-unconfined-agent. Without an agent,
mina triage says so and files the plain report.
Examples:
mina triage mina triage --model claude-opus-5-5.
The help text names the systemd unit mina. The unit these docs set up is minanode.service, so read from the journal with journalctl --user -u minanode.service | mina triage --log -. Reporting a bug has more.
mina triage [OPTIONS]Options
- -d, --work-dir <DIR>
The node's work directory:
last-start.json, crash files, logs and the frontier store are read from it.Default:
~/.mina. Environment:MINA_HOME.- --node <URL>
The running node's HTTP base URL. Default: the port the node last started with (from
last-start.json), else http://127.0.0.1:3000.Environment:
MINA_NODE_URL.- --log <FILE>
A log file to scan (repeatable);
-reads standard input, as injournalctl --user -u mina | mina report --log -. By default, scanmina.logand its numbered rotations, newest first, within 8 MiB.- --log-lines <N>
How many warning, error and panic lines to include (1 to 1000).
Default:
100.- --store-check <STORE_CHECK>
How to check the frontier store:
root(fast),sample,full(rehashes every ledger) oroffDefault:
root.rootsamplefulloff
- --include-network-ids
Keep IP addresses and peer ids in the report (left out by default).
- -m, --message <TEXT>
What happened, in a sentence or two. Asked for when not given and the terminal is interactive.
- -o, --output <FILE>
Only save the report to FILE: nothing is sent.
- -y, --yes
File without asking first.
- --repo <OWNER/NAME>
The GitHub repository to file the issue in.
Default:
minanode/mina-rust.- --gh
Create the issue with the GitHub CLI (
gh), if installed, instead of opening a pre-filled issue page.- --no-browser
Print the pre-filled issue link instead of opening a browser.
- --timeout <SECONDS>
Seconds to wait for each answer from the node (1 to 120).
Default:
5.- --agent <AGENT>
The agent to run; asked for when both are installed.
claudecodex
- --model <MODEL>
The model, passed to the agent's
--model- --agent-timeout <MINUTES>
Minutes the agent may take (1 to 120).
Default:
15.- --allow-unconfined-agent
Run an agent that can't be kept to the redacted report: codex, whose read-only sandbox limits writes, not reads. It can read any file you can read, key files included, and send it to OpenAI.