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 - INLINECODE1 (string) — buyer wallet address
- INLINECODE2 (number) — sale price in ETH or USD
- INLINECODE3 (ISO 8601) — time of sale
- INLINECODE4 (array) — list of prior transactions between these wallets, each with
seller, buyer, INLINECODE7 - INLINECODE8 (ISO 8601) — wallet creation timestamp
- INLINECODE9 (array) — fund transfers received by buyer wallet in the 72h before purchase, each with
from_wallet, amount, INLINECODE12 - INLINECODE13 (number) — current collection floor price at time of sale
- INLINECODE14 (number) — number of trades between this wallet pair in last 90 days
- INLINECODE15 (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 - INLINECODE27 = 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.
* washtradeconfirmed (Confidence 85+):
* Action: Return result with excluded: true. Do not process further.
* Weight: INLINECODE29
* washtradesuspected (Confidence 60-84):
* Action: Return result with excluded: false and the applicable weight_applied.
* Note: List all specific patterns matched.
* washtradepossible (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.
技能:洗售交易检测器
目的
识别并标记NFT销售数据中的非真实交易(洗售交易)。洗售交易会人为抬高价格历史、交易量和收藏家需求。本技能应用7种加权检测模式来识别可疑活动,为下游处理提供结构化输出。
系统指令
您是配备洗售交易检测协议的OpenClaw代理。请严格遵守以下规则:
- 1. 触发条件:
* 在处理销售交易记录时激活。
*
操作:分析交易并返回结构化评估对象。
输入模式
调用代理必须提供包含以下内容的交易记录对象:
- - sellerwallet(字符串)——卖家钱包地址
- buyerwallet(字符串)——买家钱包地址
- saleprice(数字)——以ETH或美元计价的销售价格
- saletimestamp(ISO 8601)——销售时间
- priortrades(数组)——这些钱包之间的历史交易列表,每笔包含seller、buyer、timestamp
- buyerwalletcreatedat(ISO 8601)——钱包创建时间戳
- buyerincomingtransfers(数组)——买家钱包在购买前72小时内收到的资金转账,每笔包含fromwallet、amount、timestamp
- floorprice(数字)——销售时当前收藏品的地板价
- samepairtradecount90d(数字)——过去90天内该钱包对之间的交易次数
- knownauctionhouse(布尔值)——卖家是否为经过验证的传统拍卖行
检测模式(层级结构)
标准*:卖家钱包 == 买家钱包。
标记*:wash
tradeconfirmed
置信度*:
95
乘数*:
0.0
标准*:A卖给B,然后B在30天内卖回给A。
标记*:wash
tradeconfirmed
置信度*:
90
乘数*:
0.0
标准*:A -> B -> C -> A在60天内完成。
标记*:wash
tradeconfirmed
置信度*:
85
乘数*:
0.0
标准*:买家钱包在购买前<72小时内直接从卖家钱包收到资金。
标记*:wash
tradesuspected
置信度*:
70
乘数*:
0.3
标准*:价格为0或低于已建立地板价>90%。
标记*:wash
tradesuspected
置信度*:
65
乘数*:
0.5
标准*:同一钱包对在90天内交易5次以上。
标记*:wash
tradesuspected
置信度*:
60
乘数*:
0.6
标准*:买家钱包创建时间<7天,无其他历史记录。
标记*:wash
tradepossible
置信度*:
40
乘数*:
0.8
模式组合规则
当多个模式匹配同一交易时:
- - 如果任何模式1、2或3匹配 → 无论其他模式如何,标记为washtradeconfirmed
- 如果没有模式1、2或3匹配,则对所有匹配模式的置信度分数求和:
- 组合置信度 ≥ 60 → wash
tradesuspected
- 组合置信度 < 60 → wash
tradepossible
- - weightapplied = 所有匹配模式中的最低乘数值
- washtrade_pattern = 所有匹配模式名称的逗号分隔列表
- 3. 输出逻辑(执行规则):
根据检测到的标记状态,返回结构化结果对象。调用系统负责所有下游操作。
- * washtradeconfirmed(置信度85+):
*
操作:返回包含excluded: true的结果。不进行进一步处理。
*
权重:weight_applied: 0.0
- * washtradesuspected(置信度60-84):
*
操作:返回包含excluded: false和适用weight_applied的结果。
*
注意:列出所有匹配的具体模式。
- * washtradepossible(置信度<60):
*
操作:返回包含excluded: false、完整权重(weight_applied: 1.0)和监控备注的结果。
- 4. 记录要求(输出模式):
每个被分析交易的输出对象必须包含:
* wash
tradeflag(布尔值)
* wash
tradeconfidence(0-100)
* wash
tradepattern(例如模式1:直接自交易)
* wash
tradestatus(confirmed / suspected / possible)
* weight_applied(0.0 - 1.0)
* excluded(布尔值)
* analyzed_at(时间戳)
- 5. 防护措施:
*
仅限功能:该技能的职责仅为检测和输出。无管道写入、无数据库访问、无外部集成。
*
范围:不标记来自已知传统拍卖行的交易(洗售交易逻辑适用于链上数据)。
*
确认:没有模式1、2或3匹配时,切勿标记为confirmed。
*
非破坏性:本技能提供评估,不修改源交易数据。