Skip to content

dcrd and dcrwallet CLI Arguments

Last updated for CLI release v1.8.0.


Both the dcrd and dcrwallet daemons should work with default configuration for most users, however there is a wide variety of command line arguments to change the way they behave if required. For example, the following command can be used to change the log directory dcrd will write to.

dcrd --logdir=/my/custom/log/directory

dcrd and dcrwallet both support a --help argument which will print details of all the arguments they support and then exit immediately.


dcrd

Click to expand full list of dcrd CLI arguments
General Description
-V or --version Display version information and exit
-A or --appdata= Path to application home directory (default: ~/.dcrd)
-C or --configfile= Path to configuration file (default: ~/.dcrd/dcrd.conf)
-b or --datadir= Directory to store data (default: ~/.dcrd/data)
--logdir= Directory to log output (default: ~/.dcrd/logs)
--logsize= Maximum size of log file before it is rotated (default: 10 MiB)
--nofilelogging Disable file logging.
--dbtype= Database backend to use for the Block Chain (default: ffldb)
--profile= Enable HTTP profiling on given [addr:]port – NOTE: port must be between 1024 and 65536
--cpuprofile= Write CPU profile to the specified file
--memprofile= Write mem profile to the specified file
--testnet Use the test network
--simnet Use the simulation test network
--regnet Use the regression test network
-d or --debuglevel= Logging level for all subsystems {trace, debug, info, warn, error, critical} – You may also specify <subsystem>=<level>,<subsystem2>=<level>,... to set the log level for individual subsystems – Use show to list available subsystems (default: info)
--sigcachemaxsize= The maximum number of entries in the signature verification cache (default: 100000)
--utxocachemaxsize= The maximum size in MiB of the utxo cache (min: 25, max: 32768) (default: 150)
RPC Server Description
--norpc Disable built-in RPC server – NOTE: The RPC server is disabled by default if no rpcuser/rpcpass or rpclimituser/rpclimitpass is specified
--rpclisten= Add an interface/port to listen for RPC connections (default port: 9109, testnet: 19109)
-u or --rpcuser= Username for RPC connections
-P or --rpcpass= Password for RPC connections
--authtype= Method for RPC client authentication (basic (default) or clientcert)
--clientcafile= File containing Certificate Authorities to verify TLS client certificates; requires authtype=clientcert; (default: ~/.dcrd/clients.pem)
--rpclimituser= Username for limited RPC connections
--rpclimitpass= Password for limited RPC connections
--rpccert= File containing the certificate file (default: ~/.dcrd/rpc.cert)
--rpckey= File containing the certificate key (default: ~/.dcrd/rpc.key)
--tlscurve= Curve to use when generating TLS keypairs (default: P-256)
--altdnsnames= Specify additional DNS names to use when generating the RPC server certificate [$DCRD_ALT_DNSNAMES]
--notls Disable TLS for the RPC server – NOTE: This is only allowed if the RPC server is bound to localhost
--rpcmaxclients= Max number of RPC clients for standard connections (default: 10)
--rpcmaxwebsockets= Max number of RPC websocket connections (default: 25)
--rpcmaxconcurrentreqs= Max number of concurrent RPC requests that may be processed concurrently (default: 20)
P2P Proxy and Tor Description
--proxy= Connect via SOCKS5 proxy (eg. 127.0.0.1:9050)
--proxyuser= Username for proxy server
--proxypass= Password for proxy server
--onion= Connect to Tor hidden services via SOCKS5 proxy (eg. 127.0.0.1:9050)
--onionuser= Username for onion proxy server
--onionpass= Password for onion proxy server
--noonion Disable connecting to Tor hidden services
--torisolation Enable Tor stream isolation by randomizing user credentials for each connection.
P2P Network Description
-a or --addpeer= Add a peer to connect with at startup
--connect= Connect only to the specified peers at startup
--nolisten Disable listening for incoming connections – NOTE: Listening is automatically disabled if the --connect or --proxy options are used without also specifying listen interfaces via --listen
--listen= Add an interface/port to listen for connections (default all interfaces port: 9108, testnet: 19108)
--maxsameip= Max number of connections with the same IP – 0 to disable (default: 5)
--maxpeers= Max number of inbound and outbound peers (default: 125)
--dialtimeout= How long to wait for TCP connection completion. Valid time units are {s, m, h}. Minimum 1 second (default: 30s)
--peeridletimeout= The duration of inactivity before a peer is timed out. Valid time units are {s,m,h}. Minimum 15 seconds (default: 2m0s)
P2P Network Discovery Description
--noseeders Disable seeding for peer discovery
--externalip= Add a public-facing IP to the list of local external IPs that dcrd will advertise to other peers
--nodiscoverip Disable automatic network address discovery of local external IPs
--upnp Use UPnP to map our listening port outside of NAT
Banning Description
--nobanning Disable banning of misbehaving peers
--banduration= How long to ban misbehaving peers. Valid time units are {s, m, h}. Minimum 1 second (default: 24h0m0s)
--banthreshold= Maximum allowed ban score before disconnecting and banning misbehaving peers. (default: 100)
--whitelist= Add an IP network or IP that will not be banned (eg. 192.168.1.0/24 or ::1)
Chain Related Description
--allowoldforks Process forks deep in history. Don’t do this unless you know what you’re doing
--dumpblockchain= Write blockchain as a flat file of blocks for use with addblock, to the specified filename
--assumevalid= Hash of an assumed valid block. Defaults to the hard-coded assumed valid block that is updated periodically with new releases. Don’t use a different hash unless you understand the implications. Set to 0 to disable
Relay and Mempool Policy Description
--minrelaytxfee= The minimum transaction fee in DCR/kB to be considered a non-zero fee. (default: 0.0001)
--limitfreerelay= DEPRECATED: This behavior is no longer available and this option will be removed in a future version of the software. Limit relay of transactions with no transaction fee to the given amount in thousands of bytes per minute (default: 15)
--norelaypriority DEPRECATED: This behavior is no longer available and this option will be removed in a future version of the software. Do not require free or low-fee transactions to have high priority for relaying
--maxorphantx= Max number of orphan transactions to keep in memory (default: 100)
--blocksonly Do not accept transactions from remote peers.
--acceptnonstd Accept and relay non-standard transactions to the network regardless of the default settings for the active network. (This is not the default for mainnet)
--rejectnonstd Reject non-standard transactions regardless of the default settings for the active network. (This is the default for mainnet)
--allowoldvotes Enable the addition of very old votes to the mempool
Mining Options and Policy Description
--generate Generate (mine) coins using the CPU
--miningaddr= Add the specified payment address to the list of addresses to use for generated blocks. At least one address is required if the generate option is set
--blockminsize= DEPRECATED: This behavior is no longer available and this option will be removed in a future version of the software. Minimum block size in bytes to be used when creating a block
--blockmaxsize= Maximum block size in bytes to be used when creating a block (default: 375000)
--blockprioritysize= DEPRECATED: This behavior is no longer available and this option will be removed in a future version of the software. Size in bytes for high-priority/low-fee transactions when creating a block (default: 20000)
--miningtimeoffset= Offset the mining timestamp of a block by this many seconds (positive values are in the past)
--nonaggressive Disable mining off of the parent block of the blockchain if there aren’t enough voters
--nominingstatesync Disable synchronizing the mining state with other nodes
--allowunsyncedmining Allow block templates to be generated even when the chain is not considered synced on networks other than the main network. This is automatically enabled when the simnet option is set. Don’t do this unless you know what you’re doing
Indexing Description
--txindex Maintain a full hash-based transaction index which makes all transactions available via the getrawtransaction RPC
--droptxindex Deletes the hash-based transaction index from the database on startup and then exits.
--noexistsaddrindex Disable the exists address index, which tracks whether or not an address has even been used.
--dropexistsaddrindex Deletes the exists address index from the database on startup and then exits.
IPC (Interprocess Communication) Description
--piperx= File descriptor of read end pipe to enable parent -> child process communication
--pipetx= File descriptor of write end pipe to enable parent <- child process communication
--lifetimeevents Send lifetime notifications over the TX pipe
--boundaddrevents Send notifications with the locally bound addresses of the P2P and RPC subsystems over the TX pipe

dcrwallet

Click to expand full list of dcrwallet CLI arguments
General Description
-C or --configfile= Path to configuration file (default: ~/.dcrwallet/dcrwallet.conf)
-V or --version Display version information and exit
--create Create the wallet if it does not exist
--createtemp Create a temporary simulation wallet (pass=password) in the data directory indicated; must call with --appdata
--createwatchingonly Create the wallet and instantiate it as watching only with an HD extended pubkey
-A or --appdata= Application data directory for wallet config, databases and logs (default: ~/.dcrwallet)
--testnet Use the test network
--simnet Use the simulation test network
--noinitialload Defer wallet creation/opening on startup and enable loading wallets over RPC
-d or --debuglevel= Logging level {trace, debug, info, warn, error, critical} – You may also specify <subsystem>=<level>,<subsystem2>=<level>,... to set the log level for individual subsystems – Use show to list available subsystems (default: info)
--logdir= Directory to log output. (default: ~/.dcrwallet/logs)
--profile= Enable HTTP profiling this interface/port
--memprofile= Write mem profile to the specified file
--cpuprofile= Write cpu profile to the specified file
Wallet Description
--walletpass= The public wallet password – Only required if the wallet was created with one
--promptpass The private wallet password is prompted for at start up, so the wallet starts unlocked without a time limit
--pass= The private wallet passphrase
--promptpublicpass The public wallet password is prompted for at start up
--enableticketbuyer Enable the automatic ticket buyer
--enablevoting Enable creation of votes and revocations for owned tickets
--purchaseaccount= Name of the account to buy tickets from (default: default)
--gaplimit= The size of gaps between used addresses. Used for address scanning and when generating addresses with the wrap option. (default: 20)
--watchlast= Limit watched previous addresses of each HD account branch
--allowhighfees Allows the wallet to send transactions with very large fees. By default, this is any fee over 0.1 DCR/kB
--txfee= Sets the transaction fee in DCR/kB that this wallet will pay to miners (default: 0.0001)
--accountgaplimit= Number of accounts that can be created in a row without using any of them (default: 10)
--disablecointypeupgrades Never upgrade from legacy to SLIP0044 coin type keys
--pooladdress= DEPRECATED: This field was for legacy Stakepools, which have been replaced by Voting Service Providers (VSPs). The ticket pool address where ticket fees will go to
--poolfees= DEPRECATED: This field was for legacy Stakepools, which have been replaced by Voting Service Providers (VSPs). The per-ticket fee mandated by the ticket pool as a percent (e.g. 1.00 for 1.00% fee)
--stakepoolcoldextkey= DEPRECATED: This field was for legacy Stakepools, which have been replaced by Voting Service Providers (VSPs). Enables the wallet as a stake pool with an extended key in the format of “xpub…:index” to derive cold wallet addresses to send fees to
RPC Client Description
-c or --rpcconnect= Hostname/IP and port of dcrd RPC server to connect to
--cafile= File containing root certificates to authenticate a TLS connection with dcrd
--clientcafile= Certficate Authority to verify TLS client certificates (default: ~/.dcrwallet/clients.pem)
--noclienttls Disable TLS for the RPC client – NOTE: This is only allowed if the RPC client is connecting to localhost
--dcrdusername= Username for dcrd authentication
--dcrdpassword= Password for dcrd authentication
P2P Proxy and Tor Description
--proxy= Connect via SOCKS5 proxy (eg. 127.0.0.1:9050)
--proxyuser= Username for proxy server
--proxypass= Password for proxy server
--circuitlimit= Set maximum number of open Tor circuits; used only when --torisolation is enabled (default: 32)
--torisolation Enable Tor stream isolation by randomizing user credentials for each connection
--nodcrdproxy Never use configured proxy to dial dcrd websocket connectons
SPV Description
--spv Sync using simplified payment verification
--spvconnect= Full node addresses to SPV sync from; disables DNS seeding
RPC Server Description
--rpccert= File containing the TLS certificate (default: ~/.dcrwallet/rpc.cert)
--rpckey= File containing the TLS key (default: ~/.dcrwallet/rpc.key)
--tlscurve= Curve to use when generating TLS keypairs (default: P-521)
--onetimetlskey Generate a new TLS certpair at startup, but only write the certificate to disk
--noservertls Disable TLS for the RPC servers – NOTE: This is only allowed if the RPC server is bound to localhost
--grpclisten= Listen for gRPC connections on this interface/port
--rpclisten= Listen for legacy JSON-RPC connections on this interface/port
--nogrpc Disable the gRPC server
--nolegacyrpc Disable the legacy JSON-RPC server
--rpcmaxclients= Max number of legacy JSON-RPC clients for standard connections (default: 10)
--rpcmaxwebsockets= Max number of legacy JSON-RPC websocket connections (default: 25)
-u or --username= Username for legacy JSON-RPC and dcrd authentication (if dcrdusername is unset)
-P or --password= Password for legacy JSON-RPC and dcrd authentication (if dcrdpassword is unset)
--jsonrpcauthtype= Method for JSON-RPC client authentication (basic or clientcert) (default: basic)
IPC (Interprocess Communication) Description
--pipetx= File descriptor or handle of write end pipe to enable child -> parent process communication
--piperx= File descriptor or handle of read end pipe to enable parent -> child process communication
--rpclistenerevents Notify JSON-RPC and gRPC listener addresses over the TX pipe
--issueclientcert Notify a client cert and key over the TX pipe for RPC authentication
Mixing (CSPP) Description
--csppserver= Network address of CoinShuffle++ server
--csppserver.ca= CoinShuffle++ Certificate Authority
--mixedaccount= Account/branch used to derive CoinShuffle++ mixed outputs and voting rewards
--ticketsplitaccount= Account to derive fresh addresses from for mixed ticket splits; uses mixedaccount if unset
--changeaccount= Account used to derive unmixed CoinJoin outputs in CoinShuffle++ protocol
--mixchange Use CoinShuffle++ to mix change account outputs into mix account
--mixsplitlimit= Connection limit to CoinShuffle++ server per change amount
Auto Ticketbuyer Description
--ticketbuyer.balancetomaintainabsolute= Amount of funds to keep in wallet when stake mining (default: 0 DCR)
--ticketbuyer.votingaddress= Purchase tickets with voting rights assigned to this address
--ticketbuyer.limit= Buy no more than specified number of tickets per block (0 disables limit)
--ticketbuyer.votingaccount= Account used to derive addresses specifying voting rights
VSP Options Description
--vsp.url= Base URL of the VSP server
--vsp.pubkey= VSP server pubkey
--vsp.sync Sync tickets to VSP
--vsp.maxfee= Maximum VSP fee (default: 0.1 DCR)
--manualtickets VSP Admins Only: Do not discover new tickets through network synchronization