Select your language

Smart Contract Security Audit

Independent security review and architectural assessment for the Arboreteum protocol.

Target Contract : Arboreteum (UUPS Proxy)
Network : Arbitrum One
Solidity Version : ^0.8.28

1. Executive Summary

Arboreteum (ARM) is an upgradeable ERC-20 utility token incorporating a continuous bonding curve pricing mechanism, automated Uniswap V2 liquidity graduation (at a 20 ETH threshold), configurable transfer fees, and role-based access control via OpenZeppelin's UUPS proxy standard.

The codebase demonstrates high architectural cleanliness, proper adherence to upgrade safety patterns (such as disabling initializers in the implementation constructor), and effective gas optimization through custom errors.

2. Architecture & Core Mechanics

A. Upgradeability & Safety

  • Constructor Locking: The implementation constructor correctly executes _disableInitializers() to prevent direct initialization of the logic contract.
  • Access-Controlled Upgrades: Upgrades are restricted via the _authorizeUpgrade override, requiring the UPGRADER_ROLE.
  • Versioning: Features versioned reinitialization logic (initializeV5) to safely update curve parameters post-deployment.

B. Bonding Curve & Liquidity Graduation

  • Dynamic Pricing: Buy costs and sell returns scale accurately according to circulating supply deltas using precise scaling factors.
  • Automated DEX Graduation: Once totalRaised reaches or exceeds the GRADUATION_THRESHOLD (20 ETH), an authorized manager can trigger finalizeGraduation(). This deploys 80% of contract ETH and paired tokens to Uniswap V2, sends remaining ETH to the fee recipient, and locks LP tokens at the burn address (0x0000...dEaD).

3. Access Control & Privilege Matrix

RoleAssociated FunctionsSecurity Level
DEFAULT_ADMIN_ROLE pause(), unpause(), emergencyWithdrawETH() High Trust
MANAGER_ROLE finalizeGraduation(), setFees() Medium Trust
UPGRADER_ROLE initializeV5(), Proxy Logic Upgrades Critical Trust

4. Findings & Recommendations

  • Fixed LP Slippage (Informational): The _graduate() function utilizes a fixed lpSlippageBps setting (5%). Adding a manager-restricted setter function for this value in future upgrades provides helpful flexibility during network congestion.
  • External Payouts via .call: Native currency distributions use low-level `.call`, which is safe against gas limits, provided designated fee recipients are properly configured contracts or EOAs capable of receiving native transfers.
  • Static Compiler Warnings: Standard block explorer warnings related to minor Solidity optimizer bookkeeping edge cases are informational and do not impact current execution safety.

5. Conclusion

The Arboreteum protocol architecture is structurally sound, clean, and properly optimized for deployment on Arbitrum One. Maintaining strict security hygiene over privileged role private keys ensures safe ongoing protocol operation.