The CrossChainERC20 contract implements a standard ERC20 token with specialized cross-chain functionality, allowing a designated bridge contract to mint and burn tokens. The contract leverages Solady for optimized ERC20 functionality and includes the Initializable pattern. Key findings highlight the significant centralization risk associated with the bridge contract and a design choice that limits upgradeability flexibility if used with a proxy.
On-chain security analysis — is it a scam or legit?
Is Jito Staked SOL 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 CrossChainERC20 contract implements a standard ERC20 token with specialized cross-chain functionality, allowing a designated bridge contract to mint and burn tokens.
Read the full analysis- Ownership not renounced
- Mintable supply — no cap found, dilution unbounded
- Proxy contract
- Complex proxy pattern
- Top-10 concentration > 30%
- Liquidity not locked, but no owner/deployer address holds LP — market-depth risk, not rug risk
- LP top1 unlocked holder = 100.0%
- LP top3 unlocked holders = 100.0%
- 1 High finding(s) from audit
- 1 Medium finding(s) from audit
Exact factors
- Ownership NOT renounced (admin/mint authority retained)
- Mintable supply — no cap found, dilution unbounded
- Proxy contract (upgradeable — admin can replace logic)
- Complex proxy pattern (BEACON)
- Top-10 concentration > 30% (99.9% total → 40.8% effective; 1.4% in EOAs, 98.6% in contracts — moderate)
- Liquidity not locked, but no owner/deployer address holds LP — market-depth risk, not rug risk
- LP top1 unlocked holder = 100.0% (independent LP — depth risk, pool = 92% of DEX liquidity)
- LP top3 unlocked holders = 100.0% (independent LP — depth risk, pool = 92% of DEX liquidity)
- 1 High finding(s) from audit
- 1 Medium 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, staking98.6%
- Walletsanonymous holders, free to sell1.4%
- Everyone elsethe rest of the supply0.1%
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 4The 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.
0x554c…d104No privileged address appears among these holders: the unlocked liquidity sits with independent providers, not with the deployer.
Security Findings
HighCentralization Risk of Bridge Contract
The CrossChainERC20 contract grants exclusive minting and burning privileges to a single _BRIDGE address. This design creates a significant centralization risk, as the security and integrity of the entire token supply are dependent on the security of this single bridge contract. A compromise of the _BRIDGE contract could lead to unauthorized minting, burning, or manipulation of the token supply, resulting in severe economic damage to the protocol and its users. This is an inherent design choice for cross-chain tokens but represents a critical operational and economic risk (7.3 Access Control, 7.4 Economic, 7.8 Operations).H-01
Issue
The CrossChainERC20 contract grants exclusive minting and burning privileges to a single _BRIDGE address. This design creates a significant centralization risk, as the security and integrity of the entire token supply are dependent on the security of this single bridge contract. A compromise of the _BRIDGE contract could lead to unauthorized minting, burning, or manipulation of the token supply, resulting in severe economic damage to the protocol and its users. This is an inherent design choice for cross-chain tokens but represents a critical operational and economic risk (7.3 Access Control, 7.4 Economic, 7.8 Operations).
Fix
Implement robust security measures for the _BRIDGE contract, including multi-signature control, time-locks for critical operations, and comprehensive monitoring. Consider a decentralized bridge architecture or a mechanism for community governance over the bridge in the long term. Establish clear emergency procedures for potential bridge exploits.
Status
Unresolved
MediumIncompatible Design for Upgradeability (Immutable Bridge in Initializable Contract)
The contract imports Initializable and uses the initializer modifier, indicating an intent for upgradeability via a proxy pattern. However, the _BRIDGE address is declared as immutable and set in the constructor. In an upgradeable proxy setup, the constructor of the implementation contract runs only once upon its initial deployment, not when the proxy is initialized or upgraded. This means the _BRIDGE address is permanently fixed for this specific implementation contract and cannot be changed through proxy upgrades. This design choice restricts the flexibility of the system, as the critical bridge contract itself cannot be upgraded or replaced without deploying an entirely new pro…M-01
Issue
The contract imports Initializable and uses the initializer modifier, indicating an intent for upgradeability via a proxy pattern. However, the _BRIDGE address is declared as immutable and set in the constructor. In an upgradeable proxy setup, the constructor of the implementation contract runs only once upon its initial deployment, not when the proxy is initialized or upgraded. This means the _BRIDGE address is permanently fixed for this specific implementation contract and cannot be changed through proxy upgrades. This design choice restricts the flexibility of the system, as the critical bridge contract itself cannot be upgraded or replaced without deploying an entirely new pro…
Fix
If upgradeability of the bridge address is desired, refactor _BRIDGE to be a regular storage variable. It should then be set during the initialize function call, allowing it to be updated via proxy upgrades. If the immutable nature of the bridge is an intentional design constraint, ensure this limitation is clearly documented and understood by all stakeholders.
Status
Unresolved
InfoLack of Emergency Pause Mechanism
The contract lacks a mechanism to pause critical operations (e.g., minting, burning, or even transfers) in the event of an emergency, such as a detected vulnerability in the bridge contract or a major exploit. While the onlyBridge modifier centralizes control, a broader pause functionality can be crucial for damage control (7.8 Operations).I-01
Issue
The contract lacks a mechanism to pause critical operations (e.g., minting, burning, or even transfers) in the event of an emergency, such as a detected vulnerability in the bridge contract or a major exploit. While the onlyBridge modifier centralizes control, a broader pause functionality can be crucial for damage control (7.8 Operations).
Fix
Consider implementing a pause mechanism, potentially controlled by a multi-signature wallet or a governance contract. This would allow the protocol to temporarily halt operations to mitigate damage during an incident or to perform necessary upgrades/fixes.
Status
Unresolved
Info_remoteToken Interpretation is External
The _remoteToken variable, a bytes32 identifier, is intended to represent the corresponding token on a remote chain. Its meaning, uniqueness, and enforcement are entirely external to this contract and depend on the logic implemented within the _BRIDGE contract and the remote chain's system. The CrossChainERC20 contract itself does not validate or interpret this identifier beyond ensuring it's not zero (7.6 External).I-02
_remoteToken Interpretation is ExternalIssue
The _remoteToken variable, a bytes32 identifier, is intended to represent the corresponding token on a remote chain. Its meaning, uniqueness, and enforcement are entirely external to this contract and depend on the logic implemented within the _BRIDGE contract and the remote chain's system. The CrossChainERC20 contract itself does not validate or interpret this identifier beyond ensuring it's not zero (7.6 External).
Fix
Ensure that the _BRIDGE contract has robust logic for managing and validating _remoteToken identifiers to prevent collisions or misinterpretations across chains. Clear documentation should be provided for how _remoteToken values are generated and used within the broader cross-chain ecosystem.
Status
Unresolved
Analysis
AI Copilotas of audit · Sep 4The contract is well-structured, inheriting from Solady's optimized ERC20 and Initializable contracts. It uses Solidity 0.8.28, benefiting from built-in overflow/underflow protection. Access control for minting and burning is correctly enforced via an onlyBridge modifier, ensuring only the designated bridge can manipulate the token supply (7.3 Access Control). Error handling is explicit with custom errors. The primary technical concern is the interaction between the immutable _BRIDGE variable and the Initializable pattern, which could pose limitations for future upgrades (7.1 Architecture, 7.2 Code Security).
The economic model of this token is highly centralized, as a single _BRIDGE address holds exclusive privileges to mint and burn tokens. This design introduces a significant single point of failure; a compromise of the bridge contract would directly impact the token's supply integrity and value (7.4 Economic). While this is inherent to many cross-chain designs, it represents a high operational and governance risk (7.5 Governance, 7.8 Operations). The _remoteToken identifier's meaning is entirely dependent on the external bridge's logic (7.6 External).
The contract incorporates the Initializable pattern and correctly calls _disableInitializers() in its constructor, indicating an intent for use as an upgradeable implementation. However, the _BRIDGE address is declared as immutable and set in the constructor. This design choice means that if the contract is used behind a proxy, the bridge address cannot be changed through subsequent proxy upgrades, limiting the flexibility to update or replace the critical bridge component without deploying an entirely new token system (7.7 Upgrades).
Prioritize the security and operational robustness of the _BRIDGE contract, as it represents the primary point of control and risk for the token supply.
Implement robust monitoring, multi-signature controls, and emergency response procedures for the bridge to mitigate the high centralization risk. If upgradeability is a future requirement, consider refactoring the _BRIDGE variable to be a storage variable managed by the initialize function, allowing it to be updated via proxy upgrades. If the current immutable design is intentional, ensure all stakeholders understand the implications of a permanently fixed bridge address.
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.
- Jul 23, 202662Medium
- Jul 22, 202657Medium
Score changes are recorded as dated snapshots — history is append-only and cannot be edited.
Would You Like a More Detailed Audit of Jito Staked SOL?
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