In some cases, transactions may be rejected by the network despite the fact that they successfully unlock their inputs, spend valid UTXOs, and do not conflict with other transactions.
That is, a node may receive the transaction and consider it valid, but it may choose not to relay it to its peers or reject it outright.
In particular, custom, or non-standard, transactions are often treated this way by the Bitcoin Cash network at large.
Custom transactions are defined as those which are not considered standard.
- Have at most one [data output](/protocol/blockchain/transaction/locking-script#data-output)
- For [multisig](/protocol/blockchain/transaction/locking-script#multisig) outputs, must have at most 3 parties and at least 1 required party (i.e. 1-of-1 through 3-of-3).
The transaction input scriptSig limit must be less or equal to 1650 bytes to be considered standard. The rationale for the number `1650` byte limit was described in the code base as:
```
Biggest 'standard' txin is a 15-of-15 P2SH multisig with compressed
keys. (remember the 520 byte limit on redeemScript size) That works
out to a (15*(33+1))+3=513 byte redeemScript, 513+1+15*(73+1)+3=1627
bytes of scriptSig, which we round off to 1650 bytes for some minor
future-proofing. That's also enough to spend a 20-of-20
CHECKMULTISIG scriptPubKey, though such a scriptPubKey is not