{"project": {"projectId": 4, "author": "0x90b3a1fded70ea72609644e2f0a45091ef02cfd2", "network": "flare", "kind": "contract", "chainId": 14, "subject": "0x8a2578d23d4c532cc9a98fad91c0523f5efde652", "name": "SparkDEX V3", "fingerprint": "0x1fdc3eecdd9998392fa9787413088187d45f21a9e911d02cc0e137cd38243f95", "content": "{\"facts\":[{\"a\":\"No. No EIP-1967 implementation or beacon was found.\",\"how\":\"eth_getStorageAt implementation, admin, and beacon slots on the factory.\",\"q\":\"Can the code be replaced?\"},{\"a\":\"single key 0xC4E793690aF58F54C467122f94c288BCFBE74Ec1. The factory owner can enable fee tiers and set the protocol fee; it cannot upgrade pools or move LP funds.\",\"how\":\"owner() on the factory and eth_getCode on the owner address.\",\"q\":\"Who holds that power?\"},{\"a\":\"0 seconds found.\",\"how\":\"delay(), getMinDelay(), and getTimelock() on the owner address did not return a delay.\",\"q\":\"Delay before a change\"},{\"a\":\"No.\",\"how\":\"paused() on the factory did not return a value.\",\"q\":\"Can it be paused?\"}],\"footer\":\"What this can't tell you: audits, team identity, intent, or whether a Safe's signers are distinct people.\",\"receipts\":[{\"block\":71410195,\"call\":\"eth_getStorageAt\",\"data\":\"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc\",\"fact\":\"Can the code be replaced?\",\"result\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"to\":\"0x8A2578d23d4C532cC9A98FaD91C0523f5efDE652\"},{\"block\":71410195,\"call\":\"eth_getStorageAt\",\"data\":\"0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103\",\"fact\":\"Can the code be replaced?\",\"result\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"to\":\"0x8A2578d23d4C532cC9A98FaD91C0523f5efDE652\"},{\"block\":71410195,\"call\":\"eth_getStorageAt\",\"data\":\"0xa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50\",\"fact\":\"Can the code be replaced?\",\"result\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"to\":\"0x8A2578d23d4C532cC9A98FaD91C0523f5efDE652\"},{\"block\":71410195,\"call\":\"owner()\",\"data\":\"0x8da5cb5b\",\"fact\":\"Who holds that power?\",\"result\":\"0x000000000000000000000000c4e793690af58f54c467122f94c288bcfbe74ec1\",\"to\":\"0x8A2578d23d4C532cC9A98FaD91C0523f5efDE652\"},{\"block\":71410195,\"call\":\"eth_getCode\",\"data\":\"0x\",\"fact\":\"Who holds that power?\",\"result\":\"0x\",\"to\":\"0xC4E793690aF58F54C467122f94c288BCFBE74Ec1\"},{\"block\":71410195,\"call\":\"getMinDelay()\",\"data\":\"0xf27a0c92\",\"fact\":\"Delay before a change\",\"result\":\"0x\",\"to\":\"0xC4E793690aF58F54C467122f94c288BCFBE74Ec1\"},{\"block\":71410195,\"call\":\"delay()\",\"data\":\"0x6a42b8f8\",\"fact\":\"Delay before a change\",\"result\":\"0x\",\"to\":\"0xC4E793690aF58F54C467122f94c288BCFBE74Ec1\"},{\"block\":71410195,\"call\":\"getTimelock()\",\"data\":\"0x6221a54b\",\"fact\":\"Delay before a change\",\"result\":\"0x\",\"to\":\"0xC4E793690aF58F54C467122f94c288BCFBE74Ec1\"},{\"block\":71410195,\"call\":\"paused()\",\"data\":\"0x5c975abb\",\"fact\":\"Can it be paused?\",\"result\":\"error: {'code': -32000, 'message': 'execution reverted'}\",\"to\":\"0x8A2578d23d4C532cC9A98FaD91C0523f5efDE652\"}],\"title\":\"Who can change the rules\",\"v\":1}", "txHash": "0xf9f42745d088cef818517c64a2b30f80c38d870e06e37a842e02c3391e698039", "receiptUrl": "https://flare-explorer.flare.network/tx/0xf9f42745d088cef818517c64a2b30f80c38d870e06e37a842e02c3391e698039", "blockNumber": 72105790, "jurisdiction": "", "markText": "", "shape": "", "keeper": "", "what": "", "repoUrl": "", "credit": "", "chunk": ""}, "notes": [{"noteId": 4, "projectId": 4, "author": "0x90b3a1fded70ea72609644e2f0a45091ef02cfd2", "authorName": "Steven Hudspeth", "authorHandle": "hudspeth589", "authorVerified": true, "authorShort": "0x90b3...cfd2", "source": "reef", "status": "", "alsoReports": 0, "separateFrom": 0, "kind": 0, "kindLabel": "finding", "inReplyTo": 0, "fingerprint": "0x1fdc3eecdd9998392fa9787413088187d45f21a9e911d02cc0e137cd38243f95", "content": "{\"facts\":[{\"a\":\"No. No EIP-1967 implementation or beacon was found.\",\"how\":\"eth_getStorageAt implementation, admin, and beacon slots on the factory.\",\"q\":\"Can the code be replaced?\"},{\"a\":\"single key 0xC4E793690aF58F54C467122f94c288BCFBE74Ec1. The factory owner can enable fee tiers and set the protocol fee; it cannot upgrade pools or move LP funds.\",\"how\":\"owner() on the factory and eth_getCode on the owner address.\",\"q\":\"Who holds that power?\"},{\"a\":\"0 seconds found.\",\"how\":\"delay(), getMinDelay(), and getTimelock() on the owner address did not return a delay.\",\"q\":\"Delay before a change\"},{\"a\":\"No.\",\"how\":\"paused() on the factory did not return a value.\",\"q\":\"Can it be paused?\"}],\"footer\":\"What this can't tell you: audits, team identity, intent, or whether a Safe's signers are distinct people.\",\"receipts\":[{\"block\":71410195,\"call\":\"eth_getStorageAt\",\"data\":\"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc\",\"fact\":\"Can the code be replaced?\",\"result\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"to\":\"0x8A2578d23d4C532cC9A98FaD91C0523f5efDE652\"},{\"block\":71410195,\"call\":\"eth_getStorageAt\",\"data\":\"0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103\",\"fact\":\"Can the code be replaced?\",\"result\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"to\":\"0x8A2578d23d4C532cC9A98FaD91C0523f5efDE652\"},{\"block\":71410195,\"call\":\"eth_getStorageAt\",\"data\":\"0xa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50\",\"fact\":\"Can the code be replaced?\",\"result\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"to\":\"0x8A2578d23d4C532cC9A98FaD91C0523f5efDE652\"},{\"block\":71410195,\"call\":\"owner()\",\"data\":\"0x8da5cb5b\",\"fact\":\"Who holds that power?\",\"result\":\"0x000000000000000000000000c4e793690af58f54c467122f94c288bcfbe74ec1\",\"to\":\"0x8A2578d23d4C532cC9A98FaD91C0523f5efDE652\"},{\"block\":71410195,\"call\":\"eth_getCode\",\"data\":\"0x\",\"fact\":\"Who holds that power?\",\"result\":\"0x\",\"to\":\"0xC4E793690aF58F54C467122f94c288BCFBE74Ec1\"},{\"block\":71410195,\"call\":\"getMinDelay()\",\"data\":\"0xf27a0c92\",\"fact\":\"Delay before a change\",\"result\":\"0x\",\"to\":\"0xC4E793690aF58F54C467122f94c288BCFBE74Ec1\"},{\"block\":71410195,\"call\":\"delay()\",\"data\":\"0x6a42b8f8\",\"fact\":\"Delay before a change\",\"result\":\"0x\",\"to\":\"0xC4E793690aF58F54C467122f94c288BCFBE74Ec1\"},{\"block\":71410195,\"call\":\"getTimelock()\",\"data\":\"0x6221a54b\",\"fact\":\"Delay before a change\",\"result\":\"0x\",\"to\":\"0xC4E793690aF58F54C467122f94c288BCFBE74Ec1\"},{\"block\":71410195,\"call\":\"paused()\",\"data\":\"0x5c975abb\",\"fact\":\"Can it be paused?\",\"result\":\"error: {'code': -32000, 'message': 'execution reverted'}\",\"to\":\"0x8A2578d23d4C532cC9A98FaD91C0523f5efDE652\"}],\"title\":\"Who can change the rules\",\"v\":1}", "structured": null, "uri": "", "txHash": "0x40dcbacccd56e2c89e0952b525239c22712bda7a2c3758f20a382f692fd42065", "receiptUrl": "https://flare-explorer.flare.network/tx/0x40dcbacccd56e2c89e0952b525239c22712bda7a2c3758f20a382f692fd42065", "blockNumber": 72105795, "voice": null, "voiceReceipt": null, "amendmentReason": null, "amendmentFingerprint": null, "retractedReason": null, "authorTier": 1, "factors": ["Receipt", "Verified"], "withheld": null, "checkResults": []}], "threads": [{"projectId": 4, "rootNoteId": 4, "standing": "stands", "receiptCount": 1, "inputs": {"notes": [{"factors": ["Receipt", "Verified"], "inReplyTo": 0, "kind": 0, "noteId": 4, "retracted": false, "voice": null, "weight": 3.0, "withheld": false}], "rootNoteId": 4, "version": "0.3"}}], "voiceLabels": [{"project_id": 4, "address": "0xc4e793690af58f54c467122f94c288bcfbe74ec1", "voice": "project", "source": "owner()", "block_number": 73672357, "receipt_json": "{\"address\": \"0x8a2578d23d4c532cc9a98fad91c0523f5efde652\", \"block\": 73672357, \"call\": \"owner()\", \"result\": \"0xc4e793690af58f54c467122f94c288bcfbe74ec1\"}", "checked_at": 1793737423}], "card": {"projectId": 4, "name": "SparkDEX V3", "checked": "2026-10-28", "risk": {"word": "Lowest", "reasons": ["Nothing can be swapped out, so one key is fine here."], "reasonKeys": ["immutable"], "wouldLower": []}, "control": "One wallet. No second signature, no vote.", "delay": "Immediately.", "freeze": "No.", "siteSays": "We have not checked their site yet.", "changes": [{"date": "2026-10-14", "line": "First check recorded."}], "response": "None yet. SparkDEX V3 can answer here.", "money": {"band": "none", "text": "Nothing of users' is held here today.", "receipt": null}, "report": null, "about": "A decentralized exchange. You swap one token for another from a pool.", "statusLine": "One wallet can change the rules, immediately.", "xHandle": null, "sent": {"state": "not-sent"}, "receiptsMatch": {"ok": 4, "total": 4, "checkedAt": "2026-10-28"}, "findingsCount": 1, "answer": {"state": "none"}, "kind": "contract"}}