{
  "schemaVersion": "1.0",
  "item": {
    "slug": "nad-wallet",
    "name": "Nad Wallet",
    "source": "tencent",
    "type": "skill",
    "category": "通讯协作",
    "sourceUrl": "https://clawhub.ai/dAAAb/nad-wallet",
    "canonicalUrl": "https://clawhub.ai/dAAAb/nad-wallet",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/nad-wallet",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=nad-wallet",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md",
      "package.json",
      "scripts/check-balance.js",
      "scripts/create-wallet.js",
      "scripts/nadmail-register.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-30T16:55:25.780Z",
      "expiresAt": "2026-05-07T16:55:25.780Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
        "contentDisposition": "attachment; filename=\"network-1.0.0.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/nad-wallet"
    },
    "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/nad-wallet",
    "agentPageUrl": "https://openagent3.xyz/skills/nad-wallet/agent",
    "manifestUrl": "https://openagent3.xyz/skills/nad-wallet/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/nad-wallet/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": "🔐 Nad Wallet - Monad Chain Identity for AI Agents",
        "body": "Every autonomous agent needs a wallet on Monad. Create one without human help.\n\nTL;DR: Programmatic wallet creation on Monad blockchain. SIWE auth for NadMail, MON balance checks, ecosystem integration."
      },
      {
        "title": "Why Nad Wallet?",
        "body": "Monad Native — Built specifically for Monad blockchain (Chain ID 143)\nTrue Autonomy — Your agent creates and controls its own wallet\nNo Browser Needed — Pure CLI, no extensions or popups\nNad Ecosystem Ready — NadMail, NadName, nad.fun integration\nSIWE Ready — Sign-In with Ethereum for Web3 services\nSecure by Default — Environment variables, no plaintext keys\n\nCreate and manage Monad chain wallets programmatically for the Nad ecosystem."
      },
      {
        "title": "⚠️ Security First",
        "body": "✅ DO❌ DON'TUse NAD_PRIVATE_KEY environment variableStore private keys in plain text filesSet wallet files to chmod 600Commit wallet files to gitUse --env mode (recommended)Use console.log(privateKey)Back up mnemonics offlineShare private keys or mnemonicsStore files in ~/.nad-wallet/ onlyAuto-detect wallets outside ~/.nad-wallet/\n\n🔒 Security Standards: Identical to Base Wallet security practices but adapted for Monad/Nad ecosystem."
      },
      {
        "title": "Network Information",
        "body": "PropertyValueBlockchainMonadChain ID143RPC URLhttps://rpc.monad.xyzExplorerhttps://explorer.monad.xyzNative TokenMONEcosystemnad.fun, NadMail, NadName"
      },
      {
        "title": "Create a New Wallet (Recommended)",
        "body": "# Output as environment variable format (safest)\nnode scripts/create-wallet.js --env\n\n# Output example:\n# export NAD_WALLET_ADDRESS=\"0x...\"\n# export NAD_PRIVATE_KEY=\"0x...\"\n\nThen copy to your shell or .env file."
      },
      {
        "title": "Create with File Storage (Opt-in)",
        "body": "# Only if you need file-based storage\nnode scripts/create-wallet.js --managed my-agent\n\n⚠️ This stores private key in ~/.nad-wallet/wallets/my-agent.json"
      },
      {
        "title": "Load Wallet from Environment",
        "body": "const { ethers } = require('ethers');\n\n// ✅ SECURE: Load from environment variable\nconst wallet = new ethers.Wallet(process.env.NAD_PRIVATE_KEY);\nconsole.log('Address:', wallet.address);\n// ❌ NEVER: console.log('Private Key:', wallet.privateKey);"
      },
      {
        "title": "Connect to Monad",
        "body": "const provider = new ethers.JsonRpcProvider('https://rpc.monad.xyz');\nconst connectedWallet = wallet.connect(provider);\n\n// Check balance\nconst balance = await provider.getBalance(wallet.address);\nconsole.log('Balance:', ethers.formatEther(balance), 'MON');"
      },
      {
        "title": "Sign Message (SIWE for NadMail)",
        "body": "const message = `nadmail.ai wants you to sign in with your Ethereum account:\n${wallet.address}\n\nSign in to NadMail\n\nURI: https://nadmail.ai\nVersion: 1\nChain ID: 143\nNonce: ${nonce}\nIssued At: ${new Date().toISOString()}`;\n\nconst signature = await wallet.signMessage(message);"
      },
      {
        "title": "Send Transaction",
        "body": "const provider = new ethers.JsonRpcProvider('https://rpc.monad.xyz');\nconst connectedWallet = wallet.connect(provider);\n\nconst tx = await connectedWallet.sendTransaction({\n  to: recipientAddress,\n  value: ethers.parseEther('0.1') // 0.1 MON\n});\n\nconst receipt = await tx.wait();\nconsole.log('TX Hash:', tx.hash);\nconsole.log('Explorer:', `https://explorer.monad.xyz/tx/${tx.hash}`);"
      },
      {
        "title": "Scripts",
        "body": "ScriptDescriptioncreate-wallet.js --envCreate wallet, output as env vars (recommended)create-wallet.js --managed [name]Create wallet, save to file (opt-in)create-wallet.js --jsonCreate wallet, output as JSONnadmail-register.js --handle [name]Register for NadMail with SIWEcheck-balance.js [address]Check MON wallet balance"
      },
      {
        "title": "NadMail Integration",
        "body": "Register for NadMail (Web3 email for Nad ecosystem) using your wallet signature."
      },
      {
        "title": "Environment Variable Method (Recommended)",
        "body": "# Set your private key\nexport NAD_PRIVATE_KEY=\"0x...\"\n\n# Register with your desired handle\nnode scripts/nadmail-register.js --handle littlelobster"
      },
      {
        "title": "Managed Wallet Method",
        "body": "# First create a managed wallet\nnode scripts/create-wallet.js --managed my-agent\n\n# Then register for NadMail\nnode scripts/nadmail-register.js --wallet my-agent --handle littlelobster"
      },
      {
        "title": "What Happens During Registration",
        "body": "Start Auth - Request authentication message from NadMail API\nSign Message - Use your private key to sign the SIWE message\nAgent Register - Submit signature and handle to complete registration\nSave Token - Store access token in ~/.nad-wallet/nadmail-token.json"
      },
      {
        "title": "Check Balance",
        "body": "# Using environment variable\nNAD_PRIVATE_KEY=\"0x...\" node scripts/check-balance.js\n\n# Using managed wallet\nnode scripts/check-balance.js my-wallet\n\n# Using specific address\nnode scripts/check-balance.js 0x1234...5678\n\nExample output:\n\n💰 Nad Wallet Balance Check\n==================================================\nAddress: 0x1234...5678\nNetwork: Monad (Chain ID 143)\nRPC: https://rpc.monad.xyz\n\n💎 Balance: 42.5 MON\nWei: 42500000000000000000\n\n🔗 Explorer: https://explorer.monad.xyz/address/0x1234...5678\n\n🌐 Nad Ecosystem:\n  • nad.fun - Meme token platform\n  • NadMail (nadmail.ai) - Web3 email  \n  • NadName (app.nad.domains) - Domain names"
      },
      {
        "title": "File Structure",
        "body": "~/.nad-wallet/\n├── wallets/              # Managed wallet storage\n│   ├── my-agent.json     # Wallet file (600 perms)\n│   └── my-agent.mnemonic # Backup phrase (400 perms)\n├── nadmail-token.json    # NadMail API token (600 perms)\n└── audit.log            # Operation audit log (600 perms)"
      },
      {
        "title": "🎭 nad.fun",
        "body": "Meme token creation platform\nCommunity-driven token launches\nBuilt on Monad for fast transactions"
      },
      {
        "title": "📧 NadMail (nadmail.ai)",
        "body": "Web3 email service for Nad ecosystem\nSIWE authentication with your wallet\nIntegrated with this skill via nadmail-register.js"
      },
      {
        "title": "🌐 NadName (app.nad.domains)",
        "body": "Domain name service for Nad ecosystem\nLink human-readable names to wallet addresses\nBuilt on Monad infrastructure"
      },
      {
        "title": "📝 Audit Logging",
        "body": "All operations are logged to ~/.nad-wallet/audit.log with:\n\nTimestamp\nAction type (wallet_created, nadmail_registered, etc.)\nMasked address (first 6 + last 4 chars)\nSuccess/failure status\nNo sensitive data (private keys never logged)"
      },
      {
        "title": "Environment Variables",
        "body": "# ✅ Recommended approach\nexport NAD_PRIVATE_KEY=\"0x...\"\nexport NAD_WALLET_ADDRESS=\"0x...\"\n\n# Use in scripts\nnode scripts/check-balance.js\nnode scripts/nadmail-register.js --handle myname"
      },
      {
        "title": "File Storage (Use with caution)",
        "body": "const fs = require('fs');\nconst path = require('path');\n\n// Store with restricted permissions (only if absolutely necessary)\nconst filepath = path.join(process.env.HOME, '.nad-wallet', 'wallets', 'wallet.json');\nfs.writeFileSync(filepath, JSON.stringify({ \n  address: wallet.address,\n  privateKey: wallet.privateKey // Only store if absolutely necessary\n}), { mode: 0o600 }); // Owner read/write only"
      },
      {
        "title": ".gitignore",
        "body": "Add to your project's .gitignore:\n\n# Nad Wallet files - NEVER commit!\n.nad-wallet/\n*.wallet.json\n*.mnemonic\nprivate-key*\nnad-private-key*\n\n# Environment files\n.env\n.env.local"
      },
      {
        "title": "Differences from Base Wallet",
        "body": "AspectBase WalletNad WalletBlockchainBase (8453)Monad (143)RPChttps://mainnet.base.orghttps://rpc.monad.xyzExplorerbasescan.orgexplorer.monad.xyzNative TokenETHMONEmail ServiceBaseMailNadMailConfig Directory~/.base-wallet/~/.nad-wallet/Wallet Directory~/.openclaw/wallets/~/.nad-wallet/wallets/Environment VariablePRIVATE_KEYNAD_PRIVATE_KEYEcosystemBase ecosystemnad.fun, NadMail, NadName"
      },
      {
        "title": "Migration from Base Wallet",
        "body": "If you have Base Wallet experience:\n\nSame security model - All security practices are identical\nDifferent network - Chain ID 143 instead of 8453\nDifferent token - MON instead of ETH\nDifferent services - NadMail instead of BaseMail\nDifferent directories - ~/.nad-wallet/ instead of ~/.base-wallet/"
      },
      {
        "title": "Installation & Setup",
        "body": "# Navigate to skill directory\ncd /path/to/nad-wallet\n\n# Install dependencies\nnpm install\n\n# Create your first wallet\nnode scripts/create-wallet.js --env\n\n# Check balance\nNAD_PRIVATE_KEY=\"0x...\" node scripts/check-balance.js\n\n# Register for NadMail\nNAD_PRIVATE_KEY=\"0x...\" node scripts/nadmail-register.js --handle myname"
      },
      {
        "title": "Dependencies",
        "body": "{\n  \"ethers\": \"^6.0.0\"\n}\n\nNo additional dependencies required. Pure Node.js + ethers.js."
      },
      {
        "title": "Common Issues",
        "body": "\"Wallet not found\"\n\nSolution: Set NAD_PRIVATE_KEY environment variable or create managed wallet\n\n\n\n\"Registration failed\"\n\nCheck internet connection\nVerify handle is available\nEnsure wallet has MON for gas fees\n\n\n\n\"Permission denied\"\n\nCheck file permissions: chmod 600 ~/.nad-wallet/wallets/*.json\nVerify directory permissions: chmod 700 ~/.nad-wallet/"
      },
      {
        "title": "Environment Variable Not Set",
        "body": "# Check if set\necho $NAD_PRIVATE_KEY\n\n# Set temporarily\nexport NAD_PRIVATE_KEY=\"0x...\"\n\n# Set permanently (add to ~/.bashrc or ~/.zshrc)\necho 'export NAD_PRIVATE_KEY=\"0x...\"' >> ~/.bashrc"
      },
      {
        "title": "v1.0.0 (2026-02-09)",
        "body": "🎉 Initial release for Monad blockchain\n🔐 Security: Environment variable approach (--env mode default)\n📧 NadMail SIWE integration\n💰 MON balance checking\n📝 Comprehensive audit logging\n🌐 Nad ecosystem integration (nad.fun, NadMail, NadName)\n📚 Complete documentation with security best practices\n🔒 File permissions enforcement (600/700)"
      },
      {
        "title": "License",
        "body": "MIT License - Build awesome things with Nad Wallet! 🚀"
      }
    ],
    "body": "🔐 Nad Wallet - Monad Chain Identity for AI Agents\n\nEvery autonomous agent needs a wallet on Monad. Create one without human help.\n\nTL;DR: Programmatic wallet creation on Monad blockchain. SIWE auth for NadMail, MON balance checks, ecosystem integration.\n\nWhy Nad Wallet?\nMonad Native — Built specifically for Monad blockchain (Chain ID 143)\nTrue Autonomy — Your agent creates and controls its own wallet\nNo Browser Needed — Pure CLI, no extensions or popups\nNad Ecosystem Ready — NadMail, NadName, nad.fun integration\nSIWE Ready — Sign-In with Ethereum for Web3 services\nSecure by Default — Environment variables, no plaintext keys\n\nCreate and manage Monad chain wallets programmatically for the Nad ecosystem.\n\n⚠️ Security First\n✅ DO\t❌ DON'T\nUse NAD_PRIVATE_KEY environment variable\tStore private keys in plain text files\nSet wallet files to chmod 600\tCommit wallet files to git\nUse --env mode (recommended)\tUse console.log(privateKey)\nBack up mnemonics offline\tShare private keys or mnemonics\nStore files in ~/.nad-wallet/ only\tAuto-detect wallets outside ~/.nad-wallet/\n\n🔒 Security Standards: Identical to Base Wallet security practices but adapted for Monad/Nad ecosystem.\n\nNetwork Information\nProperty\tValue\nBlockchain\tMonad\nChain ID\t143\nRPC URL\thttps://rpc.monad.xyz\nExplorer\thttps://explorer.monad.xyz\nNative Token\tMON\nEcosystem\tnad.fun, NadMail, NadName\nQuick Start\nCreate a New Wallet (Recommended)\n# Output as environment variable format (safest)\nnode scripts/create-wallet.js --env\n\n# Output example:\n# export NAD_WALLET_ADDRESS=\"0x...\"\n# export NAD_PRIVATE_KEY=\"0x...\"\n\n\nThen copy to your shell or .env file.\n\nCreate with File Storage (Opt-in)\n# Only if you need file-based storage\nnode scripts/create-wallet.js --managed my-agent\n\n\n⚠️ This stores private key in ~/.nad-wallet/wallets/my-agent.json\n\nUsage Examples\nLoad Wallet from Environment\nconst { ethers } = require('ethers');\n\n// ✅ SECURE: Load from environment variable\nconst wallet = new ethers.Wallet(process.env.NAD_PRIVATE_KEY);\nconsole.log('Address:', wallet.address);\n// ❌ NEVER: console.log('Private Key:', wallet.privateKey);\n\nConnect to Monad\nconst provider = new ethers.JsonRpcProvider('https://rpc.monad.xyz');\nconst connectedWallet = wallet.connect(provider);\n\n// Check balance\nconst balance = await provider.getBalance(wallet.address);\nconsole.log('Balance:', ethers.formatEther(balance), 'MON');\n\nSign Message (SIWE for NadMail)\nconst message = `nadmail.ai wants you to sign in with your Ethereum account:\n${wallet.address}\n\nSign in to NadMail\n\nURI: https://nadmail.ai\nVersion: 1\nChain ID: 143\nNonce: ${nonce}\nIssued At: ${new Date().toISOString()}`;\n\nconst signature = await wallet.signMessage(message);\n\nSend Transaction\nconst provider = new ethers.JsonRpcProvider('https://rpc.monad.xyz');\nconst connectedWallet = wallet.connect(provider);\n\nconst tx = await connectedWallet.sendTransaction({\n  to: recipientAddress,\n  value: ethers.parseEther('0.1') // 0.1 MON\n});\n\nconst receipt = await tx.wait();\nconsole.log('TX Hash:', tx.hash);\nconsole.log('Explorer:', `https://explorer.monad.xyz/tx/${tx.hash}`);\n\nScripts\nScript\tDescription\ncreate-wallet.js --env\tCreate wallet, output as env vars (recommended)\ncreate-wallet.js --managed [name]\tCreate wallet, save to file (opt-in)\ncreate-wallet.js --json\tCreate wallet, output as JSON\nnadmail-register.js --handle [name]\tRegister for NadMail with SIWE\ncheck-balance.js [address]\tCheck MON wallet balance\nNadMail Integration\n\nRegister for NadMail (Web3 email for Nad ecosystem) using your wallet signature.\n\nEnvironment Variable Method (Recommended)\n# Set your private key\nexport NAD_PRIVATE_KEY=\"0x...\"\n\n# Register with your desired handle\nnode scripts/nadmail-register.js --handle littlelobster\n\nManaged Wallet Method\n# First create a managed wallet\nnode scripts/create-wallet.js --managed my-agent\n\n# Then register for NadMail\nnode scripts/nadmail-register.js --wallet my-agent --handle littlelobster\n\nWhat Happens During Registration\nStart Auth - Request authentication message from NadMail API\nSign Message - Use your private key to sign the SIWE message\nAgent Register - Submit signature and handle to complete registration\nSave Token - Store access token in ~/.nad-wallet/nadmail-token.json\nCheck Balance\n# Using environment variable\nNAD_PRIVATE_KEY=\"0x...\" node scripts/check-balance.js\n\n# Using managed wallet\nnode scripts/check-balance.js my-wallet\n\n# Using specific address\nnode scripts/check-balance.js 0x1234...5678\n\n\nExample output:\n\n💰 Nad Wallet Balance Check\n==================================================\nAddress: 0x1234...5678\nNetwork: Monad (Chain ID 143)\nRPC: https://rpc.monad.xyz\n\n💎 Balance: 42.5 MON\nWei: 42500000000000000000\n\n🔗 Explorer: https://explorer.monad.xyz/address/0x1234...5678\n\n🌐 Nad Ecosystem:\n  • nad.fun - Meme token platform\n  • NadMail (nadmail.ai) - Web3 email  \n  • NadName (app.nad.domains) - Domain names\n\nFile Structure\n~/.nad-wallet/\n├── wallets/              # Managed wallet storage\n│   ├── my-agent.json     # Wallet file (600 perms)\n│   └── my-agent.mnemonic # Backup phrase (400 perms)\n├── nadmail-token.json    # NadMail API token (600 perms)\n└── audit.log            # Operation audit log (600 perms)\n\nNad Ecosystem Services\n🎭 nad.fun\nMeme token creation platform\nCommunity-driven token launches\nBuilt on Monad for fast transactions\n📧 NadMail (nadmail.ai)\nWeb3 email service for Nad ecosystem\nSIWE authentication with your wallet\nIntegrated with this skill via nadmail-register.js\n🌐 NadName (app.nad.domains)\nDomain name service for Nad ecosystem\nLink human-readable names to wallet addresses\nBuilt on Monad infrastructure\n📝 Audit Logging\n\nAll operations are logged to ~/.nad-wallet/audit.log with:\n\nTimestamp\nAction type (wallet_created, nadmail_registered, etc.)\nMasked address (first 6 + last 4 chars)\nSuccess/failure status\nNo sensitive data (private keys never logged)\nSecurity Best Practices\nEnvironment Variables\n# ✅ Recommended approach\nexport NAD_PRIVATE_KEY=\"0x...\"\nexport NAD_WALLET_ADDRESS=\"0x...\"\n\n# Use in scripts\nnode scripts/check-balance.js\nnode scripts/nadmail-register.js --handle myname\n\nFile Storage (Use with caution)\nconst fs = require('fs');\nconst path = require('path');\n\n// Store with restricted permissions (only if absolutely necessary)\nconst filepath = path.join(process.env.HOME, '.nad-wallet', 'wallets', 'wallet.json');\nfs.writeFileSync(filepath, JSON.stringify({ \n  address: wallet.address,\n  privateKey: wallet.privateKey // Only store if absolutely necessary\n}), { mode: 0o600 }); // Owner read/write only\n\n.gitignore\n\nAdd to your project's .gitignore:\n\n# Nad Wallet files - NEVER commit!\n.nad-wallet/\n*.wallet.json\n*.mnemonic\nprivate-key*\nnad-private-key*\n\n# Environment files\n.env\n.env.local\n\nDifferences from Base Wallet\nAspect\tBase Wallet\tNad Wallet\nBlockchain\tBase (8453)\tMonad (143)\nRPC\thttps://mainnet.base.org\thttps://rpc.monad.xyz\nExplorer\tbasescan.org\texplorer.monad.xyz\nNative Token\tETH\tMON\nEmail Service\tBaseMail\tNadMail\nConfig Directory\t~/.base-wallet/\t~/.nad-wallet/\nWallet Directory\t~/.openclaw/wallets/\t~/.nad-wallet/wallets/\nEnvironment Variable\tPRIVATE_KEY\tNAD_PRIVATE_KEY\nEcosystem\tBase ecosystem\tnad.fun, NadMail, NadName\nMigration from Base Wallet\n\nIf you have Base Wallet experience:\n\nSame security model - All security practices are identical\nDifferent network - Chain ID 143 instead of 8453\nDifferent token - MON instead of ETH\nDifferent services - NadMail instead of BaseMail\nDifferent directories - ~/.nad-wallet/ instead of ~/.base-wallet/\nInstallation & Setup\n# Navigate to skill directory\ncd /path/to/nad-wallet\n\n# Install dependencies\nnpm install\n\n# Create your first wallet\nnode scripts/create-wallet.js --env\n\n# Check balance\nNAD_PRIVATE_KEY=\"0x...\" node scripts/check-balance.js\n\n# Register for NadMail\nNAD_PRIVATE_KEY=\"0x...\" node scripts/nadmail-register.js --handle myname\n\nDependencies\n{\n  \"ethers\": \"^6.0.0\"\n}\n\n\nNo additional dependencies required. Pure Node.js + ethers.js.\n\nTroubleshooting\nCommon Issues\n\n\"Wallet not found\"\n\nSolution: Set NAD_PRIVATE_KEY environment variable or create managed wallet\n\n\"Registration failed\"\n\nCheck internet connection\nVerify handle is available\nEnsure wallet has MON for gas fees\n\n\"Permission denied\"\n\nCheck file permissions: chmod 600 ~/.nad-wallet/wallets/*.json\nVerify directory permissions: chmod 700 ~/.nad-wallet/\nEnvironment Variable Not Set\n# Check if set\necho $NAD_PRIVATE_KEY\n\n# Set temporarily\nexport NAD_PRIVATE_KEY=\"0x...\"\n\n# Set permanently (add to ~/.bashrc or ~/.zshrc)\necho 'export NAD_PRIVATE_KEY=\"0x...\"' >> ~/.bashrc\n\nChangelog\nv1.0.0 (2026-02-09)\n🎉 Initial release for Monad blockchain\n🔐 Security: Environment variable approach (--env mode default)\n📧 NadMail SIWE integration\n💰 MON balance checking\n📝 Comprehensive audit logging\n🌐 Nad ecosystem integration (nad.fun, NadMail, NadName)\n📚 Complete documentation with security best practices\n🔒 File permissions enforcement (600/700)\nLicense\n\nMIT License - Build awesome things with Nad Wallet! 🚀"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/dAAAb/nad-wallet",
    "publisherUrl": "https://clawhub.ai/dAAAb/nad-wallet",
    "owner": "dAAAb",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/nad-wallet",
    "downloadUrl": "https://openagent3.xyz/downloads/nad-wallet",
    "agentUrl": "https://openagent3.xyz/skills/nad-wallet/agent",
    "manifestUrl": "https://openagent3.xyz/skills/nad-wallet/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/nad-wallet/agent.md"
  }
}