介绍
# 📬 BaseMail - Onchain Email for AI Agents on Base
> 您的智能体将获得一个与其链上身份关联的真实电子邮件地址。无需人工干预。
**简而言之:** 拥有 Basename(`yourname.base.eth`)?立即获取 `[email protected]`。使用您的 Base 钱包签名,自主发送电子邮件。
## 为什么选择 BaseMail?
- **基于 Base 链构建** — 电子邮件身份与您在 Base(Coinbase 的 L2)上的链上钱包绑定 - **Basename 集成** — `.base.eth` 持有者可自动获得匹配的 `@basemail.ai` 地址 - **SIWE 认证** — 通过以太坊登录,无需密码或验证码 - **面向 AI 智能体** — 注册服务、提交表单、接收确认,均无需人工帮助 - **可验证身份** — 您的电子邮件通过加密方式与您的 Base 钱包地址关联
BaseMail 为 AI 智能体在 **Base 链** 上提供可验证的电子邮件身份: - ✨ **Basename 持有者** → `yourname.base.eth` → `[email protected]` - 🔗 **任意 Base 钱包** → `[email protected]`
### 工作原理
``` Base Wallet → SIWE Signature → BaseMail Registration → [email protected] ↑ ↓ Basename (.base.eth) Send & receive email autonomously ```
---
## 🔐 钱包设置(任选其一)
### 选项 A:环境变量(推荐 ✅)
如果您已有钱包,只需设置环境变量 —— **私钥不会存储到文件中**:
```bash export BASEMAIL_PRIVATE_KEY="0x..." node scripts/register.js ```
> ✅ 最安全的方法:私钥仅存在于内存中。
---
### 选项 B:指定钱包路径
指向您现有的私钥文件:
```bash node scripts/register.js --wallet /path/to/your/private-key ```
> ✅ 使用您现有的钱包,无需复制。
---
### 选项 C:托管模式(初学者)
让该技能为您生成并管理钱包:
```bash node scripts/setup.js --managed node scripts/register.js ```
> ✅ **始终加密** — 私钥受 AES-256-GCM 保护 > - 您将在设置期间设置密码(至少 8 个字符,必须包含字母和数字) > - 每次使用钱包时都需要输入密码 > - 助记词仅显示一次供手动备份(永不保存到文件) > - 终端中密码输入是掩码(隐藏)的
---
## ⚠️ 安全准则
1. **切勿**将私钥提交到 git 2. **切勿**公开分享私钥或助记词 3. **切勿**将 `~/.basemail/` 添加到版本控制中 4. 私钥文件应设置为 chmod `600`(仅所有者可读/写) 5. 优先使用环境变量(选项 A)而非文件存储 6. `--wallet` 路径经过验证:必须在 `$HOME` 下,禁止路径遍历,最大文件大小 1KB 7. 使用前会验证私钥格式(`0x` + 64 个十六进制字符) 8. 终端中密码输入是掩码的(字符隐藏) 9. 该技能仅签署 SIWE 认证消息 — 它 **绝不会发送资金或链上交易**
### 推荐的 .gitignore
```gitignore # BaseMail - NEVER commit! .basemail/ **/private-key.enc ```
---
## 🚀 快速开始
### 1️⃣ 注册
```bash # Using environment variable export BASEMAIL_PRIVATE_KEY="0x..." node scripts/register.js
# Or with Basename node scripts/register.js --basename yourname.base.eth ```
### 2️⃣ 发送电子邮件
```bash node scripts/send.js "[email protected]" "Hello!" "Nice to meet you 🦞" ```
### 3️⃣ 检查收件箱
```bash node scripts/inbox.js # List emails node scripts/inbox.js <email_id> # Read specific email ```
---
## 📦 脚本
| 脚本 | 用途 | 需要私钥 | |--------|---------|-------------------| | `setup.js` | 显示帮助 | ❌ | | `setup.js --managed` | 生成钱包(始终加密) | ❌ | | `register.js` | 注册电子邮件地址 | ✅ | | `send.js` | 发送电子邮件 | ❌ (使用令牌) | | `inbox.js` | 检查收件箱 | ❌ (使用令牌) | | `audit.js` | 查看审计日志 | ❌ |
---
## 📍 文件位置
``` ~/.basemail/ ├── private-key.enc # Encrypted private key (AES-256-GCM, chmod 600) ├── wallet.json # Wallet info (public address only) ├── token.json # Auth token (chmod 600) └── audit.log # Operation log (no sensitive data) ```
---
## 🎨 获取 Basename 关联的电子邮件
想要 `[email protected]` 而不是 `[email protected]`?
1. 在 https://www.base.org/names 注册一个 **Basename**(`.base.eth`) 2. 链接它:`node scripts/register.js --basename yourname.base.eth`
您的 Basename 是您在 Base 上的链上身份 — 而 BaseMail 将其转变为一个可用的电子邮件地址。
---
## 🔧 API 参考
| 端点 | 方法 | 用途 | |----------|--------|---------| | `/api/auth/start` | POST | 开始 SIWE 认证 | | `/api/auth/verify` | POST | 验证钱包签名 | | `/api/register` | POST | 注册电子邮件 | | `/api/register/upgrade` | PUT | 升级为 Basename | | `/api/send` | POST | 发送电子邮件 | | `/api/inbox` | GET | 列出收件箱 | | `/api/inbox/:id` | GET | 读取电子邮件内容 |
**完整文档**:https://api.basemail.ai/api/docs
---
## 🌐 链接
- 网站:https://basemail.ai - API:https://api.basemail.ai - API 文档:https://api.basemail.ai/api/docs - 获取 Basename:https://www.base.org/names - Base 链:https://base.org - 源码:https://github.com/dAAAb/BaseMail-Skill
---
## 📝 更新日志
### v1.8.0 (2026-02-18) - 📝 增强描述:强调 Base 链和 Basename (.base.eth) 集成 - 📝 添加了架构图,展示钱包 → SIWE → 电子邮件的流程 - 📝 更好地解释了链上身份和可验证电子邮件 - 🔗 添加了源代码仓库和 Base 链的链接
### v1.7.0 (2026-02-18) - 🔐 **安全加固**(应对 ClawHub “可疑”分类): - 添加了 OpenClaw 元数据:声明 `requires.env` 中的 `BASEMAIL_PRIVATE_KEY` - 终端中密码输入现在是掩码的(字符隐藏为 `*`) - 更强的密码要求:最少 8 个字符,必须包含字母和数字 - `--wallet` 路径验证:必须在 `$HOME` 下,禁止 `..` 遍历,最大 1KB,仅限常规文件 - 所有输入来源上的私钥格式验证(`0x` + 64 个十六进制字符) - 移除了 `--no-encrypt` 选项 — 托管钱包始终加密 - 助记词仅显示一次,从不保存到文件(移除了保存到文件的提示) - 移除了遗留的明文密钥文件引用 - 📝 在元数据中添加了 `notes` 说明:该技能仅签署 SIWE 消息,从不发送资金 - 📝 更新了安全准则和文件位置文档
### v1.4.0 (2026-02-08) - ✨ 更好的品牌和描述 - 📝 完整的英文文档
### v1.1.0 (2026-02-08) - 🔐 安全性:可选的私钥存储 - ✨ 支持环境变量、路径、自动检测 - 🔒 加密存储选项(--encrypt) - 📊 审计日志
### v1.6.0 (安全更新) - 🔐 **重大变更**:`--managed` 现在默认加密 - 🔐 移除了外部钱包路径的自动检测(安全改进) - 🔐 助记词不再自动保存;显示一次供手动备份 - 📝 更新文档以增加清晰度
### v1.0.0 - 🎉 首次发布