Web3 · Smart Contract Audit
1inch
softstack has completed 7 smart contract audits for 1inch between November 2020 and October 2021, reporting 13 findings in total (2 medium, 3 low and 8 informational). Every report is published in the softstack public audit archive.
Key facts
- Client
- 1inch
- Audits completed
- 7
- First audited
- Latest audit
- Type
- Smart Contract Audit
- Chains
- BNB Chain, Polygon, Ethereum
- Languages
- Solidity
- Market cap
- $143M as of 2026-10-27
About the project
1inch is a decentralised exchange aggregator that routes trades across multiple liquidity sources to secure rates better than a single venue offers. The network extends to a self-custodial wallet, portfolio tracking and a payment card built on the same open-source, onchain protocols. It operates on Ethereum, BNB Chain, Polygon and other supported networks.
Findings
Combined across all 7 reviews softstack has completed for 1inch. Each report is broken out below.
Reports
Newest first. Every report covers its own scope and commit.
Limit Order Protocol v2 smart contract audit
0Critical0High0Medium0Low0InformationalNo security findings reported.
Scope
Source repositorygithub.com/1inch/limit-order-protocolComponents reviewed
3 modules · 3 files- LimitOrderProtocol.sol
- OrderMixin.sol
- OrderRFQMixin.sol
Router & RFQ v4 smart contract audit
0Critical0High0Medium0Low1Informational0 of 1 resolved
Scope
Components reviewed
1 module · 1 file- AggregationRouterV4.sol
All 1 findings
ID Title Severity Status 5.1.1Extensive owner rights Code Snippet Result/Recommendation The owner has extensive rights, which can lead to a vulnerability once the private key got lost or hacked. This is the case if the access to the owner wallet is not a multi-sig.
Informational acknowledged Cumulative Merkle Drop smart contract audit
0Critical0High0Medium0Low0InformationalNo security findings reported.
Scope
Components reviewed
1 module · 1 file- CumulativeMerkleDrop.sol
Limit Order Protocol (Re-check after compiler downgrade to 0.7.6) smart contract audit
0Critical0High0Medium0Low0InformationalNo security findings reported.
Scope
Source repositorygithub.com/1inch/limit-order-protocolComponents reviewed
1 module · 1 file- LimitOrderProtocol.sol
Limit Order Protocol smart contract audit
0Critical0High0Medium0Low0InformationalNo security findings reported.
Scope
Components reviewed
1 module · 1 file- LimitOrderProtocol.sol
Mooniswap V2 & 1INCH Token smart contract audit
0Critical0High2Medium3Low4InformationalScope
Source repositorygithub.com/1inch-exchange/mooniswap-v2Components reviewed
14 modules · 25 files- governance/BaseGovernanceModule.sol
- governance/GovernanceFeeReceiver.sol
- governance/MooniswapFactoryGovernance.sol
- b6897544aafc9fbe51fb3a768899egovernance/MooniswapGovernance.sol
- d2da174d0d92fc45e63eadbbb8a9da5bgovernance/rewards/IRewardDistributionRecipient.sol
- governance/rewards/Rewards.sol
- inch/GovernanceMothership.sol
- interfaces/IGovernanceModule.sol
- f2dd63a8e644bf85e5e31710459606ecinterfaces/IMooniswapDeployer.sol
- interfaces/IMooniswapFactoryGovernance.sol
- e79b4b78ed8554dd8349aed6fe64cbinterfaces/IReferralFeeReceiver.sol
- db0c64ea1b01385f418f2feca6e8d1fclibaries/LiquidVoting.sol
- libaries/Sqrt.sol
- libaries/UniERC20.sol
All 7 findings
ID Title Severity Status 5.1.1Cannot pause / shutdown Mooniswap Factory Code Snippet Result/Recommendation The Mooniswap.sol contract needs a mechanism for the owner to pause the contract. This disables the swap functionality. However, there is no corresponding mechanism to shutdown the contract.
Medium fixed 5.1.2Potential violation of Checks-Effects-Interaction pattern Code Snippet Result/Recommendation Potential violation of Checks- Effects-Interaction pattern. Could potentially lead to re- entrancy vulnerability.
Medium fixed 5.1.3Potential front running attack or losing of allowance Code Snippet Result/Recommendation The _approve method replaces the allowance, so there are two potential problems here: 1.
Low acknowledged 5.1.4Mismatch of argument name in _PERMIT_TYPEHASH and permit function Code Snippet Result/Recommendation At the line ERC20Permit.sol#L27 the value argument is used but at the line ERC20Permit.sol#L32 the argument name is amount .
Low fixed 5.1.5Use SafeCast library for uintXX/intXX wrapper Code Snippet Result/Recommendation Wrappers over Solidity's uintXX/intXX casting operators with added overflow checks. Downcasting from uint256/int256 in Solidity does not revert on overflow.
Low fixed 5.1.7Fix Spelling and Grammatical Errors Code Snippet Result/Recommendation Language mistakes were identified in the messages in the codebase.
Informational fixed 5.1.9"dist:factory": "truffle-flattener Mooni* (rename) Code Snippet Result/Recommendation Failed at the @1inch/mooniswap@0.0.1 dist:factory script. Line: 43 "dist:factory": "truffle-flattener ./contracts/MooniFactory.sol | awk '/SPDX- License-Identifier/&&c++>0 {next} 1' >…
Informational fixed Exchange Contracts smart contract audit
0Critical0High0Medium0Low3InformationalScope
Components reviewed
12 modules · 12 files- OneInchExchange.sol
- OneInchFlags.sol
- RevertReasonParser.sol
- UniERC20.sol
- IOneInchCaller.sol
- IERC20Permit.sol
- IChi.sol
- OneInchExchange.solhelpers/RevertReasonParser.solhelpers/UniERC20.sol
- Interfaces/IOneInchCaller.sol
- Interfaces/IERC20Permit.sol
- Interfaces/IChi.sol
- helpers/UniERC20.sol
Mooniswap V2 & 1INCH Token smart contract audit
Earlier issue of the same review. Its findings are counted once in the combined total above.
0Critical0High2Medium3Low4InformationalScope
Source repositorygithub.com/1inch-exchange/mooniswap-v2Components reviewed
14 modules · 35 files- governance/BaseGovernanceModule.sol
- governance/ExchangeGovernance.sol
- governance/GovernanceFeeReceiver.sol
- governance/GovernanceRewards.sol
- governance/MooniswapFactoryGovernance.sol
- governance/MooniswapGovernance.sol
- farming/FarmingRewards.sol
- inch/GovernanceMothership.sol
- D56E80B545EF47C357EE7D85C9D9Dinterfaces/IExchangeGovernance.sol
- B2C61C7F531C6748C9A7F282B37B632Cinterfaces/IFeeCollector.sol
- interfaces/IGovernanceModule.sol
- C394F645331661AF1D2372F6E62Binterfaces/IMooniswapDeployer.sol
- interfaces/IMooniswapFactory.sol
- interfaces/IMooniswapFactoryGovernance.sol
All 7 findings
ID Title Severity Status 5.1.1Cannot pause / shutdown Mooniswap Factory Code Snippet Result/Recommendation The Mooniswap.sol contract needs a mechanism for the owner to pause the contract. This disables the swap functionality. However, there is no corresponding mechanism to shutdown the contract.
Medium fixed 5.1.2Potential violation of Checks-Effects-Interaction pattern Code Snippet Result/Recommendation Potential violation of Checks- Effects-Interaction pattern. Could potentially lead to re- entrancy vulnerability.
Medium fixed 5.1.3Potential front running attack or losing of allowance Code Snippet Result/Recommendation The _approve method replaces the allowance, so there are two potential problems here: 1.
Low acknowledged 5.1.4Mismatch of argument name in _PERMIT_TYPEHASH and permit function Code Snippet Result/Recommendation At the line ERC20Permit.sol#L27 the value argument is used but at the line ERC20Permit.sol#L32 the argument name is amount .
Low fixed 5.1.5Use SafeCast library for uintXX/intXX wrapper Code Snippet Result/Recommendation Wrappers over Solidity's uintXX/intXX casting operators with added overflow checks. Downcasting from uint256/int256 in Solidity does not revert on overflow.
Low fixed 5.1.7Fix Spelling and Grammatical Errors Code Snippet Result/Recommendation Language mistakes were identified in the messages in the codebase.
Informational fixed 5.1.9"dist:factory": "truffle-flattener Mooni* (rename) Code Snippet Result/Recommendation Failed at the @1inch/mooniswap@0.0.1 dist:factory script. Line: 43 "dist:factory": "truffle-flattener ./contracts/MooniFactory.sol | awk '/SPDX- License-Identifier/&&c++>0 {next} 1' >…
Informational fixed
Methodology
Review process
Scoping and threat modelling
The commit hash is frozen and the attack surface is mapped: asset flows, trust assumptions, privileged roles and the external systems the code depends on.
Automated analysis
Static analysers sweep the full codebase to surface known weakness patterns, unreachable states and deviations from established conventions.
Manual code review
Independent engineers read the code line by line, concentrating on business logic, access control, arithmetic and the handling of external calls.
Adversarial testing
Property-based fuzzing and invariant tests attack the assumptions the protocol relies on, targeting states that ordinary unit tests never reach.
Reporting
Every finding is documented with a severity rating, its impact, the steps to reproduce it and a concrete remediation the team can act on.
Remediation verification
Submitted fixes are re-reviewed against the original finding, and the final report records the resolved state of each one.
Standards and references
- SWC RegistrySmart Contract Weakness Classification
- CWECommon Weakness Enumeration
FAQ
7 separate reviews, the first in November 2020 and the most recent in October 2021. Each one covers its own scope and commit, and is listed individually on this page.
13 findings across all 7 reviews: 2 medium, 3 low and 8 informational.
Each report covers the code as it stood at the commit it names, the most recent in October 2021. Any code changed after that point is outside the reviewed scope.
Disclaimer
This audit represents a point-in-time security assessment of the reviewed codebase and is intended for informational purposes only. While Softstack applies industry-standard security review methodologies, no audit can guarantee the absence of vulnerabilities, bugs, or other security risks. This report does not constitute financial, legal, regulatory, or investment advice, nor does it endorse the project, its business model, products, or services. Security is an ongoing process, and we strongly recommend conducting a new assessment following any material code changes or at least every 6 months to address newly emerging threats, vulnerabilities, and ecosystem developments.