Command Line Options

Command line options can be used when starting your NIX core wallet or in the nix.conf configuration file. Startup options will override nix.conf entries.

Usage: nix-qt [command-line options] nixd [command-line options]

Example:

nixd -bind=123.123.123.123

or add to the nix.conf file as: [option (without -)]=[value]

Example:

bind=123.123.123.123

Options

-? Print this help message and exit

-version Print version and exit

-alertnotify=<cmd> Execute command when a relevant alert is received or we see a really long fork (%s in cmd is replaced by message)

-blocknotify=<cmd> Execute command when the best block changes (%s in cmd is replaced by block hash)

-assumevalid=<hex> If this block is in the chain assume that it and its ancestors are valid and potentially skip their script verification (0 to verify all, default: 0000000000000000000000000000000000000000000000000000000000000000, testnet: 0000000000000000000000000000000000000000000000000000000000000000)

-conf=<file> Specify configuration file (default: nix.conf)

-datadir=<dir> Specify data directory

-dbcache=<n> Set database cache size in megabytes (4 to 16384, default: 450)

-loadblock=<file> Imports blocks from external blk000??.dat file on startup

-debuglogfile=<file> Specify location of debug log file: this can be an absolute path or a path relative to the data directory (default: debug.log)

-maxorphantx=<n> Keep at most <n> unconnectable transactions in memory (default: 100)

-maxmempool=<n> Keep the transaction memory pool below <n> megabytes (default: 300)

-mempoolexpiry=<n> Do not keep transactions in the mempool longer than <n> hours (default: 336)

-persistmempool Whether to save the mempool on shutdown and load on restart (default: 1)

-blockreconstructionextratxn=<n> Extra transactions to keep in memory for compact block reconstructions (default: 100)

-par=<n> Set the number of script verification threads (-4 to 16, 0 = auto, <0 = leave that many cores free, default: 0)

-pid=<file> Specify pid file (default: nixd.pid)

-prune=<n> Reduce storage requirements by enabling pruning (deleting) of old blocks. This allows the pruneblockchain RPC to be called to delete specific blocks, and enables automatic pruning of old blocks if a target size in MiB is provided. This mode is incompatible with -txindex and -rescan. Warning: Reverting this setting requires re-downloading the entire blockchain. (default: 0 = disable pruning blocks, 1 = allow manual pruning via RPC, >550 = automatically prune block files to stay under the specified target size in MiB)

-reindex-chainstate Rebuild chain state from the currently indexed blocks

-reindex Rebuild chain state and block index from the blk*.dat files on disk

-sysperms Create new files with system default permissions, instead of umask 077 (only effective with disabled wallet functionality)

-txindex Maintain a full transaction index, used by the getrawtransaction rpc call (default: 1)

-addressindex Maintain a full address index, used to query for the balance, txids and unspent outputs for addresses (default: 0)

-timestampindex Maintain a timestamp index for block hashes, used to query blocks hashes by a range of timestamps (default: 0)

-spentindex Maintain a full spent index, used to query the spending txid and input index for an outpoint (default: 0)

Connection options

-addnode=<ip> Add a node to connect to and attempt to keep the connection open (see the 'addnode' RPC command help for more info)

-banscore=<n> Threshold for disconnecting misbehaving peers (default: 100)

-bantime=<n> Number of seconds to keep misbehaving peers from reconnecting (default: 86400)

-bind=<addr> Bind to given address and always listen on it. Use [host]:port notation for IPv6

-connect=<ip> Connect only to the specified node(s); -connect=0 disables automatic connections (the rules for this peer are the same as for -addnode)

-discover Discover own IP addresses (default: 1 when listening and no -externalip or -proxy)

-dns Allow DNS lookups for -addnode, -seednode and -connect (default: 1)

-dnsseed Query for peer addresses via DNS lookup, if low on addresses (default: 1 unless -connect used)

-externalip=<ip> Specify your own public address

-forcednsseed Always query for peer addresses via DNS lookup (default: 0)

-listen Accept connections from outside (default: 1 if no -proxy or -connect)

-listenonion Automatically create Tor hidden service (default: 1)

-maxconnections=<n> Maintain at most <n> connections to peers (default: 125)

-maxreceivebuffer=<n> Maximum per-connection receive buffer, <n>*1000 bytes (default: 5000)

-maxsendbuffer=<n> Maximum per-connection send buffer, <n>*1000 bytes (default: 1000)

-maxtimeadjustment Maximum allowed median peer time offset adjustment. Local perspective of time may be influenced by peers forward or backward by this amount. (default: 4200 seconds)

-onion=<ip:port> Use separate SOCKS5 proxy to reach peers via Tor hidden services (default: -proxy)

-onlynet=<net> Only connect to nodes in network <net> (ipv4, ipv6 or onion)

-permitbaremultisig Relay non-P2SH multisig (default: 1)

-peerbloomfilters Support filtering of blocks and transaction with bloom filters (default: 1)

-port=<port> Listen for connections on <port> (default: 6214 or testnet: 16214)

-proxy=<ip:port> Connect through SOCKS5 proxy

-proxyrandomize Randomize credentials for every proxy connection. This enables Tor stream isolation (default: 1)

-seednode=<ip> Connect to a node to retrieve peer addresses, and disconnect

-timeout=<n> Specify connection timeout in milliseconds (minimum: 1, default: 5000)

-torcontrol=<ip>:<port> Tor control port to use if onion listening enabled (default: 127.0.0.1:9051)

-torpassword=<pass> Tor control port password (default: empty)

-upnp Use UPnP to map the listening port (default: 0)

-whitebind=<addr> Bind to given address and whitelist peers connecting to it. Use [host]:port notation for IPv6

-whitelist=<IP address or network> Whitelist peers connecting from the given IP address (e.g. 1.2.3.4) or CIDR notated network (e.g. 1.2.3.0/24). Can be specified multiple times. Whitelisted peers cannot be DoS banned and their transactions are always relayed, even if they are already in the mempool, useful e.g. for a gateway

-maxuploadtarget=<n> Tries to keep outbound traffic under the given target (in MiB per 24h), 0 = no limit (default: 0)

Wallet options

-addresstype What type of addresses to use ("legacy", "p2sh-segwit", or "bech32", default: "p2sh-segwit")

-changetype What type of change to use ("legacy", "p2sh-segwit", or "bech32"). Default is same as -addresstype, except when -addresstype=p2sh-segwit a native segwit output is used when sending to a native segwit address)

-disablewallet Do not load the wallet and disable wallet RPC calls

-keypool=<n> Set key pool size to <n> (default: 1000)

-fallbackfee=<amt> A fee rate (in NIX/kB) that will be used when fee estimation has insufficient data (default: 0.0002)

-discardfee=<amt> The fee rate (in NIX/kB) that indicates your tolerance for discarding change by adding it to the fee (default: 0.0001). Note: An output is discarded if it is dust at this rate, but we will always discard up to the dust relay fee and a discard fee above that is limited by the fee estimate for the longest target

-mintxfee=<amt> Fees (in NIX/kB) smaller than this are considered zero fee for transaction creation (default: 0.00001)

-paytxfee=<amt> Fee (in NIX/kB) to add to transactions you send (default: 0.00)

-rescan Rescan the block chain for missing wallet transactions on startup

-salvagewallet Attempt to recover private keys from a corrupt wallet on startup

-spendzeroconfchange Spend unconfirmed change when sending transactions (default: 1)

-txconfirmtarget=<n> If paytxfee is not set, include enough fee so transactions begin confirmation on average within n blocks (default: 6)

-walletrbf Send transactions with full-RBF opt-in enabled (RPC only, default: 0)

-upgradewallet Upgrade wallet to latest format on startup

-wallet=<file> Specify wallet file (within data directory) (default: wallet.dat)

-walletbroadcast Make the wallet broadcast transactions (default: 1)

-walletdir=<dir> Specify directory to hold wallets (default: <datadir>/wallets if it exists, otherwise <datadir>)

-walletnotify=<cmd> Execute command when a wallet transaction changes (%s in cmd is replaced by TxID)

-zapwallettxes=<mode> Delete all wallet transactions and only recover those parts of the blockchain through -rescan on startup (1 = keep tx meta data e.g. account owner and payment request information, 2 = drop tx meta data)

Wallet staking options

-staking Stake your coins to support network and gain reward (default: true)

-stakingthreads Number of threads to start for staking, max 1 per active wallet, will divide wallets evenly between threads (default: 1)

-minstakeinterval=<n> Minimum time in seconds between successful stakes (default: 0)

-minersleep=<n> Milliseconds between stake attempts. Lowering this param will not result in more stakes. (default: 500)

-reservebalance=<amount> Ensure available balance remains above reservebalance. (default: 0)

-donationpercent=<n> Percentage of block reward donated to the donation address. e.g. 1190 (11.90%) (default: 0)

-donationaddress=<n> Destination to send donated staking rewards. (default: N/A)

-stakesplitthreshold=<n> Maximum amount of coins to stake before splitting into two outputs. (default: 10000)

-stakecombinethreshold=<n> Minimum amount of NIX to combine into one stake if wallet has multiple outputs to stake. (default: 5000)

-maxstakecombine=<n> Maximim of outputs to combine when achieving stakecombinethreshold. (default: 3)

-generatenewstakingaddress Create new bech32 addresses on successful stakes. (default: false)

-minimumleasepercentage=<n> Minimum lease percentage required for a contract to stake if you are leasing stakes. Value can be between 0 and 10000 e.g. 1191 (11.91%) (default: 0)

-leaserewardaddresses=<n> Stake only LPoS contracts with reward fee addresses specified by this command. e.g. x1,x2,x3 (default: "")

-leaserewardtome=<n> Stake only LPoS contracts with reward fee addresses that this local wallet owns <true/false> (default: false)

-dxmode Set wallet change and default addressing to legacy for third-party dx support (default: false)

ZeroMQ notification options

-zmqpubhashblock=<address> Enable publish hash block in <address>

-zmqpubhashtx=<address> Enable publish hash transaction in <address>

-zmqpubrawblock=<address> Enable publish raw block in <address>

-zmqpubrawtx=<address> Enable publish raw transaction in <address>

Debugging/Testing options

-uacomment=<cmt> Append comment to the user agent string

-debug=<category> Output debugging information (default: 0, supplying <category> is optional). If <category> is not supplied or if <category> = 1, output all debugging information. <category> can be: net, tor, mempool, http, bench, zmq, db, rpc, estimatefee, addrman, selectcoins, reindex, cmpctblock, rand, prune, proxy, mempoolrej, libevent, coindb, qt, leveldb.

-debugexclude=<category> Exclude debugging information for a category. Can be used in conjunction with -debug=1 to output debug logs for all categories except one or more specified categories.

-help-debug Show all debugging options (usage: --help -help-debug)

-logips Include IP addresses in debug output (default: 0)

-logtimestamps Prepend debug output with timestamp (default: 1)

-maxtxfee=<amt> Maximum total fees (in NIX) to use in a single wallet transaction or raw transaction; setting this too low may abort large transactions (default: 0.10)

-printtoconsole Send trace/debug info to console instead of debug.log file

-shrinkdebugfile Shrink debug.log file on client startup (default: 1 when no -debug)

Chain selection options

-testnet Use the test chain

Node relay options

-bytespersigop Equivalent bytes per sigop in transactions for relay and mining (default: 20)

-datacarrier Relay and mine data carrier transactions (default: 1)

-datacarriersize Maximum size of data in data carrier transactions we relay and mine (default: 83)

-mempoolreplacement Enable transaction replacement in the memory pool (default: 1)

-minrelaytxfee=<amt> Fees (in NIX/kB) smaller than this are considered zero fee for relaying, mining and transaction creation (default: 0.00001)

-whitelistrelay Accept relayed transactions received from whitelisted peers even when not relaying transactions (default: 1)

-whitelistforcerelay Force relay of transactions from whitelisted peers even if they violate local relay policy (default: 1)

Block creation options

-blockmaxweight=<n> Set maximum BIP141 block weight (default: 3996000)

-blockmaxsize=<n> Set maximum BIP141 block weight to this * 4. Deprecated, use blockmaxweight

-blockmintxfee=<amt> Set lowest fee rate (in NIX/kB) for transactions to be included in block creation. (default: 0.00001)

RPC server options

-server Accept command line and JSON-RPC commands

-rest Accept public REST requests (default: 0)

-rpcbind=<addr>[:port] Bind to given address to listen for JSON-RPC connections. This option is ignored unless -rpcallowip is also passed. Port is optional and overrides -rpcport. Use [host]:port notation for IPv6. This option can be specified multiple times (default: 127.0.0.1 and ::1 i.e., localhost, or if -rpcallowip has been specified, 0.0.0.0 and :: i.e., all addresses)

-rpccookiefile=<loc> Location of the auth cookie (default: data dir)

-rpcuser=<user> Username for JSON-RPC connections

-rpcpassword=<pw> Password for JSON-RPC connections

-rpcauth=<userpw> Username and hashed password for JSON-RPC connections. The field <userpw> comes in the format: <USERNAME>:<SALT>$<HASH>. A canonical python script is included in share/rpcuser. The client then connects normally using the rpcuser=<USERNAME>/rpcpassword=<PASSWORD> pair of arguments. This option can be specified multiple times

-rpcport=<port> Listen for JSON-RPC connections on <port> (default: 6215 or testnet: 16215)

-rpcallowip=<ip> Allow JSON-RPC connections from specified source. Valid for <ip> are a single IP (e.g. 1.2.3.4), a network/netmask (e.g. 1.2.3.4/255.255.255.0) or a network/CIDR (e.g. 1.2.3.4/24). This option can be specified multiple times

-rpcserialversion Sets the serialization of raw transaction or block hex returned in non-verbose mode, non-segwit(0) or segwit(1) (default: 1)

-rpcthreads=<n> Set the number of threads to service RPC calls (default: 4)

UI options

-choosedatadir Choose data directory on startup (default: 0)

-lang=<lang> Set language, for example "de_DE" (default: system locale)

-min Start minimized

-rootcertificates=<file> Set SSL root certificates for payment request (default: -system-)

-splash Show splash screen on startup (default: 1)

-resetguisettings Reset all settings changed in the GUI

Last updated