# Send Base Wallet to your agent
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
## Fast path
- 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.
## Suggested prompts
### New install

```text
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.
```
### Upgrade existing

```text
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.
```
## Machine-readable fields
```json
{
  "schemaVersion": "1.0",
  "item": {
    "slug": "base-wallet",
    "name": "Base Wallet",
    "source": "tencent",
    "type": "skill",
    "category": "通讯协作",
    "sourceUrl": "https://clawhub.ai/dAAAb/base-wallet",
    "canonicalUrl": "https://clawhub.ai/dAAAb/base-wallet",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadUrl": "/downloads/base-wallet",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=base-wallet",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "packageFormat": "ZIP package",
    "primaryDoc": "SKILL.md",
    "includedAssets": [
      "SKILL.md",
      "package.json",
      "references/basemail-api.md",
      "scripts/basemail-register.js",
      "scripts/check-balance.js",
      "scripts/create-wallet.js"
    ],
    "downloadMode": "redirect",
    "sourceHealth": {
      "source": "tencent",
      "slug": "base-wallet",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-29T05:58:34.783Z",
      "expiresAt": "2026-05-06T05:58:34.783Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=base-wallet",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=base-wallet",
        "contentDisposition": "attachment; filename=\"base-wallet-1.5.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null,
        "slug": "base-wallet"
      },
      "scope": "item",
      "summary": "Item download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this item.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/base-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."
      ]
    }
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/base-wallet",
    "downloadUrl": "https://openagent3.xyz/downloads/base-wallet",
    "agentUrl": "https://openagent3.xyz/skills/base-wallet/agent",
    "manifestUrl": "https://openagent3.xyz/skills/base-wallet/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/base-wallet/agent.md"
  }
}
```
## Documentation

### 🔐 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'TUse environment variables for private keysStore 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 mnemonics

### 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

### 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

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 JSONbasemail-register.js [name]Register for BaseMail emailcheck-balance.js [address]Check wallet balance

### BaseMail Integration

Register for a @basemail.ai email using your wallet signature.

# If using environment variable:
PRIVATE_KEY="0x..." node scripts/basemail-register.js

# If using managed wallet:
node scripts/basemail-register.js my-agent

### Network Configuration

NetworkChain IDRPC URLBase Mainnet8453https://mainnet.base.orgBase Sepolia84532https://sepolia.base.org

### 📝 Audit Logging

Operations are logged to ~/.base-wallet/audit.log.

### Secure Storage Pattern

// ✅ Recommended: Use environment variables
const privateKey = process.env.PRIVATE_KEY;
if (!privateKey) {
  throw new Error('PRIVATE_KEY environment variable not set');
}
const wallet = new ethers.Wallet(privateKey);

// ❌ Avoid: Storing private keys in code or files

If you must store to file (not recommended):

const fs = require('fs');
const path = require('path');

// Store with restricted permissions
const filepath = path.join(process.env.HOME, '.openclaw', 'wallets', 'wallet.json');
fs.writeFileSync(filepath, JSON.stringify({ 
  address: wallet.address,
  // Only store if absolutely necessary
  privateKey: wallet.privateKey
}), { mode: 0o600 }); // Owner read/write only

### .gitignore

Add to your project's .gitignore:

# Wallet files - NEVER commit!
.openclaw/
*.wallet.json
*.mnemonic
private-key*

### Dependencies

npm install ethers

### v1.1.0 (2026-02-08)

🔐 Security: Changed create-wallet.js to opt-in file storage
✨ Added --env mode (recommended)
📝 Added audit logging
⚠️ Removed console.log(privateKey) from examples
📄 Enhanced security documentation

### v1.0.0

🎉 Initial release
## Trust
- Source: tencent
- Verification: Indexed source record
- Publisher: dAAAb
- Version: 1.5.0
## Source health
- Status: healthy
- Item download looks usable.
- Yavira can redirect you to the upstream package for this item.
- Health scope: item
- Reason: direct_download_ok
- Checked at: 2026-04-29T05:58:34.783Z
- Expires at: 2026-05-06T05:58:34.783Z
- Recommended action: Download for OpenClaw
## Links
- [Detail page](https://openagent3.xyz/skills/base-wallet)
- [Send to Agent page](https://openagent3.xyz/skills/base-wallet/agent)
- [JSON manifest](https://openagent3.xyz/skills/base-wallet/agent.json)
- [Markdown brief](https://openagent3.xyz/skills/base-wallet/agent.md)
- [Download page](https://openagent3.xyz/downloads/base-wallet)