{ "title":"REJECT", "related":["/protocol"] }

Response: Reject ("reject")

Notifies peer that a received message is invalid.

Message Format

Field Length Format Description
rejected message type variable variable length string The command string of the message that is being rejected (e.g. "tx").
rejection code 1 byte rejection code A code indicating why the message was rejected.
rejection reason* variable variable length string A description of why the message was rejected.
rejection data variable rejection code specific Optional extra data provided by rejection codes. For example, those that reject specific objects. Currently, all rejection codes that use this field fill it with the hash of the object being rejected, such as the transaction ID or block header hash, in which case the field is 32 bytes.

* rejection reason is a string providing a human language explanation of the reason the message was rejected. This string is subject to change so client software SHOULD NOT use it programmatically. Bitcoin Cash Node truncates it to at most 111 bytes.

Sending reject messages is optional (BIP-61); nodes SHOULD NOT rely on receiving one. Bitcoin Cash Node sends them by default (-enablebip61).

Rejection Codes

Name Value Response To Description
REJECT_MALFORMED 0x01 any Message cannot be deserialized.
REJECT_INVALID 0x10 BLOCK, TX, FILTERSIZEXTHIN Block or transaction is invalid, or xthin filter size is too small
REJECT_OBSOLETE 0x11 VERSION This node no longer supports your client protocol version
REJECT_DUPLICATE 0x12 VERSION, TX Duplicate version message, or transaction already in or conflicting with the mempool.
REJECT_NONSTANDARD 0x40 VERSION, TX Peer does not offer the expected services (VERSION), or transaction is non-standard, or not final as per BIP68.
REJECT_DUST 0x41 TX Transaction has an output that is too small. Not used by Bitcoin Cash Node, which rejects dust outputs with REJECT_NONSTANDARD (reason "dust").
REJECT_INSUFFICIENTFEE 0x42 TX Transaction does not pay enough in fees to be relayed.
REJECT_CHECKPOINT 0x43 BLOCK Block conflicts with a checkpoint, or forks from the main chain before the last checkpoint.