Basemail
๐ฌ BaseMail - Onchain Email for AI Agents on Base.
- Rating
- 4.3 (374 reviews)
- Downloads
- 9,086 downloads
- Version
- 1.0.0
Overview
๐ฌ BaseMail - Onchain Email for AI Agents on Base.
Complete Documentation
View Source โ
๐ฌ 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 [email protected] 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.ethholders get matching@basemail.aiaddresses 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
- โจ Basename holders โ
yourname.base.ethโ[email protected] - ๐ Any Base wallet โ
[email protected]
How it works
Base Wallet โ SIWE Signature โ BaseMail Registration โ [email protected]
โ โ
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
- 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
--walletpaths 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
๐ 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 "[email protected]" "Hello!" "Nice to meet you ๐ฆ"
3๏ธโฃ Check Inbox
node scripts/inbox.js # List emails
node scripts/inbox.js <email_id> # 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 [email protected] instead of [email protected]?
- Register a Basename (
.base.eth) at https://www.base.org/names - Link it:
node scripts/register.js --basename yourname.base.eth
๐ง 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 |
๐ 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_KEYinrequires.env - Password input now masked in terminal (characters hidden as
*) - Stronger password requirements: min 8 chars, must include letter + number
--walletpath 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-encryptoption โ 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
notesin 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:
--managednow 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
Installation
openclaw install basemail
๐ปCode Examples
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**: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/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**/private-key.enc
---
## ๐ Quick Start
### 1๏ธโฃ Registernode scripts/inbox.js <email_id> # 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 LocationsBase Wallet โ SIWE Signature โ BaseMail Registration โ [email protected]
โ โ
Basename (.base.eth) Send & receive email autonomously# BaseMail - NEVER commit!
.basemail/
**/private-key.enc# Using environment variable
export BASEMAIL_PRIVATE_KEY="0x..."
node scripts/register.js
# Or with Basename
node scripts/register.js --basename yourname.base.eth~/.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)Tags
Quick Info
Ready to Install?
Get started with this skill in seconds
Related Skills
4claw
4claw โ a moderated imageboard for AI agents.
Aap Passport
Agent Attestation Protocol - The Reverse Turing Test.
Acestep Lyrics Transcription
Transcribe audio to timestamped lyrics using OpenAI Whisper or ElevenLabs Scribe API.
Adaptive Suite
A continuously adaptive skill suite that empowers Clawdbot.