Skip to content

Aegis is a python based CLI tool used to help solidity smart contract developers to create, compile, scan, audit, document and generate code

License

Notifications You must be signed in to change notification settings

KarthikS373/aegis

Repository files navigation


Aegis: Shielding Smart Contracts with AI-Driven Security

Aegis is a smart contract audit and analysis tool powered by artificial intelligence, dedicated to safeguarding your smart contracts from vulnerabilities.

View Demo · Report Bug · Request Feature

Table of Contents

  1. About The Project
  2. Key Features
  3. Built With
  4. Vulnerability Detection
  5. Getting Started
  6. CLI Commands
  7. License
  8. Contributing
  9. Team Members

About the Project

Aegis is a cutting-edge smart contract audit and analysis tool, empowered by state-of-the-art artificial intelligence, that safeguards your smart contracts against a wide range of vulnerabilities. Traditional security approaches like manually defining patterns are time-consuming, require deep expertise, and struggle to keep up with ever-evolving threats. Aegis leverages the power of deep learning to offer a faster, more comprehensive solution.

Watch demo here

Mission:

Our mission is to empower developers of all skill levels with advanced security capabilities, simplifying the process of building robust and trustworthy smart contracts.

Value Proposition:

  • AI-powered Vulnerability Detection: Our robust machine learning model, trained on extensive real-world data, accurately identifies critical vulnerabilities, exceeding the limitations of traditional rule-based approaches.
  • Solidity Expertise: Aegis seamlessly supports Solidity, the leading language for smart contract development, ensuring compatibility with your existing projects.
  • Actionable Insights and Remediation: Detailed reports pinpoint vulnerabilities, their severity levels, and offer concrete suggestions for remediation, guiding you towards secure and reliable smart contracts.
  • Effortless Integration: Aegis integrates seamlessly into your development workflow with a user-friendly command-line interface, minimizing disruption and maximizing efficiency.

(back to top)

Key Features

  • Advanced Vulnerability Detection: Identify a broad spectrum of vulnerabilities, including reentrancy, integer overflow, access control issues, and more.
  • Comprehensive Solidity Support: Analyze and scan your Solidity code for potential threats.
  • Actionable Insights and Remediation: Receive detailed reports highlighting vulnerabilities, their severity levels, and suggested fixes.
  • Easy Integration: Seamlessly integrate Aegis into your development workflow with a user-friendly CLI interface.

(back to top)

Built with

Python PyTorch scikit-learn Jupyter Notebook HuggingFace

Open Source Pre-trained Models:

(back to top)

Vulnerability Detection

Aegis employs a two-stage approach to vulnerability detection, combining the strengths of ResNet-18 and LLAMA 2.

  • Acts as the first line of defense, efficiently extracting crucial features from smart contract bytecode.
  • Identifies the presence of vulnerabilities with a broad scope, providing an initial assessment.
  • Built upon ResNet-18's foundation, leverages fine-tuning and specialized training to pinpoint vulnerable code segments with enhanced precision.
  • Goes beyond mere detection, offering actionable guidance for resolving vulnerabilities through targeted suggestions and potential fixes.

Key Advantages:

  • Precision Boost: LLAMA 2's targeted approach minimizes false positives and pinpoints relevant areas for attention, saving developers valuable time and effort.
  • Actionable Insights: Gain practical, code-level recommendations for addressing vulnerabilities, empowering you to effectively secure your smart contracts.
  • Open Datasets and Hallucination Mitigation: We prioritize responsible AI practices by utilizing publicly available datasets, actively addressing the potential for hallucination in LLAMA 2, and ensuring the accurate identification and remediation of vulnerabilities.

Detailed Information:

For a deeper understanding of the fine-tuning process, dataset selection, and mitigation strategies, please refer to the comprehensive documentation provided.

(back to top)

Getting Started

Installation Instructions:

To setup Aegis in your local machine, you need to have the following prerequisites installed on your system:

  1. Python 3.8 or higher: Download and install Python if you haven't already.

  2. Poetry: We use Poetry for dependency management. Install it by following the instructions here.

Once you have the prerequisites, you can set up Aegis by following these steps:

  1. Clone the repository:

    git clone https://github.com/KarthikS373/aegis.git
    
  2. Navigate to the project directory:

    cd aegis
    
  3. Install dependencies using Poetry:

    poetry install
    
  4. Activate Virtual Environment:

     poetry shell
    
  5. Run your first command:

    poetry run aegis --help
    

For a more detailed setup guide, consult our documentation.

Example Usage:

To see Aegis in action, check out our demo or refer to the detailed example usage guide in our documentation:

Feel free to explore and experiment with the provided examples to understand how to make the most out of Aegis for your projects.

(back to top)

CLI Commands

Aegis offers a set of intuitive CLI commands for efficient interaction. Refer to the documentation for usage examples.

compile : compile the solidity code
documentation : generate documentation for the smart contract
generate : generate ready to deploy smart contracts
info : get information about the application
report : generate a pdf report for the smart contract, summarizing its content, highlighting detected vulnerabilities, and suggesting optimizations
scan : scan a file or directory for vulnerabilities
summary : get summary about the smart contract

(back to top)

License

Aegis is licensed under the MIT license. For more information, please see the LICENSE file in the repository.

(back to top)

Contributing

We welcome contributions! For detailed instructions on how to contribute, please refer to the Contributing Guide in our documentation.

(back to top)

Team Members

(back to top)

About

Aegis is a python based CLI tool used to help solidity smart contract developers to create, compile, scan, audit, document and generate code

Resources

License

Code of conduct

Stars

Watchers

Forks