Skip to content

now996/meme-token-analyzer

Repository files navigation

🔍 MEME 合约扒庄分析工具

License Python

一个强大的 MEME 合约持仓分析工具,支持识别庄家、分析持仓集中度、导出数据报告。专为 DeFi 和加密资产分析者设计。

✨ 核心功能

功能 描述 场景
🐋 鲸鱼地址识别 自动识别持仓超过 1% 的大户 评估庄家风险
📊 持仓集中度分析 计算 Top 10/20/50 占比 判断代币中心化程度
🏆 排名分析 查看地址在所有持有者中的排名 了解自己的持仓位置
💾 多格式导出 CSV / HTML / JSON 进一步分析或分享
👥 批量地址查询 一次分析多个地址 快速对比检查
🏷️ 地址标签 识别已知的特殊地址 快速定位交易所、LP等

🚀 快速开始

1️⃣ 安装依赖

# 基础依赖(可选,使用演示数据无需安装)
pip install requests web3

# 如果导出为 HTML 需要生成精美报告(内置库无额外要求)

2️⃣ 基础使用

from meme_analyzer import MemeAnalyzerFinal

# 创建分析器(使用演示数据)
analyzer = MemeAnalyzerFinal("0x8076c74c5e3f5852037f31ff0093eeb8c8add8d3")

# 生成分析报告
analyzer.print_report()

# 查询个人地址
analyzer.print_holder_report("0x你的钱包地址")

3️⃣ 导出报告

# 导出为 CSV(Excel 分析)
analyzer.export_to_csv("holders.csv")

# 导出为 HTML(浏览器查看)
analyzer.export_to_html("report.html")

# 保存为 JSON(数据备份)
analyzer.save_to_json("data.json", include_metadata=True)

📚 详细使用指南

合约整体分析

analyzer = MemeAnalyzerFinal("0x合约地址")
analyzer.print_report()

输出内容:

  • 代币基本信息(名称、符号、小数位)
  • 持仓集中度指标(Top 10/20/50 占比)
  • 风险等级评估(🟢低风险 - 🔴极高风险)
  • Top 20 鲸鱼地址列表

风险等级说明:

  • 🟢 低风险 (Top 10 < 20%):分散度良好,较安全
  • 🟡 低-中风险 (20% - 30%):相对安全,需注意
  • 🟡 中等风险 (30% - 50%):需要警惕,存在风险
  • 🔴 高风险 (50% - 70%):存在强势庄家
  • 🔴 极高风险 (> 70%):强势中心化,极度危险

个人地址深度分析

analyzer.print_holder_report("0x你的钱包地址")

输出信息:

  • 持仓详情:持仓数量、占比百分比
  • 排名分析:在所有持有者中的排名、是否在 Top 10/20/50/100
  • 相对位置:超过了多少人、被多少人超过
  • 风险评估:地址风险等级(散户 → 小户 → 大户 → 鲸鱼)
  • 对比分析:相对第1名持有者的比例、与邻近持有者的对比

地址风险分类:

持仓占比 分类 风险 说明
> 10% 🔴 鲸鱼地址 极高 可能是庄家,能直接影响价格
5% - 10% 🔴 大户地址 持仓金额很大,有影响力
1% - 5% 🟡 中户地址 中等规模持仓,值得关注
0.1% - 1% 🟡 小户地址 低-中 较小持仓,相对安全
< 0.1% 🟢 散户地址 个人投资者,风险最低

批量地址分析

# 一次分析多个地址
addresses = [
    "0x地址1",
    "0x地址2",
    "0x地址3",
]

analyzer.print_batch_report(addresses)

输出内容:

  • 查询统计(找到的地址数、鲸鱼数量等)
  • 地址排名列表
  • 快速对比分析

数据导出

导出为 CSV(Excel 分析)

analyzer.export_to_csv("holders.csv")

CSV 包含:

  • 所有持有者的详细信息
  • 持仓数量、占比、风险等级
  • 是否为鲸鱼地址的标记
  • 已知地址的标签识别

💡 用途:

  • 在 Excel 中自定义分析和排序
  • 应用数据透视表功能
  • 导入其他分析工具
  • 长期数据记录和对比

导出为 HTML(浏览器查看)

analyzer.export_to_html("report.html")

HTML 报告特点:

  • 🎨 精美的可视化界面
  • 📊 彩色的风险等级标记
  • 🔗 完整的地址链接
  • 📱 响应式设计(支持手机)
  • 📋 包含分析建议和说明

💡 用途:

  • 生成演示文稿
  • 分享给他人查看
  • 团队协作分析
  • 长期风险监控报告

保存为 JSON(数据备份)

analyzer.save_to_json("data.json", include_metadata=True)

JSON 包含:

  • 完整的持有者数据
  • 代币信息
  • 分析元数据(时间戳、浓度分析等)

💡 用途:

  • 离线数据备份
  • 程序化处理分析结果
  • Dune Analytics 数据导入
  • 历史数据对比分析

地址标签识别

label, category = analyzer.get_address_label("0x地址")

if label:
    print(f"已知地址: {label} ({category})")

可识别的地址类型:

  • ❌ 零地址和销毁地址
  • 🏦 交易所地址(Binance、OKEx 等)
  • 🔄 DEX 路由器(UniSwap、PancakeSwap 等)
  • 💧 流动性池地址
  • 👤 开发团队钱包

🔧 配置选项

获取真实链上数据

默认使用演示数据,要获取真实数据,需要配置 API key:

方案 1:Moralis 免费 API(⭐ 推荐)

MORALIS_API_KEY = "your_moralis_api_key"

优势:

  • 注册完全免费,无需信用卡
  • 支持所有主流链(Ethereum、BSC、Polygon等)
  • 每天 ~50 个请求(个人使用足够)
  • 效率高,数据准确

注册步骤:

  1. 访问 https://moralis.io
  2. 点击"Sign Up"注册账户
  3. 在 Dashboard 获取 API key
  4. 填入脚本配置:MORALIS_API_KEY = "key"
  5. 重新运行脚本

方案 2:BlockScout API(完全免费)

# 无需配置,脚本自动尝试
# BlockScout API 完全免费,无 API key 限制

优势:

  • 完全免费,无需注册
  • BSC 链数据效率最高
  • 支持大量并发请求

备注: 脚本已默认启用,无需额外配置


方案 3:Dune Analytics(可视化方案)

  1. 访问 https://dune.com/
  2. 浏览或编写 SQL query 获取数据
  3. 导出为 JSON 格式
  4. 加载到分析器:
analyzer.load_from_json("dune_export.json")
analyzer.print_report()

方案 4:Infura / Alchemy(付费方案)

INFURA_API_KEY = "your_infura_key"
# 或
ALCHEMY_API_KEY = "your_alchemy_key"

备注: 这些是付费服务,个人用户推荐使用免费方案


📊 使用案例

案例 1:评估新代币风险

# 在投资前评估风险
analyzer = MemeAnalyzerFinal("0x新代币合约地址")
analyzer.print_report()

# 检查持仓集中度
report = analyzer.analyze_concentration()
if report['top10_percentage'] > 70:
    print("⚠️  极高风险,持仓集中度过高,不建议投资")

案例 2:监控持仓排名

# 查看你的钱包排名
my_address = "0x你的钱包地址"
analyzer.print_holder_report(my_address)

# 程序化检查
result = analyzer.analyze_holder_address(my_address)
if result['found']:
    print(f"你的排名: #{result['rank']}")
    print(f"持仓占比: {result['percentage']:.4f}%")
    if result['is_whale']:
        print("🐋 恭喜!你是鲸鱼地址")

案例 3:识别可疑地址

# 检查一批可疑地址
suspicious = ["0x地址1", "0x地址2", "0x地址3"]
analyzer.print_batch_report(suspicious)

# 逐个分析
for addr in suspicious:
    result = analyzer.analyze_holder_address(addr)
    if result['found'] and result['is_whale']:
        label, _ = analyzer.get_address_label(addr)
        if not label:  # 非已知地址
            print(f"⚠️  发现可疑鲸鱼地址: {addr}")

案例 4:生成投资分析报告

# 完整报告导出
analyzer.print_report()
analyzer.export_to_csv("analysis.csv")
analyzer.export_to_html("report.html")

# 用 HTML 报告向他人演示或分享

🔍 常见问题

Q1: 如何快速测试脚本功能?

A: 直接运行脚本,它会自动使用演示数据:

python meme_analyzer.py

演示数据包含了 SafeMoon 的完整持有者信息,适合学习和测试。


Q2: 使用演示数据和真实数据有什么区别?

A:

方面 演示数据 真实数据
准确性 示例用,非实时 100% 链上数据
数据源 本地存储 链上 API
需要网络 ❌ 不需要 ✅ 需要
需要 API key ❌ 不需要 ⚠️ 取决于方案
实时性 ❌ 静态 ✅ 实时
用途 学习、测试 实际投资分析

Q3: 如何安装必要的依赖?

A: 根据使用场景安装:

# 最小化安装(仅演示数据)
# 无需安装,使用内置库即可

# 完整功能(推荐)
pip install requests web3

# 或一次性安装
pip install -r requirements.txt

Q4: CSV 导出后如何在 Excel 中进一步分析?

A:

  1. 用 Excel 打开 CSV 文件
  2. 使用数据透视表分析持仓分布
  3. 创建图表展示风险等级分布
  4. 应用筛选功能找出鲸鱼地址
  5. 基于自定义条件排序持有者

Q5: HTML 报告可以直接分享给他人吗?

A: 完全可以!HTML 文件是独立的,包含所有样式和数据,可以:

  • 直接发送给他人
  • 集成到网站或博客
  • 保存为 PDF 进行演示
  • 导入到协作工具

Q6: 分析结果可信吗?

A:

  • 演示数据:基于历史数据推导,用于学习
  • 真实数据:直接来自区块链,100% 准确
  • 分析逻辑:按业界标准计算持仓占比

数据准确性完全取决于数据源的可靠性。建议对投资决策重要的数据使用真实链上数据。


Q7: 脚本支持哪些区块链网络?

A:

当前实现:

  • BSC (币安智能链) - 完全支持
  • ⚠️ Ethereum - 需配置 Moralis/Infura
  • ⚠️ Polygon - 需配置 Moralis/Infura
  • ⚠️ 其他链 - 需修改脚本配置

Q8: 可以自定义识别哪些是鲸鱼地址吗?

A: 当然可以!修改 analyze_holder_address() 方法中的阈值:

# 当前设置:持仓 > 1% 为鲸鱼
if percentage > 1:
    risk_level = "鲸鱼地址"

# 改为你自己的标准:
if percentage > 2:  # 改为 > 2%
    risk_level = "鲸鱼地址"

🛠️ 进阶使用

自定义地址标签库

编辑脚本顶部的 KNOWN_ADDRESSES 字典:

KNOWN_ADDRESSES = {
    "0x0000000000000000000000000000000000000000": ("❌ 零地址", "系统"),
    "0x0000000000000000000000000000000000000001": ("🔥 销毁地址", "系统"),
    # 添加你自己的标签
    "0x1234...": ("🏦 我的地址", "个人"),
}

批量分析多个代币

contracts = [
    "0x代币1",
    "0x代币2", 
    "0x代币3",
]

for contract in contracts:
    print(f"\n分析 {contract}")
    analyzer = MemeAnalyzerFinal(contract)
    analyzer.print_report()
    analyzer.export_to_csv(f"{contract[:8]}.csv")

历史数据对比

# 定期保存分析数据
analyzer.save_to_json(f"history_{datetime.now().strftime('%Y%m%d')}.json")

# 后续加载和对比
from datetime import datetime
old_data = analyzer.load_from_json("history_20260401.json")
new_data = analyzer.load_from_json("history_20260406.json")

# 比较持仓变化...

📋 项目结构

meme-analyzer-repo/
├── meme_analyzer.py          # 主分析工具
├── README.md                 # 本使用文档
├── requirements.txt          # Python 依赖列表
├── LICENSE                   # MIT 许可证
├── .gitignore               # Git 忽略文件
├── examples/                # 使用示例
│   ├── basic_analysis.py    # 基础分析示例
│   ├── batch_analysis.py    # 批量分析示例
│   └── export_report.py     # 报告导出示例
└── data/                    # 数据文件
    ├── holders.csv          # CSV 数据示例
    └── report.html          # HTML 报告示例

🤝 贡献

欢迎提交 Pull Request 来改进这个项目:

  1. Fork 本项目
  2. 创建特性分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 打开 Pull Request

📄 许可证

本项目使用 MIT 许可证,详见 LICENSE 文件。


👤 作者

MEME 合约扒庄分析工具 - 为加密资产分析者设计


🔗 相关资源


⚠️ 免责声明

本工具仅供学习和分析使用,不构成任何投资建议。加密资产投资存在风险,请自行研究和谨慎决策。


📞 支持

有问题或建议?欢迎提交 Issue 或讨论!


最后更新:2026-04-06

About

meme-token-analyzer

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages