Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
๐ Nad Wallet - Monad Chain Identity for AI Agents. Create wallets, sign messages (SIWE), manage MON tokens programmatically. Built for the Nad ecosystem (nad.fun, NadMail, NadName).
๐ Nad Wallet - Monad Chain Identity for AI Agents. Create wallets, sign messages (SIWE), manage MON tokens programmatically. Built for the Nad ecosystem (nad.fun, NadMail, NadName).
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
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.
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.
Every autonomous agent needs a wallet on Monad. Create one without human help. TL;DR: Programmatic wallet creation on Monad blockchain. SIWE auth for NadMail, MON balance checks, ecosystem integration.
Monad Native โ Built specifically for Monad blockchain (Chain ID 143) True Autonomy โ Your agent creates and controls its own wallet No Browser Needed โ Pure CLI, no extensions or popups Nad Ecosystem Ready โ NadMail, NadName, nad.fun integration SIWE Ready โ Sign-In with Ethereum for Web3 services Secure by Default โ Environment variables, no plaintext keys Create and manage Monad chain wallets programmatically for the Nad ecosystem.
โ 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/ ๐ Security Standards: Identical to Base Wallet security practices but adapted for Monad/Nad ecosystem.
PropertyValueBlockchainMonadChain ID143RPC URLhttps://rpc.monad.xyzExplorerhttps://explorer.monad.xyzNative TokenMONEcosystemnad.fun, NadMail, NadName
# Output as environment variable format (safest) node scripts/create-wallet.js --env # Output example: # export NAD_WALLET_ADDRESS="0x..." # export NAD_PRIVATE_KEY="0x..." Then copy to your shell or .env file.
# Only if you need file-based storage node scripts/create-wallet.js --managed my-agent โ ๏ธ This stores private key in ~/.nad-wallet/wallets/my-agent.json
const { ethers } = require('ethers'); // โ SECURE: Load from environment variable const wallet = new ethers.Wallet(process.env.NAD_PRIVATE_KEY); console.log('Address:', wallet.address); // โ NEVER: console.log('Private Key:', wallet.privateKey);
const provider = new ethers.JsonRpcProvider('https://rpc.monad.xyz'); const connectedWallet = wallet.connect(provider); // Check balance const balance = await provider.getBalance(wallet.address); console.log('Balance:', ethers.formatEther(balance), 'MON');
const message = `nadmail.ai wants you to sign in with your Ethereum account: ${wallet.address} Sign in to NadMail URI: https://nadmail.ai Version: 1 Chain ID: 143 Nonce: ${nonce} Issued At: ${new Date().toISOString()}`; const signature = await wallet.signMessage(message);
const provider = new ethers.JsonRpcProvider('https://rpc.monad.xyz'); const connectedWallet = wallet.connect(provider); const tx = await connectedWallet.sendTransaction({ to: recipientAddress, value: ethers.parseEther('0.1') // 0.1 MON }); const receipt = await tx.wait(); console.log('TX Hash:', tx.hash); console.log('Explorer:', `https://explorer.monad.xyz/tx/${tx.hash}`);
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
Register for NadMail (Web3 email for Nad ecosystem) using your wallet signature.
# Set your private key export NAD_PRIVATE_KEY="0x..." # Register with your desired handle node scripts/nadmail-register.js --handle littlelobster
# First create a managed wallet node scripts/create-wallet.js --managed my-agent # Then register for NadMail node scripts/nadmail-register.js --wallet my-agent --handle littlelobster
Start Auth - Request authentication message from NadMail API Sign Message - Use your private key to sign the SIWE message Agent Register - Submit signature and handle to complete registration Save Token - Store access token in ~/.nad-wallet/nadmail-token.json
# Using environment variable NAD_PRIVATE_KEY="0x..." node scripts/check-balance.js # Using managed wallet node scripts/check-balance.js my-wallet # Using specific address node scripts/check-balance.js 0x1234...5678 Example output: ๐ฐ Nad Wallet Balance Check ================================================== Address: 0x1234...5678 Network: Monad (Chain ID 143) RPC: https://rpc.monad.xyz ๐ Balance: 42.5 MON Wei: 42500000000000000000 ๐ Explorer: https://explorer.monad.xyz/address/0x1234...5678 ๐ Nad Ecosystem: โข nad.fun - Meme token platform โข NadMail (nadmail.ai) - Web3 email โข NadName (app.nad.domains) - Domain names
~/.nad-wallet/ โโโ wallets/ # Managed wallet storage โ โโโ my-agent.json # Wallet file (600 perms) โ โโโ my-agent.mnemonic # Backup phrase (400 perms) โโโ nadmail-token.json # NadMail API token (600 perms) โโโ audit.log # Operation audit log (600 perms)
Meme token creation platform Community-driven token launches Built on Monad for fast transactions
Web3 email service for Nad ecosystem SIWE authentication with your wallet Integrated with this skill via nadmail-register.js
Domain name service for Nad ecosystem Link human-readable names to wallet addresses Built on Monad infrastructure
All operations are logged to ~/.nad-wallet/audit.log with: Timestamp Action type (wallet_created, nadmail_registered, etc.) Masked address (first 6 + last 4 chars) Success/failure status No sensitive data (private keys never logged)
# โ Recommended approach export NAD_PRIVATE_KEY="0x..." export NAD_WALLET_ADDRESS="0x..." # Use in scripts node scripts/check-balance.js node scripts/nadmail-register.js --handle myname
const fs = require('fs'); const path = require('path'); // Store with restricted permissions (only if absolutely necessary) const filepath = path.join(process.env.HOME, '.nad-wallet', 'wallets', 'wallet.json'); fs.writeFileSync(filepath, JSON.stringify({ address: wallet.address, privateKey: wallet.privateKey // Only store if absolutely necessary }), { mode: 0o600 }); // Owner read/write only
Add to your project's .gitignore: # Nad Wallet files - NEVER commit! .nad-wallet/ *.wallet.json *.mnemonic private-key* nad-private-key* # Environment files .env .env.local
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
If you have Base Wallet experience: Same security model - All security practices are identical Different network - Chain ID 143 instead of 8453 Different token - MON instead of ETH Different services - NadMail instead of BaseMail Different directories - ~/.nad-wallet/ instead of ~/.base-wallet/
# Navigate to skill directory cd /path/to/nad-wallet # Install dependencies npm install # Create your first wallet node scripts/create-wallet.js --env # Check balance NAD_PRIVATE_KEY="0x..." node scripts/check-balance.js # Register for NadMail NAD_PRIVATE_KEY="0x..." node scripts/nadmail-register.js --handle myname
{ "ethers": "^6.0.0" } No additional dependencies required. Pure Node.js + ethers.js.
"Wallet not found" Solution: Set NAD_PRIVATE_KEY environment variable or create managed wallet "Registration failed" Check internet connection Verify handle is available Ensure wallet has MON for gas fees "Permission denied" Check file permissions: chmod 600 ~/.nad-wallet/wallets/*.json Verify directory permissions: chmod 700 ~/.nad-wallet/
# Check if set echo $NAD_PRIVATE_KEY # Set temporarily export NAD_PRIVATE_KEY="0x..." # Set permanently (add to ~/.bashrc or ~/.zshrc) echo 'export NAD_PRIVATE_KEY="0x..."' >> ~/.bashrc
๐ Initial release for Monad blockchain ๐ Security: Environment variable approach (--env mode default) ๐ง NadMail SIWE integration ๐ฐ MON balance checking ๐ Comprehensive audit logging ๐ Nad ecosystem integration (nad.fun, NadMail, NadName) ๐ Complete documentation with security best practices ๐ File permissions enforcement (600/700)
MIT License - Build awesome things with Nad Wallet! ๐
Messaging, meetings, inboxes, CRM, and teammate communication surfaces.
Largest current source with strong distribution and engagement signals.