Command reference
Every dig-store command. Run dig-store <command> --help for full flags and examples.
On-chain by default.
initmints the store's singleton on Chia mainnet andcommitanchors each new deployment root on-chain (both block until confirmed and spend real XCH). Each publishes one capsule and costs the uniform capsule price in $DIG (mint or commit) — paid to the DIG treasury in the same spend bundle (memo = store id). Both commands disclose the cost and check your balance before submitting; they block if the wallet is short on XCH or DIG. You need an unlocked wallet seed and a funded wallet first — see On-chain anchoring.
Start a store & preview — free, no spend
Try it before you pay. Scaffolding, previewing, and cost-previews cost nothing — $DIG is spent only when you publish (commit/deploy). Start here:
| Command | What it does |
|---|---|
digs new <template> [dir] [--force] [--list] | Scaffold a working project locally from a template — no wallet, no chain, no spend. Templates: static-site, vite-react, next-static, nft-drop, dapp-window-chia. Writes a dig.toml, a starter app, and (for the dapp/NFT templates) a window.chia usage example. --list prints the catalog. |
digs dev [--dir <path>] [--build <cmd>] [--port <n>] [--open] | Local preview loop: builds on save and serves your project over the real chia:// read path (compile → verify → decrypt, exactly as a visitor's browser does) on http://127.0.0.1:<port>, with live reload and an injected dev window.chia shim. Free — no chain, no spend. Reads output-dir/build-command from dig.toml (flags override). |
digs doctor [--json] | Pre-publish preflight: checks seed present/unlocked, wallet funds vs the capsule price in $DIG + XCH cost, dighub login, default remote reachable, and content dir present — printed pass/fail. Exits non-zero if a hard check fails. Reads only; never spends. |
digs commit --dry-run [--json] | Preview the resulting version (root) and the exact DIG/XCH cost without spending, anchoring, or publishing anything. |
The intended flow: digs new <template> → edit → digs dev (free preview) → digs doctor → digs commit / digs deploy (the only step that spends DIG).
Get set up & sign in
| Command | What it does |
|---|---|
digs setup (alias: auth) | One-shot onboarding: import/generate a seed, check funds, and (optionally) sign in to DIGHUb. Safe to re-run. --generate / --import, --no-login, --json. |
digs link <storeID> [--output-dir <dir>] [--remote <url>] | Connect the current folder to an existing store — writes a dig.toml + remote so digs dev/deploy work here. |
digs login | Sign in to your DIGHUb account via device pairing (no password). |
digs whoami | Show the current DIGHUb login (handle / token presence). |
digs logout | Sign out of DIGHUb (clear the stored session). |
Wallet & on-chain anchoring
| Command | What it does |
|---|---|
digs seed import [--mnemonic <words>] | Import a BIP-39 mnemonic; encrypted to ~/.dig/seed.enc and unlocked for the session |
digs seed generate [--words 12|15|18|21|24] | Generate a new mnemonic (shown once), encrypt, and unlock |
digs seed status | Show whether a seed exists and is currently unlocked |
digs lock | Lock the seed (clear the cached-unlock session) |
digs balance [--json] | Show spendable XCH (mojos) and DIG (3-decimal display) + the wallet receive address (read-only) |
digs anchor [--wait-timeout <secs>] | Resume a pending anchor: poll the chain and flip the store to confirmed |
digs anchor status [--json] | Show the store's anchor state (network, launcher/store id, current coin, height) + the pointer embedded in the module |
digs anchor inspect <module.dig> [--json] | Decode and print the on-chain pointer embedded in any compiled module file |
Set the wallet passphrase non-interactively with DIGSTORE_PASSPHRASE. Global config lives in ~/.dig/config.toml (coinset_url, unlock_ttl, fee, node.url).
Configuration
| Command | What it does |
|---|---|
digs config node.url <url> | Persist a custom node endpoint to ~/.dig/config.toml — every subsequent command talks to this node first, ahead of the automatic dig.local → localhost → rpc.dig.net resolution below. |
digs config node.url --unset | Remove the stored override; resolution falls back to the automatic ladder. |
digs config <key> [<value>] | Get or set any config key in ~/.dig/config.toml (coinset_url, unlock_ttl, fee, node.url). Omit <value> to print the current value. |
Which node dig-store talks to
Every command that reaches a node (clone, pull, push, reads, serve peers, etc.) resolves the endpoint in this fixed order, using the first that responds:
- An explicit override — the
--node <url>global flag, then the$DIG_NODE_URLenvironment variable, then thenode.urlvalue in~/.dig/config.toml(set viadigs config node.url <url>). Any of these always wins over the steps below. dig.local— your installed local dig-node.localhost— a dig-node on the loopback address, its default local port.rpc.dig.net— the public gateway, the final fallback when no local node answers.
Each tier is a cheap health probe with a short timeout, so dig-store never hangs waiting on an unreachable local node. Connections to any tier use mTLS with a client certificate derived from your identity key; rpc.dig.net additionally serves plain HTTPS for browsers, which can't present a client certificate. See Point a consumer at your node for the same ladder as it applies to the DIG Browser and extension.
Stores & workspace
A single workspace (.dig/) can hold many stores. The commands below create and switch between the stores in your workspace.
| Command | What it does |
|---|---|
digs init [name] [--dir <path>] [--private] [--wait-timeout <secs>] | Initialize a store (default name default); --dir sets its content root. Mints the store singleton on Chia mainnet — the launcher id becomes the store id — and blocks until confirmed (--wait-timeout, default 300s). Costs the uniform capsule price in $DIG + an XCH fee (paid atomically in the same bundle; cost is disclosed before submission). Requires an unlocked seed, XCH, and DIG; on a confirmation timeout the store is kept pending and resumable with digs anchor. Interactive when flags are omitted. |
digs stores | List stores with the active marker, root, content root, and capacity |
digs use <name> | Set the active store |
digs dir [<path>] | Show or set the active store's content root |
Back-compat aliases.
digs projects(fordigs stores) and the--projectflag are kept only as hidden aliases for older scripts; new usage should saystores/ store.
Staging & commits
| Command | What it does |
|---|---|
digs add <path…> [-A] [--key <name>] | Stage files (-A = the whole content root) |
digs staged | List the staging area |
digs unstage | Clear the staging area |
digs commit [-m <msg>] [--wait-timeout <secs>] | Seal a new deployment: anchor the new deployment root on Chia mainnet and block until confirmed (--wait-timeout, default 300s), then compile the module + write the URN manifest. Publishes a new capsule for the uniform capsule price in $DIG + an XCH fee (paid atomically in the same bundle; cost is disclosed before submission). On failure/timeout the local deployment is not finalized (re-run to resume). |
digs commit --dry-run [--json] | Preview the resulting version (root) + the exact DIG/XCH cost without spending or publishing anything. |
digs status | Show staged / modified / untracked + remaining capacity |
History
| Command | What it does |
|---|---|
digs log [--limit N] | List deployments (each root hash is a commit) |
digs diff <a> <b> | Compare two deployments |
Reading content
| Command | What it does |
|---|---|
digs urn [PATHS…] [--root <hex>] | Preview the URN(s) and retrieval key(s) files will have |
digs keys [--root <hex>] | List the retrieval key + URN for every committed resource |
digs cat <urn-or-retrieval-key> [--out <file>] [--salt <hex>] [--verify-proof] | Stream a resource out — by URN (decrypted) or retrieval key (encrypted) |
digs checkout <root> --out <dir> [--salt <hex>] | Write a whole deployment to a directory |