Oikos

QuillAuditsFiles named in the report

Audit · firm’s term: audit report

QuillAudits reviewed Oikos Cash (Oikos) on 30 Apr 2025: 12 findings, 0 critical; 5 marked fixed, 7 open.

No open critical findings
Open the reportOpen Oikos Cash’s security record

Report hosted on quillaudits.com.

Trustblock does not review code.

Findings12

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

SeverityOpenAcknowledgedFixed
Critical000
High001
Medium001
Low703
LowAmbiguity in onlyVault modifier allows both vault and staking contract to call protected functionsOpen

The onlyVault modifier in the staking contract is currently ambiguous, allowing both the vault and staking contract to call functions protected by this modifier. This could lead to confusion about which contract is intended to have exclusive access to these functions.

LowIdentical Function Signatures: mintTokens(address,uint256) in Multiple ContractsOpen

Both LendingVault::mintTokens() and NomaFactory::mintTokens() share the same function selector f0dda65c. This could lead to confusion in logs, tooling, or proxy setups, especially in cases where introspection or low-level calls are involved.

LowMismatched NatSpec comments and code structures can cause confusionOpen

The codebase contains NatSpec comments that do not accurately reflect the corresponding code structures. This mismatch can lead to confusion for devs trying to understand the intended functionality and usage of these structures

LowMissing Lender Controls Over Loan RolloversOpen

The rollLoan function allows borrowers to extend (roll) their loan duration and increase borrow amounts, without any lender-side constraints or approval. There is no restriction on the number of rollovers, total duration, or borrower eligibility.<br>As a result:<br>- Borrowers may infinitely roll their loans<br>- Lenders may be locked into illiquid positions<br>- There is no mechanism for lenders to enforce repayment or liquidation, despite borrower expiry or

LowMissing or Extra Struct Variables Compared to DocstringsOpen

Multiple struct definitions in the codebase contain discrepancies between their declared fields and the comments/documentation provided. This creates confusion and increases the likelihood of bugs, misconfigurations, or developer misunderstanding.<br>1. Struct: RewardParams<br>2. Missing: imv, spotPrice, totalSupply, kr<br>3. Unexpected: totalStaked (not mentioned in comment)<br>4. Struct: ProtocolParameters<br>5. Docstring omits: shiftAnchorUpperBips, slideAnchorUpperBips, and all the fee-related fields<br>6. These may be valid additions, but comments should be updated accordingly<br>7. Struct: LiquidityInternalPars<br>8. Docstring doesn’t match the struct at all — likely refers to a different struct entirely<br>9. The struct itself is clear, but needs correct documentation

LowRedundant condition in TokenFactory's _deployNomaToken functionOpen

The _deployNomaToken function in TokenFactory.sol contains a redundant condition that checks if the proxy address is greater than or equal to _token1. This check is unnecessary because the logic of the do...while loop already ensures that this condition will never be true when the loop exits.

LowUnused modifiersOpen

There are few modifiers which are not used in contracts.<br>- onlyVault in LendingVault<br><br>The codebase contains several unused functions, variables, and libraries that contribute to unnecessary complexity and potential confusion for developers and auditors. These unused elements can obscure the code's true functionality and make maintenance more challenging.<br><br>- MockNomaTokenRestricted.sol and Bootstrap.sol are unused.<br><br>- In StakingVault.sol, the LiquidityOps library and functions _collectLiquidity and _transferExcessBalance are defined but not used.<br><br>- In NomaFactory.sol, the teamMultiSig address is declared but never set, rendering it ineffective.<br><br>- In Presale.sol, the variables MIN_CONTRIBUTION and MAX_CONTRIBUTION are calculated in the constructor but never used.<br>

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 (14)

  • Bootstrap.sol
  • StakingVault.sol
  • TokenFactory.sol
  • src/staking/Staking.sol
  • src/vault/LendingVault.sol
  • src/factory/NomaFactory.sol
  • dit_ready/src/bootstrap/Migration.sol
  • NomaFactory.sol
  • src/factory/TokenFactory.sol
  • src/types/Types.sol
  • MockNomaTokenRestricted.sol
  • src/bootstrap/Migration.sol
  • Presale.sol
  • src/bootstrap/Presale.sol

Part of Oikos Cash’s security record

Oikos Cash
Audits1 audit by 1 firmLast audit Apr 2025, by QuillAudits.
Critical findingsNo open critical findingsIn 1 report.
Open Oikos Cash’s security record

Security firm

QuillAudits

350 projects reviewed · 459 reports · latest Apr 2025

See QuillAudits’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