Back to Registry
View Author Profile
Official Verified
base-wallet
🔐 Base Wallet - Crypto Identity for AI Agents. Create wallets, sign messages (SIWE), send transactions programmatically. No browser extensions, no human intervention. The foundation for autonomous Web3 agents.
skill-install — Terminal
Install via CLI (Recommended)
clawhub install openclaw/skills/skills/kenblive/walletOr
🔐 Base Wallet - Crypto Identity for AI Agents
Every autonomous agent needs a wallet. Create one without human help.
TL;DR: Programmatic wallet creation on Base/Ethereum. SIWE auth, balance checks, transactions.
Why Base Wallet?
- True autonomy — Your agent creates and controls its own wallet
- No browser needed — Pure CLI, no extensions or popups
- SIWE ready — Sign-In with Ethereum for Web3 services
- Secure by default — Environment variables, no plaintext keys
Create and manage Base chain (Ethereum-compatible) wallets programmatically.
⚠️ Security First
| ✅ DO | ❌ DON'T |
|---|---|
| Use environment variables for private keys | Store private keys in plain text files |
| Set wallet files to chmod 600 | Commit wallet files to git |
Use --env mode (recommended) | Use console.log(privateKey) |
| Back up mnemonics offline | Share private keys or mnemonics |
Quick Start
Create a New Wallet (Recommended)
# Output as environment variable format (safest)
node scripts/create-wallet.js --env
# Output example:
# export WALLET_ADDRESS="0x..."
# export PRIVATE_KEY="0x..."
Then copy to your shell or .env file.
Create with File Storage (Opt-in)
# Only if you need file-based storage
node scripts/create-wallet.js --managed my-agent
⚠️ This stores private key in ~/.openclaw/wallets/my-agent.json
Usage Examples
Load Wallet from Environment
const { ethers } = require('ethers');
// ✅ SECURE: Load from environment variable
const wallet = new ethers.Wallet(process.env.PRIVATE_KEY);
console.log('Address:', wallet.address);
// ❌ NEVER: console.log('Private Key:', wallet.privateKey);
Load from Mnemonic
const wallet = ethers.Wallet.fromPhrase(process.env.MNEMONIC);
Check Balance
const provider = new ethers.JsonRpcProvider('https://mainnet.base.org');
const balance = await provider.getBalance(wallet.address);
console.log('Balance:', ethers.formatEther(balance), 'ETH');
Sign Message (SIWE)
const message = `example.com wants you to sign in with your Ethereum account:
${wallet.address}
Sign in message
URI: https://example.com
Version: 1
Chain ID: 8453
Nonce: ${nonce}
Issued At: ${new Date().toISOString()}`;
const signature = await wallet.signMessage(message);
Send Transaction
const provider = new ethers.JsonRpcProvider('https://mainnet.base.org');
const connectedWallet = wallet.connect(provider);
const tx = await connectedWallet.sendTransaction({
to: recipientAddress,
value: ethers.parseEther('0.001')
});
const receipt = await tx.wait();
console.log('TX Hash:', tx.hash);
Scripts
Metadata
AI Skill Finder
Not sure this is the right skill?
Describe what you want to build — we'll match you to the best skill from 16,000+ options.
Find the right skill Add to Configuration
Paste this into your clawhub.json to enable this plugin.
{
"plugins": {
"official-kenblive-wallet": {
"enabled": true,
"auto_update": true
}
}
}Safety NoteClawKit audits metadata but not runtime behavior. Use with caution.