Security Assessment
Independent analysis using 3 security tools. All findings reviewed, real issues fixed, false positives documented.
by Trail of Bits
Industry-standard static analysis framework used by major DeFi protocols. Detects reentrancy, access control, and logic flaws.
by Hashlock (Australia)
AI-powered audit from a leading Web3 security firm. Deep analysis of access control, economic logic, and oracle interactions.
by SolidityScan.com
Cloud-based scanner with 700+ detection modules. Covers OWASP-style vulnerabilities, gas optimizations, and coding standards.
Real issues identified across all tools, fixed before deployment.
Bonus payout calculation used 264 (max supply) instead of actual minted count, breaking payouts if supply wasn't fully minted.
Fixed — Changed to totalMintedSTALE_PRICE_THRESHOLD was defined but never checked against updatedAt from Chainlink oracle.
Fixed — Added staleness check on every oracle callAfter a deadline trigger, cancelTrigger could reset the state, allowing indefinite extension.
Fixed — Added deadline protection in cancelTriggerTier assignments array values weren't validated, allowing out-of-bounds memory read.
Fixed — Added require(tier < 4) validationWhile ERC721 prevents double minting, PoolManager updated state before the NFT-level check.
Fixed — Added costBasis == 0 guarddestroyArt(), setBaseURI(), and cancelTrigger() didn't emit events for off-chain monitoring.
Fixed — Added ArtDestroyed, BaseURIUpdated, TriggerCancelled eventsConstructor didn't validate that the creator address wasn't address(0).
Fixed — Added require(_creator != address(0))Replaced hand-written integer-to-string conversion with battle-tested OpenZeppelin library.
Fixed — Using Strings.toString()OpenZeppelin ReentrancyGuard on all payable functions (mint, buy, claim, claimCreator, sweepDust).
All state changes happen before external calls. ETH transfers use .call{value}() with success check.
ETH/USD price from Chainlink with staleness check (1h), sequencer uptime verification, and grace period.
Two-layer system: Owner (creator) for admin, PoolManager for transfers. NFT locked to marketplace only.
Initiate + 1h cooldown + finalize. Price re-verified at finalization. Cancellable if price drops during cooldown.
guaranteePool always equals sum of all cost bases. Every holder can always recover their investment.
Deployed on Base L2 mainnet. Source code verified on BaseScan and public on GitHub.
View on GitHub →Dependencies: OpenZeppelin Contracts v5.4 (ERC721, Ownable, ReentrancyGuard, Strings) — Chainlink Contracts v1.5 (AggregatorV3Interface)
Manual code review identifying critical logic flaws (surplus calculation, stale price, cancel exploit).
Trail of Bits' static analyzer. All medium/low findings reviewed, 2 fixed, 2 confirmed false positives.
Third-party AI audit by Hashlock. 11 findings, all analyzed as false positives or design decisions.
Cloud scanner with 700+ modules. 234 findings reviewed, critical/high all false positives (standard patterns).
38 automated tests covering all functions, edge cases, access control, and pool invariant verification.