## ## bitcoin.conf configuration file. ## Generated by contrib/devtools/gen-bitcoin-conf.sh. ## ## Lines beginning with # are comments. ## All possible configuration options are provided. To use, copy this file ## to your data directory (default or specified by -datadir), uncomment ## options you would like to change, and save the file. ## ### Options # Execute command when an alert is raised (%s in cmd is replaced by # message) #alertnotify= # 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: # 00000000000000000009c97098b5295f7e5f183ac811fb5d1534040adb93cabd, # testnet: # 0000000000000004877fa2d36316398528de4f347df2f8a96f76613a298ce060, # signet: # 000000d1a0e224fa4679d2fb2187ba55431c284fa1b74cbc8cfda866fd4d2c09) #assumevalid= # Maintain an index of compact filters by block (default: 0, values: # basic). If is not supplied or if = 1, indexes for # all known types are enabled. #blockfilterindex= # Execute command when the best block changes (%s in cmd is replaced by # block hash) #blocknotify= # Extra transactions to keep in memory for compact block reconstructions # (default: 100) #blockreconstructionextratxn= # Specify directory to hold blocks subdirectory for *.dat files (default: # ) #blocksdir= # Whether to reject transactions from network peers. Automatic broadcast # and rebroadcast of any transactions from inbound peers is # disabled, unless the peer has the 'forcerelay' permission. RPC # transactions are not affected. (default: 0) #blocksonly=1 # Maintain coinstats index used by the gettxoutsetinfo RPC (default: 0) #coinstatsindex=1 # Specify path to read-only configuration file. Relative paths will be # prefixed by datadir location (only useable from command line, not # configuration file) (default: bitcoin.conf) #conf= # Run in the background as a daemon and accept commands (default: 0) #daemon=1 # Wait for initialization to be finished before exiting. This implies # -daemon (default: 0) #daemonwait=1 # Specify data directory #datadir= # Maximum database cache size MiB (4 to 16384, default: 450). In # addition, unused mempool memory is shared for this cache (see # -maxmempool). #dbcache= # Specify location of debug log file. Relative paths will be prefixed by a # net-specific datadir location. (-nodebuglogfile to disable; # default: debug.log) #debuglogfile= # Specify additional configuration file, relative to the -datadir path # (only useable from configuration file, not command line) #includeconf= # Imports blocks from external file on startup #loadblock= # Keep the transaction memory pool below megabytes (default: 300) #maxmempool= # Keep at most unconnectable transactions in memory (default: 100) #maxorphantx= # Do not keep transactions in the mempool longer than hours (default: # 336) #mempoolexpiry= # Set the number of script verification threads (-10 to 15, 0 = auto, <0 = # leave that many cores free, default: 0) #par= # Whether to save the mempool on shutdown and load on restart (default: 1) #persistmempool=1 # Specify pid file. Relative paths will be prefixed by a net-specific # datadir location. (default: bitcoind.pid) #pid= # 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. 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) #prune= # Rebuild chain state and block index from the blk*.dat files on disk. # This will also rebuild active optional indexes. #reindex=1 # Rebuild chain state from the currently indexed blocks. When in pruning # mode or if blocks on disk might be corrupted, use full -reindex # instead. Deactivate all optional indexes before running this. #reindex-chainstate=1 # Use the experimental syscall sandbox in the specified mode # (-sandbox=log-and-abort or -sandbox=abort). Allow only expected # syscalls to be used by bitcoind. Note that this is an # experimental new feature that may cause bitcoind to exit or crash # unexpectedly: use with caution. In the "log-and-abort" mode the # invocation of an unexpected syscall results in a debug handler # being invoked which will log the incident and terminate the # program (without executing the unexpected syscall). In the # "abort" mode the invocation of an unexpected syscall results in # the entire process being killed immediately by the kernel without # executing the unexpected syscall. #sandbox= # Specify path to dynamic settings data file. Can be disabled with # -nosettings. File is written at runtime and not meant to be # edited by users (use bitcoin.conf instead for custom settings). # Relative paths will be prefixed by datadir location. (default: # settings.json) #settings= # Execute command on startup. #startupnotify= # Create new files with system default permissions, instead of umask 077 # (only effective with disabled wallet functionality) #sysperms=1 # Maintain a full transaction index, used by the getrawtransaction rpc # call (default: 0) #txindex=1 # Print version and exit #version=1 ### Connection options # Add a node to connect to and attempt to keep the connection open (see # the addnode RPC help for more info). This option can be specified # multiple times to add multiple nodes; connections are limited to # 8 at a time and are counted separately from the -maxconnections # limit. #addnode= # Specify asn mapping used for bucketing of the peers (default: # ip_asn.map). Relative paths will be prefixed by the net-specific # datadir location. #asmap= # Default duration (in seconds) of manually configured bans (default: # 86400) #bantime= # Bind to given address and always listen on it (default: 0.0.0.0). Use # [host]:port notation for IPv6. Append =onion to tag any incoming # connections to that address and port as incoming Tor connections # (default: 127.0.0.1:8334=onion, testnet: 127.0.0.1:18334=onion, # signet: 127.0.0.1:38334=onion, regtest: 127.0.0.1:18445=onion) #bind=[:][=onion] # If set, then this host is configured for CJDNS (connecting to fc00::/8 # addresses would lead us to the CJDNS network, see doc/cjdns.md) # (default: 0) #cjdnsreachable=1 # Connect only to the specified node; -noconnect disables automatic # connections (the rules for this peer are the same as for # -addnode). This option can be specified multiple times to connect # to multiple nodes. #connect= # Discover own IP addresses (default: 1 when listening and no -externalip # or -proxy) #discover=1 # Allow DNS lookups for -addnode, -seednode and -connect (default: 1) #dns=1 # Query for peer addresses via DNS lookup, if low on addresses (default: 1 # unless -connect used) #dnsseed=1 # Specify your own public address #externalip= # Allow fixed seeds if DNS seeds don't provide peers (default: 1) #fixedseeds=1 # Always query for peer addresses via DNS lookup (default: 0) #forcednsseed=1 # If set and -i2psam is also set then incoming I2P connections are # accepted via the SAM proxy. If this is not set but -i2psam is set # then only outgoing connections will be made to the I2P network. # Ignored if -i2psam is not set. Listening for incoming I2P # connections is done through the SAM proxy, not by binding to a # local address and port (default: 1) #i2pacceptincoming=1 # I2P SAM proxy to reach I2P peers and accept I2P connections (default: # none) #i2psam= # Accept connections from outside (default: 1 if no -proxy or -connect) #listen=1 # Automatically create Tor onion service (default: 1) #listenonion=1 # Maintain at most connections to peers (default: 125). This limit # does not apply to connections manually added via -addnode or the # addnode RPC, which have a separate limit of 8. #maxconnections= # Maximum per-connection receive buffer, *1000 bytes (default: 5000) #maxreceivebuffer= # Maximum per-connection send buffer, *1000 bytes (default: 1000) #maxsendbuffer= # Maximum allowed median peer time offset adjustment. Local perspective of # time may be influenced by outbound peers forward or backward by # this amount (default: 4200 seconds). #maxtimeadjustment=1 # Tries to keep outbound traffic under the given target per 24h. Limit # does not apply to peers with 'download' permission or blocks # created within past week. 0 = no limit (default: 0M). Optional # suffix units [k|K|m|M|g|G|t|T] (default: M). Lowercase is 1000 # base while uppercase is 1024 base #maxuploadtarget= # Use NAT-PMP to map the listening port (default: 0) #natpmp=1 # Enable all P2P network activity (default: 1). Can be changed by the # setnetworkactive RPC command #networkactive=1 # Use separate SOCKS5 proxy to reach peers via Tor onion services, set # -noonion to disable (default: -proxy) #onion= # Make automatic outbound connections only to network (ipv4, ipv6, # onion, i2p, cjdns). Inbound and manual connections are not # affected by this option. It can be specified multiple times to # allow multiple networks. #onlynet= # Serve compact block filters to peers per BIP 157 (default: 0) #peerblockfilters=1 # Support filtering of blocks and transaction with bloom filters (default: # 0) #peerbloomfilters=1 # Relay non-P2SH multisig (default: 1) #permitbaremultisig=1 # Listen for connections on . Nodes not using the default ports # (default: 8333, testnet: 18333, signet: 38333, regtest: 18444) # are unlikely to get incoming connections. Not relevant for I2P # (see doc/i2p.md). #port= # Connect through SOCKS5 proxy, set -noproxy to disable (default: # disabled) #proxy= # Randomize credentials for every proxy connection. This enables Tor # stream isolation (default: 1) #proxyrandomize=1 # Connect to a node to retrieve peer addresses, and disconnect. This # option can be specified multiple times to connect to multiple # nodes. #seednode= # Specify socket connection timeout in milliseconds. If an initial attempt # to connect is unsuccessful after this amount of time, drop it # (minimum: 1, default: 5000) #timeout= # Tor control port to use if onion listening enabled (default: # 127.0.0.1:9051) #torcontrol=: # Tor control port password (default: empty) #torpassword= # Use UPnP to map the listening port (default: 0) #upnp=1 # Bind to the given address and add permission flags to the peers # connecting to it. Use [host]:port notation for IPv6. Allowed # permissions: bloomfilter (allow requesting BIP37 filtered blocks # and transactions), noban (do not ban for misbehavior; implies # download), forcerelay (relay transactions that are already in the # mempool; implies relay), relay (relay even in -blocksonly mode, # and unlimited transaction announcements), mempool (allow # requesting BIP35 mempool contents), download (allow getheaders # during IBD, no disconnect after maxuploadtarget limit), addr # (responses to GETADDR avoid hitting the cache and contain random # records with the most up-to-date info). Specify multiple # permissions separated by commas (default: # download,noban,mempool,relay). Can be specified multiple times. #whitebind=<[permissions@]addr> # Add permission flags to the peers connecting from the given IP address # (e.g. 1.2.3.4) or CIDR-notated network (e.g. 1.2.3.0/24). Uses # the same permissions as -whitebind. Can be specified multiple # times. #whitelist=<[permissions@]IP address or network> ### Wallet options # What type of addresses to use ("legacy", "p2sh-segwit", "bech32", or # "bech32m", default: "bech32") #addresstype=1 # Group outputs by address, selecting many (possibly all) or none, instead # of selecting on a per-output basis. Privacy is improved as # addresses are mostly swept with fewer transactions and outputs # are aggregated in clean change addresses. It may result in higher # fees due to less optimal coin selection caused by this added # limitation and possibly a larger-than-necessary number of inputs # being used. Always enabled for wallets with "avoid_reuse" # enabled, otherwise default: 0. #avoidpartialspends=1 # What type of change to use ("legacy", "p2sh-segwit", "bech32", or # "bech32m"). Default is "legacy" when -addresstype=legacy, else it # is an implementation detail. #changetype=1 # The maximum feerate (in BTC/kvB) at which transaction building may use # more inputs than strictly necessary so that the wallet's UTXO # pool can be reduced (default: 0.0001). #consolidatefeerate= # Do not load the wallet and disable wallet RPC calls #disablewallet=1 # The fee rate (in BTC/kvB) 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 #discardfee= # A fee rate (in BTC/kvB) that will be used when fee estimation has # insufficient data. 0 to entirely disable the fallbackfee feature. # (default: 0.00) #fallbackfee= # Set key pool size to (default: 1000). Warning: Smaller sizes may # increase the risk of losing funds when restoring from an old # backup, if none of the addresses in the original keypool have # been used. #keypool= # Spend up to this amount in additional (absolute) fees (in BTC) if it # allows the use of partial spend avoidance (default: 0.00) #maxapsfee= # Fee rates (in BTC/kvB) smaller than this are considered zero fee for # transaction creation (default: 0.00001) #mintxfee= # Fee rate (in BTC/kvB) to add to transactions you send (default: 0.00) #paytxfee= # External signing tool, see doc/external-signer.md #signer= # Spend unconfirmed change when sending transactions (default: 1) #spendzeroconfchange=1 # If paytxfee is not set, include enough fee so transactions begin # confirmation on average within n blocks (default: 6) #txconfirmtarget= # Specify wallet path to load at startup. Can be used multiple times to # load multiple wallets. Path is to a directory containing wallet # data and log files. If the path is not absolute, it is # interpreted relative to . This only loads existing # wallets and does not create new ones. For backwards compatibility # this also accepts names of existing top-level data files in # . #wallet= # Make the wallet broadcast transactions (default: 1) #walletbroadcast=1 # Specify directory to hold wallets (default: /wallets if it # exists, otherwise ) #walletdir= # Execute command when a wallet transaction changes. %s in cmd is replaced # by TxID, %w is replaced by wallet name, %b is replaced by the # hash of the block including the transaction (set to 'unconfirmed' # if the transaction is not included) and %h is replaced by the # block height (-1 if not included). %w is not currently # implemented on windows. On systems where %w is supported, it # should NOT be quoted because this would break shell escaping used # to invoke the command. #walletnotify= # Send transactions with full-RBF opt-in enabled (RPC only, default: 1) #walletrbf=1 ### ZeroMQ notification options # Enable publish hash block in
#zmqpubhashblock=
# Set publish hash block outbound message high water mark (default: 1000) #zmqpubhashblockhwm= # Enable publish hash transaction in
#zmqpubhashtx=
# Set publish hash transaction outbound message high water mark (default: # 1000) #zmqpubhashtxhwm= # Enable publish raw block in
#zmqpubrawblock=
# Set publish raw block outbound message high water mark (default: 1000) #zmqpubrawblockhwm= # Enable publish raw transaction in
#zmqpubrawtx=
# Set publish raw transaction outbound message high water mark (default: # 1000) #zmqpubrawtxhwm= # Enable publish hash block and tx sequence in
#zmqpubsequence=
# Set publish hash sequence message high water mark (default: 1000) #zmqpubsequencehwm= ### Debugging/Testing options # Output debug and trace logging (default: -nodebug, supplying # is optional). If is not supplied or if = 1, # output all debug and trace logging. can be: addrman, # bench, blockstorage, cmpctblock, coindb, estimatefee, http, i2p, # ipc, leveldb, libevent, mempool, mempoolrej, net, proxy, prune, # qt, rand, reindex, rpc, selectcoins, tor, util, validation, # walletdb, zmq. This option can be specified multiple times to # output multiple categories. #debug= # Exclude debug and trace logging for a category. Can be used in # conjunction with -debug=1 to output debug and trace logging for # all categories except the specified category. This option can be # specified multiple times to exclude multiple categories. #debugexclude= # Print help message with debugging options and exit #help-debug=1 # Include IP addresses in debug output (default: 0) #logips=1 # Prepend debug output with name of the originating source location # (source file, line number and function name) (default: 0) #logsourcelocations=1 # Prepend debug output with name of the originating thread (only available # on platforms supporting thread_local) (default: 0) #logthreadnames=1 # Prepend debug output with timestamp (default: 1) #logtimestamps=1 # Maximum total fees (in BTC) to use in a single wallet transaction; # setting this too low may abort large transactions (default: 0.10) #maxtxfee= # Send trace/debug info to console (default: 1 when no -daemon. To disable # logging to file, set -nodebuglogfile) #printtoconsole=1 # Shrink debug.log file on client startup (default: 1 when no -debug) #shrinkdebugfile=1 # Append comment to the user agent string #uacomment= ### Chain selection options # Use the chain (default: main). Allowed values: main, test, # signet, regtest #chain= # Use the signet chain. Equivalent to -chain=signet. Note that the network # is defined by the -signetchallenge parameter #signet=1 # Blocks must satisfy the given script to be considered valid (only for # signet networks; defaults to the global default signet test # network challenge) #signetchallenge=1 # Specify a seed node for the signet network, in the hostname[:port] # format, e.g. sig.net:1234 (may be used multiple times to specify # multiple seed nodes; defaults to the global default signet test # network seed node(s)) #signetseednode=1 # Use the test chain. Equivalent to -chain=test. #testnet=1 ### Node relay options # Equivalent bytes per sigop in transactions for relay and mining # (default: 20) #bytespersigop=1 # Relay and mine data carrier transactions (default: 1) #datacarrier=1 # Maximum size of data in data carrier transactions we relay and mine # (default: 83) #datacarriersize=1 # Accept transaction replace-by-fee without requiring replaceability # signaling (default: 0) #mempoolfullrbf=1 # Fees (in BTC/kvB) smaller than this are considered zero fee for # relaying, mining and transaction creation (default: 0.00001) #minrelaytxfee= # Add 'forcerelay' permission to whitelisted inbound peers with default # permissions. This will relay transactions even if the # transactions were already in the mempool. (default: 0) #whitelistforcerelay=1 # Add 'relay' permission to whitelisted inbound peers with default # permissions. This will accept relayed transactions even when not # relaying transactions (default: 1) #whitelistrelay=1 ### Block creation options # Set maximum BIP141 block weight (default: 3996000) #blockmaxweight= # Set lowest fee rate (in BTC/kvB) for transactions to be included in # block creation. (default: 0.00001) #blockmintxfee= ### RPC server options # Accept public REST requests (default: 0) #rest=1 # Allow JSON-RPC connections from specified source. Valid for 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 #rpcallowip= # Username and HMAC-SHA-256 hashed password for JSON-RPC connections. The # field comes in the format: :$. A # canonical python script is included in share/rpcauth. The client # then connects normally using the # rpcuser=/rpcpassword= pair of arguments. This # option can be specified multiple times #rpcauth= # Bind to given address to listen for JSON-RPC connections. Do not expose # the RPC server to untrusted networks such as the public internet! # 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) #rpcbind=[:port] # Location of the auth cookie. Relative paths will be prefixed by a # net-specific datadir location. (default: data dir) #rpccookiefile= # Password for JSON-RPC connections #rpcpassword= # Listen for JSON-RPC connections on (default: 8332, testnet: # 18332, signet: 38332, regtest: 18443) #rpcport= # Sets the serialization of raw transaction or block hex returned in # non-verbose mode, non-segwit(0) or segwit(1) (default: 1) #rpcserialversion=1 # Set the number of threads to service RPC calls (default: 4) #rpcthreads= # Username for JSON-RPC connections #rpcuser= # Set a whitelist to filter incoming RPC calls for a specific user. The # field comes in the format: :,,...,. If multiple whitelists are set for a given user, # they are set-intersected. See -rpcwhitelistdefault documentation # for information on default whitelist behavior. #rpcwhitelist= # Sets default behavior for rpc whitelisting. Unless rpcwhitelistdefault # is set to 0, if any -rpcwhitelist is set, the rpc server acts as # if all rpc users are subject to empty-unless-otherwise-specified # whitelists. If rpcwhitelistdefault is set to 1 and no # -rpcwhitelist is set, rpc server acts as if all rpc users are # subject to empty whitelists. #rpcwhitelistdefault=1 # Accept command line and JSON-RPC commands #server=1 # [Sections] # Most options will apply to all networks. To confine an option to a specific # network, add it under the relevant section below. # # Note: If not specified under a network section, the options addnode, connect, # port, bind, rpcport, rpcbind, and wallet will only apply to mainnet. # Options for mainnet [main] # Options for testnet [test] # Options for signet [signet] # Options for regtest [regtest]