The Recall token contract is an upgradeable ERC20 token leveraging OpenZeppelin's battle-tested libraries for access control, pausability, and UUPS proxy functionality. It also integrates with the Axelar Interchain Token Standard. While the code quality is high and standard patterns are followed, the initial configuration assigns all critical administrative, minting, and pausing roles to a single deployer address. This centralization introduces significant single points of failure, elevating the overall risk level.
On-chain security analysis — is it a scam or legit?
Is Recall Safe?
Not verified
This record has not gone through deep verification and is not being monitored. The score is a dated snapshot — the token’s risk can change at any time.Own this token? Put it under verification →The Recall token contract is an upgradeable ERC20 token leveraging OpenZeppelin's battle-tested libraries for access control, pausability, and UUPS proxy functionality.
Read the full analysis- Ownership status UNKNOWN
- Mintable supply — no cap found, dilution unbounded
- Proxy contract
- Top-10 concentration > 30%
- Liquidity not locked, but no owner/deployer address holds LP — market-depth risk, not rug risk
- LP top1 unlocked holder = 54.9%
- LP top3 unlocked holders = 100.0%
- 1 High finding(s) from audit
- 2 Medium finding(s) from audit
- 1 Low finding(s) from audit
Exact factors
- Ownership status UNKNOWN (owner could not be resolved)
- Mintable supply — no cap found, dilution unbounded
- Proxy contract (upgradeable — admin can replace logic)
- Top-10 concentration > 30% (62.1% total → 42.1% effective; 28.9% in EOAs, 33.2% in contracts — moderate)
- Liquidity not locked, but no owner/deployer address holds LP — market-depth risk, not rug risk
- LP top1 unlocked holder = 54.9% (independent LP — depth risk, pool = 100% of DEX liquidity)
- LP top3 unlocked holders = 100.0% (independent LP — depth risk, pool = 100% of DEX liquidity)
- 1 High finding(s) from audit
- 2 Medium finding(s) from audit
- 1 Low finding(s) from audit
Each factor is an on-chain fact recorded at the time of this analysis. The score is computed from them by a deterministic function, so the same contract returns the same score for anyone who runs the audit. How scores are computed
Security Checklist
as of audit · Sep 4Holders
as of audit · Sep 4, 2026- Contractstreasury, vesting, bridge, staking33.2%
- Walletsanonymous holders, free to sell28.9%
- Everyone elsethe rest of the supply37.9%
How holder types affect the score
Share held by contracts — treasury, vesting, bridge or staking — is discounted against share held by wallets when the score is computed: a contract cannot decide to sell the way an anonymous holder can, though it can still be drained or voted to sell. Effective concentration is the figure the risk score is actually calculated from.
Holder balances as recorded by the audit of Sep 4, 2026
Liquidity
as of audit · Sep 4- AerodromeUSDCAnalysed$561.3K99.8%
- AerodromeUSDC$7860.1%
- Hydrex CLAMMUSDC$1190.0%
- Uniswap v4ETH$490.0%
- AerodromeUSDC$50.0%
- Uniswap v4ETH$10.0%
The risk score reads depth across every pair.
The LP tokens of the analysed pool are not locked or burned, so whoever holds them can withdraw that liquidity.
0xfa2b…52bb0x73e5…91ad0xaf7b…00eaNo privileged address appears among these holders: the unlocked liquidity sits with independent providers, not with the deployer.
Security Findings
HighCentralized Control of Critical Roles
The initialize function assigns the ADMIN_ROLE, MINTER_ROLE, and PAUSER_ROLE to the msg.sender (deployer EOA). The ADMIN_ROLE has the ability to manage all other roles, unpause the contract, and authorize contract upgrades. This creates a single point of failure where a compromise of the deployer's EOA could lead to complete control over the token's functionality, including arbitrary minting, halting operations, and deploying malicious contract logic (7.3 Access Control, 7.5 Governance, 7.8 Operations).H-01
Issue
The initialize function assigns the ADMIN_ROLE, MINTER_ROLE, and PAUSER_ROLE to the msg.sender (deployer EOA). The ADMIN_ROLE has the ability to manage all other roles, unpause the contract, and authorize contract upgrades. This creates a single point of failure where a compromise of the deployer's EOA could lead to complete control over the token's functionality, including arbitrary minting, halting operations, and deploying malicious contract logic (7.3 Access Control, 7.5 Governance, 7.8 Operations).
Fix
Transfer the ADMIN_ROLE, MINTER_ROLE, and PAUSER_ROLE to a multi-signature wallet or a robust DAO governance contract immediately after deployment and initialization. This distributes control and significantly reduces the risk associated with a single compromised private key.
Status
Unresolved
MediumPausability as a Centralized Denial-of-Service Vector
The PAUSER_ROLE has the ability to call pause(), which halts all token transfers, minting, and burning operations. While the ADMIN_ROLE can unpause(), the unilateral ability of a single PAUSER_ROLE holder to stop all token activity presents a significant centralization risk and potential for denial of service (7.3 Access Control, 7.4 Economic). A malicious or compromised PAUSER_ROLE could disrupt the protocol's operations.M-01
Issue
The PAUSER_ROLE has the ability to call pause(), which halts all token transfers, minting, and burning operations. While the ADMIN_ROLE can unpause(), the unilateral ability of a single PAUSER_ROLE holder to stop all token activity presents a significant centralization risk and potential for denial of service (7.3 Access Control, 7.4 Economic). A malicious or compromised PAUSER_ROLE could disrupt the protocol's operations.
Fix
Consider implementing a timelock for the pause() function or requiring multiple parties (e.g., a multi-signature wallet) to approve pausing. Alternatively, restrict the PAUSER_ROLE to a trusted, highly secure entity or a governance mechanism with appropriate checks and balances.
Status
Unresolved
MediumCentralized Minting Authority
The MINTER_ROLE has the authority to mint an arbitrary amount of new tokens to any address. If the MINTER_ROLE is controlled by a single EOA and that EOA is compromised, an attacker could mint an unlimited supply of tokens, leading to hyperinflation and severe devaluation of existing tokens (7.4 Economic). This centralized control over token supply poses a significant economic risk.M-02
Issue
The MINTER_ROLE has the authority to mint an arbitrary amount of new tokens to any address. If the MINTER_ROLE is controlled by a single EOA and that EOA is compromised, an attacker could mint an unlimited supply of tokens, leading to hyperinflation and severe devaluation of existing tokens (7.4 Economic). This centralized control over token supply poses a significant economic risk.
Fix
Implement a minting cap, rate limit, or transfer the MINTER_ROLE to a multi-signature wallet or a controlled contract that enforces specific minting policies. This would introduce checks and balances to prevent uncontrolled token issuance.
Status
Unresolved
LowReliance on External Axelar Interchain Token Service
The contract integrates with the Axelar Interchain Token Standard and relies on the _interchainTokenService address for interchain functionality, specifically for deriving the interchainTokenId. The security and availability of this external service are critical to the token's cross-chain operations (7.6 External). Any vulnerabilities or disruptions in the Axelar service could indirectly impact the token's intended functionality.L-01
Issue
The contract integrates with the Axelar Interchain Token Standard and relies on the _interchainTokenService address for interchain functionality, specifically for deriving the interchainTokenId. The security and availability of this external service are critical to the token's cross-chain operations (7.6 External). Any vulnerabilities or disruptions in the Axelar service could indirectly impact the token's intended functionality.
Fix
Acknowledge and continuously monitor the security and operational status of the Axelar Interchain Token Service. While this is an inherent dependency and not a direct vulnerability in the Recall contract's logic, understanding and managing this external risk is crucial.
Status
Unresolved
InfoFixed Deployer Address for Interchain Token ID Derivation
The deployer address is set once during initialize to msg.sender and is subsequently used in the interchainTokenId() function to derive the unique token identifier via the Axelar Interchain Token Service. This means the deployer address is a permanently fixed component in the token's interchain identity (7.1 Architecture).I-01
Issue
The deployer address is set once during initialize to msg.sender and is subsequently used in the interchainTokenId() function to derive the unique token identifier via the Axelar Interchain Token Service. This means the deployer address is a permanently fixed component in the token's interchain identity (7.1 Architecture).
Fix
No direct security recommendation. This is an architectural design choice for Axelar integration. Ensure that the deployer address used during initialization is a stable and known entity, as its identity is permanently linked to the token's interchain ID.
Status
Unresolved
Analysis
AI Copilotas of audit · Sep 4The contract demonstrates strong technical foundations (7.1 Architecture, 7.2 Code Security). It utilizes OpenZeppelin's upgradeable contracts for ERC20, AccessControl, Pausable, and UUPS, ensuring robust and audited components. The implementation of _spendAllowance correctly handles type(uint256).max for infinite allowances, preventing potential underflow issues. No reentrancy vectors or complex arithmetic vulnerabilities were identified.
The contract implements robust access control via OpenZeppelin's AccessControlUpgradeable (7.3 Access Control). However, all critical roles (ADMIN_ROLE, MINTER_ROLE, PAUSER_ROLE) are initially granted to the deployer's EOA (7.5 Governance). This centralization creates a single point of failure for upgrades, unpausing, and token minting (7.4 Economic). A compromise of this single address could lead to full control over the token supply and contract logic.
The contract correctly implements the UUPSUpgradeable proxy pattern (7.7 Upgrades), which is a secure and widely adopted standard for upgradeability. The _authorizeUpgrade function is appropriately restricted to the ADMIN_ROLE, ensuring that only authorized entities can initiate upgrades. The primary risk associated with upgrades stems from the centralized control of the ADMIN_ROLE, which could allow a compromised address to deploy malicious logic.
To enhance the security posture of the Recall token contract, it is strongly recommended to decentralize control over critical administrative roles.
Transfer the ADMIN_ROLE, MINTER_ROLE, and PAUSER_ROLE from the initial deployer EOA to a robust multi-signature wallet or a decentralized autonomous organization (DAO) governance mechanism. This will mitigate the significant single-point-of-failure risks identified in this report and improve the overall resilience against malicious actors or key compromise.
Contract & Record
Free for any token on the record. It links to this page and always shows the current score and the date it was checked.
- Sep 4, 202672High
- Jul 27, 202674High
- Jul 26, 202664Medium
Score changes are recorded as dated snapshots — history is append-only and cannot be edited.
Frequently Asked Questions
Is Recall a scam?
Based on automated analysis, Recall scores 64/100 (High Risk) on our risk scale. No honeypot was detected, but always verify independently before investing.
Is Recall safe to buy?
Our scanner flagged a risk score of 64/100. Ownership has not been renounced, which is a risk factor. DYOR before purchasing any token.
Has Recall been audited?
The contract has not been verified on-chain. Verification is not the same as a full security audit. Use Quantum Audit's free tool to run a deeper analysis of the contract code.
Would You Like a More Detailed Audit of Recall?
Our AI-powered scanner gives you a deeper, real-time smart contract analysis — free, with every scoring factor shown.
Get Detailed Audit Is this your token? Publish your own audit on this page