Rule Description KPI  
imports-on-top Ensure that all import statements are on top of the file Understandability  
variable-declarations Ensure that names “l”, “O” & “I” are not used for variables Understandability  
array-declarations Ensure that array declarations do not have space between the type and brackets style  
operator-whitespace Ensure that operators are surrounded by a single space on either side style  
conditionals-whitespace Ensure that there is exactly one space between conditional operators and parenthetic blocks style  
comma-whitespace Ensure that there is no whitespace or comments between comma delimited elements and commas style  
semicolon-whitespace Ensure that there is no whitespace or comments before semicolons style  
function-whitespace Ensure function calls and declaration have (or do not have) whitespace in appropriate locations style  
lbrace Ensure that every if, for, while and do statement is followed by an opening curly brace “{“on the same line style  
mixedcase Ensure that all variable, function and parameter names follow the mixedCase naming convention Understandability  
camelcase Ensure that contract, library, modifier and struct names follow CamelCase notation Understandability  
uppercase Ensure that all constants (and only constants) contain only upper case letters and underscore Understandability  
no-empty-blocks Ensure that no empty blocks {} exist Understandability  
no-unused-vars Flag all the variables that were declared but never used Understandability  
quotes Ensure that all strings use only 1 style – either double quotes or single quotes style  
blank-lines Ensure that there is exactly a 2-line gap between Contract and Funtion declarations style  
indentation Ensure consistent indentation of 4 spaces per level style  
arg-overflow In the case of 4+ elements in the same line require they are instead put on a single line each style  
whitespace Specify where whitespace is suitable and where it is not stylfy  
function-order Ensure order of functions in a contract: constructor, fallback, external, public, internal, private Understandability  
emit Ensure that emit statement is used to trigger a solidity event style  
value-in-payable Ensure “msg.value” is only used in functions with the “payable” modifier Accuracy  
max-len Ensure that a line of code does not exceed the specified number of characters style  
error-reason Ensure that error message is provided for revert and require statements Understandability  
visibility-first Ensure that the visibility modifier for a function should come before any custom modifiers Understandability  
linebreak-style Ensure consistent linebreak style style