🎁 Get the FREE AI Skills Starter Guide β€” Subscribe β†’
BytesAgainBytesAgain
πŸ¦€ ClawHub

Basemail

by @daaab

πŸ“¬ BaseMail - Onchain Email for AI Agents on Base. Get yourname@basemail.ai linked to your Basename (.base.eth). SIWE wallet auth, no CAPTCHA, no passwords....

Versionv1.8.1
Downloads2,813
Stars⭐ 1
TERMINAL
clawhub install basemail

πŸ“– About This Skill


name: BaseMail description: "πŸ“¬ BaseMail - Onchain Email for AI Agents on Base. Get yourname@basemail.ai linked to your Basename (.base.eth). SIWE wallet auth, no CAPTCHA, no passwords. Give your agent a verifiable email identity on Base Chain β€” register for services, send emails, and receive confirmations autonomously." version: 1.8.0 homepage: https://basemail.ai repository: https://github.com/dAAAb/BaseMail-Skill metadata: openclaw: emoji: "πŸ“¬" requires: bins: ["node"] env: ["BASEMAIL_PRIVATE_KEY"] optionalEnv: - BASEMAIL_PASSWORD - BASEMAIL_TOKEN primaryEnv: "BASEMAIL_PRIVATE_KEY" install: - id: npm-deps kind: npm label: "Install BaseMail dependencies (ethers)" notes: > BASEMAIL_PRIVATE_KEY is required only for initial registration (wallet signing via SIWE). After registration, most operations (send, inbox) use the cached token (~/.basemail/token.json). Alternatively, use --wallet /path/to/key or managed mode (setup.js --managed) instead of the env var. No financial transactions are performed β€” this skill only signs authentication messages, never sends funds.

πŸ“¬ 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
    


    πŸ” Wallet Setup (Choose One)

    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

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

    Recommended .gitignore

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


    πŸš€ Quick Start

    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    # Read specific email
    


    πŸ“¦ Scripts

    | Script | Purpose | Needs Private Key | |--------|---------|-------------------| | setup.js | Show help | ❌ | | setup.js --managed | Generate wallet (always encrypted) | ❌ | | register.js | Register email address | βœ… | | send.js | Send email | ❌ (uses token) | | inbox.js | Check inbox | ❌ (uses token) | | audit.js | View 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?

    1. Register a Basename (.base.eth) at https://www.base.org/names 2. 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

    | Endpoint | Method | Purpose | |----------|--------|---------| | /api/auth/start | POST | Start SIWE auth | | /api/auth/verify | POST | Verify wallet signature | | /api/register | POST | Register email | | /api/register/upgrade | PUT | Upgrade to Basename | | /api/send | POST | Send email | | /api/inbox | GET | List inbox | | /api/inbox/:id | GET | Read 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

  • πŸ“ Changelog

    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