Arkis

QuantstampFiles named in the report

Quantstamp reviewed Arkis on 12 Jan 2024: 17 findings, 0 critical; 13 marked fixed, 4 acknowledged.

No open critical findings
Open the reportOpen Arkis’s security record

Report hosted on certificate.quantstamp.com.

Trustblock does not review code.

Findings17

Statuses are the security firm’s own, from its report.

SeverityOpenAcknowledgedFixed
Critical000
High000
Medium023
Low0210
MediumLenders Provide an Interest-Free Loan if the Protocol Has Insufficient LiquidityAcknowledged

When `withdraw()` is called, the pool may lack the liquidity for a Liquidity Provider to withdraw their position. In this case, their position is deleted after tallying their debt in a queue. Positions are repaid as rewards are distributed via `returnAndDistribute()`. While a perfect liquidation mechanism could guarantee that all positions are eventually repaid, liquidity providers are not guaranteed to receive their withdrawals within any clear time horizon. In the meantime, they no longer accumulate rewards, resulting in providing an interest-free loan to the protocol.

MediumPrivileged Roles and OwnershipAcknowledged

We would like to emphasize that Arkis is a centralized protocol by design. Users should be aware that a compromised protocol admin would have the power to reroute funds by: 1. Liquidating any Margin Account at any time, regardless of position health. 2. Draining all Arkis liquidity pools.

Low`GetOperator()` Function Overloads the Payload InformationAcknowledged

The `AbstractValidator.getOperator()` function validates the status of the operator defined by the last word (32 bytes) of `msg.data`. However, the same `msg.data` is used to form a command and call a function. Hence, the message data is overloaded as it needs to specify both a function and an operator. This could accidentally send incorrect msg.data. Though extraneous `msg.data` is usually discarded, if the final argument of a function is a bytes array, the operator's address may be included as a function argument.

LowMultiBlock MEV VulnerabilityAcknowledged

Currently, block builders and validators can collude to guarantee multiple blocks in a row. If such collusion were to occur it would be possible for these miners to artificially inflate token volume without taking any risk by making a very large deposit at the first block and then a withdrawal at the last block, while censoring any Arkis-related transactions in between. As such they can benefit from an inflated token volume without assuming any of the risk normally associated with lending out tokens.

Contracts in scope

No deployed address is recorded for this audit.

The report names a repository or files. Open the report to see its scope.

Repository and files the report names (140)

  • contracts/interfaces/accountAbstraction/compliance/curveFi/ICurveFiPool.sol
  • contracts/accountAbstraction/interpreter/arkis/MarginAccountEvaluator.sol
  • contracts/accountAbstraction/interpreter/JitCompiler.sol
  • contracts/accountAbstraction/marginAccount/base/CommandSafeExecutor.sol
  • contracts/interfaces/accountAbstraction/marginAccount/IAccountFactory.sol
  • contracts/interfaces/accountAbstraction/compliance/lidoFi/IWstEth.sol
  • contracts/accountAbstraction/marginAccount/Account.sol
  • contracts/liquidityManagement/liquidityPool/base/Suspendable.sol
  • contracts/interfaces/accountAbstraction/interpreter/ILiquidityPoolsController.sol
  • contracts/libraries/Address.sol
  • contracts/liquidityManagement/liquidityPool/libraries/Queue.sol
  • contracts/accountAbstraction/interpreter/convexFi/ConvexFiEvaluator.sol
  • contracts/accountAbstraction/compliance/curveFi/CurveFiValidator.sol
  • contracts/interfaces/accountAbstraction/interpreter/Command.sol
  • contracts/accountAbstraction/interpreter/oneinchV5/libraries/UniswapTokens.sol
  • contracts/accountAbstraction/compliance/libraries/TokensRepository.sol
  • contracts/interfaces/liquidityManagement/liquidityPool/ISuspendable.sol
  • contracts/base/CommonErrors.sol
  • contracts/interfaces/marginEngine/IDispatcher.sol
  • contracts/accountAbstraction/interpreter/uniswapV3/actions/UniswapV3Exchange.sol
  • contracts/accountAbstraction/interpreter/arkis/InsuranceFundEvaluator.sol
  • contracts/accountAbstraction/interpreter/LiquidityPoolsController.sol
  • contracts/accountAbstraction/compliance/approve/ApproveValidator.sol
  • contracts/accountAbstraction/interpreter/oneinchV5/base/OneInchV5Hub.sol
  • contracts/accountAbstraction/interpreter/lidoFi/LidoFiEvaluator.sol
  • contracts/interfaces/accountAbstraction/interpreter/adapters/IExchangeEvaluator.sol
  • contracts/libraries/CalldataLibrary.sol
  • contracts/libraries/DiamondLib.sol
  • contracts/accountAbstraction/interpreter/base/LiquidityPoolsRepository.sol
  • contracts/accountAbstraction/compliance/WhitelistingController.sol
  • contracts/libraries/SafeCall.sol
  • contracts/marginEngine/Dispatcher.sol
  • contracts/interfaces/accountAbstraction/interpreter/adapters/index.sol
  • contracts/accountAbstraction/interpreter/convexFi/base/ConvexFiImmutableState.sol
  • contracts/accountAbstraction/compliance/curveFi/validators/CurveFiValidatorSwapRouter.sol
  • contracts/interfaces/accountAbstraction/compliance/convexFi/IBooster.sol
  • contracts/liquidityManagement/liquidityPool/MerkleTreeWhitelist.sol
  • contracts/interfaces/liquidityManagement/liquidityPool/IMerkleTreeWhitelist.sol
  • contracts/liquidityManagement/insuranceFund/FundFactory.sol
  • contracts/marginEngine/base/SignatureProcessor.sol
  • contracts/liquidityManagement/liquidityPool/libraries/DebtManager.sol
  • contracts/interfaces/liquidityManagement/liquidityPool/IPool.sol
  • contracts/interfaces/accountAbstraction/compliance/uniswapV3/ISwapRouter.sol
  • contracts/libraries/Nonce.sol
  • contracts/interfaces/liquidityManagement/insuranceFund/IFund.sol
  • contracts/liquidityManagement/insuranceFund/libraries/Debt.sol
  • contracts/accountAbstraction/interpreter/convexFi/ConvexFiLiquidityPoolsRepository.sol
  • contracts/accountAbstraction/interpreter/uniswapV3/actions/UniswapV3HarvestYield.sol
  • contracts/base/auth/AccessControlDS.sol
  • contracts/accountAbstraction/interpreter/libraries/Config.sol
  • contracts/accountAbstraction/interpreter/curveFi/CurveFiEvaluator.sol
  • contracts/accountAbstraction/compliance/curveFi/validators/CurveFiValidatorZapper.sol
  • contracts/accountAbstraction/interpreter/convexFi/actions/ConvexFiDecreasePosition.sol
  • contracts/liquidityManagement/insuranceFund/libraries/MoneyAccountant.sol
  • contracts/accountAbstraction/interpreter/lidoFi/base/LidoFiImmutableState.sol
  • contracts/accountAbstraction/compliance/curveFi/validators/CurveFiValidatorPlainPool.sol
  • contracts/interfaces/marginEngine/Envelope.sol
  • contracts/base/auth/OwnableReadonly.sol
  • contracts/accountAbstraction/compliance/libraries/ProtocolsRepository.sol
  • contracts/interfaces/accountAbstraction/compliance/curveFi/ICurveFiGauge.sol
  • contracts/interfaces/liquidityManagement/insuranceFund/Debt.sol
  • contracts/interfaces/accountAbstraction/compliance/convexFi/index.sol
  • contracts/accountAbstraction/interpreter/libraries/ScriptCompiler.sol
  • contracts/base/proxy/ImmutableBeaconProxy.sol
  • contracts/accountAbstraction/interpreter/curveFi/actions/CurveFiExchange.sol
  • contracts/interfaces/liquidityManagement/liquidityPool/ILiquidityPool.sol
  • contracts/interfaces/accountAbstraction/compliance/oneinchV5/IAggregationRouterV5.sol
  • contracts/accountAbstraction/compliance/AbstractValidator.sol
  • contracts/interfaces/accountAbstraction/compliance/curveFi/ICurveFiRouter.sol
  • contracts/interfaces/accountAbstraction/compliance/oneinchV5/IUniswapPool.sol
  • contracts/marginEngine/base/ThresholdsVerifier.sol
  • contracts/accountAbstraction/compliance/curveFi/validators/CurveFiValidatorMetapool.sol
  • contracts/base/auth/OwnableReadonlyDS.sol
  • contracts/interfaces/accountAbstraction/interpreter/adapters/IIncreasePositionEvaluator.sol
  • contracts/accountAbstraction/compliance/lidoFi/LidoFiValidator.sol
  • contracts/marginEngine/libraries/Envelope.sol
  • contracts/marginEngine/libraries/Package.sol
  • contracts/liquidityManagement/liquidityPool/libraries/staking/errors.sol
  • contracts/base/auth/OwnableAssignable.sol
  • contracts/liquidityManagement/liquidityPool/libraries/staking/PositionManager.sol
  • contracts/accountAbstraction/interpreter/oneinchV5/base/OneInchV5ImmutableState.sol
  • contracts/accountAbstraction/compliance/uniswapV3/UniswapV3Validator.sol
  • contracts/interfaces/accountAbstraction/interpreter/IInterpreter.sol
  • contracts/interfaces/common/IInitializable.sol
  • contracts/interfaces/accountAbstraction/compliance/convexFi/ICrvDepositor.sol
  • contracts/base/StateMachine.sol
  • contracts/interfaces/liquidityManagement/insuranceFund/IFundInitializer.sol
  • contracts/interfaces/accountAbstraction/compliance/lidoFi/IStEth.sol
  • contracts/accountAbstraction/interpreter/uniswapV3/UniswapV3LiquidityPoolsRepository.sol
  • contracts/base/FixedU256x32.sol
  • contracts/interfaces/accountAbstraction/compliance/uniswapV3/index.sol
  • contracts/interfaces/accountAbstraction/compliance/oneinchV5/index.sol
  • contracts/accountAbstraction/marginAccount/libraries/AccountFactoryRepository.sol
  • contracts/accountAbstraction/compliance/convexFi/ConvexFiValidator.sol
  • contracts/interfaces/accountAbstraction/compliance/curveFi/index.sol
  • contracts/liquidityManagement/insuranceFund/fund/Fund.sol
  • contracts/liquidityManagement/liquidityPool/pool/Pool.sol
  • contracts/interfaces/accountAbstraction/interpreter/adapters/IDecreasePositionEvaluator.sol
  • contracts/interfaces/liquidityManagement/liquidityPool/IPoolFactory.sol
  • contracts/accountAbstraction/interpreter/curveFi/actions/CurveFiHarvestYield.sol
  • contracts/accountAbstraction/interpreter/transfer/TransferEvaluator.sol
  • contracts/liquidityManagement/liquidityPool/PoolFactory.sol
  • contracts/libraries/AddressRegistry.sol
  • contracts/libraries/Asset.sol
  • contracts/interfaces/accountAbstraction/compliance/convexFi/IRewardPool.sol
  • contracts/interfaces/accountAbstraction/compliance/convexFi/IClaimZap.sol
  • contracts/liquidityManagement/liquidityPool/libraries/MerkleTreeRepository.sol
  • contracts/accountAbstraction/interpreter/uniswapV3/libraries/UniswapV3Path.sol
  • contracts/base/proxy/BeaconDS.sol
  • contracts/accountAbstraction/interpreter/oneinchV5/actions/OneInchV5Exchange.sol
  • contracts/interfaces/base/proxy/IBeacon.sol
  • contracts/interfaces/accountAbstraction/interpreter/Script.sol
  • contracts/interfaces/accountAbstraction/interpreter/adapters/ILiquidityPoolsRepository.sol
  • contracts/accountAbstraction/interpreter/lidoFi/LidoFiLiquidityPoolsRepository.sol
  • contracts/interfaces/liquidityManagement/liquidityPool/IPoolInitializer.sol
  • contracts/interfaces/accountAbstraction/marginAccount/IAccount.sol
  • contracts/interfaces/accountAbstraction/compliance/uniswapV3/IUniswapV3Pool.sol
  • contracts/accountAbstraction/marginAccount/AccountFactory.sol
  • contracts/interfaces/liquidityManagement/insuranceFund/IFundFactory.sol
  • contracts/accountAbstraction/interpreter/oneinchV5/OneInchV5Evaluator.sol
  • contracts/interfaces/accountAbstraction/compliance/Asset.sol
  • contracts/interfaces/accountAbstraction/compliance/curveFi/ICurveFiMinter.sol
  • contracts/interfaces/accountAbstraction/interpreter/adapters/PositionDescriptor.sol
  • contracts/accountAbstraction/interpreter/arkis/LiquidityPoolEvaluator.sol
  • contracts/accountAbstraction/interpreter/curveFi/actions/CurveFiDecreasePosition.sol
  • contracts/liquidityManagement/liquidityPool/libraries/staking/index.sol
  • contracts/interfaces/accountAbstraction/compliance/IWhitelistingController.sol
  • contracts/accountAbstraction/interpreter/uniswapV3/UniswapV3Evaluator.sol
  • contracts/libraries/Command.sol
  • contracts/interfaces/accountAbstraction/compliance/uniswapV3/INonfungiblePositionManager.sol
  • contracts/interfaces/accountAbstraction/interpreter/IJitCompiler.sol
  • contracts/accountAbstraction/interpreter/curveFi/CurveFiLiquidityPoolsRepository.sol
  • contracts/interfaces/marginEngine/Package.sol
  • contracts/accountAbstraction/interpreter/uniswapV3/base/UniswapV3ImmutableState.sol
  • contracts/interfaces/accountAbstraction/compliance/curveFi/ICurveFiZapper.sol
  • contracts/accountAbstraction/interpreter/curveFi/libraries/CurveFiLib.sol
  • contracts/base/auth/InternalModifierDS.sol
  • contracts/accountAbstraction/interpreter/libraries/Path.sol
  • contracts/liquidityManagement/liquidityPool/libraries/staking/RewardsMath.sol
  • contracts/accountAbstraction/interpreter/uniswapV3/actions/UniswapV3DecreasePosition.sol

Part of Arkis’s security record

Arkis
Audits2 audits by 2 firmsLast audit May 2025, by Cantina.
Critical findingsNo open critical findingsAcross 2 reports.
Open Arkis’s security record

Security firm

Quantstamp

236 projects reviewed · 332 reports · latest Oct 2026

See Quantstamp’s audits

Something wrong on this page? A missing report, a wrong date, a finding that was fixed since. Tell us and we check it against its source.

Tell us