

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
| Severity | Finding | Location | Confidence |
|---|---|---|---|
| info | Naming Convention The contract naming convention does not follow standard Solidity practices. | MantleUSDY_Interface.sol:7 | 70% |
| low | Constable States The contract contains public state variables that can be modified externally, which may lead to unintended state changes. | MantleUSDY_Interface.sol:12 | 60% |
| low | Constable States The contract has public state variables that may expose sensitive information or allow for unintended interactions. | MantleUSDY_Interface.sol:10 | 60% |
| low | Constable States The contract uses constant state variables for 'name' and 'symbol'. | MantleUSDY_Interface.sol:8 | 70% |
| low | Constable States The contract uses a constant state variable for 'symbol'. | MantleUSDY_Interface.sol:9 | 70% |
| low | Immutable States The contract has immutable state variables that could be modified in a way that affects contract behavior. | MantleUSDY_Interface.sol:13 | 70% |
| medium | Pack small storage variables into fewer slots Storage variables can be packed to optimize gas usage. | MantleUSDY_Interface.sol:10 | 80% |
| 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:40 | 60% |
| 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:31 | 95% |
| info | Replace long revert string with custom error The contract uses a long revert string for insufficient balance checks. | MantleUSDY_Interface.sol:52 | 70% |
| info | Replace long revert string with custom error The contract uses long revert strings for balance and allowance checks. | MantleUSDY_Interface.sol:66 | 70% |
| info | Replace long revert string with custom error Replace long revert string with a custom error for better gas efficiency. | MantleUSDY_Interface.sol:67 | 80% |
| info | Mark never-changing value constant or immutable Mark the owner variable as immutable to optimize storage costs. | MantleUSDY_Interface.sol:13 | 70% |
| info | Cache repeated storage read Repeated storage read optimization can reduce gas costs. | MantleUSDY_Interface.sol:52 | 80% |
| info | Cache repeated storage read Further optimization of storage reads can be applied. | MantleUSDY_Interface.sol:55 | 80% |
| info | Cache repeated storage read Repeated storage read for balanceOf in require statement. | MantleUSDY_Interface.sol:66 | 70% |
| info | Cache repeated storage read Repeated storage read for allowance in require statement. | MantleUSDY_Interface.sol:67 | 70% |
| medium | Bitmap-pack boolean flags Boolean flags can be packed into a single storage slot using a bitmap. | MantleUSDY_Interface.sol:18 | 75% |

