{
  "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": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/basemail",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=basemail",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md",
      "package-lock.json",
      "package.json",
      "scripts/audit.js",
      "scripts/crypto-utils.js",
      "scripts/inbox.js"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "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."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "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."
        },
        {
          "label": "Upgrade existing",
          "body": "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."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-23T16:43:11.935Z",
      "expiresAt": "2026-04-30T16:43:11.935Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
        "contentDisposition": "attachment; filename=\"4claw-imageboard-1.0.1.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "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."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/basemail",
    "agentPageUrl": "https://openagent3.xyz/skills/basemail/agent",
    "manifestUrl": "https://openagent3.xyz/skills/basemail/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/basemail/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "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."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "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."
      },
      {
        "label": "Upgrade existing",
        "body": "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."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "📬 BaseMail - Onchain Email for AI Agents on Base",
        "body": "Your agent gets a real email address, linked to its onchain identity. No human needed.\n\nTL;DR: Own a Basename (yourname.base.eth)? Get yourname@basemail.ai instantly. Sign with your Base wallet, send emails autonomously."
      },
      {
        "title": "Why BaseMail?",
        "body": "Built on Base Chain — Email identity tied to your onchain wallet on Base (Coinbase's L2)\nBasename integration — .base.eth holders get matching @basemail.ai addresses automatically\nSIWE authentication — Sign-In with Ethereum, no passwords or CAPTCHA needed\nAutonomous for AI agents — Register for services, submit forms, receive confirmations without human help\nVerifiable identity — Your email is cryptographically linked to your Base wallet address\n\nBaseMail gives AI agents verifiable email identities on Base Chain:\n\n✨ Basename holders → yourname.base.eth → yourname@basemail.ai\n🔗 Any Base wallet → 0xwallet@basemail.ai"
      },
      {
        "title": "How it works",
        "body": "Base Wallet → SIWE Signature → BaseMail Registration → yourname@basemail.ai\n     ↑                                                        ↓\nBasename (.base.eth)                              Send & receive email autonomously"
      },
      {
        "title": "Option A: Environment Variable (Recommended ✅)",
        "body": "If you already have a wallet, just set the env var — no private key stored to file:\n\nexport BASEMAIL_PRIVATE_KEY=\"0x...\"\nnode scripts/register.js\n\n✅ Safest method: private key exists only in memory."
      },
      {
        "title": "Option B: Specify Wallet Path",
        "body": "Point to your existing private key file:\n\nnode scripts/register.js --wallet /path/to/your/private-key\n\n✅ Uses your existing wallet, no copying."
      },
      {
        "title": "Option C: Managed Mode (Beginners)",
        "body": "Let the skill generate and manage a wallet for you:\n\nnode scripts/setup.js --managed\nnode scripts/register.js\n\n✅ Always encrypted — Private key protected with AES-256-GCM\n\nYou'll set a password during setup (min 8 chars, must include letter + number)\nPassword required each time you use the wallet\nMnemonic displayed once for manual backup (never saved to file)\nPassword input is masked (hidden) in terminal"
      },
      {
        "title": "⚠️ Security Guidelines",
        "body": "Never commit private keys to git\nNever share private keys or mnemonics publicly\nNever add ~/.basemail/ to version control\nPrivate key files should be chmod 600 (owner read/write only)\nPrefer environment variables (Option A) over file storage\n--wallet paths are validated: must be under $HOME, no traversal, max 1KB file size\nPrivate key format is validated (0x + 64 hex chars) before use\nPassword input is masked in terminal (characters hidden)\nThis skill only signs SIWE authentication messages — it never sends funds or on-chain transactions"
      },
      {
        "title": "Recommended .gitignore",
        "body": "# BaseMail - NEVER commit!\n.basemail/\n**/private-key.enc"
      },
      {
        "title": "1️⃣ Register",
        "body": "# Using environment variable\nexport BASEMAIL_PRIVATE_KEY=\"0x...\"\nnode scripts/register.js\n\n# Or with Basename\nnode scripts/register.js --basename yourname.base.eth"
      },
      {
        "title": "2️⃣ Send Email",
        "body": "node scripts/send.js \"friend@basemail.ai\" \"Hello!\" \"Nice to meet you 🦞\""
      },
      {
        "title": "3️⃣ Check Inbox",
        "body": "node scripts/inbox.js              # List emails\nnode scripts/inbox.js <email_id>   # Read specific email"
      },
      {
        "title": "📦 Scripts",
        "body": "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❌"
      },
      {
        "title": "📍 File Locations",
        "body": "~/.basemail/\n├── private-key.enc   # Encrypted private key (AES-256-GCM, chmod 600)\n├── wallet.json       # Wallet info (public address only)\n├── token.json        # Auth token (chmod 600)\n└── audit.log         # Operation log (no sensitive data)"
      },
      {
        "title": "🎨 Get a Basename-Linked Email",
        "body": "Want yourname@basemail.ai instead of 0x...@basemail.ai?\n\nRegister a Basename (.base.eth) at https://www.base.org/names\nLink it: node scripts/register.js --basename yourname.base.eth\n\nYour Basename is your onchain identity on Base — and BaseMail turns it into a working email address."
      },
      {
        "title": "🔧 API Reference",
        "body": "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\n\nFull docs: https://api.basemail.ai/api/docs"
      },
      {
        "title": "🌐 Links",
        "body": "Website: https://basemail.ai\nAPI: https://api.basemail.ai\nAPI Docs: https://api.basemail.ai/api/docs\nGet a Basename: https://www.base.org/names\nBase Chain: https://base.org\nSource: https://github.com/dAAAb/BaseMail-Skill"
      },
      {
        "title": "v1.8.0 (2026-02-18)",
        "body": "📝 Enhanced description: emphasize Base Chain and Basename (.base.eth) integration\n📝 Added architecture diagram showing wallet → SIWE → email flow\n📝 Better explanation of onchain identity and verifiable email\n🔗 Added source repo and Base Chain links"
      },
      {
        "title": "v1.7.0 (2026-02-18)",
        "body": "🔐 Security hardening (addresses ClawHub \"Suspicious\" classification):\n\nAdded OpenClaw metadata: declares BASEMAIL_PRIVATE_KEY in requires.env\nPassword input now masked in terminal (characters hidden as *)\nStronger password requirements: min 8 chars, must include letter + number\n--wallet path validation: must be under $HOME, no .. traversal, max 1KB, regular file only\nPrivate key format validation (0x + 64 hex chars) on all input sources\nRemoved --no-encrypt option — managed wallets are always encrypted\nMnemonic is displayed once and never saved to file (removed save-to-file prompt)\nRemoved legacy plaintext key file references\n\n\n📝 Added notes in metadata clarifying: this skill only signs SIWE messages, never sends funds\n📝 Updated security guidelines and file locations documentation"
      },
      {
        "title": "v1.4.0 (2026-02-08)",
        "body": "✨ Better branding and descriptions\n📝 Full English documentation"
      },
      {
        "title": "v1.1.0 (2026-02-08)",
        "body": "🔐 Security: opt-in private key storage\n✨ Support env var, path, auto-detect\n🔒 Encrypted storage option (--encrypt)\n📊 Audit logging"
      },
      {
        "title": "v1.6.0 (Security Update)",
        "body": "🔐 Breaking: --managed now encrypts by default\n🔐 Removed auto-detection of external wallet paths (security improvement)\n🔐 Mnemonic no longer auto-saved; displayed once for manual backup\n📝 Updated documentation for clarity"
      },
      {
        "title": "v1.0.0",
        "body": "🎉 Initial release"
      }
    ],
    "body": "📬 BaseMail - Onchain Email for AI Agents on Base\n\nYour agent gets a real email address, linked to its onchain identity. No human needed.\n\nTL;DR: Own a Basename (yourname.base.eth)? Get yourname@basemail.ai instantly. Sign with your Base wallet, send emails autonomously.\n\nWhy BaseMail?\nBuilt on Base Chain — Email identity tied to your onchain wallet on Base (Coinbase's L2)\nBasename integration — .base.eth holders get matching @basemail.ai addresses automatically\nSIWE authentication — Sign-In with Ethereum, no passwords or CAPTCHA needed\nAutonomous for AI agents — Register for services, submit forms, receive confirmations without human help\nVerifiable identity — Your email is cryptographically linked to your Base wallet address\n\nBaseMail gives AI agents verifiable email identities on Base Chain:\n\n✨ Basename holders → yourname.base.eth → yourname@basemail.ai\n🔗 Any Base wallet → 0xwallet@basemail.ai\nHow it works\nBase Wallet → SIWE Signature → BaseMail Registration → yourname@basemail.ai\n     ↑                                                        ↓\nBasename (.base.eth)                              Send & receive email autonomously\n\n🔐 Wallet Setup (Choose One)\nOption A: Environment Variable (Recommended ✅)\n\nIf you already have a wallet, just set the env var — no private key stored to file:\n\nexport BASEMAIL_PRIVATE_KEY=\"0x...\"\nnode scripts/register.js\n\n\n✅ Safest method: private key exists only in memory.\n\nOption B: Specify Wallet Path\n\nPoint to your existing private key file:\n\nnode scripts/register.js --wallet /path/to/your/private-key\n\n\n✅ Uses your existing wallet, no copying.\n\nOption C: Managed Mode (Beginners)\n\nLet the skill generate and manage a wallet for you:\n\nnode scripts/setup.js --managed\nnode scripts/register.js\n\n\n✅ Always encrypted — Private key protected with AES-256-GCM\n\nYou'll set a password during setup (min 8 chars, must include letter + number)\nPassword required each time you use the wallet\nMnemonic displayed once for manual backup (never saved to file)\nPassword input is masked (hidden) in terminal\n⚠️ Security Guidelines\nNever commit private keys to git\nNever share private keys or mnemonics publicly\nNever add ~/.basemail/ to version control\nPrivate key files should be chmod 600 (owner read/write only)\nPrefer environment variables (Option A) over file storage\n--wallet paths are validated: must be under $HOME, no traversal, max 1KB file size\nPrivate key format is validated (0x + 64 hex chars) before use\nPassword input is masked in terminal (characters hidden)\nThis skill only signs SIWE authentication messages — it never sends funds or on-chain transactions\nRecommended .gitignore\n# BaseMail - NEVER commit!\n.basemail/\n**/private-key.enc\n\n🚀 Quick Start\n1️⃣ Register\n# Using environment variable\nexport BASEMAIL_PRIVATE_KEY=\"0x...\"\nnode scripts/register.js\n\n# Or with Basename\nnode scripts/register.js --basename yourname.base.eth\n\n2️⃣ Send Email\nnode scripts/send.js \"friend@basemail.ai\" \"Hello!\" \"Nice to meet you 🦞\"\n\n3️⃣ Check Inbox\nnode scripts/inbox.js              # List emails\nnode scripts/inbox.js <email_id>   # Read specific email\n\n📦 Scripts\nScript\tPurpose\tNeeds Private Key\nsetup.js\tShow help\t❌\nsetup.js --managed\tGenerate wallet (always encrypted)\t❌\nregister.js\tRegister email address\t✅\nsend.js\tSend email\t❌ (uses token)\ninbox.js\tCheck inbox\t❌ (uses token)\naudit.js\tView audit log\t❌\n📍 File Locations\n~/.basemail/\n├── private-key.enc   # Encrypted private key (AES-256-GCM, chmod 600)\n├── wallet.json       # Wallet info (public address only)\n├── token.json        # Auth token (chmod 600)\n└── audit.log         # Operation log (no sensitive data)\n\n🎨 Get a Basename-Linked Email\n\nWant yourname@basemail.ai instead of 0x...@basemail.ai?\n\nRegister a Basename (.base.eth) at https://www.base.org/names\nLink it: node scripts/register.js --basename yourname.base.eth\n\nYour Basename is your onchain identity on Base — and BaseMail turns it into a working email address.\n\n🔧 API Reference\nEndpoint\tMethod\tPurpose\n/api/auth/start\tPOST\tStart SIWE auth\n/api/auth/verify\tPOST\tVerify wallet signature\n/api/register\tPOST\tRegister email\n/api/register/upgrade\tPUT\tUpgrade to Basename\n/api/send\tPOST\tSend email\n/api/inbox\tGET\tList inbox\n/api/inbox/:id\tGET\tRead email content\n\nFull docs: https://api.basemail.ai/api/docs\n\n🌐 Links\nWebsite: https://basemail.ai\nAPI: https://api.basemail.ai\nAPI Docs: https://api.basemail.ai/api/docs\nGet a Basename: https://www.base.org/names\nBase Chain: https://base.org\nSource: https://github.com/dAAAb/BaseMail-Skill\n📝 Changelog\nv1.8.0 (2026-02-18)\n📝 Enhanced description: emphasize Base Chain and Basename (.base.eth) integration\n📝 Added architecture diagram showing wallet → SIWE → email flow\n📝 Better explanation of onchain identity and verifiable email\n🔗 Added source repo and Base Chain links\nv1.7.0 (2026-02-18)\n🔐 Security hardening (addresses ClawHub \"Suspicious\" classification):\nAdded OpenClaw metadata: declares BASEMAIL_PRIVATE_KEY in requires.env\nPassword input now masked in terminal (characters hidden as *)\nStronger password requirements: min 8 chars, must include letter + number\n--wallet path validation: must be under $HOME, no .. traversal, max 1KB, regular file only\nPrivate key format validation (0x + 64 hex chars) on all input sources\nRemoved --no-encrypt option — managed wallets are always encrypted\nMnemonic is displayed once and never saved to file (removed save-to-file prompt)\nRemoved legacy plaintext key file references\n📝 Added notes in metadata clarifying: this skill only signs SIWE messages, never sends funds\n📝 Updated security guidelines and file locations documentation\nv1.4.0 (2026-02-08)\n✨ Better branding and descriptions\n📝 Full English documentation\nv1.1.0 (2026-02-08)\n🔐 Security: opt-in private key storage\n✨ Support env var, path, auto-detect\n🔒 Encrypted storage option (--encrypt)\n📊 Audit logging\nv1.6.0 (Security Update)\n🔐 Breaking: --managed now encrypts by default\n🔐 Removed auto-detection of external wallet paths (security improvement)\n🔐 Mnemonic no longer auto-saved; displayed once for manual backup\n📝 Updated documentation for clarity\nv1.0.0\n🎉 Initial release"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/dAAAb/basemail",
    "publisherUrl": "https://clawhub.ai/dAAAb/basemail",
    "owner": "dAAAb",
    "version": "1.8.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "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"
  }
}