id = "bitcoin"
name = "Bitcoin Core"
homepage = "https://bitcoincore.org/"
description = "A peer-to-peer electronic cash system and full-node implementation."
executables = ["bitcoin-cli", "bitcoind", "bitcoin-qt"]
[dotfiles]
paths = [
"~/.bitcoin/bitcoin.conf",
"~/Library/Application Support/Bitcoin/bitcoin.conf",
"%LOCALAPPDATA%/Bitcoin/bitcoin.conf",
]
exclude = []
secret = []
side_effect = false
[[dotfiles.secret_paths]]
file = [
"~/.bitcoin/bitcoin.conf",
"~/Library/Application Support/Bitcoin/bitcoin.conf",
"%LOCALAPPDATA%/Bitcoin/bitcoin.conf",
]
match = { prefix = ["rpcuser", "rpcpassword", "rpcauth"] }
[commands]
format = 1
label = "bitcoin-cli"
description = "Send one RPC command to a Bitcoin Core node. RPC passwords and the -stdin* options are left out; put credentials in bitcoin.conf or use the cookie file."
quality = "ai-draft"
parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = false, short_bundles = false }
[[commands.source]]
id = "manpage"
kind = "manual"
url = "https://man.archlinux.org/man/bitcoin-cli.1.en"
revision = "v31.1.0"
evidence = """
bitcoin-cli [options] <command> [params]
bitcoin-cli [options] -named <command> [name=value]...
-conf=<file>
-datadir=<dir>
-named
-rpcconnect=<ip>
-rpcport=<port>
-rpcuser=<user>
-rpcwallet=<walletname>
-rpcwait
-chain=<chain>
Allowed values: main, test, testnet4, signet, regtest
-getinfo
-netinfo
"""
[[commands.field]]
id = "chain"
label = "Chain"
type = "enum"
option = ["-chain"]
value_style = "equals"
choices = [
{ value = "main", label = "main" },
{ value = "test", label = "testnet3" },
{ value = "testnet4", label = "testnet4" },
{ value = "signet", label = "signet" },
{ value = "regtest", label = "regtest" },
]
sources = ["manpage"]
[[commands.field]]
id = "datadir"
label = "Data directory"
type = "path"
option = ["-datadir"]
value_style = "equals"
path = { kind = "directory", role = "input" }
sources = ["manpage"]
[[commands.field]]
id = "conf"
label = "Config file"
type = "path"
option = ["-conf"]
value_style = "equals"
path = { kind = "file", role = "input" }
sources = ["manpage"]
[[commands.field]]
id = "rpcconnect"
label = "RPC host"
type = "string"
option = ["-rpcconnect"]
value_style = "equals"
sources = ["manpage"]
[[commands.field]]
id = "rpcport"
label = "RPC port"
type = "integer"
option = ["-rpcport"]
value_style = "equals"
sources = ["manpage"]
[[commands.field]]
id = "rpcuser"
label = "RPC user"
type = "string"
option = ["-rpcuser"]
value_style = "equals"
sources = ["manpage"]
[[commands.field]]
id = "rpcwallet"
label = "Wallet"
type = "string"
option = ["-rpcwallet"]
value_style = "equals"
sources = ["manpage"]
[[commands.field]]
id = "rpcwait"
label = "Wait for RPC server"
type = "boolean"
option = ["-rpcwait"]
sources = ["manpage"]
[[commands.field]]
id = "named"
label = "Named parameters"
type = "boolean"
option = ["-named"]
sources = ["manpage"]
[[commands.field]]
id = "rpc_command"
label = "RPC command"
description = "For example getblockchaininfo, getbalance or help."
type = "string"
position = 0
sources = ["manpage"]
[[commands.field]]
id = "params"
label = "Parameters"
type = "string"
position = 1
multiple = true
sources = ["manpage"]
[[commands.task]]
id = "rpc"
label = "Run an RPC command"
fields = ["chain", "datadir", "rpcwallet", "rpc_command", "params"]
required = ["rpc_command"]
[[commands.task]]
id = "help"
label = "List RPC commands"
fields = ["chain", "rpc_command"]
required = ["rpc_command"]
set = { rpc_command = ["help"] }
[[commands.group]]
id = "basic"
label = "Basic"
fields = ["rpc_command", "params", "chain", "rpcwallet"]
[[commands.group]]
id = "advanced"
label = "Connection"
fields = ["datadir", "conf", "rpcconnect", "rpcport", "rpcuser", "rpcwait", "named"]