##
## 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=<cmd>

# For backwards compatibility, treat an unused bitcoin.conf file in the
# datadir as a warning, not an error.
#allowignoredconf=1

# 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:
# 00000000000000000001b658dd1120e82e66d2790811f89ede9742ada3ed6d77,
# testnet3:
# 00000000000003fc7967410ba2d0a8a8d50daedc318d43e8baf1a9782c236a57,
# testnet4:
# 0000000000003ed4f08dbdf6f7d6b271a6bcffce25675cb40aa9fa43179a89f3,
# signet:
# 000000895a110f46e59eb82bbc5bfb67fa314656009c295509c21b4999f5180a)
#assumevalid=<hex>

# Maintain an index of compact filters by block (default: 0, values:
# basic). If <type> is not supplied or if <type> = 1, indexes for
# all known types are enabled.
#blockfilterindex=<type>

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

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

# Specify directory to hold blocks subdirectory for *.dat files (default:
# <datadir>)
#blocksdir=<dir>

# Whether to reject transactions from network peers. Disables automatic
# broadcast and rebroadcast of transactions, unless the source peer
# has the 'forcerelay' permission. RPC transactions are not
# affected. (default: 0)
#blocksonly=1

# Whether an XOR-key applies to blocksdir *.dat files. The created XOR-key
# will be zeros for an existing blocksdir or when `-blocksxor=0` is
# set, and random for a freshly initialized blocksdir. (default: 1)
#blocksxor=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=<file>

# 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=<dir>

# Maximum database cache size <n> MiB (minimum 4, default: 450). Make sure
# you have enough RAM. In addition, unused memory allocated to the
# mempool is shared with this cache (see -maxmempool).
#dbcache=<n>

# Specify location of debug log file (default: debug.log). Relative paths
# will be prefixed by a net-specific datadir location. Pass
# -nodebuglogfile to disable writing the log to a file.
#debuglogfile=<file>

# Specify additional configuration file, relative to the -datadir path
# (only useable from configuration file, not command line)
#includeconf=<file>

# Imports blocks from external file on startup
#loadblock=<file>

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

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

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

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

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

# Whether a mempool.dat file created by -persistmempool or the savemempool
# RPC will be written in the legacy format (version 1) or the
# current format (version 2). This temporary option will be removed
# in the future. (default: 0)
#persistmempoolv1=1

# Specify pid file. Relative paths will be prefixed by a net-specific
# datadir location. (default: bitcoind.pid)
#pid=<file>

# 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=<n>

# If enabled, wipe chain state and block index, and rebuild them from
# blk*.dat files on disk. Also wipe and rebuild other optional
# indexes that are active. If an assumeutxo snapshot was loaded,
# its chainstate will be wiped as well. The snapshot can then be
# reloaded via RPC.
#reindex=1

# If enabled, wipe chain state, and rebuild it from blk*.dat files on
# disk. If an assumeutxo snapshot was loaded, its chainstate will
# be wiped as well. The snapshot can then be reloaded via RPC.
#reindex-chainstate=1

# 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=<file>

# Execute command immediately before beginning shutdown. The need for
# shutdown may be urgent, so be careful not to delay it long (if
# the command doesn't require interaction with the server, consider
# having it fork into the background).
#shutdownnotify=<cmd>

# Execute command on startup.
#startupnotify=<cmd>

# 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=<ip>

# 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=<file>

# Default duration (in seconds) of manually configured bans (default:
# 86400)
#bantime=<n>

# 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, testnet3: 127.0.0.1:18334=onion,
# testnet4: 127.0.0.1:48334=onion, signet: 127.0.0.1:38334=onion,
# regtest: 127.0.0.1:18445=onion)
#bind=<addr>[:<port>][=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=<ip>

# 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 or -maxconnections=0)
#dnsseed=1

# Specify your own public address
#externalip=<ip>

# 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

# Whether to accept inbound I2P connections (default: 1). Ignored if
# -i2psam is not set. Listening for inbound I2P connections is done
# through the SAM proxy, not by binding to a local address and
# port.
#i2pacceptincoming=1

# I2P SAM proxy to reach I2P peers and accept I2P connections (default:
# none)
#i2psam=<ip:port>

# Accept connections from outside (default: 1 if no -proxy, -connect or
# -maxconnections=0)
#listen=1

# Automatically create Tor onion service (default: 1)
#listenonion=1

# Maintain at most <n> automatic 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=<n>

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

# Maximum per-connection memory usage for the send buffer, <n>*1000 bytes
# (default: 1000)
#maxsendbuffer=<n>

# 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=<n>

# Use PCP or 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). May be a local file path
# prefixed with 'unix:'.
#onion=<ip:port|path>

# Make automatic outbound connections only to network <net> (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=<net>

# 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

# Listen for connections on <port> (default: 8333, testnet3: 18333,
# testnet4: 48333, signet: 38333, regtest: 18444). Not relevant for
# I2P (see doc/i2p.md). If set to a value x, the default onion
# listening port will be set to x+1.
#port=<port>

# Connect through SOCKS5 proxy, set -noproxy to disable (default:
# disabled). May be a local file path prefixed with 'unix:' if the
# proxy supports it.
#proxy=<ip:port|path>

# 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. During startup, seednodes will be tried before dnsseeds.
#seednode=<ip>

# 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=<n>

# Tor control host and port to use if onion listening enabled (default:
# 127.0.0.1:9051). If no port is specified, the default port of
# 9051 will be used.
#torcontrol=<ip>:<port>

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

# Support v2 transport (default: 1)
#v2transport=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 using 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. Additional flags "in" and "out"
# control whether permissions apply to incoming connections and/or
# manual (default: incoming only). 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=<amt>

# 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=<amt>

# 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=<amt>

# Set key pool size to <n> (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=<n>

# Spend up to this amount in additional (absolute) fees (in BTC) if it
# allows the use of partial spend avoidance (default: 0.00)
#maxapsfee=<n>

# Fee rates (in BTC/kvB) smaller than this are considered zero fee for
# transaction creation (default: 0.00001)
#mintxfee=<amt>

# Fee rate (in BTC/kvB) to add to transactions you send (default: 0.00)
#paytxfee=<amt>

# External signing tool, see doc/external-signer.md
#signer=<cmd>

# 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=<n>

# 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 <walletdir>. 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
# <walletdir>.
#wallet=<path>

# Make the wallet broadcast transactions (default: 1)
#walletbroadcast=1

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

# 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=<cmd>

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


### ZeroMQ notification options


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

# Set publish hash block outbound message high water mark (default: 1000)
#zmqpubhashblockhwm=<n>

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

# Set publish hash transaction outbound message high water mark (default:
# 1000)
#zmqpubhashtxhwm=<n>

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

# Set publish raw block outbound message high water mark (default: 1000)
#zmqpubrawblockhwm=<n>

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

# Set publish raw transaction outbound message high water mark (default:
# 1000)
#zmqpubrawtxhwm=<n>

# Enable publish hash block and tx sequence in <address>
#zmqpubsequence=<address>

# Set publish hash sequence message high water mark (default: 1000)
#zmqpubsequencehwm=<n>


### Debugging/Testing options


# Output debug and trace logging (default: -nodebug, supplying <category>
# is optional). If <category> is not supplied or if <category> is 1
# or "all", output all debug logging. If <category> is 0 or "none",
# any other categories are ignored. Other valid values for
# <category> are: addrman, bench, blockstorage, cmpctblock, coindb,
# estimatefee, http, i2p, ipc, leveldb, libevent, mempool,
# mempoolrej, net, proxy, prune, qt, rand, reindex, rpc, scan,
# selectcoins, tor, txpackages, txreconciliation, validation,
# walletdb, zmq. This option can be specified multiple times to
# output multiple categories.
#debug=<category>

# 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. This
# takes priority over "-debug"
#debugexclude=<category>

# Include IP addresses in debug output (default: 0)
#logips=1

# Always prepend a category and level (default: 0)
#loglevelalways=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 (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=<amt>

# 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=<cmt>


### Chain selection options


# Use the chain <chain> (default: main). Allowed values: main, test,
# testnet4, signet, regtest
#chain=<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 testnet3 chain. Equivalent to -chain=test. Support for testnet3
# is deprecated and will be removed in an upcoming release.
# Consider moving to testnet4 now by using -testnet4.
#testnet=1

# Use the testnet4 chain. Equivalent to -chain=testnet4.
#testnet4=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

# Relay and mine transactions whose data-carrying raw scriptPubKey is of
# this size or less (default: 83)
#datacarriersize=1

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

# Relay transactions creating non-P2SH multisig outputs (default: 1)
#permitbaremultisig=1

# Add 'forcerelay' permission to whitelisted 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 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: 4000000)
#blockmaxweight=<n>

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

# Reserve space for the fixed-size block header plus the largest coinbase
# transaction the mining software may add to the block. (default:
# 8000).
#blockreservedweight=<n>


### RPC server options


# Accept public REST requests (default: 0)
#rest=1

# Allow JSON-RPC connections from specified source. Valid values 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), a network/CIDR (e.g. 1.2.3.4/24), all
# ipv4 (0.0.0.0/0), or all ipv6 (::/0). This option can be
# specified multiple times
#rpcallowip=<ip>

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

# 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=<addr>[:port]

# Location of the auth cookie. Relative paths will be prefixed by a
# net-specific datadir location. (default: data dir)
#rpccookiefile=<loc>

# Set permissions on the RPC auth cookie file so that it is readable by
# [owner|group|all] (default: owner [via umask 0077])
#rpccookieperms=<readable-by>

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

# Listen for JSON-RPC connections on <port> (default: 8332, testnet3:
# 18332, testnet4: 48332, signet: 38332, regtest: 18443)
#rpcport=<port>

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

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

# Set a whitelist to filter incoming RPC calls for a specific user. The
# field <whitelist> comes in the format: <USERNAME>:<rpc 1>,<rpc
# 2>,...,<rpc n>. If multiple whitelists are set for a given user,
# they are set-intersected. See -rpcwhitelistdefault documentation
# for information on default whitelist behavior.
#rpcwhitelist=<whitelist>

# 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 testnet3
[test]

# Options for testnet4
[testnet4]

# Options for signet
[signet]

# Options for regtest
[regtest]
