Solidity Best Practices Lock compiler version Multiply before divide Don't name local and state variables the same Keep contract simple Prioritize security over gas Avoid unbounded loops Don't trust user input Checks, effects and then interactions Use re-entrancy guards Pull over push