openclaw-walletMulti-chain wallet and trading tools for AI agents. Provides 27 tools for: wallet management (create, balance, export keys), token swaps with flexible amounts ($100, 50%, max), cross-chain bridges, DEX market data (trending, volume, gainers/losers), token launches with tiered market caps, and fee management. Supports Solana and EVM chains. Use when agents need to interact with wallets, execute trades, research tokens, or launch tokens.
Install via ClawdBot CLI:
clawdbot install loomlay/openclaw-walletMulti-chain wallet and trading toolkit for AI agents with 27 tools.
You must install the npm package before using any tools:
npm install @loomlay/openclaw-wallet-plugin
This installs the plugin and all its dependencies. No additional packages needed.
Authentication is automatic. On first use, the plugin auto-registers for an API key and saves it to ~/.loomlay/credentials.json. No manual setup required.
To use a specific API key instead of auto-registration:
export LOOMLAY_API_KEY=agent_your_key_here
IMPORTANT: After installing the plugin, you must set up a wallet before using trading/wallet tools.
On first interaction with a user (or when the skill is first loaded), run this setup sequence:
const { wallet_get, wallet_create } = require('@loomlay/openclaw-wallet-plugin');
// 1. Check if a wallet already exists
const existing = await wallet_get();
if (!existing.success) {
// 2. No wallet yet — create one
const created = await wallet_create();
if (created.success) {
// 3. Show the user their new wallet
// IMPORTANT: The seed phrase is shown ONCE. Tell the user to save it.
// "Your wallet has been created:"
// " Solana: <solanaAddress>"
// " EVM: <evmAddress>"
// " Seed phrase: <seedPhrase> (save this securely — it won't be shown again)"
}
} else {
// Wallet exists — show addresses
// "Your wallet:"
// " Solana: <solanaAddress>"
// " SOL balance: <balance>"
}
Always run this check before any wallet or trading operation. If wallet_get() fails with UNAUTHORIZED, the API key may need to be re-registered — delete ~/.loomlay/credentials.json and retry.
All 27 tools are exported as flat async functions from the plugin package. Use them in Node.js like this:
const { wallet_get, swap_quote, swap, dex_trending, token_search } = require('@loomlay/openclaw-wallet-plugin');
// Check wallet balance
const wallet = await wallet_get();
// wallet.data.balances.solana.sol
// Get trending tokens
const trending = await dex_trending({ chain: 'solana', limit: 10 });
// trending.data.pairs[...]
Every tool returns a standardized response:
{
success: true, // or false
data: { ... }, // result data (when success is true)
error: { // error info (when success is false)
message: "...",
code: "RATE_LIMITED",
retryAfter: 30 // seconds (for rate limits)
}
}
Always check result.success before using result.data.
For any action involving funds:
const { swap_quote, swap } = require('@loomlay/openclaw-wallet-plugin');
// Step 1: Quote
const quote = await swap_quote({ inputToken: 'SOL', outputToken: 'USDC', amount: '$100' });
// Tell user: "You'll swap ~1.2 SOL for ~$99.50 USDC"
// Step 2: User confirms → Step 3: Execute
const result = await swap({ inputToken: 'SOL', outputToken: 'USDC', amount: '$100' });
if (result.success) {
// Show txHash and new balance
}
wallet_create() returns it once, tell user to save it offlinetoken_search() to find themTrading tools accept flexible amounts:
| Format | Example | Meaning |
|--------|---------|---------|
| Decimal | "1.5" | Exact token amount |
| USD | "$100" | Dollar value (auto-converts) |
| Percentage | "50%" | Half of balance |
| Max | "max" | Entire balance |
const { wallet_create, wallet_get, wallet_export_keys } = require('@loomlay/openclaw-wallet-plugin');
// Create new wallet (returns seed phrase ONCE)
await wallet_create()
// → { wallet: { solanaAddress, evmAddress }, seedPhrase, message }
// Get wallet addresses and balances
await wallet_get()
// → { wallet: { solanaAddress, evmAddress }, balances: { solana, evm } }
// Export private keys (requires seed phrase)
await wallet_export_keys({ seedPhrase: '12 word phrase here' })
// → { solanaPrivateKey, evmPrivateKey }
const { swap, swap_quote, transfer, bridge, bridge_quote } = require('@loomlay/openclaw-wallet-plugin');
// Swap tokens
await swap({ inputToken: 'SOL', outputToken: 'USDC', amount: '$100', chain: 'solana', slippage: 1 })
// → { success, txHash, inputAmount, outputAmount }
// Get swap quote (no execution)
await swap_quote({ inputToken: 'SOL', outputToken: 'USDC', amount: '$100' })
// → { inputAmount, outputAmount, minOutputAmount, priceImpact, route }
// Transfer tokens
await transfer({ token: 'SOL', amount: '1.5', to: 'recipient_address' })
// → { success, txHash, amount, token, to }
// Bridge cross-chain
await bridge({ inputToken: 'SOL', amount: '1', sourceChain: 'solana', destinationChain: 'base' })
// → { success, sourceTxHash, destinationTxHash, status }
// Bridge quote
await bridge_quote({ inputToken: 'SOL', amount: '1', sourceChain: 'solana', destinationChain: 'base' })
// → { inputAmount, outputAmount, fee, estimatedTime }
const { token_search, token_price, token_details, token_chart } = require('@loomlay/openclaw-wallet-plugin');
// Search tokens by name/symbol
await token_search({ query: 'BONK' })
// → { tokens: [{ address, symbol, name, price, safetyScore }] }
// Get token price
await token_price({ token: 'SOL', chain: 'solana' })
// → { token, price, chain }
// Get detailed token info
await token_details({ address: 'token_mint_address' })
// → { token, market, safety }
// Get OHLCV chart data
await token_chart({ address: 'token_mint_address' })
// → { data: [...] }
const { portfolio_get, portfolio_history } = require('@loomlay/openclaw-wallet-plugin');
// Get combined portfolio across all chains
await portfolio_get()
// → { positions: [...], totalUsdValue: number }
// Get transaction history
await portfolio_history({ chain: 'solana', limit: 50 })
// → { transactions: [...] }
const { dex_trending, dex_volume, dex_gainers, dex_losers, dex_new, dex_pumpfun, dex_query } = require('@loomlay/openclaw-wallet-plugin');
// Trending pairs
await dex_trending({ chain: 'solana', minLiquidity: 10000, limit: 10 })
// → { pairs: [...], pagination }
// Top volume pairs
await dex_volume({ chain: 'solana', minLiquidity: 10000, limit: 10 })
// Top gainers (24h)
await dex_gainers({ chain: 'solana', minLiquidity: 10000, limit: 10 })
// Top losers (24h)
await dex_losers({ chain: 'solana', minLiquidity: 10000, limit: 10 })
// Newly created pairs (< 24h)
await dex_new({ chain: 'solana', minLiquidity: 5000, limit: 10 })
// Pumpfun trending (Solana only)
await dex_pumpfun({ maxAge: 6, maxProgress: 80, limit: 10 })
// Advanced query with custom filters
await dex_query({
chain: 'solana',
timeframe: 'h24',
rankBy: 'volume',
order: 'desc',
minSafetyScore: 80,
limit: 10
})
const { tokenize_launch, tokenize_info } = require('@loomlay/openclaw-wallet-plugin');
// Launch a token (one per account)
await tokenize_launch({
name: 'My Token',
symbol: 'MYT',
tier: '100k', // 10k, 100k, 1m, 10m
imageUrl: 'https://...'
})
// → { success, launchId, tokenMint, poolAddress, dexscreenerUrl }
// Get your launched token info
await tokenize_info()
// → { hasToken, launchId, tokenMint, poolAddress, dexscreenerUrl }
const { fees_status, fees_claim } = require('@loomlay/openclaw-wallet-plugin');
// Check fee status
await fees_status()
// → { totalFeesGeneratedSol, beneficiaryFeesUnclaimedSol, canClaim, feeForfeitsAt }
// Claim fees (platform pays gas)
await fees_claim()
// → { success, amountSol, txSignature }
const { rpc_call, rpc_chains } = require('@loomlay/openclaw-wallet-plugin');
// Direct RPC call
await rpc_call({ chain: 'solana', method: 'getBalance', params: ['address'] })
// → { result, error }
// List supported chains
await rpc_chains()
// → { chains: [...] }
| Chain | Swaps | Bridges | RPC |
|-------|-------|---------|-----|
| Solana | yes | yes | yes |
| Ethereum | yes | yes | yes |
| Base | yes | yes | yes |
| Arbitrum | yes | yes | yes |
| Optimism | yes | yes | yes |
| Polygon | yes | yes | yes |
| BSC | yes | yes | yes |
const result = await swap({ inputToken: 'SOL', outputToken: 'USDC', amount: '1' });
if (!result.success) {
switch (result.error?.code) {
case 'RATE_LIMITED':
// Wait result.error.retryAfter seconds and retry
break;
case 'BAD_REQUEST':
// Invalid parameters
break;
case 'UNAUTHORIZED':
// API key issue — check LOOMLAY_API_KEY or ~/.loomlay/credentials.json
break;
case 'INSUFFICIENT_BALANCE':
// Not enough funds
break;
default:
// General error
break;
}
}
references/wallet-operations.md - Wallet creation, security, key exportreferences/trading-guide.md - Swaps, transfers, bridges with amount formatsreferences/market-analysis.md - DEX data, trending, filteringreferences/token-launch.md - Tokenize workflow, tiers, fee structurereferences/error-handling.md - Error types, recovery patterns, retriesreferences/amount-formats.md - Flexible amounts explainedreferences/chain-reference.md - Supported chains and behaviorsworkflows/first-time-setup.md - Installation → wallet creation → first tradeworkflows/token-launch-playbook.md - Complete token launch guideGenerated Mar 1, 2026
An AI agent monitors DEX market data for trending tokens and executes token swaps based on predefined strategies. It uses swap_quote to preview trades and swap to execute them, optimizing for dollar-value amounts like $100 or percentage-based allocations.
An agent manages a multi-chain wallet by checking balances across Solana and EVM chains, bridging assets as needed for better yields. It employs bridge_quote for cost estimation and bridge for secure transfers, ensuring funds are allocated efficiently.
An AI assists in launching new tokens by leveraging token search and market cap tools to research trends. It helps set up wallets via wallet_create and manages token distributions, ideal for startups entering the crypto space.
A user-friendly agent guides novice investors through wallet setup, balance checks, and simple swaps using flexible amounts like 50% of holdings. It emphasizes security by quoting trades first and confirming with users before execution.
An agent aggregates real-time data from dex_trending and token_search to provide insights on volume, gainers, and losers. It helps traders make informed decisions by visualizing market movements and token performance.
Offer the wallet toolkit as a cloud-based service with tiered plans for individual traders, hedge funds, and enterprises. Revenue comes from monthly subscriptions based on usage limits, API calls, and premium features like advanced analytics.
Integrate with DEXs and bridges to earn a percentage of transaction fees from swaps and cross-chain transfers executed through the plugin. Partner with protocols to share revenue, incentivizing high-volume usage by agents.
License the skill package to crypto exchanges, wallets, or fintech companies for embedding into their platforms. Charge upfront licensing fees and ongoing support costs, enabling clients to offer multi-chain tools under their brand.
💬 Integration Tip
Ensure the LOOMLAY_API_KEY is set in environment variables and run the first-time wallet setup sequence before any trading operations to avoid errors.
Connect Claude to Clawdbot instantly and keep it connected 24/7. Run after setup to link your subscription, then auto-refreshes tokens forever.
ERC-8004 Trustless Agents - Register, discover, and build reputation for AI agents on Ethereum. Use when registering agents on-chain, querying agent registries, giving/receiving reputation feedback, or interacting with the AI agent trust layer.
Autonomous crypto trading on Base via Bankr. Use for trading tokens, monitoring launches, executing strategies, or managing a trading portfolio. Triggers on "trade", "buy", "sell", "launch", "snipe", "profit", "PnL", "portfolio balance", or any crypto trading task on Base.
Deploy ERC20 tokens on Base using Clanker SDK. Create tokens with built-in Uniswap V4 liquidity pools. Supports Base mainnet and Sepolia testnet. Requires PRIVATE_KEY in config.
Query DeFi portfolio data across 50+ chains via Zapper's GraphQL API. Use when the user wants to check wallet balances, DeFi positions, NFT holdings, token prices, or transaction history. Supports Base, Ethereum, Polygon, Arbitrum, Optimism, and more. Requires ZAPPER_API_KEY.
Interact with Solana blockchain via Helius APIs. Create/manage wallets, check balances (SOL + tokens), send transactions, swap tokens via Jupiter, and monitor addresses. Use for any Solana blockchain operation, crypto wallet management, token transfers, DeFi swaps, or portfolio tracking.