-
Notifications
You must be signed in to change notification settings - Fork 202
Description
Problem
Transaction history shows scam airdrop txs as "Contract interaction / N/A" with 0 value. Scammers airdrop tokens to trick users into interacting with malicious contracts. These clutter the tx feed and pose a security risk.
tk ticket: sa-hlzv
Root Cause
Zero spam/scam filtering exists in the agentic tx pipeline. Scam txs hit the 'contract' type fallback in evmParser.ts because: user is not sender, has inputData, and no meaningful token transfers.
Prior Art
Main shapeshift app has reusable spam detection in src/state/blacklist.ts: regex patterns for spammy token names, blacklisted collection IDs, and isSpam() function.
Proposed Approach
Phase 1: Heuristic detection — zero-value contract calls where user is NOT sender + token name regex blacklist from main app
Phase 2: UI treatment — filter by default, show "Hidden scam txs (N)" expandable section
Phase 3: API-based detection (GoPlusLabs, ChainAbuse) — future
Key Files
apps/agentic-server/src/lib/transactionHistory/evmParser.tsapps/agentic-server/src/lib/transactionHistory/query/filter.ts/home/sean/Repos/shapeshift/src/state/blacklist.ts(reference patterns)
Acceptance Criteria
- Scam airdrop txs filtered from default results
- Filtered count in metadata (
spamFiltered: N) - Token name/symbol spam patterns ported from main app
- Legitimate contract interactions NOT filtered
-
includeSpam: trueoption available in schema
Metadata
Metadata
Assignees
Labels
Type
Projects
Status