{"language":"solidity","rulesRun":14,"findings":[{"id":"SOL-005-10-31","ruleId":"SOL-005","severity":"medium","title":"Low-level call","recommendation":"Prefer typed interfaces; when using call, check the returned success flag and guard against reentrancy.","language":"solidity","line":10,"column":31,"snippet":"low-level call","context":"(bool sent, ) = msg.sender.call{value: amount}(\"\");"},{"id":"SOL-008-8-3","ruleId":"SOL-008","severity":"high","title":"Missing access control on a sensitive function","recommendation":"Gate mint/withdraw/transfer-ownership style functions with onlyOwner/onlyRole or an explicit require on msg.sender.","language":"solidity","line":8,"column":3,"snippet":"function withdraw","context":"function withdraw(uint256 amount) public {"},{"id":"SOL-009-2-1","ruleId":"SOL-009","severity":"low","title":"Floating pragma","recommendation":"Pin an exact compiler version for deployments so the audited bytecode is reproducible.","language":"solidity","line":2,"column":1,"snippet":"floating pragma","context":"pragma solidity ^0.8.0;"}],"errors":[],"score":31,"summary":{"total":3,"bySeverity":{"critical":0,"high":1,"medium":1,"low":1,"info":0},"byRule":{"SOL-005":1,"SOL-008":1,"SOL-009":1}},"generatedAt":"2026-11-14T07:49:40.948Z","route":"/api/v1/audit/vulnerability-scan","sample":true,"cost":"free","paidPriceUsd":"0.02","fieldsIncludedWhenPaid":["code","language"],"source":"stream-2-a2a/audit-vulnerability-scan-fixture","note":"Free sample: this preview costs nothing. POST /api/v1/audit/vulnerability-scan {code, language?} charges 0.02 USDC and returns the same shape plus the caller-supplied source code scan."}