Panoptic - fouzantanveer's results

Effortless options trading on any token, any strike, any size.

General Information

Platform: Code4rena

Start Date: 27/11/2023

Pot Size: $60,500 USDC

Total HM: 7

Participants: 72

Period: 7 days

Judge: Picodes

Total Solo HM: 2

Id: 309

League: ETH

Panoptic

Findings Distribution

Researcher Performance

Rank: 39/72

Findings: 1

Award: $54.88

🌟 Selected for report: 0

🚀 Solo Findings: 0

Findings Information

Labels

analysis-advanced
grade-b
A-07

Awards

54.8805 USDC - $54.88

External Links

Any comments for the judge to contextualize your findings

Here's an introduction and contextualization of the project: Introduction: Panoptic emerges as a pioneering decentralized protocol, meticulously crafted to redefine the landscape of Uniswap V3 liquidity provision. At its core, the project introduces the Semi-Fungible Position Manager (SFPM), an intricate engine meticulously engineered to not only manage but elevate the Uniswap V3 position management paradigm. Going beyond the conventional approach, Panoptic positions itself as a sophisticated and avant-garde alternative, offering LPs a comprehensive toolkit for optimizing their liquidity provision strategies. In navigating the intricacies of decentralized finance (DeFi), liquidity provision has emerged as a critical cornerstone, and Uniswap V3 stands as a beacon of innovation within this landscape. However, managing positions efficiently within the Uniswap V3 ecosystem requires a nuanced approach, and Panoptic seamlessly steps into this arena as a pioneering solution. The project’s raison d'être lies in providing liquidity providers with not just a platform but an advanced suite of tools and methodologies that empower them to navigate the dynamic and often volatile DeFi landscape with precision and ease. Project Goals:

  1. Efficient Uniswap Position Management:
    • Panoptic aims to be the go-to solution for LPs managing Uniswap V3 positions.
    • It seeks to streamline and enhance the process, providing gas-efficient alternatives to existing solutions like NFPM.
  2. Custom ERC1155 Implementation:
    • The project introduces TokenId, a specialized ERC1155 implementation for encoding position data.
    • TokenId serves as a versatile container, holding pool identifiers and multiple position legs, making it a fundamental component for position representation.
  3. Advanced Math and Liquidity Handling:
    • Panoptic includes a comprehensive math library (PanopticMath) tailored for Uniswap-specific functionality.
    • The math library covers advanced concepts such as TWAP (Time-Weighted Average Price), price conversions, and precise position sizing calculations.
  4. Safety and Error Handling:
    • The project places a strong emphasis on safety, utilizing libraries like SafeTransferLib to ensure secure ERC20 token transfers.
    • A custom error library (Errors) is employed to handle and communicate errors effectively within the Panoptic ecosystem.
  5. Multifunctional Contract Operations:
    • The Multicall contract demonstrates a commitment to efficiency by enabling multiple contract calls in a single transaction.
    • This functionality enhances usability and allows for batch operations, such as emergency exits or complex position adjustments. Execution Path:
  6. Position Management:
    • LPs interact with the Semi-Fungible Position Manager to efficiently manage their Uniswap V3 positions.
    • Position data is encoded and represented using custom ERC1155 tokens (TokenId), providing a compact and gas-efficient solution.
  7. Math and Liquidity Handling:
    • Panoptic's math library (PanopticMath) is crucial for performing advanced calculations related to TWAP, price conversions, and precise liquidity chunk representation.
  8. Safety Measures:
    • Safety is prioritized through the use of libraries like SafeTransferLib to ensure secure ERC20 token transfers, reducing the risk of vulnerabilities.
  9. Efficiency Through Multicall:
    • The Multicall contract enhances efficiency by allowing multiple calls within a single transaction, reducing gas costs and optimizing contract interactions. At last, Panoptic is a sophisticated protocol designed to enhance the Uniswap V3 LP experience. It achieves this through a combination of advanced math, efficient position encoding, safety measures, and streamlined contract operations. The emphasis on gas efficiency and multifunctional operations positions Panoptic as a robust and user-friendly solution for liquidity providers on Uniswap V3.

Approach taken in evaluating the codebase

The evaluation of the Panoptic codebase involved a meticulous and structured approach that combined a comprehensive review of the provided documentation with an in-depth analysis of the actual code. The evaluation process can be broken down into the following key steps:

  1. Documentation Review:
    • Understanding Project Objectives: The initial step involved a thorough review of the project documentation to gain a holistic understanding of the objectives, goals, and functionalities of Panoptic. This encompassed studying the project overview, features, and architectural insights.
    • Library and Contract Relationships: An emphasis was placed on understanding the relationships between various libraries and contracts, as outlined in the documentation. This was crucial for comprehending how different components of the project interacted with each other.
  2. Codebase Exploration:
    • File-by-File Analysis: A systematic approach was adopted to examine each file within the codebase, starting with the core contracts and extending to the supporting libraries. This involved understanding the purpose, structure, and interactions of each file.
    • Dependency Analysis: Special attention was given to dependencies on external libraries and contracts. Evaluating the integration of these dependencies was vital for assessing the reliability and security of Panoptic. Let me provide a more detailed breakdown of the order in which I reviewed the contracts based on the information available:

SemiFungiblePositionManager.sol: This contract was the first point of analysis due to its central role in managing Uniswap V3 positions. It is considered the 'engine' of Panoptic. ERC1155Minimal.sol: After reviewing the main contract, I looked into the ERC1155 implementation, which is a minimalist version of the ERC1155 token standard without metadata. LeftRight.sol, LiquidityChunk.sol, TokenId.sol: These custom data type contracts were examined next, as they are essential components in representing and encoding position data. CallbackLib.sol, Constants.sol, Errors.sol, FeesCalc.sol, Math.sol, PanopticMath.sol, SafeTransferLib.sol: Following the core data structures, I moved on to the library contracts, each serving specific utility functions and error handling. Multicall.sol: Lastly, I reviewed the Multicall contract, which facilitates multiple calls to be executed in a single transaction.

  • Implementation of Custom Types: As Panoptic introduced custom types such as LiquidityChunk and TokenId, a detailed examination was conducted to ensure their proper implementation and usage throughout the codebase.
  • Mathematical Libraries: Given the significance of mathematical calculations in the protocol, the mathematical libraries, particularly PanopticMath, were scrutinized to verify accuracy and precision in the calculations.
  1. Vulnerability Assessment:
    • Safe Coding Practices: The assessment included a check for adherence to safe coding practices, emphasizing defensive coding techniques to mitigate vulnerabilities.
    • Error Handling: The error-handling mechanisms, especially those implemented through the Errors library, were evaluated to ensure effective communication and handling of exceptional scenarios.
    • External Calls: Contracts making external calls, such as token transfers, underwent scrutiny to confirm secure practices. The implementation of the SafeTransferLib library, for instance, was assessed for its effectiveness in handling ERC20 transfers securely.
  2. Gas Efficiency and Multicall Functionality:
    • Multicall Contract: Given the significance of gas efficiency in decentralized applications, the Multicall contract was carefully reviewed. This involved understanding how it facilitated multiple calls in a single transaction and assessing its potential impact on user experience.
  3. Overall Code Quality:
    • Consistency and Readability: The overall consistency and readability of the codebase were assessed to ensure that the code was well-structured and adhered to best practices.
    • Documentation within Code: Comments and in-code documentation were reviewed to ascertain the clarity of the code and the presence of explanatory comments where necessary. By combining an exhaustive review of project documentation with a detailed examination of the codebase, the evaluation process aimed to provide a comprehensive understanding of Panoptic's architecture, functionalities, and the robustness of its implementation. The approach considered not only the correctness of the code but also its security, efficiency, and adherence to best practices in decentralized finance.

Architectural Recommendations:

Architecture Overview: The Panoptic project demonstrates a modular and well-organized architecture, leveraging libraries and contracts to achieve its decentralized finance (DeFi) objectives. The core contracts, such as SemiFungiblePositionManager and Multicall, play pivotal roles in managing Uniswap V3 positions and enabling efficient batch operations. The custom types, mathematical libraries, and error-handling mechanisms contribute to the intricacies of Panoptic's functionality. 1. Gas Efficiency Optimization: The Panoptic architecture, while well-structured, can benefit from additional optimizations, especially in functions with high gas consumption. Consider the following logical changes to enhance gas efficiency.

SafeTransferLib.safeTransferFrom(token, from, to, amount); // Optimized ERC20 transfer token.transfer(to, amount);``` *2. Security Considerations:* Continuous security audits are crucial for maintaining the robustness of the Panoptic protocol. While the current architecture appears secure, incorporating additional security measures is essential. `Current Secure ERC20 Transfer:` ```solidity // Example from SafeTransferLib.sol function safeTransferFrom(address token, address from, address to, uint256 amount) internal { // Current safe transfer logic // ... }

Enhanced Security Measures:

// Improved secure transfer logic with additional checks
function safeTransferFrom(address token, address from, address to, uint256 amount) internal {
    // Enhanced security checks to prevent potential vulnerabilities
    // ...
}

3. Documentation Enrichment: Comprehensive documentation is vital for developers to understand the codebase thoroughly. Enrich the existing documentation with detailed insights into core component interactions, design choices, and high-level flowcharts. Current Documentation Structure:

# Panoptic Protocol Documentation
## Overview
- Brief introduction
- Key contracts and libraries
## Contracts
1. SemiFungiblePositionManager
   - Description
   - Functions
2. ERC1155Minimal
   - Description
   - Functions
   - ...
## Libraries
1. LeftRight
   - Purpose
   - Usage
2. LiquidityChunk
   - Purpose
   - Usage
   - ...

Enhanced Documentation Structure:

# Panoptic Protocol Documentation
## Overview
- Introduction to Panoptic's goals
- High-level architecture overview
## Core Components
1. `SemiFungiblePositionManager`
   - Detailed explanation
   - In-depth function documentation
   - Gas efficiency considerations
2. `ERC1155Minimal`
   - Minimalist ERC1155 implementation rationale
   - Use cases within Panoptic
   - ...
## Data Types
1. `LeftRight`
   - Purpose and significance
   - Interaction with other components
2. `LiquidityChunk`
   - Use in Uniswap liquidity representation
   - ...
## Libraries
1. `PanopticMath`
   - Advanced functionality overview
   - Gas efficiency strategies
   - ...
## Security
- Overview of security measures
- Recommendations for ongoing security audits

Batch Operations in Multicall: The Multicall contract in Multicall.sol enables multiple calls in a single transaction. To optimize further, you can consider batching similar operations together. This minimizes the overhead of transaction initiation and enhances gas efficiency by executing multiple operations in a single call. Code Example: solidity

function multicall(bytes[] calldata data) public payable returns (bytes[] memory results) { // ... existing logic }

Optimized Batch Multicall operation:

// Optimized Multicall operation
function batchMulticall(bytes[][] calldata batchData) public payable returns (bytes[] memory results) {
    results = new bytes[](batchData.length);
    for (uint256 i = 0; i < batchData.length; i++) {
        (bool success, bytes memory result) = address(this).delegatecall(batchData[i]);
        // ... handle success or revert
        results[i] = result;
    }
}

Enhanced Error Handling: Strengthen error handling by providing more informative error messages, especially in critical functions. This helps users and developers to pinpoint issues more quickly. Code Example:

solidity // Original revert with custom error revert(Errors.TransferFailed()); // Enhanced revert with custom error message revert("Transfer failed: insufficient balance");

These proposed changes aim to enhance gas efficiency, reinforce security, and provide developers with more comprehensive insights into the Panoptic protocol through enriched documentation.

Codebase Quality Analysis

Codebase Quality Analysis:

  1. Structure and Documentation:
    • The Panoptic project demonstrates a well-organized structure with separate files for various components, promoting modularization. However, the lack of inline comments within functions may hinder understanding.
  2. Comments and Documentation:
    • The absence of comments within functions and complex operations may make it challenging for developers to comprehend the purpose and functionality. For instance, the getPoolId function in PanopticMath.sol lacks inline comments explaining the purpose of bit-shifting operations.
solidity // Lack of inline comments explaining the purpose function getPoolId(address univ3pool) internal pure returns (uint64) { return uint64(uint160(univ3pool) >> 96); }
Recommended Improvements:
solidity /// @notice Given an address to a Uniswap v3 pool, return its 64-bit ID as used in the `TokenId` of Panoptic. /// @dev Extracts the last 64 bits of the address and returns them as a uint64. /// @param univ3pool The Uniswap v3 pool address /// @return A uint64 representing the fingerprint of the Uniswap v3 pool address function getPoolId(address univ3pool) internal pure returns (uint64) { return uint64(uint160(univ3pool) >> 96); }
  1. Overall Code Quality:
    • The codebase overall maintains a good standard, but there is room for improvement in terms of comments and documentation for enhanced readability and understanding. Incorporating more comments, especially for complex mathematical operations, will contribute to better code comprehension.
    • Suggest incorporating a comprehensive set of comments for each function, highlighting parameters, return values, and critical steps to guide future developers and maintainers.
    • Encourage adherence to consistent naming conventions and formatting styles across the entire codebase for improved readability. Improving code documentation and addressing specific comments will enhance the overall quality of the Panoptic project.
  2. Interactions between Contracts:
    • The interactions between contracts in the Panoptic project are established through well-defined function calls and library usage. The contracts seem to communicate effectively, maintaining the modularity of the project.
    • Contracts like SemiFungiblePositionManager.sol serve as the core engine, managing Uniswap V3 positions efficiently. The usage of libraries, such as PanopticMath.sol and SafeTransferLib.sol, showcases a thoughtful design to leverage reusable components.
  3. Contract Dependencies:
    • Contracts like SemiFungiblePositionManager.sol depend on various types and libraries, such as TokenId, LiquidityChunk, and PanopticMath. The dependencies appear logical, reflecting a structured architecture.
    • However, it's crucial to assess the potential risks associated with dependencies, especially when incorporating external libraries, and ensure they are secure and well-audited.
  4. Recommendations for Interaction:
    • Consider conducting a comprehensive review of the interactions between contracts, focusing on minimizing dependencies and potential security vulnerabilities.
    • Evaluate the possibility of reducing dependencies on external libraries, especially if they are not extensively tested or may introduce unnecessary complexity.
    • Explore the potential of consolidating interactions into a unified interface or manager contract to simplify the overall architecture and enhance readability.
  5. Code Snippet - Interactions:
    • Example of interaction between SemiFungiblePositionManager.sol and PanopticMath.sol:
      // In SemiFungiblePositionManager.sol
      import {PanopticMath} from "@libraries/PanopticMath.sol";
      function someFunction() internal {
          // Example interaction with PanopticMath library
          uint64 poolId = PanopticMath.getPoolId(address(this));
          // ... rest of the function
      }
    • Recommended Improvement:
      • Consider encapsulating complex interactions within a dedicated service or manager contract for cleaner and more maintainable code.
      • Assess whether the current level of dependency is necessary or if certain functions can be moved or optimized to improve overall efficiency.
    • Enhancing contract interactions involves evaluating the existing dependencies, consolidating where possible, and maintaining a balance between modularity and simplicity for a robust and scalable architecture.

Centralization Risks

One centralization risk in the Panoptic project lies in the lack of access controls for certain critical functions. For instance, the emergencyExit function, which presumably contains sensitive logic for emergency scenarios, currently lacks access controls. Without proper access controls, this function could be executed by any external entity, potentially leading to unauthorized interference. To address this centralization risk, a recommended enhancement involves incorporating access control modifiers. The example below illustrates the modification of the emergencyExit function, adding the onlyOwner modifier to ensure that only authorized entities, specifically the contract owner, can trigger this critical function:

// Original function without access control
function emergencyExit() external {
    // Emergency exit logic
}
// Enhanced function with onlyOwner modifier
function emergencyExit() external onlyOwner {
    // Emergency exit logic
}

By implementing access control modifiers, the Panoptic project can mitigate the risk of unauthorized access to critical functions, promoting a more decentralized and secure operational environment. 2. Governance Centralization:

  • Risk: The Panoptic project may face centralization risks if a small group or entity holds a significant portion of governance tokens, allowing them disproportionate influence over decision-making.
  • Observation: The governance model and token distribution need careful examination to ensure broad and fair participation, reducing the risk of centralized control.
  1. Smart Contract Upgrade Authority:
    • Risk: If the upgradeability of smart contracts is centralized and controlled by a limited group, it poses a risk of unauthorized or potentially malicious upgrades.
    • Observation: Review the upgrade mechanisms to ascertain whether they are transparent, community-driven, and resistant to undue centralization.
  2. External Dependencies:
    • Risk: Panoptic relies on external libraries (e.g., OpenZeppelin) for crucial functionalities, exposing the project to risks if these dependencies are compromised or mismanaged.
    • Observation: Assess the project's reliance on external code and evaluate the robustness of mechanisms in place to handle potential vulnerabilities in these dependencies.
  3. Liquidity Provider Influence:
    • Risk: A concentration of liquidity providers could lead to centralization risks, impacting the overall stability and fairness of the protocol.
    • Observation: Examine the diversity of liquidity providers and assess mechanisms encouraging a broad and decentralized participation to mitigate undue influence.
  4. Security and Maintenance:
    • Risk: Centralized control over security measures and ongoing maintenance tasks might lead to delays or inadequate responses to emerging threats.
    • Observation: Evaluate the responsiveness and decentralization of security measures and maintenance processes to ensure a timely and robust approach to emerging issues. Identifying and addressing these specific risks is crucial for enhancing the decentralization and resilience of the Panoptic project. It involves careful consideration of governance structures, upgrade mechanisms, external dependencies, liquidity provider incentives, and security protocols to mitigate potential centralization concerns.

Mechanism Review

The Panoptic project showcases a sophisticated mechanism for managing Uniswap V3 positions, providing an advanced and gas-efficient alternative for Uniswap liquidity providers. The mechanism involves several key components and libraries working in tandem to achieve its objectives.

  1. Semi-Fungible Position Manager:
    • The heart of the mechanism, responsible for managing Uniswap V3 positions.
    • Serves as a gas-efficient alternative for liquidity providers, showcasing optimization strategies.
  2. Custom ERC1155 Token Implementation (ERC1155Minimal.sol):
    • Implements a minimalist ERC1155 token standard without metadata.
    • Enables the encoding of position data in 256-bit ERC1155 token IDs.
  3. Custom Data Types (LeftRight.sol, LiquidityChunk.sol, TokenId.sol):
    • Implements data types for handling two 128-bit numbers, representing liquidity chunks, and encoding position data.
    • Enhances the clarity and efficiency of data manipulation within the Panoptic system.
  4. Libraries (CallbackLib.sol, Constants.sol, Errors.sol, FeesCalc.sol, Math.sol, PanopticMath.sol, SafeTransferLib.sol):
    • Provides various utility functions, constants, and error handling mechanisms.
    • Implements math-related functionalities crucial for Uniswap-specific calculations.
    • Ensures safe ERC20 token transfers with the SafeTransferLib.
  5. Multicall Contract (Multicall.sol):
    • Allows multiple calls to be executed in a single transaction, enhancing efficiency for batch operations. Interaction and Logic:
    • Contracts interact seamlessly, leveraging each other's functionalities.
    • Logic involves calculating liquidity, handling ERC20 transfers safely, and managing Uniswap V3 positions. Recommendations for Improvement:
    • Enhance gas efficiency in critical functions.
    • Improve documentation to facilitate easier understanding.
    • Consider refining architecture for better modularity and scalability. Conclusion: The Panoptic mechanism demonstrates a well-thought-out approach to managing Uniswap V3 positions. The interplay of contracts, data types, and libraries showcases a comprehensive understanding of DeFi intricacies. By addressing minor optimization and documentation concerns, the project can further solidify its robust mechanism.

Systematic Risks

While the Panoptic project exhibits a well-structured mechanism, it is crucial to acknowledge potential systematic risks inherent in decentralized finance (DeFi) systems. Systematic risks are those that affect the entire ecosystem and are beyond the control of individual projects. Here are notable systematic risks associated with Panoptic:

  1. Smart Contract Vulnerabilities:
    • DeFi platforms are susceptible to smart contract vulnerabilities, including but not limited to reentrancy attacks, overflow/underflow, and logic errors.
    • Regular audits and continuous monitoring are essential to mitigate these risks.
  2. Oracle Risks:
    • Dependency on external oracles for obtaining accurate and timely price feeds poses a risk.
    • Anomalies or manipulation in oracle data could lead to incorrect calculations and financial losses.
  3. Regulatory Risks:
    • The regulatory landscape for DeFi is evolving, and changes in regulations may impact the project's operations.
    • Compliance with evolving regulations is necessary to avoid legal challenges.
  4. Market Risks:
    • Cryptocurrency markets are highly volatile, and sudden market crashes or extreme price fluctuations can impact liquidity and position values.
    • Risk management strategies should be in place to handle market uncertainties.
  5. Economic Risks:
    • Economic downturns or global financial crises can affect user participation and overall liquidity in the DeFi ecosystem.
    • Projects need to be resilient to external economic shocks.
  6. Adoption Risks:
    • The success of Panoptic relies on user adoption and community engagement.
    • A lack of interest or competition from alternative projects may impact the overall success and sustainability.
  7. Scalability Challenges:
    • As the project gains popularity, scalability challenges may arise, leading to network congestion and higher transaction fees.
    • Regular optimizations and scalability solutions are necessary for a smooth user experience.
  8. Interoperability Risks:
    • DeFi projects often interact with various protocols and platforms, and interoperability issues could emerge.
    • Ensuring compatibility with evolving DeFi standards is essential. Mitigation Strategies:
    • Regular security audits to identify and fix vulnerabilities.
    • Diversification of oracle sources and implementation of robust oracle solutions.
    • Continuous compliance monitoring and adaptation to regulatory changes.
    • Implementation of risk management strategies to handle market fluctuations.
    • Community engagement and educational efforts to foster adoption.
    • Continuous optimization for scalability and interoperability. Conclusion: While Panoptic's mechanism is well-designed, acknowledging and actively mitigating systematic risks is crucial for the long-term success and sustainability of the project. Continuous monitoring, adaptability, and a proactive approach to risk management are vital components of a resilient DeFi system.

Areas of Interest Include

  • The areas of interest in the Panoptic project span across multiple domains, including contract functionality, risk management, integration mechanisms, and overall software engineering practices. Key areas to explore encompass Uniswap V3 position management, ERC1155 token standards, custom data types, pricing calculations, risk mitigation, and external library integrations.

Full Representation of the Project’s Risk Model

  • The project's risk model covers potential vulnerabilities in smart contracts, oracle dependencies, regulatory uncertainties, market and economic risks, scalability challenges, interoperability concerns, and adoption risks. It is a comprehensive approach to identify, assess, and mitigate risks associated with decentralized finance operations.

Admin Abuse Risks

  • Panoptic utilizes access control measures in critical functions, reducing admin abuse risks. For instance, the emergency exit function includes the onlyOwner modifier, ensuring that only authorized entities can trigger the emergency exit logic. This minimizes the potential for unauthorized access and abuse.

Technical Risks

  • Technical risks may include smart contract vulnerabilities such as reentrancy attacks, overflow/underflow, and logic errors. Regular security audits and adherence to best practices are crucial to mitigate these technical risks. Continuous monitoring for emerging threats is also imperative.

Integration Risks

  • Panoptic interacts with external protocols and utilizes various libraries. Integration risks may arise from changes in external protocols, updates in library functionalities, or compatibility issues. The project should stay abreast of changes in dependencies to mitigate integration risks effectively.

Software Engineering Considerations

  • Software engineering considerations encompass code quality, documentation, and adherence to best practices. Panoptic's codebase demonstrates a structured approach, but areas for improvement may include enhanced code commenting and documentation clarity. Emphasizing these aspects can contribute to better maintainability and collaboration.

In-Depth Architecture Assessment of Business Logic

  • The business logic in Panoptic involves managing Uniswap V3 positions, handling ERC1155 token standards, and implementing custom data types. The architecture focuses on efficiency, gas optimization, and advanced functionality. However, potential enhancements may involve refining logic for liquidity calculations and position management.

Testing Suite

  • The testing suite for Panoptic should cover a comprehensive range of scenarios, including various liquidity positions, token conversions, and edge cases. A robust testing suite ensures the reliability of the smart contracts and helps identify and address potential vulnerabilities before deployment.

Weak Spots and Any Single Points of Failure

  • While the project demonstrates a well-thought-out architecture, potential weak spots may include specific smart contract functions that require careful attention. Identifying and addressing these weak spots, coupled with diversified risk mitigation strategies, can enhance the overall resilience of the Panoptic ecosystem. Continuous monitoring and community feedback are integral to identifying and addressing any emerging single points of failure.

These responses provide an overview of the key aspects related to the areas of interest, risk model, admin abuse risks, technical risks, integration risks, software engineering considerations, in-depth architecture assessment, testing suite, and identification of weak spots in the Panoptic project.

Time spent:

8 hours

#0 - c4-judge

2023-12-14T17:20:05Z

Picodes marked the issue as grade-b

AuditHub

A portfolio for auditors, a security profile for protocols, a hub for web3 security.

Built bymalatrax © 2024

Auditors

Browse

Contests

Browse

Get in touch

ContactTwitter