Send Token
by @ant-1984
Transfer tokens from OpenAnt wallet on Solana or Base. Use when the user wants to send, transfer, or pay tokens via OpenAnt. Supports native coins (SOL, ETH)...
clawhub install send-token📖 About This Skill
name: send-token description: Transfer tokens on Solana or Base. Use when the user wants to send, transfer, or pay tokens. Supports native coins (SOL, ETH) and tokens (USDC) by name, plus arbitrary tokens by mint/contract address. Covers "send SOL", "transfer USDC", "send tokens", "pay someone", "send ETH on Base", "transfer to address". user-invocable: true disable-model-invocation: false allowed-tools: ["Bash(npx @openant-ai/cli@latest wallet send *)", "Bash(npx @openant-ai/cli@latest wallet balance*)", "Bash(npx @openant-ai/cli@latest wallet addr*)", "Bash(npx @openant-ai/cli@latest status*)"]
Sending Tokens on OpenAnt
Use the npx @openant-ai/cli@latest CLI to transfer tokens on Solana or Base. Supports native coins (SOL, ETH), named tokens (USDC), and arbitrary tokens by mint/contract address.
Always append --json to every command for structured, parseable output.
Confirm Authentication and Balance
npx @openant-ai/cli@latest status --json
npx @openant-ai/cli@latest wallet balance --json
If not authenticated, refer to the authenticate-openant skill. If balance is insufficient, inform the user.
Command Syntax
npx @openant-ai/cli@latest wallet send [--json] [--rpc ]
Arguments
| Argument | Description |
|----------|-------------|
| chain | Target chain: solana (or sol), base (or eth) |
| token | Token: sol, eth, usdc, or a mint/contract address |
| amount | Amount in display units (e.g. 10 = 10 USDC, 0.5 = 0.5 SOL) |
| to | Destination address (Solana pubkey or EVM 0x address) |
Options
| Option | Description |
|--------|-------------|
| --json | Machine-readable JSON output |
| --rpc | Override the default RPC URL for the chain |
Supported Chains and Tokens
| Chain | Named tokens | Native coin |
|-------|-------------|-------------|
| solana / sol | usdc, or any SPL mint address | sol |
| base / eth | usdc, or any ERC20 contract address | eth |
For arbitrary tokens, pass the mint address (Solana) or contract address (Base) directly as the token argument.
Examples
Send native SOL
npx @openant-ai/cli@latest wallet send solana sol 1.5 7xKabc123... --json
-> { "success": true, "data": { "chain": "solana", "txSignature": "5xYz..." } }
Send USDC on Solana
npx @openant-ai/cli@latest wallet send solana usdc 100 7xKabc123... --json
-> { "success": true, "data": { "chain": "solana", "txSignature": "3aBc..." } }
Send ETH on Base
npx @openant-ai/cli@latest wallet send base eth 0.05 0xAbCdEf... --json
-> { "success": true, "data": { "chain": "base", "txHash": "0x1a2b..." } }
Send USDC on Base
npx @openant-ai/cli@latest wallet send base usdc 50 0xAbCdEf... --json
-> { "success": true, "data": { "chain": "base", "txHash": "0x9f8e..." } }
Send arbitrary SPL token by mint address
npx @openant-ai/cli@latest wallet send solana 4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU 25 7xKabc123... --json
Send arbitrary ERC20 on Base by contract address
npx @openant-ai/cli@latest wallet send base 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 10 0xAbCdEf... --json
Natural Language Mapping
When the user says something like:
wallet send base usdc 10 0xAbc... --jsonwallet send solana sol 1.5 7xK... --jsonwallet send base usdc 50 0xDef... --jsonwallet send base eth 0.1 0x123... --jsonwallet send solana 10 --json Extract: chain, token (name or address), amount, and destination address.
Autonomy
Token transfers are irreversible. Always confirm with the user before executing:
1. Verify the chain, token, amount, and destination address with the user 2. Check wallet balance first to ensure sufficient funds 3. Only execute after explicit user confirmation
Read-only commands (status, wallet balance, wallet addresses) can be executed immediately.
NEVER
0x. If the address format doesn't match the chain, stop and clarify with the user.Prerequisites
npx @openant-ai/cli@latest status --json)Error Handling
authenticate-openant skill firstwallet balancesol, base, eth💡 Examples
Send native SOL
npx @openant-ai/cli@latest wallet send solana sol 1.5 7xKabc123... --json
-> { "success": true, "data": { "chain": "solana", "txSignature": "5xYz..." } }
Send USDC on Solana
npx @openant-ai/cli@latest wallet send solana usdc 100 7xKabc123... --json
-> { "success": true, "data": { "chain": "solana", "txSignature": "3aBc..." } }
Send ETH on Base
npx @openant-ai/cli@latest wallet send base eth 0.05 0xAbCdEf... --json
-> { "success": true, "data": { "chain": "base", "txHash": "0x1a2b..." } }
Send USDC on Base
npx @openant-ai/cli@latest wallet send base usdc 50 0xAbCdEf... --json
-> { "success": true, "data": { "chain": "base", "txHash": "0x9f8e..." } }
Send arbitrary SPL token by mint address
npx @openant-ai/cli@latest wallet send solana 4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU 25 7xKabc123... --json
Send arbitrary ERC20 on Base by contract address
npx @openant-ai/cli@latest wallet send base 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 10 0xAbCdEf... --json
⚙️ Configuration
| Option | Description |
|--------|-------------|
| --json | Machine-readable JSON output |
| --rpc | Override the default RPC URL for the chain |