# Send BaseMail - Onchain Email for AI Agents on Base to your agent
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
## Fast path
- Download the package from Yavira.
- Extract it into a folder your agent can access.
- Paste one of the prompts below and point your agent at the extracted folder.
## Suggested prompts
### New install

```text
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.
```
### Upgrade existing

```text
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.
```
## Machine-readable fields
```json
{
  "schemaVersion": "1.0",
  "item": {
    "slug": "basemail",
    "name": "BaseMail - Onchain Email for AI Agents on Base",
    "source": "tencent",
    "type": "skill",
    "category": "AI 智能",
    "sourceUrl": "https://clawhub.ai/dAAAb/basemail",
    "canonicalUrl": "https://clawhub.ai/dAAAb/basemail",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadUrl": "/downloads/basemail",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=basemail",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "packageFormat": "ZIP package",
    "primaryDoc": "SKILL.md",
    "includedAssets": [
      "SKILL.md",
      "package-lock.json",
      "package.json",
      "scripts/audit.js",
      "scripts/crypto-utils.js",
      "scripts/inbox.js"
    ],
    "downloadMode": "redirect",
    "sourceHealth": {
      "source": "tencent",
      "slug": "basemail",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-30T02:04:59.664Z",
      "expiresAt": "2026-05-07T02:04:59.664Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=basemail",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=basemail",
        "contentDisposition": "attachment; filename=\"basemail-1.8.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null,
        "slug": "basemail"
      },
      "scope": "item",
      "summary": "Item download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this item.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/basemail"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    }
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/basemail",
    "downloadUrl": "https://openagent3.xyz/downloads/basemail",
    "agentUrl": "https://openagent3.xyz/skills/basemail/agent",
    "manifestUrl": "https://openagent3.xyz/skills/basemail/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/basemail/agent.md"
  }
}
```
## Documentation

### 📬 BaseMail - Onchain Email for AI Agents on Base

Your agent gets a real email address, linked to its onchain identity. No human needed.

TL;DR: Own a Basename (yourname.base.eth)? Get yourname@basemail.ai instantly. Sign with your Base wallet, send emails autonomously.

### Why BaseMail?

Built on Base Chain — Email identity tied to your onchain wallet on Base (Coinbase's L2)
Basename integration — .base.eth holders get matching @basemail.ai addresses automatically
SIWE authentication — Sign-In with Ethereum, no passwords or CAPTCHA needed
Autonomous for AI agents — Register for services, submit forms, receive confirmations without human help
Verifiable identity — Your email is cryptographically linked to your Base wallet address

BaseMail gives AI agents verifiable email identities on Base Chain:

✨ Basename holders → yourname.base.eth → yourname@basemail.ai
🔗 Any Base wallet → 0xwallet@basemail.ai

### How it works

Base Wallet → SIWE Signature → BaseMail Registration → yourname@basemail.ai
     ↑                                                        ↓
Basename (.base.eth)                              Send & receive email autonomously

### Option A: Environment Variable (Recommended ✅)

If you already have a wallet, just set the env var — no private key stored to file:

export BASEMAIL_PRIVATE_KEY="0x..."
node scripts/register.js

✅ Safest method: private key exists only in memory.

### Option B: Specify Wallet Path

Point to your existing private key file:

node scripts/register.js --wallet /path/to/your/private-key

✅ Uses your existing wallet, no copying.

### Option C: Managed Mode (Beginners)

Let the skill generate and manage a wallet for you:

node scripts/setup.js --managed
node scripts/register.js

✅ Always encrypted — Private key protected with AES-256-GCM

You'll set a password during setup (min 8 chars, must include letter + number)
Password required each time you use the wallet
Mnemonic displayed once for manual backup (never saved to file)
Password input is masked (hidden) in terminal

### ⚠️ Security Guidelines

Never commit private keys to git
Never share private keys or mnemonics publicly
Never add ~/.basemail/ to version control
Private key files should be chmod 600 (owner read/write only)
Prefer environment variables (Option A) over file storage
--wallet paths are validated: must be under $HOME, no traversal, max 1KB file size
Private key format is validated (0x + 64 hex chars) before use
Password input is masked in terminal (characters hidden)
This skill only signs SIWE authentication messages — it never sends funds or on-chain transactions

### Recommended .gitignore

# BaseMail - NEVER commit!
.basemail/
**/private-key.enc

### 1️⃣ Register

# Using environment variable
export BASEMAIL_PRIVATE_KEY="0x..."
node scripts/register.js

# Or with Basename
node scripts/register.js --basename yourname.base.eth

### 2️⃣ Send Email

node scripts/send.js "friend@basemail.ai" "Hello!" "Nice to meet you 🦞"

### 3️⃣ Check Inbox

node scripts/inbox.js              # List emails
node scripts/inbox.js <email_id>   # Read specific email

### 📦 Scripts

ScriptPurposeNeeds Private Keysetup.jsShow help❌setup.js --managedGenerate wallet (always encrypted)❌register.jsRegister email address✅send.jsSend email❌ (uses token)inbox.jsCheck inbox❌ (uses token)audit.jsView audit log❌

### 📍 File Locations

~/.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)

### 🎨 Get a Basename-Linked Email

Want yourname@basemail.ai instead of 0x...@basemail.ai?

Register a Basename (.base.eth) at https://www.base.org/names
Link it: node scripts/register.js --basename yourname.base.eth

Your Basename is your onchain identity on Base — and BaseMail turns it into a working email address.

### 🔧 API Reference

EndpointMethodPurpose/api/auth/startPOSTStart SIWE auth/api/auth/verifyPOSTVerify wallet signature/api/registerPOSTRegister email/api/register/upgradePUTUpgrade to Basename/api/sendPOSTSend email/api/inboxGETList inbox/api/inbox/:idGETRead email content

Full docs: https://api.basemail.ai/api/docs

### 🌐 Links

Website: https://basemail.ai
API: https://api.basemail.ai
API Docs: https://api.basemail.ai/api/docs
Get a Basename: https://www.base.org/names
Base Chain: https://base.org
Source: https://github.com/dAAAb/BaseMail-Skill

### v1.8.0 (2026-02-18)

📝 Enhanced description: emphasize Base Chain and Basename (.base.eth) integration
📝 Added architecture diagram showing wallet → SIWE → email flow
📝 Better explanation of onchain identity and verifiable email
🔗 Added source repo and Base Chain links

### v1.7.0 (2026-02-18)

🔐 Security hardening (addresses ClawHub "Suspicious" classification):

Added OpenClaw metadata: declares BASEMAIL_PRIVATE_KEY in requires.env
Password input now masked in terminal (characters hidden as *)
Stronger password requirements: min 8 chars, must include letter + number
--wallet path validation: must be under $HOME, no .. traversal, max 1KB, regular file only
Private key format validation (0x + 64 hex chars) on all input sources
Removed --no-encrypt option — managed wallets are always encrypted
Mnemonic is displayed once and never saved to file (removed save-to-file prompt)
Removed legacy plaintext key file references


📝 Added notes in metadata clarifying: this skill only signs SIWE messages, never sends funds
📝 Updated security guidelines and file locations documentation

### v1.4.0 (2026-02-08)

✨ Better branding and descriptions
📝 Full English documentation

### v1.1.0 (2026-02-08)

🔐 Security: opt-in private key storage
✨ Support env var, path, auto-detect
🔒 Encrypted storage option (--encrypt)
📊 Audit logging

### v1.6.0 (Security Update)

🔐 Breaking: --managed now encrypts by default
🔐 Removed auto-detection of external wallet paths (security improvement)
🔐 Mnemonic no longer auto-saved; displayed once for manual backup
📝 Updated documentation for clarity

### v1.0.0

🎉 Initial release
## Trust
- Source: tencent
- Verification: Indexed source record
- Publisher: dAAAb
- Version: 1.8.0
## Source health
- Status: healthy
- Item download looks usable.
- Yavira can redirect you to the upstream package for this item.
- Health scope: item
- Reason: direct_download_ok
- Checked at: 2026-04-30T02:04:59.664Z
- Expires at: 2026-05-07T02:04:59.664Z
- Recommended action: Download for OpenClaw
## Links
- [Detail page](https://openagent3.xyz/skills/basemail)
- [Send to Agent page](https://openagent3.xyz/skills/basemail/agent)
- [JSON manifest](https://openagent3.xyz/skills/basemail/agent.json)
- [Markdown brief](https://openagent3.xyz/skills/basemail/agent.md)
- [Download page](https://openagent3.xyz/downloads/basemail)