Good teams still have blind spots. When you've been staring at the same codebase for months, you stop seeing it the way an attacker would.
That's exactly where an external security review adds value — fresh eyes, different mental model, no assumptions about how the code 'should' work.
Glad the review was useful.
We just wrapped a smart contract audit for KoinArcade — huge thanks to @_Alex_Cipher for the review.
Even strong dev teams miss things: business logic edge cases, architecture risks, gas traps.
A security-minded second pair of eyes isn’t optional in Web3 — it’s how you ship with confidence.
Audit report is added to both footer and Links page, if you wanna check it out
https://t.co/tRdmc0jhig
NO SECURITY REVIEW
Many Web3 gaming projects still launch without an audit. Sometimes it's because the project is small, sometimes it's because of budget constraints. Regardless of the reason, unaudited code handling real users and real assets is always a risk.
A few lower-severity notes:
[I-1] Fulfilled breed discount data is never cleaned up — stale entries accumulate across thousands of breeds, adding minor gas overhead over time.
[I-2] Interface files allow any 0.8.x compiler while implementations pin to exactly 0.8.12. Harmless today, potential headache tomorrow.
[L-4] merge() doesn't enforce descending index order
The NatSpec says fromIndices must be descending — the contract never checks it.
Ascending input causes reads from a stale memory snapshot → wrong amounts merged into positions.
Scoped to STAKE_EDITOR_ROLE, but still a footgun.
I tried to find the team.
Deployer address: 0x41179085C5C259F9E4cDAa348b93806A76F7B47D
No socials. No web presence.
Zero TVL means no users at risk, so full disclosure is fine. But if you're the deployer and you're reading this — fix finding #1
Lows and info:
→ renounceOwnership() is callable — permanently freezes admin with one accidental call
→ CEI violation in _withdraw (safe only because of nonReentrant — for now)
→ No public earn() to stake idle LP donations