[#NetMsgType]
= NetMsgType
:mrdocs:

Bitcoin protocol message types&period; When adding new message types, don&apos;t forget to update ALL&lowbar;NET&lowbar;MESSAGE&lowbar;TYPES below&period;

== Variables

[cols="1,4"]
|===
| Name| Description
| xref:NetMsgType/ADDR.adoc[`ADDR`] 
| The addr (IP address) message relays connection information for peers on the network&period;
| xref:NetMsgType/ADDRV2.adoc[`ADDRV2`] 
| The addrv2 message relays connection information for peers on the network just like the addr message, but is extended to allow gossiping of longer node addresses (see BIP155)&period;
| xref:NetMsgType/BLOCK.adoc[`BLOCK`] 
| The block message transmits a single serialized block&period;
| xref:NetMsgType/BLOCKTXN.adoc[`BLOCKTXN`] 
| Contains a BlockTransactions&period; Sent in response to a &quot;getblocktxn&quot; message&period;
| xref:NetMsgType/CFCHECKPT.adoc[`CFCHECKPT`] 
| cfcheckpt is a response to a getcfcheckpt request containing a vector of evenly spaced filter headers for blocks on the requested chain&period;
| xref:NetMsgType/CFHEADERS.adoc[`CFHEADERS`] 
| cfheaders is a response to a getcfheaders request containing a filter header and a vector of filter hashes for each subsequent block in the requested range&period;
| xref:NetMsgType/CFILTER.adoc[`CFILTER`] 
| cfilter is a response to a getcfilters request containing a single compact filter&period;
| xref:NetMsgType/CMPCTBLOCK.adoc[`CMPCTBLOCK`] 
| Contains a CBlockHeaderAndShortTxIDs object &hyphen; providing a header and list of &quot;short txids&quot;&period;
| xref:NetMsgType/FEATURE.adoc[`FEATURE`] 
| BIP 434 Peer feature negotiation
| xref:NetMsgType/FEEFILTER.adoc[`FEEFILTER`] 
| The feefilter message tells the receiving peer not to inv us any txs which do not meet the specified min fee rate&period;
| xref:NetMsgType/FILTERADD.adoc[`FILTERADD`] 
| The filteradd message tells the receiving peer to add a single element to a previously&hyphen;set bloom filter, such as a new public key&period;
| xref:NetMsgType/FILTERCLEAR.adoc[`FILTERCLEAR`] 
| The filterclear message tells the receiving peer to remove a previously&hyphen;set bloom filter&period;
| xref:NetMsgType/FILTERLOAD.adoc[`FILTERLOAD`] 
| The filterload message tells the receiving peer to filter all relayed transactions and requested merkle blocks through the provided filter&period;
| xref:NetMsgType/GETADDR.adoc[`GETADDR`] 
| The getaddr message requests an addr message from the receiving node, preferably one with lots of IP addresses of other receiving nodes&period;
| xref:NetMsgType/GETBLOCKS.adoc[`GETBLOCKS`] 
| The getblocks message requests an inv message that provides block header hashes starting from a particular point in the block chain&period;
| xref:NetMsgType/GETBLOCKTXN.adoc[`GETBLOCKTXN`] 
| Contains a BlockTransactionsRequest Peer should respond with &quot;blocktxn&quot; message&period;
| xref:NetMsgType/GETCFCHECKPT.adoc[`GETCFCHECKPT`] 
| getcfcheckpt requests evenly spaced compact filter headers, enabling parallelized download and validation of the headers between them&period; Only available with service bit NODE&lowbar;COMPACT&lowbar;FILTERS as described by BIP 157 &amp; 158&period;
| xref:NetMsgType/GETCFHEADERS.adoc[`GETCFHEADERS`] 
| getcfheaders requests a compact filter header and the filter hashes for a range of blocks, which can then be used to reconstruct the filter headers for those blocks&period; Only available with service bit NODE&lowbar;COMPACT&lowbar;FILTERS as described by BIP 157 &amp; 158&period;
| xref:NetMsgType/GETCFILTERS.adoc[`GETCFILTERS`] 
| getcfilters requests compact filters for a range of blocks&period; Only available with service bit NODE&lowbar;COMPACT&lowbar;FILTERS as described by BIP 157 &amp; 158&period;
| xref:NetMsgType/GETDATA.adoc[`GETDATA`] 
| The getdata message requests one or more data objects from another node&period;
| xref:NetMsgType/GETHEADERS.adoc[`GETHEADERS`] 
| The getheaders message requests a headers message that provides block headers starting from a particular point in the block chain&period;
| xref:NetMsgType/HEADERS.adoc[`HEADERS`] 
| The headers message sends one or more block headers to a node which previously requested certain headers with a getheaders message&period;
| xref:NetMsgType/INV.adoc[`INV`] 
| The inv message (inventory message) transmits one or more inventories of objects known to the transmitting peer&period;
| xref:NetMsgType/MEMPOOL.adoc[`MEMPOOL`] 
| The mempool message requests the TXIDs of transactions that the receiving node has verified as valid but which have not yet appeared in a block&period;
| xref:NetMsgType/MERKLEBLOCK.adoc[`MERKLEBLOCK`] 
| The merkleblock message is a reply to a getdata message which requested a block using the inventory type MSG&lowbar;MERKLEBLOCK&period;
| xref:NetMsgType/NOTFOUND.adoc[`NOTFOUND`] 
| The notfound message is a reply to a getdata message which requested an object the receiving node does not have available for relay&period;
| xref:NetMsgType/PING.adoc[`PING`] 
| The ping message is sent periodically to help confirm that the receiving peer is still connected&period;
| xref:NetMsgType/PONG.adoc[`PONG`] 
| The pong message replies to a ping message, proving to the pinging node that the ponging node is still alive&period;
| xref:NetMsgType/SENDADDRV2.adoc[`SENDADDRV2`] 
| The sendaddrv2 message signals support for receiving ADDRV2 messages (BIP155)&period; It also implies that its sender can encode as ADDRV2 and would send ADDRV2 instead of ADDR to a peer that has signaled ADDRV2 support by sending SENDADDRV2&period;
| xref:NetMsgType/SENDCMPCT.adoc[`SENDCMPCT`] 
| Contains a 1&hyphen;byte bool and 8&hyphen;byte LE version number&period; Indicates that a node is willing to provide blocks via &quot;cmpctblock&quot; messages&period; May indicate that a node prefers to receive new block announcements via a &quot;cmpctblock&quot; message rather than an &quot;inv&quot;, depending on message contents&period;
| xref:NetMsgType/SENDHEADERS.adoc[`SENDHEADERS`] 
| Indicates that a node prefers to receive new block announcements via a &quot;headers&quot; message rather than an &quot;inv&quot;&period;
| xref:NetMsgType/SENDTXRCNCL.adoc[`SENDTXRCNCL`] 
| Contains a 4&hyphen;byte version number and an 8&hyphen;byte salt&period; The salt is used to compute short txids needed for efficient txreconciliation, as described by BIP 330&period;
| xref:NetMsgType/TX.adoc[`TX`] 
| The tx message transmits a single transaction&period;
| xref:NetMsgType/VERACK.adoc[`VERACK`] 
| The verack message acknowledges a previously&hyphen;received version message, informing the connecting node that it can begin to send other messages&period;
| xref:NetMsgType/VERSION.adoc[`VERSION`] 
| The version message provides information about the transmitting node to the receiving node at the beginning of a connection&period;
| xref:NetMsgType/WTXIDRELAY.adoc[`WTXIDRELAY`] 
| Indicates that a node prefers to relay transactions via wtxid, rather than txid&period;
|===



[.small]#Created with https://www.mrdocs.com[MrDocs]#
