ArchonArchon
Public verified reportRun your own audit

Archon public report

MantleUSDY_Interface

Mantle Mainnet · scan depth quick · generated 6/18/2026, 6:15:18 PM

Risk Score

66

Archon completed a read-only Mantle Mainnet audit of MantleUSDY_Interface and found 18 deterministic findings. The highest-priority issue is Naming Convention, with risk score 66/100 based on severity-weighted findings. The contract naming convention does not follow standard Solidity practices. Review the recommended fixes and run regression tests before deployment.

Models used: Tencent Cloud TokenHub (deepseek-v4-pro), OpenAI (gpt-4o-mini) — AI reasoning served on Tencent Cloud TokenHub.

Findings

low: 6high: 0info: 10medium: 2critical: 0
SeverityFindingLocationConfidence
info

Naming Convention

The contract naming convention does not follow standard Solidity practices.

MantleUSDY_Interface.sol:770%
low

Constable States

The contract contains public state variables that can be modified externally, which may lead to unintended state changes.

MantleUSDY_Interface.sol:1260%
low

Constable States

The contract has public state variables that may expose sensitive information or allow for unintended interactions.

MantleUSDY_Interface.sol:1060%
low

Constable States

The contract uses constant state variables for 'name' and 'symbol'.

MantleUSDY_Interface.sol:870%
low

Constable States

The contract uses a constant state variable for 'symbol'.

MantleUSDY_Interface.sol:970%
low

Immutable States

The contract has immutable state variables that could be modified in a way that affects contract behavior.

MantleUSDY_Interface.sol:1370%
medium

Pack small storage variables into fewer slots

Storage variables can be packed to optimize gas usage.

MantleUSDY_Interface.sol:1080%
low

Review calldata parameter width

The function 'approve' uses a uint256 for the amount parameter, which may be unnecessarily large for certain use cases.

MantleUSDY_Interface.sol:4060%
info

Replace long revert string with custom error

The modifier `transferable` uses `require` with a long revert string `"TRANSFERS_PAUSED"`, which is gas-inefficient. Custom errors provide the same information with lower deployment and runtime gas costs.

MantleUSDY_Interface.sol:3195%
info

Replace long revert string with custom error

The contract uses a long revert string for insufficient balance checks.

MantleUSDY_Interface.sol:5270%
info

Replace long revert string with custom error

The contract uses long revert strings for balance and allowance checks.

MantleUSDY_Interface.sol:6670%
info

Replace long revert string with custom error

Replace long revert string with a custom error for better gas efficiency.

MantleUSDY_Interface.sol:6780%
info

Mark never-changing value constant or immutable

Mark the owner variable as immutable to optimize storage costs.

MantleUSDY_Interface.sol:1370%
info

Cache repeated storage read

Repeated storage read optimization can reduce gas costs.

MantleUSDY_Interface.sol:5280%
info

Cache repeated storage read

Further optimization of storage reads can be applied.

MantleUSDY_Interface.sol:5580%
info

Cache repeated storage read

Repeated storage read for balanceOf in require statement.

MantleUSDY_Interface.sol:6670%
info

Cache repeated storage read

Repeated storage read for allowance in require statement.

MantleUSDY_Interface.sol:6770%
medium

Bitmap-pack boolean flags

Boolean flags can be packed into a single storage slot using a bitmap.

MantleUSDY_Interface.sol:1875%