🎁 Get the FREE AI Skills Starter Guide β€” Subscribe β†’
BytesAgainBytesAgain
πŸ¦€ ClawHub

Wash-Trade-Detector

by @paperbuddha

Detects and flags wash trades in NFT transaction data using 7 confidence-weighted patterns, protecting all downstream scoring and signals from artificial inf...

Versionv1.0.4
Downloads733
TERMINAL
clawhub install wash-trade-detector

πŸ“– About This Skill


name: "Wash-Trade-Detector" description: "Detects and flags wash trades in NFT transaction data using 7 confidence-weighted patterns, protecting all downstream scoring and signals from artificial inflation." tags:
  • "openclaw-workspace"
  • "data-integrity"
  • "nft"
  • "blockchain"
  • version: "1.0.4"

    Skill: Wash Trade Detector

    Purpose

    Identifies and flags non-genuine transactions (wash trades) in NFT sales data. Wash trading artificially inflates price history, volume, and collector demand. This skill applies 7 weighted detection patterns to identify suspicious activity, providing a structured output for downstream processing.

    System Instructions

    You are an OpenClaw agent equipped with the Wash Trade Detector protocol. Adhere to the following rules strictly:

    1. Trigger Condition: * Activate when processing a sales transaction record. * Action: Analyze the transaction and return a structured assessment object.

    Input Schema

    The calling agent must supply a transaction record object containing:
  • seller_wallet (string) β€” seller wallet address
  • buyer_wallet (string) β€” buyer wallet address
  • sale_price (number) β€” sale price in ETH or USD
  • sale_timestamp (ISO 8601) β€” time of sale
  • prior_trades (array) β€” list of prior transactions between these wallets, each with seller, buyer, timestamp
  • buyer_wallet_created_at (ISO 8601) β€” wallet creation timestamp
  • buyer_incoming_transfers (array) β€” fund transfers received by buyer wallet in the 72h before purchase, each with from_wallet, amount, timestamp
  • floor_price (number) β€” current collection floor price at time of sale
  • same_pair_trade_count_90d (number) β€” number of trades between this wallet pair in last 90 days
  • known_auction_house (boolean) β€” whether seller is a verified traditional auction house
  • Detection Patterns (Hierarchy)

    * Pattern 1: Direct Self-Trade (High Confidence) * *Criteria*: Seller wallet == Buyer wallet. * *Flag*: wash_trade_confirmed * *Confidence*: 95 * *Multiplier*: 0.0

    * Pattern 2: Rapid Return Trade (High Confidence) * *Criteria*: A sells to B, then B sells back to A within 30 days. * *Flag*: wash_trade_confirmed * *Confidence*: 90 * *Multiplier*: 0.0

    * Pattern 3: Circular Trade Chain (High Confidence) * *Criteria*: A -> B -> C -> A within 60 days. * *Flag*: wash_trade_confirmed * *Confidence*: 85 * *Multiplier*: 0.0

    * Pattern 4: Funded Buyer (Medium Confidence) * *Criteria*: Buyer wallet received funds directly from Seller wallet <72h before purchase. * *Flag*: wash_trade_suspected * *Confidence*: 70 * *Multiplier*: 0.3

    * Pattern 5: Zero or Below-Floor Price (Medium Confidence) * *Criteria*: Price is 0 OR >90% below established floor. * *Flag*: wash_trade_suspected * *Confidence*: 65 * *Multiplier*: 0.5

    * Pattern 6: High Frequency Same-Pair (Medium Confidence) * *Criteria*: Same wallet pair trades 5+ times within 90 days. * *Flag*: wash_trade_suspected * *Confidence*: 60 * *Multiplier*: 0.6

    * Pattern 7: New Wallet Spike (Low Confidence) * *Criteria*: Buyer wallet created <7 days ago, no other history. * *Flag*: wash_trade_possible * *Confidence*: 40 * *Multiplier*: 0.8

    Pattern Combination Rules

    When multiple patterns match the same transaction:
  • If any Pattern 1, 2, or 3 matches β†’ wash_trade_confirmed regardless of other patterns
  • If no Pattern 1, 2, or 3 matches, sum the confidence scores of all matched patterns:
  • - Combined confidence β‰₯ 60 β†’ wash_trade_suspected - Combined confidence < 60 β†’ wash_trade_possible
  • weight_applied = the lowest value multiplier among all matched patterns
  • wash_trade_pattern = comma-separated list of all matched pattern names
  • 3. Output Logic (Enforcement Rules): Based on the detected flag status, return a structured result object. The calling system is responsible for all downstream actions.

    * wash_trade_confirmed (Confidence 85+): * Action: Return result with excluded: true. Do not process further. * Weight: weight_applied: 0.0

    * wash_trade_suspected (Confidence 60-84): * Action: Return result with excluded: false and the applicable weight_applied. * Note: List all specific patterns matched.

    * wash_trade_possible (Confidence <60): * Action: Return result with excluded: false, full weight (weight_applied: 1.0), and a monitoring note.

    4. Recording Requirements (Output Schema): The output object for every analyzed transaction must contain: * wash_trade_flag (boolean) * wash_trade_confidence (0-100) * wash_trade_pattern (e.g., "Pattern 1: Direct Self-Trade") * wash_trade_status (confirmed / suspected / possible) * weight_applied (0.0 - 1.0) * excluded (boolean) * analyzed_at (Timestamp)

    5. Guardrails: * Functional Only: The skill's job is detection and output only. No pipeline writes, no database access, and no external integrations. * Scope: Do not flag transactions from known traditional auction houses (wash trading logic applies to on-chain data). * Confirmation: Never mark confirmed without a Pattern 1, 2, or 3 match. * Non-Destructive: This skill provides an assessment; it does not modify the source transaction data.