The crvUSD Stablecoin contract is a Vyper-based ERC-20 token implementation, including EIP-2612 permit functionality and a centralized minter role. The code demonstrates high quality, robust handling of integer arithmetic, and adherence to ERC standards. Key security features like replay protection for EIP-2612 and explicit overflow/underflow checks are correctly implemented. The primary risk identified is the centralized control over token minting, which is a design decision inherent to many stablecoins but represents a single point of failure.

On-chain security analysis — is it a scam or legit?
Is Curve.Fi USD Stablecoin 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 crvUSD Stablecoin contract is a Vyper-based ERC-20 token implementation, including EIP-2612 permit functionality and a centralized minter role.
Read the full analysis- Ownership status UNKNOWN
- 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 = 96.6%
- LP top3 unlocked holders = 100.0%
- 1 Medium finding(s) from audit
Exact factors
- Ownership status UNKNOWN (owner could not be resolved)
- Mintable supply — no cap found, dilution unbounded
- Top-10 concentration > 30% (76.5% total → 30.6% effective; 0.0% in EOAs, 76.5% in contracts — moderate)
- Liquidity not locked, but no owner/deployer address holds LP — market-depth risk, not rug risk
- LP top1 unlocked holder = 96.6% (independent LP — depth risk, pool = 42% of DEX liquidity)
- LP top3 unlocked holders = 100.0% (independent LP — depth risk, pool = 42% of DEX liquidity)
- 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, staking76.5%
- Everyone elsethe rest of the supply23.5%
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- Curve twoWETHAnalysed$53.04M41.9%
- CurveUSDT$52.00M41.0%
- CurveUSDC$19.12M15.1%
- Curve triWETH$1.90M1.5%
- Curve twoWETH$654.4K0.5%
- Uniswap v3USDC$1.9K0.0%
Show 4 more pairs
The 3 remaining pairs hold $193 between them and are not listed. 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.
0x5c0e…cf9a0x7009…5c02No privileged address appears among these holders: the unlocked liquidity sits with independent providers, not with the deployer.
Security Findings
MediumCentralized Minter Role
The minter address holds exclusive control over the mint function, allowing it to create an arbitrary amount of new tokens. Additionally, the minter can transfer this privilege to any other address via set_minter. While this is a common design for centralized stablecoins, it introduces a significant single point of failure. A compromise of the minter's private key would allow an attacker to inflate the token supply, leading to a loss of peg and severe economic consequences for the protocol and its users.M-01
Issue
The minter address holds exclusive control over the mint function, allowing it to create an arbitrary amount of new tokens. Additionally, the minter can transfer this privilege to any other address via set_minter. While this is a common design for centralized stablecoins, it introduces a significant single point of failure. A compromise of the minter's private key would allow an attacker to inflate the token supply, leading to a loss of peg and severe economic consequences for the protocol and its users.
Fix
Implement robust security measures for the minter address, such as a multi-signature wallet with a high threshold for transactions, or a time-locked governance mechanism. Establish clear operational procedures for managing the minter key and any changes to the minter address. Consider a mechanism for emergency pausing or rate-limiting minting if feasible within the protocol's design.
Status
Unresolved
InfoStandard ERC-20 approve Race Condition
The approve function, as per the ERC-20 standard, is susceptible to a known front-running or race condition attack. If a user increases an allowance from X to Y and a malicious spender observes this transaction, they can front-run it by spending the original X allowance, then allowing the user's approve(Y) transaction to confirm, and finally spending Y tokens. This results in the spender taking X + Y tokens instead of just Y (or X if the user intended to decrease). The contract's docstring for approve acknowledges this and recommends increaseAllowance and decreaseAllowance as safer alternatives.I-01
approve Race ConditionIssue
The approve function, as per the ERC-20 standard, is susceptible to a known front-running or race condition attack. If a user increases an allowance from X to Y and a malicious spender observes this transaction, they can front-run it by spending the original X allowance, then allowing the user's approve(Y) transaction to confirm, and finally spending Y tokens. This results in the spender taking X + Y tokens instead of just Y (or X if the user intended to decrease). The contract's docstring for approve acknowledges this and recommends increaseAllowance and decreaseAllowance as safer alternatives.
Fix
Educate users to primarily use increaseAllowance and decreaseAllowance instead of directly calling approve when changing an existing allowance. If approve must be used to change an allowance, it is best practice to first set the allowance to zero before setting it to a new non-zero value.
Status
Unresolved
InfoImmutability of EIP-712 salt from block.prevhash
The EIP-712 domain separator salt is initialized in the constructor using block.prevhash and then made immutable. While block.prevhash provides a unique value for the deployment, ensuring domain separation, it is not a cryptographically strong source of randomness. For the specific purpose of an EIP-712 salt, which primarily needs to be unique per deployment and consistent, this approach is generally acceptable and does not pose a direct security vulnerability. The contract also correctly recalculates the domain separator if chain.id changes, enhancing fork safety.I-02
salt from block.prevhashIssue
The EIP-712 domain separator salt is initialized in the constructor using block.prevhash and then made immutable. While block.prevhash provides a unique value for the deployment, ensuring domain separation, it is not a cryptographically strong source of randomness. For the specific purpose of an EIP-712 salt, which primarily needs to be unique per deployment and consistent, this approach is generally acceptable and does not pose a direct security vulnerability. The contract also correctly recalculates the domain separator if chain.id changes, enhancing fork safety.
Fix
No direct action is required as the current implementation is acceptable for its intended purpose. For future contracts requiring stronger randomness or unpredictability for initialization parameters, consider using a Verifiable Random Function (VRF) or a more robust source of entropy if available and appropriate for the use case.
Status
Unresolved
Analysis
AI Copilotas of audit · Sep 4The contract exhibits strong technical security (7.2 Code Security). It correctly implements ERC-20 and EIP-2612 standards, including robust replay protection for permits and ERC-1271 support for contract accounts. All arithmetic operations are safeguarded against overflow and underflow, either by Vyper's default checks or explicit bounds checking in increaseAllowance and decreaseAllowance. The architecture (7.1 Architecture) is straightforward for a token contract, with internal functions for core logic and external wrappers. No reentrancy or other common EVM vulnerabilities were identified.
The economic model (7.4 Economic) centers around a stablecoin with a centralized minter role. This minter has the sole authority to mint new tokens and transfer the minter privilege (7.5 Governance). While this is a common design for certain stablecoins, it introduces a significant centralization risk. A compromise of the minter address would allow an attacker to mint an unlimited supply of tokens, severely impacting the stablecoin's peg and the protocol's integrity. There are no external dependencies (7.6 External) that introduce governance or economic risk.
This contract is not designed with an upgrade mechanism (7.7 Upgrades). It is deployed as a standalone, immutable contract. Therefore, there are no upgrade-related risks to assess. Any future changes would require a new deployment and migration.
Ensure the private key controlling the minter address is secured with the highest possible standards, ideally using a multi-signature wallet or a hardware security module.
Implement robust operational procedures (7.8 Operations) for managing this key and any set_minter operations. While the contract is technically sound, continuous monitoring of the minter address for unusual activity is recommended. Consider transparent reporting on minting activities to enhance trust and accountability.
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, 202642Medium
- Aug 11, 202641Medium
Score changes are recorded as dated snapshots — history is append-only and cannot be edited.
Would You Like a More Detailed Audit of Curve.Fi USD Stablecoin?
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