# Pump-and-Dump on DEXes This repository provides datasets and supporting materials for the paper: **Pump-and-Dump meets Honeypot Tokens: Detection and Analysis of Telegram Bait-and-Trap Schemes** > This repository is provided for review purposes. Citation information will be added upon acceptance. --- ## Repository Overview This repository accompanies our study of Pump-and-Dump and Bait-and-Trap schemes on Decentralized Exchanges (DEXes). We monitored Telegram channels to identify P&D events, analyzed the targeted tokens for honeypot behavior, and built a detection tool to automate this analysis. The released artifacts cover each stage of this pipeline: 1. **`pump_and_dump_dataset.csv`** — Detected P&D events collected from Telegram channels 2. **`honeypot_source_codes/`** — Representative smart contract source codes implementing honeypot mechanisms 3. **`functions_signature.csv`** — Function signatures linked to honeypot allowlist mechanisms 4. **`honeypot_detection_tool/`** — Automated tool to detect honeypot tokens on-chain --- ## Pump-and-Dump Dataset (`pump_and_dump_dataset.csv`) This dataset contains 3677 events promoted as Pump-and-Dump, collected between May 2021 and January 2025 across 83 Telegram channels. Each row corresponds to a single P&D event announced on a Telegram channel. Data collection methodology is described in Section 3 of the paper. Each row includes the following fields: | Field | Description | |---|-------------------------------------------------------------| | `channel_id` | ID of the Telegram channel organizing the P&D | | `channel_name` | Name of the Telegram channel at the time of data collection | | `token_address` | Address of the targeted token | | `token_name` | Name of the targeted token | | `token_symbol` | Symbol of the targeted token | | `timestamp` | Timestamp of the Telegram message announcing the P&D | | `other_token_address` | Address of the other token in the liquidity pool pair | | `other_token_name` | Name of the other token in the liquidity pool pair | | `other_token_symbol` | Symbol of the other token in the liquidity pool pair | | `pair_address` | Address of the liquidity pool | | `dex` | Decentralized exchange where the liquidity pool is created | --- ## Honeypot Detection Tool (`honeypot_detection_tool/`) This folder contains the tool used to automatically detect honeypot tokens on DEXs. The tool emulates the behavior of a trader participating in a Pump-and-Dump operation: it simulates purchasing a target token at the start of the event and then executing a swap to sell the acquired tokens. It then evaluates whether both transactions execute successfully and whether the received assets are consistent with the exchange rates implied by the liquidity pool's pricing formula. A reversion of the sell swap, or a deviation from the expected outputs, indicates the presence of trade restriction logic in the token's smart contract. The detection methodology is described in Section 5 of the paper. Detailed setup and usage instructions are provided in `honeypot_detection_tool/README.md`. --- ## Honeypot Source Codes (`honeypot_source_codes/`) This folder contains a curated collection of representative smart contract source codes that implement honeypot mechanisms. The contracts were identified by our tool and manually inspected during our analysis. They are organized according to the honeypot category (sell reversion, timed sell reversion, high buy/sell tax). They serve as reference examples illustrating the different techniques used by malicious token deployers to trap investors, as discussed in the Appendix C.2 of the paper. --- ## Allowlist Function Signatures (`functions_signature.csv`) This CSV file contains 26 function signatures extracted during our analysis of allowlist-based honeypot mechanisms, used to identify colluding addresses. The extraction methodology is described in Section 7.1 of the paper. Each row represents a single function and includes the following fields: | Field | Description | |---|---| | `function_signature` | Human-readable function name including its parameters | | `selector` | 4-byte function selector used in transactions | --- ## License The code in this repository is released under the MIT License. The datasets in this repository are released under CC0 1.0 Universal (Public Domain Dedication).