Install
openclaw skills install bank-skillsTraditional banking via Wise API + on-chain token swaps on Base
openclaw skills install bank-skillsGives AI agents traditional banking capabilities (via Wise API) and on-chain token operations (via Uniswap on Base). Agents can check balances, send money, retrieve account details, create Ethereum wallets, swap tokens, and send tokens—all through a single skill.
For Banking (Wise API):
WISE_API_TOKEN environment variable (required)WISE_PROFILE_ID (defaults to first available profile)For Token Operations (Base Network):
CLAWBANK_WALLET_PASSWORD (wallet keystore password, defaults to "clawbank-default")BASE_RPC_URL (Base RPC endpoint, defaults to https://mainnet.base.org)Purpose: Query Wise multi-currency balances for the configured profile.
Inputs:
action: "balance" (required)currency: Currency code filter, e.g. "USD" (optional — returns all if omitted)Outputs:
currency, amount, and reservedAmountUsage:
echo '{"action": "balance"}' | ./run.sh
echo '{"action": "balance", "currency": "USD"}' | ./run.sh
Example output:
{
"success": true,
"balances": [
{"currency": "USD", "amount": 1250.00, "reservedAmount": 0.00},
{"currency": "EUR", "amount": 500.75, "reservedAmount": 10.00}
]
}
Purpose: Retrieve account number, routing number, IBAN, and related info so others can send you payments.
Inputs:
action: "receive-details" (required)currency: Currency code, e.g. "USD" (optional — returns all if omitted)Outputs:
Usage:
echo '{"action": "receive-details"}' | ./run.sh
echo '{"action": "receive-details", "currency": "USD"}' | ./run.sh
Example output:
{
"success": true,
"details": [
{
"currency": "USD",
"accountHolder": "Your Business Name",
"accountNumber": "1234567890",
"routingNumber": "026073150",
"bankName": "Community Federal Savings Bank"
}
]
}
Purpose: Initiate a transfer from your Wise balance to a recipient.
Inputs:
action: "send" (required)sourceCurrency: Source currency code, e.g. "USD" (required)targetCurrency: Target currency code, e.g. "EUR" (required)amount: Amount to send as a number (required)recipientName: Full name of the recipient (required)recipientAccount: Recipient account number or IBAN (required)Additional fields for USD ACH transfers:
recipientRoutingNumber: 9-digit ABA routing number (required)recipientCountry: Two-letter country code, e.g. "US" (required)recipientAddress: Street address (required)recipientCity: City (required)recipientState: State code, e.g. "NY" (required)recipientPostCode: ZIP/postal code (required)recipientAccountType: "CHECKING" or "SAVINGS" (optional, defaults to "CHECKING")Outputs:
USD ACH Transfer Example:
echo '{
"action": "send",
"sourceCurrency": "USD",
"targetCurrency": "USD",
"amount": 100.00,
"recipientName": "John Smith",
"recipientAccount": "123456789",
"recipientRoutingNumber": "111000025",
"recipientCountry": "US",
"recipientAddress": "123 Main St",
"recipientCity": "New York",
"recipientState": "NY",
"recipientPostCode": "10001",
"recipientAccountType": "CHECKING"
}' | ./run.sh
EUR IBAN Transfer Example (simpler):
echo '{
"action": "send",
"sourceCurrency": "USD",
"targetCurrency": "EUR",
"amount": 100.00,
"recipientName": "Jane Doe",
"recipientAccount": "DE89370400440532013000"
}' | ./run.sh
Example output:
{
"success": true,
"transfer": {
"id": 12345678,
"status": "processing",
"sourceAmount": 100.00,
"sourceCurrency": "USD",
"targetAmount": 93.50,
"targetCurrency": "EUR"
}
}
Purpose: Generate a new Ethereum wallet for token operations on Base.
Inputs:
action: "create-wallet" (required)Outputs:
~/.clawbank/wallet.json)Usage:
echo '{"action": "create-wallet"}' | ./run.sh
Purpose: Get current wallet address and ETH balance on Base.
Inputs:
action: "get-wallet" (required)Outputs:
Usage:
echo '{"action": "get-wallet"}' | ./run.sh
Purpose: Set the target token address for swaps.
Inputs:
action: "set-target-token" (required)tokenAddress: ERC-20 contract address on Base (required)Usage:
echo '{"action": "set-target-token", "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}' | ./run.sh
Purpose: View current target token and swap history.
Inputs:
action: "get-sweep-config" (required)Usage:
echo '{"action": "get-sweep-config"}' | ./run.sh
Purpose: Check ERC-20 token balance for the wallet.
Inputs:
action: "get-token-balance" (required)tokenAddress: ERC-20 contract address (required)Usage:
echo '{"action": "get-token-balance", "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}' | ./run.sh
Purpose: Swap ETH for any token on Base via Uniswap (universal V3+V4 support).
Inputs:
action: "buy-token" (required)amountEth: Amount of ETH to swap (required)Outputs:
Usage:
echo '{"action": "buy-token", "amountEth": 0.001}' | ./run.sh
Supported tokens: Any ERC-20 with WETH liquidity on Base (USDC, DAI, WBTC, ClawBank, etc.)
Purpose: Send ERC-20 tokens or native ETH from the wallet.
Inputs:
action: "send-token" (required)tokenAddress: ERC-20 contract address, or "ETH" for native ETH (required)toAddress: Recipient wallet address (required)amount: Amount to send in token units (required)Usage:
echo '{"action": "send-token", "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913", "toAddress": "0x...", "amount": 5.0}' | ./run.sh
Purpose: Export wallet's private key for recovery or import.
Inputs:
action: "export-private-key" (required)Outputs:
Usage:
echo '{"action": "export-private-key"}' | ./run.sh
Banking Operations:
WISE_API_TOKEN: Returns {"success": false, "error": "WISE_API_TOKEN environment variable is not set"}. Set the token and retry.{"success": false, "error": "Authentication failed — check your WISE_API_TOKEN"}.{"success": false, "error": "Insufficient funds in USD balance"}. Check balance before retrying.{"success": false, "error": "Invalid recipient account details"}.Token Operations:
{"success": false, "error": "Wallet does not exist. Call create-wallet first"}.{"success": false, "error": "Insufficient balance. Have X ETH, need Y + 0.001 for gas"}.{"success": false, "error": "No target token set. Call set-target-token first"}.{"success": false, "error": "No liquidity pool found for [token]"}.{"success": false, "error": "Unknown action: <action>"}. See Operations section for valid actions.Banking: Check balances, send international transfers, share account details for receiving payments
Token Operations: Create wallets, swap tokens on Base (any token with Uniswap liquidity), send tokens, track balances
Token Swap Implementation:
Security: