内容
<p align="center">
<img src="docs/images/mamba_text_1280_640.png" width="640" alt="Mamba">
</p>
<p align="center">
<a href="https://github.com/FLOCK4H/Mamba/actions/workflows/docs.yml"><img src="https://github.com/FLOCK4H/Mamba/actions/workflows/docs.yml/badge.svg?event=push" alt="文档"></a>
<a href="https://github.com/FLOCK4H/Mamba/stargazers"><img src="https://img.shields.io/github/stars/FLOCK4H/Mamba?style=flat-square" alt="星标"></a>
<a href="https://github.com/FLOCK4H/Mamba/commits"><img src="https://img.shields.io/github/last-commit/FLOCK4H/Mamba?style=flat-square" alt="最后提交"></a>
</p>
<p align="center">
本地 Solana DEX 工具包,基于 Rust。提供实时的市场行情、路由发现、交易、代币发布和池管理,支持 10 个市场。<br>
以本地 API、MCP 服务器和终端应用的形式提供。所有签名操作均在本地机器上进行。
</p>
<p align="center">
<a href="docs/quickstart.md">快速开始</a> · <a href="docs/MAMBA_API.md">API</a> · <a href="docs/MAMBA_MCP.md">MCP</a> · <a href="docs/MAMBA_CLI.md">CLI</a> · <a href="docs/markets.md">市场</a> · <a href="docs/MCP_CLIENT_SETUP.md">MCP 客户端设置</a>
</p>
---
## 安装
```bash
# Linux
./scripts/install_mamba_linux.sh
# macOS
./scripts/install_mamba_macos.sh
# Windows PowerShell
powershell -ExecutionPolicy Bypass -File .\scripts\install_mamba_windows.ps1
```
引导脚本会安装固定的 Rust 工具链、拉取上游依赖并构建所有二进制文件。
```bash
cp .env.example .env
```
在 `.env` 中设置:
```bash
MAMBA_API_KEY=请更换
MAMBA_API_HTTP_URLS=https://api.devnet.solana.com
MAMBA_API_WS_URLS=wss://api.devnet.solana.com
```
`MAMBA_PRIVATE_KEY` 仅在需要签名时使用。只读市场发现无需私钥即可工作。
## 选择你的界面
**与 AI 代理一起使用 MCP?** 构建一次,连接 Codex、Claude、Gemini CLI 或任何 stdio MCP 客户端:
```bash
cargo run --bin mamba_api # 启动后端
cargo build --bin mamba_mcp # 构建 MCP 网桥
# 然后使用客户端注册(参见 docs/MCP_CLIENT_SETUP.md)
./scripts/print_mamba_mcp_configs.sh
```
**基于 API 构建?** `mamba_api` 是一个用于市场数据、交易、钱包、代币发布、池和存储历史的身份验证本地 HTTP 服务器:
```bash
cargo run --bin mamba_api
# 订阅市场
curl -sS -H "x-api-key: $MAMBA_API_KEY" -H "content-type: application/json" \
-d '{ "market": "pump_fun" }' \
http://127.0.0.1:8787/mamba-api/v1/ws/subscribe
# 读取铸造流
curl -sS -H "x-api-key: $MAMBA_API_KEY" \
"http://127.0.0.1:8787/mamba-api/v1/mints?markets=pump_fun,pump_swap&limit=20"
```
**从终端交易?** TUI 提供实时监控、交易、代币创建、池管理、钱包操作和持有者查找,功能集成在一个屏幕中:
```bash
cargo run --bin mamba
```
## 市场覆盖
10 个市场,支持 WebSocket 订阅、路由查找、定价和买卖流程:
| 市场 | 交易 | 创建代币 | 创建池 |
|--------|:-----:|:------------:|:-----------:|
| PumpSwap | ✓ | | ✓ |
| Pump.fun | ✓ | ✓ | |
| Raydium AMM v4 | ✓ | | ✓ |
| Raydium Launchpad | ✓ | ✓ | |
| Raydium CLMM | ✓ | | ✓ |
| Raydium CPMM | ✓ | | ✓ |
| Meteora DLMM | ✓ | | ✓ |
| Meteora DAMM v1 | ✓ | | ✓ |
| Meteora DAMM v2 | ✓ | | ✓ |
| Meteora DBC | ✓ | | ✓ |
代币创建还支持 `spl_token` 和 `spl_token_2022`,除了市场特定的发布流程。
详细分解参见 [docs/markets.md](docs/markets.md)。
## 工作原理
Mamba 连接到 Solana WebSocket 流并填充内存铸造缓存。路由、池、元数据和定价按需解析。当您发出交易时,它会在本地构建交易, 可选地进行 dry-run,仅在您明确选择时发送。
- 需要 `MAMBA_API_ENABLE_LIVE_SENDS=true` 才能进行实时发送
- `/swap` 默认规划;仅当 `execute=true` 时才发送
- 跨集群发送被阻止(开发网络运行时无法发送到主网)
- 签名使用配置的 API 签名者或托管钱包存储
对于繁忙的主网流,请至少使用 3 个 HTTP RPC,跨 2 个提供商。同一主机上的两个 URL 仍可能一起限制。
使用 `MAMBA_API_STORE_MODE=true` 和 `MAMBA_API_DATABASE_URL` 可选 Postgres 存储。
## 项目布局
```
src/
api/ HTTP API 服务器(mamba_api)
mcp/ MCP stdio 网桥(mamba_mcp)
bin/ 二进制入口点(mamba, mamba_api, mamba_mcp, mamba_tx_inspect)
dex/ 市场实现和交易路由器
core/ 共享类型、配置、钱包管理
gate/ 身份验证和速率限制
handlers/ 请求处理器
transfers/ SOL 和 SPL 代币转移逻辑
swqos/ 交易发送的权益加权 QoS
compute_budget/ 优先级费用计算
utils/ 助手
```
## 文档
- [快速开始](docs/quickstart.md)
- [API 参考](docs/MAMBA_API.md)
- [MCP 服务器](docs/MAMBA_MCP.md)
- [MCP 客户端设置](docs/MCP_CLIENT_SETUP.md)
- [CLI/TUI](docs/MAMBA_CLI.md)
- [代币创建](docs/MAMBA_CREATE.md)
- [市场分解](docs/markets.md)
- [架构](docs/architecture.md)
- [钱包清理器](docs/features/wallet-cleaner.md)