BaseMail - Onchain Email for AI Agents on Base
📬 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....
📬 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....
Real data. Real impact.
Emerging
Developers
Per week
Open source
Skills give you superpowers. Install in 30 seconds.
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.
.base.eth holders get matching @basemail.ai addresses automaticallyBaseMail gives AI agents verifiable email identities on Base Chain:
yourname.base.eth → yourname@basemail.ai0xwallet@basemail.aiBase Wallet → SIWE Signature → BaseMail Registration → yourname@basemail.ai ↑ ↓ Basename (.base.eth) Send & receive email autonomously
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.
Point to your existing private key file:
node scripts/register.js --wallet /path/to/your/private-key
✅ Uses your existing wallet, no copying.
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
~/.basemail/ to version control600 (owner read/write only)--wallet paths are validated: must be under $HOME, no traversal, max 1KB file size0x + 64 hex chars) before use# BaseMail - NEVER commit! .basemail/ **/private-key.enc
# Using environment variable export BASEMAIL_PRIVATE_KEY="0x..." node scripts/register.jsOr with Basename
node scripts/register.js --basename yourname.base.eth
node scripts/send.js "friend@basemail.ai" "Hello!" "Nice to meet you 🦞"
node scripts/inbox.js # List emails node scripts/inbox.js <email_id> # Read specific email
| Script | Purpose | Needs Private Key |
|---|---|---|
| Show help | ❌ |
| Generate wallet (always encrypted) | ❌ |
| Register email address | ✅ |
| Send email | ❌ (uses token) |
| Check inbox | ❌ (uses token) |
| View audit log | ❌ |
~/.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)
Want
yourname@basemail.ai instead of 0x...@basemail.ai?
.base.eth) at https://www.base.org/namesnode scripts/register.js --basename yourname.base.ethYour Basename is your onchain identity on Base — and BaseMail turns it into a working email address.
| Endpoint | Method | Purpose |
|---|---|---|
| POST | Start SIWE auth |
| POST | Verify wallet signature |
| POST | Register email |
| PUT | Upgrade to Basename |
| POST | Send email |
| GET | List inbox |
| GET | Read email content |
Full docs: https://api.basemail.ai/api/docs
BASEMAIL_PRIVATE_KEY in requires.env*)--wallet path validation: must be under $HOME, no .. traversal, max 1KB, regular file only0x + 64 hex chars) on all input sources--no-encrypt option — managed wallets are always encryptednotes in metadata clarifying: this skill only signs SIWE messages, never sends funds--managed now encrypts by defaultNo automatic installation available. Please visit the source repository for installation instructions.
View Installation Instructions1,500+ AI skills, agents & workflows. Install in 30 seconds. Part of the Torly.ai family.
© 2026 Torly.ai. All rights reserved.