Introduction

tl;dr

  • Yul is an intermediate representation of Solidity bytecode.

  • It’s not exactly Assembly, since what is stored on the blockchain is bytecode; Yul is one level above assembly.

  • Yul is designed such that the translation between Yul and the actual bytecode is as one-to-one as possible

Basic Characteristics

  • Yul code has to be stored within an assembly block

  • Assignment of variables has to be done with :=

  • Yul doesn’t have semicolons

  • Doesn’t have storage variables, doesn’t handle memory, doesn’t have arrays, and doesn’t parse function arguments.

Last updated