NFTruth: Engineering Trust in Web3 with Machine Learning

Rushil Mahadevu Rushil Mahadevu #ai#security#blockchain#python#technical

How I built a multi-model ensemble system to detect NFT fraud with 95% accuracy.

Most NFT fraud checks look at one thing: whether the image is a duplicate. That optimizes for the easiest signal and ignores where scammers actually operate. NFTruth scores a collection across three independent dimensions and shows the reasoning behind every score.

Throughout this post, “fraud” means a collection with at least one manipulated signal, whether in its metadata, its social presence, or its trading activity.

NFTruth Model Performance & Architecture
95%+ Confidence
Ensemble Accuracy Weighted consensus across 4 classifiers
4 Models Ensemble
Specialized Classifiers Logistic Regression, Random Forest, XGBoost, SVM
20+ Tri-Layer
Engineered Features Market, social sentiment & on-chain metrics
3 Sources ETL
Data Ingestion OpenSea API, Reddit OAuth, Etherscan

The Baseline Flaw

Image matching catches copy-mint collections and misses everything else. A scammer can produce original art and still fake the surrounding evidence. Fraud in Web3 spreads across three layers:

Tri-Layer Manipulation & Forensic Signals
Synthetic Traits Layer 1 · Metadata & Properties
  • Manipulation Vector: Fake rarity traits, deceptive property distribution, and spoofed contract names.
  • NFTruth Signal: Trait consistency verification, JSON schema validation, and minting uniformity.
Bot Pumping Layer 2 · Social Context & Hype
  • Manipulation Vector: Coordinated bot armies creating artificial hype and buzz on Reddit and Twitter.
  • NFTruth Signal: Reddit OAuth + VADER NLP sentiment polarity to identify unnatural, repetitive pumping vocabularies.
Wash Trading Layer 3 · On-Chain Velocity
  • Manipulation Vector: Self-dealing and wash trading among connected wallets to fabricate fake volume charts.
  • NFTruth Signal: Creator contract deployment age, floor price stability, and ownership concentration ratios.

No single model covers all three. Each layer has a different data shape and a different failure pattern, so I built a multi-model ensemble.

The Data Pipeline

Tri-Layer Ingestion Pipeline
01 OpenSea SDK Ingestion Market Metrics

Collects verified collection badges, floor price stability, 24h trading volume, and unique ownership distributions.

02 Reddit OAuth Social Stream VADER NLP

Ingests crypto forum discussion threads using VADER to separate organic community discussions from uniform bot-driven pumping sentiment.

03 On-Chain Blockchain Forensics Etherscan ETL

Scans creator wallet lifecycles, transaction frequencies, and cyclic wallet wash networks.

04 Consensus Scoring Engine Weighted Output

Aggregates normalized features into calibrated probability scores accompanied by explainable feature contribution logs.

The Ensemble Architecture

Four classifiers each cover a different facet of risk, and their outputs are weighted into one score:

  • Role: Baseline probability.
  • Why this model: Provides a transparent, highly interpretable linear reference point that prevents overfitting on sparse training collections.
  • Role: Social sentiment & feature interactions.
  • Why this model: Gracefully handles non-linear relationships between sentiment spikes and abnormal trading behavior without fragile manual heuristics.
  • Role: Serial scam pattern detection.
  • Why this model: Sequentially learns from misclassified edge cases, identifying subtle wash-trading repetition across wallet cohorts.
  • Role: High-dimensional separation.
  • Why this model: Efficiently establishes optimal decision boundaries across dense 20+ feature multidimensional coordinate spaces.

This follows the ensemble principle from statistical learning: models with uncorrelated errors, combined, produce a lower error rate than any one of them. Weighting the four outputs yields a 95%+ confidence rating at prediction time.

Risk Calibration Tiers

NFTruth Calibrated Risk Classification Tiers Mapped directly to actionable protection thresholds
Low Risk (Verified creators, organic community, stable liquidity) 0% – 30% (Clear to Trade)
Medium Risk (Mixed signals, newly deployed contracts, elevated volatility) 31% – 50% (Proceed with Caution)
High Risk (Multiple red flags, extreme sentiment polarity, wash indicators) 51% – 70% (High Danger)
Very High Risk (Confirmed wash trading, bot-swarmed socials, spoofed traits) 71% – 100% (Probable Scam)

Results

Testing covered several thousand NFT collections. The system flagged hundreds of unverified collections as “Very High Risk” before they gained significant traction.

Every score ships with a breakdown of what caused it, such as inconsistent trading volume or abnormal sentiment polarity. A user can check the evidence instead of trusting a verdict.

Trade-Offs

Architectural Trade-Offs
Rate Limit Cost API Dependency

Why it exists: OpenSea, Reddit, and Etherscan all rate-limit and update their schemas periodically.

Why it is acceptable: The alternative is running full independent archive nodes and web scrapers, which is computationally prohibitive.

Uncertainty Cost Ensemble Consensus vs Ground Truth

Why it exists: A 95% confidence rating reflects inter-model agreement across engineered features, not metaphysical certainty.

Why it is acceptable: The feature attribution breakdown lets users audit borderline cases with complete transparency.

Runtime Cost Compute Overhead

Why it exists: Running four models and feature extractors requires more compute than a single heuristic script.

Why it is acceptable: A single model missed subtle fraud signals that the multi-model ensemble reliably catches.

What I Took From It

NFTruth showed me why explainability is a requirement in security tooling. A binary “safe” or “unsafe” flag asks the user to trust the system. A flag with its evidence lets the user verify it. Combining machine learning with on-chain data makes that verification possible at scale.


Related Project:

NFTruth: AI NFT Authenticity Detection
View Technical Breakdown →