ClawPurse
by @mhue-ai
Local Neutaro chain wallet for managing NTMPI tokens, supporting balance checks, transfers, transaction history, staking, and allowlist enforcement.
clawhub install clawpurseπ About This Skill
ClawPurse Skill
Local Timpi/NTMPI wallet for agentic AI, automation scripts, and individual users on the Neutaro chain.
Overview
ClawPurse provides cryptocurrency wallet functionality for AI agents (including OpenClaw), automation pipelines, and human operatorsβenabling autonomous or manual handling of NTMPI tokens on the Neutaro blockchain.
Capabilities
Installation
# In the ClawPurse directory
npm install && npm run build && npm link
This makes the clawpurse CLI available globally.
Setup
A wallet must be initialized before first use:
clawpurse init --password
> Important: Back up the mnemonic shown during init immediately!
Environment
Set CLAWPURSE_PASSWORD to avoid passing password on every command:
export CLAWPURSE_PASSWORD=
Commands
Status Check
clawpurse status
Returns chain connection status, chain ID, and current block height.Balance
clawpurse balance
Returns current NTMPI balance.Address
clawpurse address
Returns the wallet's Neutaro address.Send
clawpurse send [--memo "text"] [--yes]
Sends NTMPI to the specified address. Use --yes to skip confirmation for amounts > 100 NTMPI.History
clawpurse history [--limit N]
Shows recent transactions.Allowlist Management
clawpurse allowlist list # View trusted destinations
clawpurse allowlist add # Add destination
clawpurse allowlist remove # Remove destination
Staking (v2.0)
clawpurse validators # List active validators
clawpurse delegations # View current delegations
clawpurse stake # Delegate tokens
clawpurse unstake --yes # Undelegate (22-day unbonding)
clawpurse redelegate # Move stake between validators
clawpurse unbonding # Show pending unbonding
Staking for agents:
1. Run: clawpurse validators
2. Select validator with good uptime and reasonable commission
3. Run: clawpurse stake --yes
4. Monitor with: clawpurse delegations
5. Rewards auto-deposit to liquid balance on Neutaro
Safety Features
neutaro1... addresses acceptedAgent Usage Patterns
Check Balance Before Operations
Before any payment task, run:
clawpurse balanceParse the output to get available funds.
Making Payments
1. Verify recipient is in allowlist (or use --override-allowlist)
2. Run: clawpurse send --memo "reason" --yes
3. Capture the tx hash from output
4. Share tx hash with recipient for verification
Receiving Payments
1. Run: clawpurse address
2. Share the address with the sender
3. After expected payment, run: clawpurse balance
4. Or query chain directly to verify specific tx
Programmatic API
For advanced integrations, import ClawPurse functions directly:
import {
loadKeystore,
getBalance,
send,
getChainInfo,
} from 'clawpurse';// Load wallet
const { wallet, address } = await loadKeystore(process.env.CLAWPURSE_PASSWORD);
// Check balance
const balance = await getBalance(address);
console.log(balance.primary.displayAmount);
// Send tokens
const result = await send(wallet, address, 'neutaro1...', '10.5', {
memo: 'Service payment',
skipConfirmation: true,
});
console.log(Sent! TxHash: ${result.txHash});
Security Notes
~/.clawpurse/receipts.json for auditFiles
| Path | Purpose |
|------|---------|
| ~/.clawpurse/keystore.enc | Encrypted wallet (mode 0600) |
| ~/.clawpurse/receipts.json | Transaction receipts |
| ~/.clawpurse/allowlist.json | Trusted destinations |
Documentation
Troubleshooting
| Issue | Solution |
|-------|----------|
| "Wallet not found" | Run clawpurse init first |
| "Status: DISCONNECTED" | Check network; RPC may be down |
| "Amount exceeds limit" | Adjust maxSendAmount in config |
| "Destination blocked" | Add to allowlist or use --override-allowlist |
βοΈ Configuration
A wallet must be initialized before first use:
clawpurse init --password
> Important: Back up the mnemonic shown during init immediately!
π Tips & Best Practices
| Issue | Solution |
|-------|----------|
| "Wallet not found" | Run clawpurse init first |
| "Status: DISCONNECTED" | Check network; RPC may be down |
| "Amount exceeds limit" | Adjust maxSendAmount in config |
| "Destination blocked" | Add to allowlist or use --override-allowlist |