An audit is a process that involves the thorough analysis of a blockchain’s codebase, or a particular application’s smart contracts, in order to identify errors in code, incorrect design, security issues, and other related inefficiencies. It is essential for blockchain protocols and applications to audit their entire codebase to ensure that the blockchain, and its interrelated applications and smart contracts are not susceptible to attackers or other challenges. A typical audit often involves agreeing on certain audit specifications, executing tests, running symbolic execution tools, conducting extensive code analysis, and creating a report to show the results.