Reputa LogoREPUTA

Contract audit.Contract-Audit.

Security review of the ReputaBadge soulbound contract. Everything below is reproducible: the source is verified on Basescan, the tools are open source. Sicherheitsprüfung des ReputaBadge-Soulbound-Contracts. Alles hier ist nachprüfbar: der Source ist auf Basescan verifiziert, die Tools sind Open Source.

0 security findings0 sicherheitsrelevante Findings

No tool found a way for a user to lose funds by interacting with this contract. Structurally it cannot: it has no payable function, no receive/fallback, makes zero external calls, and never requests token approvals. It cannot receive ETH and cannot move any asset - even with a fully compromised admin. Kein Tool hat einen Weg gefunden, über den ein Nutzer durch Interaktion mit diesem Contract Geld verlieren kann. Strukturell ist das unmöglich: keine payable-Funktion, kein receive/fallback, null externe Calls, keine Token-Freigaben. Der Contract kann kein ETH annehmen und keine Assets bewegen - selbst mit vollständig kompromittiertem Admin.

ScopeUmfang

ContractReputaBadge · 0x5e42…e623 ↗ (Base, source verified)(Base, Source verifiziert)
Sourcegithub.com/0xthaner/reputa-badge ↗ (contract, test suite, audit trail - MIT)(Contract, Testsuite, Audit-Protokoll - MIT)
Compilersolc 0.8.24
DateDatum2026-07-11
NatureArtAutomated tooling + manual review by the team. Not a third-party audit firm engagement.Automatisiertes Tooling + manuelles Review durch das Team. Kein beauftragtes externes Audit-Haus.

What ranWas gelaufen ist

Slither0 HIGH · 0 MEDIUM 101 detectors (Trail of Bits, open source). 9 informational notes: naming style, missing event on admin change, timestamp use for the voucher deadline (by design).101 Detektoren (Trail of Bits, Open Source). 9 informative Hinweise: Namensstil, fehlendes Event bei Admin-Wechsel, timestamp für die Voucher-Deadline (by design).
ERC-721slither-check-erc: all required functions present and typed correctly. Transfer/approve functions revert on purpose - the badge is soulbound.slither-check-erc: alle Pflichtfunktionen vorhanden und korrekt typisiert. Transfer/Approve reverten absichtlich - das Badge ist soulbound.
Solhint0 errors. 82 warnings, all gas micro-optimisations and NatSpec documentation style.0 Errors. 82 Warnings, ausschließlich Gas-Mikrooptimierungen und NatSpec-Doku-Stil.
EVM testsEVM-Tests19/19 PASS Property tests against a real EVM: signature malleability, voucher replay, foreign vouchers, expired deadlines, all soulbound locks, ETH injection attempts, admin access control. Fuzzing with random inputs in 3 independent runs - behaviour matches the specification in every case, contract ETH balance stays exactly 0.Property-Tests gegen eine echte EVM: Signatur-Malleability, Voucher-Replay, fremde Vouchers, abgelaufene Deadlines, alle Soulbound-Sperren, ETH-Einschleusversuche, Admin-Zugriffskontrolle. Fuzzing mit Zufallseingaben in 3 unabhängigen Läufen - das Verhalten deckt sich in jedem Fall mit der Spezifikation, die Contract-ETH-Balance bleibt exakt 0.
Foundry17/17 PASS Full test suite with forge (test/ReputaBadge.t.sol, in the repo): 15 targeted tests plus 2 fuzz properties with 512 random runs each - mint succeeds exactly when the specification allows it, transfers and approvals revert for any tokenId and address, contract ETH balance stays 0.Volle Testsuite mit forge (test/ReputaBadge.t.sol, im Repo): 15 gezielte Tests plus 2 Fuzz-Properties mit je 512 Zufallslaeufen - Mint gelingt exakt dann, wenn die Spezifikation es erlaubt, Transfers und Approvals reverten fuer jede tokenId und Adresse, die Contract-ETH-Balance bleibt 0.
Aderyn0 CONFIRMED 88 detectors (Cyfrin). 2 flagged highs, both verified false positives in context: the encodePacked warning targets hashing (we only concatenate the tokenURI string), the downcast warning targets unreachable code (unminted tokenIds revert before the cast). The malleability note is covered by the low-s check, proven by the Foundry test. Remaining lows match Slither (admin style notes, no fund impact).88 Detektoren (Cyfrin). 2 gemeldete Highs, beide im Kontext verifizierte Fehlalarme: die encodePacked-Warnung zielt auf Hashing (wir verketten nur den tokenURI-String), die Downcast-Warnung auf unerreichbaren Code (ungemintete tokenIds reverten vor dem Cast). Der Malleability-Hinweis ist durch den Low-s-Check abgedeckt, bewiesen im Foundry-Test. Restliche Lows decken sich mit Slither (Admin-Stilhinweise, kein Fund-Bezug).
SMTCheckerFORMALLY VERIFIED solc model checker (CHC engine, z3), 60s per target: assertions, overflow, underflow, division by zero, out-of-bounds and balance targets - zero warnings. A deliberately broken canary contract confirmed the toolchain reports violations with counterexamples, so the silence is a proof, not a silent failure.solc Model Checker (CHC-Engine, z3), 60s pro Ziel: Assertions, Overflow, Underflow, Division durch Null, Out-of-Bounds und Balance-Ziele - null Warnungen. Ein absichtlich fehlerhafter Kanarien-Contract hat bestaetigt, dass die Toolchain Verstoesse mit Gegenbeispielen meldet - die Stille ist also ein Beweis, kein stummer Fehler.

Key guaranteesKern-Garantien

Reproduce itSelbst nachprüfen

Clone the public repo (or pull the verified source from Basescan), then run forge test -vv, slither ReputaBadge.sol and solhint ReputaBadge.sol. Both tools are free and open source. Don't trust, verify. Klon das öffentliche Repo (oder hol den verifizierten Source von Basescan) und lass forge test -vv, slither ReputaBadge.sol und solhint ReputaBadge.sol laufen. Beide Tools sind gratis und Open Source. Don't trust, verify.