I'm reading through the EIP20 specificaiton and have come across the terms SHOULD, MUST, and OPTIONAL.

OPTIONAL seems straightforward, but what is the difference between SHOULD and MUST?

Nothing is mentioned in EIP1 - EIP Purpose and Guidelines.

Where do I find definitions of these terms?


1 Answer 1


This is an industry standard (as far as RFCs can be considered standards... ), defined in 1997 in RFC-2119: Key words for use in RFCs to Indicate Requirement Levels.

From the abstract of this document:

In many standards track documents several words are used to signify
the requirements in the specification. These words are often
capitalized. This document defines these words as they should be
interpreted in IETF documents. Authors who follow these guidelines
should incorporate this phrase near the beginning of their document:

  The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL
  "OPTIONAL" in this document are to be interpreted as described in
  RFC 2119.

It's possible further keywords were added to later RFCs, but I always refer to 2119.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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