The GraphToken contract implements a standard ERC20 token with burnable functionality and utilizes SafeMath for arithmetic safety. It includes a Governed contract for administrative ownership transfer. Key strengths include robust arithmetic handling and a secure two-step ownership transfer process. However, potential centralization risks related to token supply management and the use of an older Solidity compiler version are noted. The contract also lacks a pausability mechanism, which could hinder emergency response.

On-chain security analysis — is it a scam or legit?
Is Graph Token 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 GraphToken contract implements a standard ERC20 token with burnable functionality and utilizes SafeMath for arithmetic safety.
Read the full analysis- Ownership not renounced
- Mintable supply — no cap found, dilution unbounded
- Top-10 concentration > 30%
- Liquidity not locked, but no owner/deployer address holds LP — market-depth risk, not rug risk
- LP top1 unlocked holder = 55.6%
- 1 High finding(s) from audit
- 2 Low finding(s) from audit
Exact factors
- Ownership NOT renounced (admin/mint authority retained)
- Mintable supply — no cap found, dilution unbounded
- Top-10 concentration > 30% (55.2% total → 34.0% effective; 19.9% in EOAs, 35.3% in contracts — moderate)
- Liquidity not locked, but no owner/deployer address holds LP — market-depth risk, not rug risk
- LP top1 unlocked holder = 55.6% (independent LP — depth risk, pool = 70% of DEX liquidity)
- 1 High finding(s) from audit
- 2 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, staking35.3%
- Walletsanonymous holders, free to sell19.9%
- Everyone elsethe rest of the supply44.8%
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- Uniswap v2WETHAnalysed$130.8K70.3%
- SushiswapWETH$20.7K11.1%
- Uniswap v3WETH$13.1K7.0%
- Uniswap v4ETH$11.7K6.3%
- Uniswap v3USDC$6.2K3.3%
- ShibaswapWETH$1.9K1.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.
0x0037…48880x26fc…65b50x2291…2b3c0x9e41…86500xa375…89520x9431…bf1a0xcaa7…ebdd0xcdae…186f0xed89…ebca0x10e5…19e4No privileged address appears among these holders: the unlocked liquidity sits with independent providers, not with the deployer.
Security Findings
HighCentralized Control over Token Supply (Potential)
The _mint function is internal virtual, implying that a derived contract (such as GraphToken itself) could expose a public mint function. If such a function exists and is controlled by the governor (as suggested by the Governed contract), it introduces a significant centralization risk. The governor would have the ability to arbitrarily inflate the token supply, potentially devaluing existing tokens and impacting the token's economic model.H-01
Issue
The _mint function is internal virtual, implying that a derived contract (such as GraphToken itself) could expose a public mint function. If such a function exists and is controlled by the governor (as suggested by the Governed contract), it introduces a significant centralization risk. The governor would have the ability to arbitrarily inflate the token supply, potentially devaluing existing tokens and impacting the token's economic model.
Fix
If the token is intended to have a fixed supply, ensure no public mint function is exposed, or remove the _mint functionality entirely after initial deployment. If minting is required, implement strict access controls, ideally through a multi-signature wallet or a decentralized governance mechanism, and define clear limits or conditions for minting.
Status
Unresolved
LowOlder Solidity Compiler Version
The contract uses Solidity ^0.7.0 and ^0.7.3, with the compiler version specified as 0.7.4. While functional, these versions are older. Newer compiler versions (e.g., 0.8.x) offer additional security features, such as default overflow/underflow checks (removing the need for SafeMath in many cases), and gas optimizations.L-01
Issue
The contract uses Solidity ^0.7.0 and ^0.7.3, with the compiler version specified as 0.7.4. While functional, these versions are older. Newer compiler versions (e.g., 0.8.x) offer additional security features, such as default overflow/underflow checks (removing the need for SafeMath in many cases), and gas optimizations.
Fix
Consider upgrading the Solidity compiler version to 0.8.x or higher. This would allow the contract to benefit from the latest security enhancements and gas efficiencies. Thorough testing would be required after such an upgrade.
Status
Unresolved
LowLack of Pausability Mechanism
The contract lacks a mechanism to pause token transfers or other critical functions. In the event of an emergency, such as a critical bug discovery, an exploit, or severe market manipulation, there is no way for the administrators to temporarily halt operations to prevent further damage or mitigate ongoing attacks.L-02
Issue
The contract lacks a mechanism to pause token transfers or other critical functions. In the event of an emergency, such as a critical bug discovery, an exploit, or severe market manipulation, there is no way for the administrators to temporarily halt operations to prevent further damage or mitigate ongoing attacks.
Fix
Implement a pausability mechanism (e.g., using OpenZeppelin's Pausable contract) controlled by the governor or a multi-signature wallet. This would provide an essential emergency stop-gap, allowing time to address critical issues without immediate, irreversible harm to users or the protocol.
Status
Unresolved
InfoERC20 approve Race Condition
The standard approve function in ERC20 tokens is susceptible to a known front-running vulnerability. If a user approves an amount, then attempts to change that approved amount to a different non-zero value, a malicious actor could front-run the second transaction, execute the first approved amount, and then the second approved amount, potentially draining more funds than intended. While increaseAllowance and decreaseAllowance are provided, users might still directly use approve(spender, amount).I-01
approve Race ConditionIssue
The standard approve function in ERC20 tokens is susceptible to a known front-running vulnerability. If a user approves an amount, then attempts to change that approved amount to a different non-zero value, a malicious actor could front-run the second transaction, execute the first approved amount, and then the second approved amount, potentially draining more funds than intended. While increaseAllowance and decreaseAllowance are provided, users might still directly use approve(spender, amount).
Fix
Educate users to always set their allowance to zero before approving a new non-zero amount, or to exclusively use the increaseAllowance and decreaseAllowance functions to modify existing allowances. This is a user-side best practice rather than a contract-side fix.
Status
Unresolved
Analysis
AI Copilotas of audit · Sep 4The contract utilizes SafeMath for all arithmetic operations, effectively mitigating integer overflow/underflow vulnerabilities (7.2 Code Security). The implementation adheres to the ERC20 standard, including increaseAllowance and decreaseAllowance to help mitigate common approve race conditions (7.2 Code Security). However, the use of an older Solidity compiler version (0.7.4) means the contract does not benefit from newer security features and optimizations available in later versions (7.2 Code Security). Additionally, the _setupDecimals function, while internal, allows modification of decimals post-construction, which could be problematic if exposed (7.2 Code Security).
The Governed contract implements a two-step ownership transfer process (transferOwnership and acceptOwnership), which is a good practice for securing administrative control (7.5 Governance). However, the potential for the governor to control token minting (if a public mint function is exposed by GraphToken) introduces a significant centralization risk, allowing arbitrary supply inflation (7.4 Economic). The lack of a pause mechanism also limits emergency response capabilities in critical situations (7.8 Operations).
The contract is not identified as a proxy, meaning its core logic is immutable once deployed, providing certainty for users (7.7 Upgrades). As a non-upgradeable contract, any discovered critical vulnerabilities would necessitate a new deployment and migration, which can be complex and costly for the ecosystem (7.7 Upgrades). The Governed contract manages ownership transfer, but this only applies to administrative roles, not the core contract logic (7.7 Upgrades).
It is recommended to consider migrating to a newer Solidity compiler version (e.g., 0.8.x) to leverage enhanced security features and gas efficiencies.
Implement a robust access control mechanism for any functions that modify token supply, ensuring that such power is either decentralized or protected by multi-signature governance. Additionally, evaluate the necessity of a pausability feature to enable emergency responses in unforeseen circumstances.
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.
- Aug 16, 202661Medium
Score changes are recorded as dated snapshots — history is append-only and cannot be edited.
Would You Like a More Detailed Audit of Graph Token?
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