AI Slop Code Risk Monitor

bisq-network/bisq

SlopCodeMonitor badge for bisq-network/bisq Adjusted legacy signal; badge bands: 25 / 50 / 75 (different from dashboard bands).

A decentralized bitcoin exchange network

0.5 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for bisq-network/bisq, a Java project with 5,152 GitHub stars. SynthScan examined 461,888 lines of code across 3105 source files, recording 112 pattern matches distributed across 10 syntactic categories. The legacy adjusted pattern signal is 0.5 (Low pattern signal); it is not an authorship estimate.

Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.

0.5
Adjusted Signal
0.5
Raw Pattern Score
100%
Time Factor
2026-10-30
Last Push
5.2K
Stars
Java
Language
461.9K
Lines of Code
3.1K
Files
112
Pattern Hits
2026-10-31
Scan Date
0.00
HC Hit Rate

Risk Review · Payload v1

Use each vector to guide manual verification of the underlying findings.

Payload schema: 1.0.0 · Engine: 2.0.0 · Scoring: heuristic-density-v1 · Scan date: 2026-10-31.

Cognitive Ownership Risk 1.7/100 · LOW

Can maintainers explain intent, assumptions, and trade-offs? 103 finding(s).

Hallucinated Dependency & Supply Chain Risk 0.7/100 · LOW

Are imports declared and package/API names verified? 9 finding(s).

Agent Over-Engineering Ratio 0.1/100 · LOW

Are wrappers, guards, and repeated structures necessary? 8 finding(s).

PR Review Velocity Impact 2.2/100 · LOW

Which changes need focused human review? 112 finding(s).

What These Metrics Mean

Adjusted Signal
Legacy pattern score normalized per 1,000 scanned lines and multiplied by the repository-level time factor. It is not an estimate of AI authorship.
Raw Pattern Score
Sum of severity- and context-weighted pattern findings before applying the time factor.
Time Factor
A coarse multiplier based on repository last-push metadata. It does not identify when individual code was written.
Pattern Hits
Count of configured pattern findings. Review each location and surrounding code before acting.
HC Hit Rate
High- and critical-severity findings per scanned file. Severity is a configured detector weight, not proof of a vulnerability or authorship.
Lines / Files
Scan coverage denominators used by the legacy normalized score.

Pattern-Signal History

This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.

Severity Breakdown

Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.

CRITICAL 6HIGH 0MEDIUM 18LOW 88

Directory Score Breakdown

This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.

Pattern Findings

The scanner identified 112 distinct pattern matches across 10 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.

Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.

Hallucination Indicators6 hits · 60 pts
SeverityFileLineSnippetContext
CRITICAL…ain/java/bisq/daemon/grpc/GrpcErrorMessageHandler.java137 return bisq.core.offer.availability.AvailabilityResult.fromProto(proto).getDescription();CODE
CRITICAL…/src/test/java/bisq/apitest/dao/ProposalPhaseTest.java110 @org.junit.jupiter.params.provider.ValueSource(strings = {CODE
CRITICAL…est/java/bisq/apitest/method/wallet/BtcWalletTest.java104 bisq.core.api.model.BtcBalanceInfo.valueOf(CODE
CRITICAL…st/java/bisq/apitest/method/wallet/WalletTestUtil.java16 bisq.core.api.model.BtcBalanceInfo.valueOf(1000000000,CODE
CRITICAL…st/java/bisq/apitest/method/wallet/WalletTestUtil.java47 return bisq.core.api.model.BsqBalanceInfo.valueOf(availableBalance,CODE
CRITICAL…main/java/bisq/network/p2p/storage/P2PDataStorage.java1241 .map(e -> new Tuple2<>(org.bitcoinj.core.Utils.HEX.encode(get32ByteHashAsByteArray(e.getProtectedStoCODE
Over-Commented Block57 hits · 57 pts
SeverityFileLineSnippetContext
LOW…/dao/burningman/BurningManPresentationServiceTest.java41 // Target myShare: 0.75COMMENT
LOW…/dao/burningman/BurningManPresentationServiceTest.java81 myTargetShare = 0;COMMENT
LOW…/dao/burningman/BurningManPresentationServiceTest.java101 // Others: 99COMMENT
LOW…rc/main/java/bisq/core/btc/TxFeeEstimationService.java41 */COMMENT
LOW…rc/main/java/bisq/core/btc/TxFeeEstimationService.java161 // We start with the initialEstimatedTxVsize for a tx with 1 input (175) vbytes and get from BitcoinJ a tx back whicCOMMENT
LOW…re/src/main/java/bisq/core/btc/setup/WalletConfig.java321 } else if (chainFileExists) {COMMENT
LOW…c/main/java/bisq/core/btc/wallet/BtcWalletService.java301 // Blind vote txCOMMENT
LOW…c/main/java/bisq/core/btc/wallet/BtcWalletService.java421 // Vote reveal txCOMMENT
LOW…c/main/java/bisq/core/btc/wallet/BtcWalletService.java441COMMENT
LOW…c/main/java/bisq/core/btc/wallet/BtcWalletService.java481 // preparedBsqTx has following structure:COMMENT
LOW…main/java/bisq/core/btc/wallet/TradeWalletService.java221 // preparedBsqTx has following structure:COMMENT
LOW…rc/main/java/bisq/core/offer/bisq_v1/OfferPayload.java61 // Instance fieldsCOMMENT
LOW…/main/java/bisq/core/offer/bisq_v1/TakeOfferModel.java141 @OverrideCOMMENT
LOW…va/bisq/core/trade/protocol/bisq_v1/BuyerProtocol.java61 // the trade without any resend attempts (buyer stuck at "Please send confirmationCOMMENT
LOW…ler/SellerSendsDepositTxAndDelayedPayoutTxMessage.java101COMMENT
LOW…main/java/bisq/core/payment/payload/PaymentMethod.java321COMMENT
LOW…n/java/bisq/core/dao/burningman/BurnTargetService.java181 .filter(reimbursementModel -> reimbursementModel.getHeight() <= chainHeight)COMMENT
LOW…src/main/java/bisq/core/dao/state/DaoStateService.java821COMMENT
LOW…e/src/main/java/bisq/core/dao/state/GenesisTxInfo.java81 @GetterCOMMENT
LOW…/java/bisq/core/dao/state/DaoStateSnapshotService.java181 // and we got called back from daoStateMonitoringService once the hashes are created from peers data.COMMENT
LOW…e/dao/governance/blindvote/MyBlindVoteListService.java401 return bsqWalletService.signTxAndVerifyNoDustOutputs(txWithBtcFee);COMMENT
LOW…java/bisq/core/dao/governance/period/CycleService.java101 return blockHeight >= cycle.getHeightOfFirstBlock() &&COMMENT
LOW…rc/main/java/bisq/core/dao/governance/param/Param.java121 // We re-purpose it as value for BTC fee revenue per cycle. This can be added as oracle data by DAO voting.COMMENT
LOW…/core/dao/governance/votereveal/VoteRevealService.java161 ///////////////////////////////////////////////////////////////////////////////////////////COMMENT
LOW…q/core/dao/node/messages/NewBlockBroadcastMessage.java81COMMENT
LOW…ain/java/bisq/core/dao/node/parser/TxOutputParser.java301 case ASSET_LISTING_FEE:COMMENT
LOW…e/src/main/java/bisq/core/provider/fee/FeeService.java161 }COMMENT
LOWcore/src/main/java/bisq/core/api/CoreOffersService.java361 String upperCaseCurrencyCode = currencyCode.toUpperCase();COMMENT
LOWcore/src/main/java/bisq/core/api/CoreHelpService.java81 // out.println(coreHelpService.getMethodHelp("lockwallet"));COMMENT
LOW…/java/bisq/core/account/sign/SignedWitnessService.java661 if (set.isEmpty()) {COMMENT
LOW…in/java/bisq/desktop/util/validation/SbpValidator.java21COMMENT
LOW…ain/java/bisq/desktop/components/BalanceTextField.java81 ///////////////////////////////////////////////////////////////////////////////////////////COMMENT
LOW…main/java/bisq/desktop/components/chart/ChartView.java721 // Chart update after data changeCOMMENT
LOW…p/main/offer/bisq_v1/takeoffer/TakeOfferDataModel.java221COMMENT
LOW…p/main/offer/bisq_v1/takeoffer/TakeOfferDataModel.java361 // Another edge case not handled correctly is: If there are many small inputs and user add a large input later theCOMMENT
LOW…mon/src/test/java/bisq/common/crypto/EquihashTest.java141 public void solutionCountPerNonceStats() {COMMENT
LOWapitest/docker/dao-compose.compat.yml1# Compatibility override for dao-compose.yml. Points one peer (bob) at theCOMMENT
LOWapitest/docker/run-e2e-tests-compat.sh1#!/usr/bin/env bashCOMMENT
LOWapitest/docker/run-e2e-tests.sh1#!/usr/bin/env bashCOMMENT
LOWapitest/docker/run-e2e-tests.sh21# READY_TIMEOUT_SECS per-daemon readiness wait (default: 300)COMMENT
LOWapitest/docker/run-e2e-tests.sh81LOGS_DIR="${SCRIPT_DIR}/logs"COMMENT
LOWapitest/docker/bitcoind-entrypoint.sh1#!/bin/shCOMMENT
LOWapitest/scripts/trade-xmr-simulation.sh1#! /bin/bashCOMMENT
LOWapitest/scripts/trade-xmr-simulation.sh21#COMMENT
LOWapitest/scripts/mainnet-test.sh1#!/usr/bin/env batsCOMMENT
LOWapitest/scripts/trade-simulation.sh1#! /bin/bashCOMMENT
LOWapitest/scripts/trade-simulation.sh21# - Only regtest btc can be bought or sold with the test payment account.COMMENT
LOWapitest/scripts/limit-order-simulation.sh1#! /bin/bashCOMMENT
LOWapitest/scripts/limit-order-simulation.sh21#COMMENT
LOWapitest/scripts/bsqswap-simulation.sh1#! /bin/bashCOMMENT
LOWapitest/scripts/bsqswap-simulation.sh21#COMMENT
LOWapitest/scripts/rolling-offer-simulation.sh1#! /bin/bashCOMMENT
LOWapitest/scripts/rolling-offer-simulation.sh21# These should be run using the apitest harness. From the root project dir, run:COMMENT
LOW…itest/src/main/java/bisq/apitest/linux/BitcoinCli.java81 if (isError())COMMENT
LOW…/test/java/bisq/network/http/UrlSafetyCheckerTest.java201 // P2P, an explorer URL pulled from preferences, etc. Goals tested below:COMMENT
LOWp2p/src/test/java/bisq/network/p2p/DummySeedNode.java61 private final String defaultUserDataDir;COMMENT
LOWp2p/src/main/java/bisq/network/http/HttpClientImpl.java361 // Register socket factories that pass the unresolved hostname through toCOMMENT
AI Slop Vocabulary10 hits · 34 pts
SeverityFileLineSnippetContext
MEDIUM…a/bisq/core/account/sign/SignedWitnessServiceTest.java845 // sw1 also signs sw3 (not supported yet but a possible addition for a more robust system)COMMENT
MEDIUMapitest/docker/run-e2e-tests-compat.sh76# 1. Current-tree install dists + dao-setup (master harness + 3 peers).COMMENT
MEDIUMapitest/docker/run-e2e-tests-compat.sh108# 4. Release peer image (inherits master harness, swaps app binaries).COMMENT
MEDIUM⚡apitest/scripts/trade-xmr-simulation.sh15# These should be run using the apitest harness. From the root project dir, run:COMMENT
MEDIUMapitest/scripts/trade-simulation.sh18# These should be run using the apitest harness. From the root project dir, run:COMMENT
MEDIUM⚡apitest/scripts/limit-order-simulation.sh17# These should be run using the apitest harness. From the root project dir, run:COMMENT
MEDIUMapitest/scripts/bsqswap-simulation.sh15# These should be run using the apitest harness. From the root project dir, run:COMMENT
MEDIUM⚡apitest/scripts/rolling-offer-simulation.sh21# These should be run using the apitest harness. From the root project dir, run:COMMENT
MEDIUM.github/workflows/e2e-tests-compat.yml54 # Master (current branch) install dists + dao-setup — the stack harness andCOMMENT
MEDIUM.github/workflows/e2e-tests-compat.yml125 # Release peer image: inherits the master harness, swaps app binaries.COMMENT
Self-Referential Comments7 hits · 27 pts
SeverityFileLineSnippetContext
MEDIUMcli/package/create-cli-dist.sh26 # Create a clean directory to hold the tarball's content.COMMENT
MEDIUMdaemon/package/create-daemon-dist.sh26 # Create a clean directory to hold the tarball's content.COMMENT
MEDIUMapitest/docker/bitcoind-entrypoint.sh71# Create a descriptor wallet "testwallet" after RPC comes up. The legacyCOMMENT
MEDIUM⚡apitest/scripts/trade-xmr-simulation.sh28# Create a buy/xmr offer to buy 0.125 btc at an xmr fixed-price of 0.05 btc, using an xmr payment account:COMMENT
MEDIUM⚡apitest/scripts/trade-xmr-simulation.sh32# Create a sell/xmr offer to sell 0.125 btc at at an xmr mkt-price-margin of 0%, using using an xmr payment account:COMMENT
MEDIUM⚡apitest/scripts/limit-order-simulation.sh32# Create a sell/eur offer to sell 0.125 btc at a fixed-price of 38,000 euros, using a France face to faceCOMMENT
MEDIUM⚡apitest/scripts/rolling-offer-simulation.sh36# Create a buy/usd offer to sell 0.1 btc at 2% above market price, using a US face to face payment account:COMMENT
Example Usage Blocks8 hits · 14 pts
SeverityFileLineSnippetContext
LOWapitest/docker/run-e2e-tests-compat.sh12# Usage:COMMENT
LOWapitest/docker/run-e2e-tests.sh10# Usage:COMMENT
LOW⚡apitest/scripts/trade-xmr-simulation.sh18# Usage:COMMENT
LOWapitest/scripts/mainnet-test.sh13# Usage:COMMENT
LOWapitest/scripts/trade-simulation.sh23# Usage:COMMENT
LOW⚡apitest/scripts/limit-order-simulation.sh22# Usage:COMMENT
LOWapitest/scripts/bsqswap-simulation.sh18# Usage:COMMENT
LOW⚡apitest/scripts/rolling-offer-simulation.sh26# Usage:COMMENT
Structural Annotation Overuse8 hits · 12 pts
SeverityFileLineSnippetContext
LOWdesktop/src/main/java/bisq/desktop/app/BisqApp.java134 // NOTE: This method is not called on the JavaFX Application Thread.COMMENT
LOWdocs/release-checklist.md19## Step 1: Update the version numberCOMMENT
LOWdocs/release-checklist.md49## Step 2: Update the bundled data filesCOMMENT
LOWdocs/release-checklist.md286## Step 3: Release notesCOMMENT
LOWdocs/release-checklist.md309## Step 4: BuildCOMMENT
LOWdocs/release-checklist.md382## Step 5: SignCOMMENT
LOWdocs/release-checklist.md430## Step 6: PublishCOMMENT
LOWdocs/release-checklist.md475## Step 7: After the releaseCOMMENT
Hyper-Verbose Identifiers8 hits · 8 pts
SeverityFileLineSnippetContext
LOW…/network/p2p/inventory/GetInventoryRequestHandler.java63public class GetInventoryRequestHandler implements MessageListener {CODE
LOW…de/full/network/GetAccountingBlocksRequestHandler.java49class GetAccountingBlocksRequestHandler {CODE
LOW…/blindvote/network/RepublishGovernanceDataHandler.java58public final class RepublishGovernanceDataHandler {CODE
LOW…ore/dao/node/full/network/GetBlocksRequestHandler.java53class GetBlocksRequestHandler {CODE
LOW…ork/p2p/peers/peerexchange/GetPeersRequestHandler.java45class GetPeersRequestHandler {CODE
LOW…bisq/network/p2p/peers/getdata/RequestDataManager.java61public class RequestDataManager implements MessageListener, ConnectionListener, PeerManager.Listener {CODE
LOW…bisq/network/p2p/peers/getdata/RequestDataHandler.java59class RequestDataHandler implements MessageListener {CODE
LOW…q/network/p2p/peers/getdata/GetDataRequestHandler.java44public class GetDataRequestHandler {CODE
Verbosity Indicators4 hits · 6 pts
SeverityFileLineSnippetContext
LOW…re/src/main/java/bisq/core/offer/OpenOfferManager.java1310 // we need to check if in the meantime the offer has been removedCOMMENT
LOW…/src/main/java/bisq/core/dao/node/parser/TxParser.java226 // We need to check if any tempTxOutput is available and if so and the OpReturn data is invalid weCOMMENT
LOW…ore/crypto/ed25519/arithmetic/Ed25519FieldElement.java941 // Step 1:COMMENT
LOW…ore/crypto/ed25519/arithmetic/Ed25519FieldElement.java955 // Step 2:COMMENT
Fake / Example Data3 hits · 3 pts
SeverityFileLineSnippetContext
LOWrestapi/src/main/resources/doc/v1/swagger-ui.js1!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amCODE
LOW…src/main/resources/doc/v1/swagger-ui-es-bundle-core.js2import*as e from"react-immutable-pure-component";import*as t from"remarkable/linkify";import*as r from"dompurify";importCODE
LOW…/main/resources/doc/v1/swagger-ui-standalone-preset.js2!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amCODE
Modern AI Meta-Vocabulary1 hit · 3 pts
SeverityFileLineSnippetContext
MEDIUMapitest/docker/entrypoint.sh96 # which only works for local-process scaffolding, not docker bridge).COMMENT