Smart contract Audit
process and steps

  • Stage 1

    Specification gathering

    This is the most crucial stage because the detail is key for a successful smart contract Security audit. Here we will gather the specifications from The clients to know the intended behavior of smart contract. In this stage, we need a summary of the intended behavior of the smart contract from your side.

  • Stage 2

    Manual Review

    Goals of manual review:

    • Verify that every detail in the specification is implemented in a smart contract.
    • Verify that the contract does not have any behavior that is not specified in specifications.
    • Verify that the contract does not violate the original intended behavior of specifications.

    I will also ensure that your contract has some mechanism to defend against unknown vulnerabilities. Because the state of ethereum is constantly changing and we cannot say which vulnerabilities will arise in the future so we must have a mechanism beforehand.

    I would ensure that smart contract code must respond to bugs and vulnerabilities well.

    I would also ensure that there is no unnecessary code in the contract.

    Best code practices will also be considered in this phase.

  • Stage 3

    Manual testing

    Manual testing is king in smart contract auditing

    • Smart contract will be manually deployed on any of the test networks (Ropste/rinkeby) using remix IDE.
    • All the transaction hashes will be recorded.
    • Gas consumption and behavior of functions are also noted.
  • Stage 4

    Unit testing

    Goal: Writing and running a comprehensive test suite.

    • In this stage, smart contract functions will be unit tested on multiple parameters and under multiple conditions to ensure that all paths of functions are functioning as intended.
    • In this phase, the intended behavior of the smart contract is verified.
    • In this phase, we would also ensure that smart contract functions are not consuming unnecessary gas.
    • Gas limits of functions will be verified in this stage.
  • Stage 5

    Testing with automated tools

    Testing with automated tools is important to catch those bugs that humans miss.

    Some of the tools we would use are:

    • Mythril
    • Oyente
    • Manticore
    • Solgraph
    • slither
  • Stage 6

    Solidity-coverage

    Solidity coverage will let us know how much our unit test cases are efficient, it will highlight the uncovered code of the contract.

  • Stage 7

    Initial Audit report

    At the end, we would provide you a comprehensive report along with details of audit and steps to cover up with the vulnerabilities if we found any in your contracts.

  • Stage 8

    Final Audit report

    After initial audit fixes, the process is repeated again and the Final audit report is delivered.