如果本项目对您的工作有帮助,请支持持续维护和新功能开发。
ETH 捐赠钱包
0x11282eE5726B3370c8B480e321b3B2aA13686582
扫描二维码或复制上方钱包地址。
购买前检查代币是否为骗局
免费、快速且精准的以太坊、Polygon 和 Arbitrum 智能合约蜜罐检测工具。
我们捕捉蜜罐。 蜜罐代币是一种旨在窃取您资金的恶意智能合约。它允许您自由买入代币,但当你试图卖出时——交易会失败。您的资金将被永远困住。
骗子将隐藏逻辑嵌入代币的智能合约代码中:
HoneypotScan 专门用于蜜罐检测。我们不扫描以下内容:
如需全面的安全审计,请咨询专业审计机构。HoneypotScan 只回答一个问题:“我买入这个代币后能卖出吗?”
每个检测到的蜜罐模式都附有详细的教育内容:
模式示例说明:``` 🚨 tx.origin in Require Statement (CRITICAL)
How it works: Transactions are blocked unless tx.origin matches a specific address. DEX sells always fail because the router becomes the msg.sender.
Protection: tx.origin checks in access control are a major red flag.
### 扫描历史
您最近的10次扫描会自动保存在本地:
- 快速访问之前扫描的合约
- 无服务器存储 - 完全隐私
- 包含代币名称、符号和扫描时间戳
- 一键重新扫描或分享功能
### 分享与导出
**通过URL分享结果:**```
https://honeypotscan.com#result=eyJhIjoiMHguLi4ifQ==
导出为JSON:```json { "scanner": "HoneypotScan", "version": "1.0", "scannedAt": "2026-02-01T12:00:00Z", "result": { "address": "0x...", "isHoneypot": true, "confidence": 95, "patterns": [...] } }
**复制为文本:**```
🔍 HoneypotScan Result
════════════════════════════════════════
Token: Scam Token (SCAM)
Address: 0x...
Chain: Ethereum
Status: 🚨 HONEYPOT DETECTED
Confidence: 95%
⚠️ Patterns Found (3):
• tx_origin_require (line 123)
• hidden_sell_tax (line 456)
• transfer_whitelist_only (line 789)
HoneypotScan 提供两种扫描模式,实现最大灵活性:
粘贴任意合约地址,检查是否为蜜罐。支持以太坊、Polygon 和 Arbitrum 地址。
已有合约源代码?直接粘贴即可进行即时分析,无需从区块链获取。
Next.js 16 (App Router) ↓ Cloudflare Workers API ↓ Cloudflare KV (Cache) ↓ TypeScript Pattern Detector ↓ Etherscan API (6 keys with rotation) ↓ Ethereum, Polygon, and Arbitrum
## 🧬 检测算法
HoneypotScan 使用高级**静态分析**来检测智能合约源代码中的恶意模式。我们的算法旨在实现高准确率,同时尽量减少误报。
### 工作原理```
1. Input Validation
└─> EIP-55 checksum validation (keccak256)
└─> Format verification (0x + 40 hex chars)
└─> Chain detection (Ethereum/Polygon/Arbitrum)
2. Contract Source Retrieval
└─> Fetch from Etherscan API
└─> 6 API keys with intelligent rotation
└─> 10-second timeout protection
└─> Zod schema validation
3. Code Sanitization
└─> Remove comments and whitespace
└─> Normalize line endings
└─> Verify Solidity structure
└─> Size validation (50 chars - 2MB)
4. Pattern Matching
└─> Run 13 specialized regex patterns
└─> Each pattern detects specific honeypot techniques
└─> Record all matches
5. Confidence Scoring
└─> ≥2 patterns = HONEYPOT (95% confidence)
└─> 1 pattern = SUSPICIOUS (needs review)
└─> 0 patterns = SAFE (100% confidence)
我们的扫描器检测13种专门的蜜罐模式,涵盖4个类别:
这些检测在标准代币函数中使用tx.origin——一种常见的防止转售的技巧:
示例蜜罐代码:```solidity function balanceOf(address account) public view returns (uint256) { if (tx.origin != account) return 0; // 🚩 HONEYPOT return _balances[account]; }
#### 2️⃣ **隐藏辅助函数(2个模式)**
内部函数实现选择性卖出:
| 模式 | 描述 | 风险 |
|---------|-------------|------|
| `hidden_fee_taxPayer` | `_taxPayer()` 辅助函数使用 tx.origin | 针对非原始购买者的隐藏税收逻辑 |
| `isSuper_tx_origin` | `_isSuper()` 辅助函数使用 tx.origin | 仅允许骗子卖出的白名单函数 |
#### 3️⃣ **身份认证绕过(4个模式)**
使用 `tx.origin` 进行访问控制(危险模式):
| 模式 | 描述 | 风险 |
|---------|-------------|------|
| `tx_origin_require` | `require()` 语句检查 tx.origin | 对来自 DEX 路由器的交易进行回滚 |
| `tx_origin_if_auth` | 使用 tx.origin 进行身份验证的 `if` 语句 | 阻止转售的条件逻辑 |
| `tx_origin_assert` | `assert()` 语句检查 tx.origin | 非原始交易导致硬失败 |
| `tx_origin_mapping` | 通过 `[tx.origin]` 访问映射 | 基于原始调用者的跟踪/黑名单 |
**为什么 tx.origin 是危险的:**
- 当你通过 Uniswap 购买时:`tx.origin = YOUR_WALLET` ✅
- 当你通过 Uniswap 卖出时:`tx.origin = YOUR_WALLET`,但 `msg.sender = UNISWAP_ROUTER` ❌
- 蜜罐利用这一差异,在允许买入的同时阻止卖出
#### 4️⃣ **转账限制(4个模式)**
直接阻止卖出的机制:
| 模式 | 描述 | 风险 |
|---------|-------------|------|
| `sell_block_pattern` | `_isSuper(recipient)` 返回 false | 明确阻止向非白名单地址卖出 |
| `asymmetric_transfer_logic` | `_canTransfer()` 始终返回 false | 在初始买入后阻止任何转账 |
| `transfer_whitelist_only` | 要求发送方和接收方都在白名单中 | 只有骗子能转移代币 |
| `hidden_sell_tax` | 在 DEX 交易对逻辑中设置 95-100% 的卖出税 | 卖出时完全耗尽你的代币 |
### 为什么阈值设为 2?
**我们的检测阈值要求至少匹配 2 个模式** 才能归类为蜜罐。原因如下:
#### ✅ **减少误报**
- 单个模式可能偶然出现在合法合约中
- 2 个以上模式表明 **故意的恶意设计**
- 例如:一个合约可能有一个 `tx.origin` 检查用于反机器人保护(安全),但 2 个以上表明系统性滥用
#### ✅ **保持高准确性**
- 我们的测试显示蜜罐通常表现出 **3-7 个模式**
- 合法合约很少显示超过 1 个模式
- 阈值 2 = 敏感性和特异性之间的 **最佳平衡**
#### ✅ **置信水平**```
0 patterns = 100% Safe (no suspicious code)
1 pattern = Needs Review (possibly safe anti-bot measures)
2+ patterns = 95% Honeypot (intentional malicious design)
基于我们对超过1000个合约的测试:
我们可能遗漏的:
我们不扫描的内容:
底线:HoneypotScan 专注于一项工作——检测阻止卖出的蜜罐代币。如需全面安全评估,请咨询专业审计师。
HoneypotScan 采用安全优先架构构建,覆盖整个技术栈:
CORS允许的来源:``` https://honeypotscan.com https://www.honeypotscan.com https://honeypotscan.pages.dev http://localhost:3000 (development)
### 🔒 API 安全
| 功能 | 实现方式 | 保护措施 |
|---------|---------------|------------|
| **API 密钥轮换** | 6 个 Etherscan 密钥随机选择 | 分散负载,防止单一密钥耗尽 |
| **Schema 验证** | 对所有 API 响应进行 Zod 验证 | 防止格式错误数据导致运行时错误 |
| **错误清理** | 向用户返回通用错误信息 | 防止信息泄露 |
| **结构化日志** | 带时间戳和元数据的 JSON 日志 | 提供调试和安全监控的审计追踪 |
### 🏗️ 基础设施安全
| 功能 | 实现方式 | 保护措施 |
|---------|---------------|------------|
| **无硬编码密钥** | 所有凭据通过环境变量提供 | 防止密钥暴露在仓库中 |
| **Cloudflare Workers** | 边缘计算,隔离执行环境 | DDoS 防护与自动扩缩 |
| **带 TTL 的 KV 缓存** | 自动过期(24 小时) | 防止陈旧数据攻击 |
| **OAuth 认证** | 部署使用 Cloudflare OAuth 令牌 | 安全 CI/CD,代码中无 API 密钥 |
### 🔍 代码安全
| 功能 | 实现方式 | 保护措施 |
|---------|---------------|------------|
| **TypeScript 严格模式** | 完全严格编译 | 在编译时捕获类型错误 |
| **防御性数组访问** | 访问前进行未定义检查 | 防止运行时崩溃 |
| **正则表达式安全** | 模式中使用有界量词 | 缓解 ReDoS 攻击 |
| **无 eval() 或 Function()** | 纯静态分析 | 防止代码注入 |
### 🚨 我们不存储的内容
**隐私优先设计意味着零数据收集:**
- ❌ 无用户账户或身份认证
- ❌ 无扫描历史或日志
- ❌ 无 IP 地址追踪(除速率限制外;速率限制基于内存,每分钟清除)
- ❌ 无 Cookie 或浏览器指纹识别
- ❌ 无分析工具或第三方追踪器
**您的扫描完全匿名。**
### 📋 安全头部
每次响应都包含:```http
Content-Security-Policy: default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval';
style-src 'self' 'unsafe-inline'; img-src 'self' data: https:;
font-src 'self' data:; connect-src 'self' https://honeypotscan-api.teycircoder4.workers.dev;
frame-ancestors 'none'; base-uri 'self'; form-action 'self'
X-Frame-Options: DENY
X-Content-Type-Options: nosniff
Referrer-Policy: no-referrer
Permissions-Policy: camera=(), microphone=(), geolocation=()
发现安全问题?请私下报告:
我们感谢负责任的披露,并将在发布说明中致谢安全研究人员。
git clone https://github.com/Teycir/honeypotscan.git cd honeypotscan
npm install
cp .env.example .env.local
npm run dev
npm run build
npm run deploy
### API 使用```bash
# Scan a token contract
curl "https://your-worker.workers.dev/api/scan?address=0x...&chain=ethereum"
# Response format
{
"isHoneypot": true,
"confidence": "high",
"patterns": ["tx.origin abuse", "hidden fees"],
"riskScore": 85,
"cached": false
}
HoneypotScan 使用 13 种专门模式,涵盖 4 个类别:
检测阈值:需要 2 种以上模式才能以 95% 的信心进行蜜罐分类。
👉 详情请参见上方的检测算法部分。
ETHERSCAN_API_KEY_1=your-key-1 ETHERSCAN_API_KEY_2=your-key-2 ETHERSCAN_API_KEY_3=your-key-3 ETHERSCAN_API_KEY_4=your-key-4 ETHERSCAN_API_KEY_5=your-key-5 ETHERSCAN_API_KEY_6=your-key-6
CLOUDFLARE_ACCOUNT_ID=your-account-id CLOUDFLARE_API_TOKEN=your-api-token
## 📈 伸缩性
**免费层容量:**
- 10万次请求/天(Cloudflare Workers)
- 10万次读取/天(Cloudflare KV)
- 260万次API调用/天(Etherscan)
- **95%缓存命中率下:200万次扫描/天**
**费用:$0/月** 🎉
## 🛠️ 技术栈
- **前端**:Next.js 16, React 19, Tailwind CSS v4, Framer Motion
- **后端**:Cloudflare Workers
- **缓存**:Cloudflare KV
- **扫描器**:TypeScript(自定义模式检测)
- **API**:Etherscan, Polygonscan, Arbiscan
- **部署**:Cloudflare Pages + Workers
## 🧪 测试```bash
# Run contract scanner tests
npm run test:scan
# Test specific contract
tsx test/scan-contracts.ts 0x...
# Debug pattern detection
tsx test/debug-pattern.ts
欢迎贡献!请随时提交问题或拉取请求。
git checkout -b feature/amazing-feature)git commit -m '添加超棒特性')git push origin feature/amazing-feature)商业源码许可证 1.1 - 参见 LICENSE 文件
附加使用授权:非生产用途免费。生产用途需要商业许可证。
变更日期:2030-01-30(转换为 MIT 许可证)
蜜罐是一种诈骗代币,旨在让你可以买入但无法卖出。骗子在智能合约代码中使用各种技巧来套牢你的资金。
HoneypotScan 使用 13 种专用模式,在阈值设为 2+ 匹配的情况下,实现了 98% 的灵敏度(捕获 98% 的蜜罐)和 97% 的特异性(仅 3% 误报)。详见我们的检测算法部分。虽然高度准确,但没有扫描器是 100% 万无一失的——请始终自行研究(DYOR)。
目前:以太坊、Polygon 和 Arbitrum。更多链即将支持。
正常使用无速率限制。智能缓存系统高效处理高流量。
是的,老练的骗子可能会使用新颖的技术。HoneypotScan 是一个辅助工具,而非保证。请始终通过多个来源进行验证。
看看这些其他注重隐私的工具:
| 项目 | 描述 |
|---|---|
| TimeSeal.online | 在区块链上为文档添加时间戳并证明其存在 |
| SanctumVault.online | 安全的加密文件存储与共享 |
| Ghost-Chat | 匿名加密消息传递 |
此工具仅供信息参考。在投资任何加密货币或代币之前,请务必自行研究(DYOR)。HoneypotScan 不构成财务建议。
Teycir Ben Soltane
需要定制的区块链工具、安全扫描器或 Web 应用?我可承接自由职业项目。
我提供的服务:
🚀 让我们一起合作 → teycirbensoltane.tn
使用 Next.js 和 Cloudflare 以 ❤️ 构建
| 模式 | 描述 | 风险 |
|---|
balance_tx_origin | balanceOf()函数检查tx.origin | 向原始购买者与路由器显示不同的余额 |
allowance_tx_origin | allowance()函数检查tx.origin | 阻止DEX获得出售授权 |
transfer_tx_origin | transfer()函数检查tx.origin | 阻止非原始购买者发起的转账 |
| 特性 | 实现 | 保护措施 |
|---|
| EIP-55 校验和验证 | 使用 @noble/hashes 进行正确的keccak256哈希 | 防止地址篡改攻击 |
| 格式验证 | 正则表达式 + 长度检查(0x + 40位十六进制) | 在处理前拒绝畸形输入 |
| 输入净化 | 修剪、小写、字符过滤 | 深度防御注入 |
| 大小限制 | 最少50字符,最多2MB合约代码 | 通过过大载荷防止DoS攻击 |
| 特性 | 实现 | 保护措施 |
|---|
| 内容安全策略 | 所有页面上的严格CSP头部 | 防止XSS、点击劫持、数据注入 |
| CORS白名单 | 针对允许列表进行来源验证 | 阻止来自未知域的未授权API使用 |
| 速率限制 | 每IP请求限制(30次/分钟) | 防止滥用并确保公平使用 |
| 请求超时 | 使用AbortController的10秒超时 | 防止挂起请求和资源耗尽 |