Is there any rejection rule that testmempoolaccept will not check, or is it safe to assume that if it passes testmempoolaccept validation it will be at least broadcast?

Mostly concerned about complex reasons, such as too-long-mempool-chain.


No it's not, or at least not at any point in time.

There are both invariant and time-dependent rules for the mempool to accept a specific transaction.

The testmempoolaccept command will check your transaction against the former (policy and consensus rules), but there is nothing you could realistically do to check the latter.

As an example of a time-dependent rule, you could have a software checking pre-signed transactions paying 253sat/kW of feerate against testmempoolaccept.
Valid transactions would pass the check, nonetheless they would not broadcast if the mempool minimum feerate is > 253sat/kW at the time of broadcast.

  • Yeah, fair enough. I was thinking more on non-transitory checks about the tx correctness, such as not double-spent, standard (ruling out fess),... I'm less concerned about transitory rejections.
    – sr-gi
    Aug 20 '20 at 10:14

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.