
Bankr
- 24 installs
- 610 repo stars
- Updated June 26, 2026
- alsk1992/cloddsbot
Bankr is a Claude Code skill that executes crypto trading and DeFi operations from natural-language prompts through the Bankr AI agent API across multiple chains.
About
Bankr is a skill that executes crypto trading and DeFi operations using natural language through the Bankr AI agent API. It handles swaps, transfers, bridging, portfolio queries, NFTs, Polymarket bets, Avantis leverage, DCA automation, and token deployment across Base, Polygon, Ethereum, Solana, and Unichain. A developer uses it to run multi-chain crypto actions from plain-English prompts.
- Executes crypto trading and DeFi via natural language through the Bankr API
- Covers swaps, bridging, portfolio, NFTs, Polymarket bets, leverage, and token deployment
- Supports Base, Polygon, Ethereum, Solana, and Unichain
Bankr by the numbers
- 24 all-time installs (skills.sh)
- Ranked #699 of 1,106 Finance & Trading skills by installs in the Skillselion catalog
- Data as of Aug 5, 2026 (Skillselion catalog sync)
bankr capabilities & compatibility
Requires BANKR_API_KEY from bankr.bot/api.
- Capabilities
- crypto trading · token swap · bridging · token deployment
- Use cases
- trading
- Pricing
- Bring your own API key
What bankr says it does
Execute crypto trading and DeFi operations using natural language through Bankr's AI agent API.
Get your API key from [bankr.bot/api](https://bankr.bot/api)
npx skills add https://github.com/alsk1992/cloddsbot --skill bankrAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 24 |
|---|---|
| repo stars | ★ 610 |
| Last updated | June 26, 2026 |
| Repository | alsk1992/cloddsbot ↗ |
What it does
Execute multi-chain crypto trading and DeFi actions from natural-language prompts via the Bankr API.
Who is it for?
executing multi-chain crypto and DeFi actions from natural-language prompts
Skip if: chains outside Base, Polygon, Ethereum, Solana, and Unichain
When should I use this skill?
you want to run a crypto trade, swap, bridge, or DeFi action described in plain English
What you get
Crypto trades, transfers, bridges, and DeFi actions executed from a single plain-English prompt.
By the numbers
- 5 supported chains
Files
Bankr
Execute crypto trading and DeFi operations using natural language through Bankr's AI agent API.
Setup
Get your API key from bankr.bot/api and set:
export BANKR_API_KEY=bk_your_key_hereCommands
/bankr <prompt> Execute any trading command
/bankr status <jobId> Check job status
/bankr cancel <jobId> Cancel pending jobExamples
Trading
/bankr Buy $50 of ETH on Base
/bankr Swap 0.1 ETH for USDC
/bankr Sell 50% of my PEPE
/bankr Bridge 100 USDC from Polygon to BasePortfolio
/bankr Show my portfolio
/bankr What's my ETH balance?
/bankr Holdings on BaseMarket Research
/bankr What's the price of Bitcoin?
/bankr Analyze ETH price
/bankr Trending tokens on BaseTransfers
/bankr Send 0.1 ETH to vitalik.eth
/bankr Transfer $20 USDC to @friendNFTs
/bankr Show Bored Ape floor price
/bankr Buy cheapest Pudgy Penguin
/bankr Show my NFTsPolymarket
/bankr What are the odds Trump wins?
/bankr Bet $10 on Yes for [market]
/bankr Show my Polymarket positionsLeverage (Avantis)
/bankr Open 5x long on ETH with $100
/bankr Short BTC 10x with stop loss at $45kAutomation
/bankr DCA $100 into ETH weekly
/bankr Set limit order to buy ETH at $3,000
/bankr Stop loss for all holdings at -20%Token Deployment
/bankr Deploy a token called BankrFan with symbol BFAN on Base
/bankr Launch a token called MOON on SolanaRaw Transactions
/bankr Submit this transaction: {"to": "0x...", "data": "0x...", "value": "0", "chainId": 8453}Supported Chains
| Chain | Native Token | Best For |
|---|---|---|
| Base | ETH | Memecoins, low fees |
| Polygon | MATIC | Gaming, NFTs |
| Ethereum | ETH | Blue chips |
| Solana | SOL | High-speed trading |
| Unichain | ETH | Newer L2 |
Tips
- Specify chain for lesser-known tokens: "Buy PEPE on Base"
- Use Base/Polygon for small amounts (lower gas)
- Check balance before trades
- Start small, scale up after testing
/**
* Bankr Skill - AI-powered crypto trading via natural language
*
* Commands:
* /bankr <prompt> Execute any trading command
* /bankr status <jobId> Check job status
* /bankr cancel <jobId> Cancel pending job
*/
import { BankrClient, getBankrClient, type JobResult, type StatusUpdate } from '../../../bankr';
// =============================================================================
// Execute
// =============================================================================
export async function execute(args: string): Promise<string> {
const trimmed = args.trim();
if (!trimmed) {
return getHelp();
}
// Parse subcommands
if (trimmed.startsWith('status ')) {
const jobId = trimmed.slice(7).trim();
return handleStatus(jobId);
}
if (trimmed.startsWith('cancel ')) {
const jobId = trimmed.slice(7).trim();
return handleCancel(jobId);
}
if (trimmed === 'help' || trimmed === '--help') {
return getHelp();
}
// Execute prompt
return handlePrompt(trimmed);
}
// =============================================================================
// Handlers
// =============================================================================
async function handlePrompt(prompt: string): Promise<string> {
const client = getBankrClient();
const updates: string[] = [];
try {
const result = await client.execute(prompt, {
onStatusUpdate: (update: StatusUpdate) => {
updates.push(`⏳ ${update.message}`);
},
});
return formatResult(result, updates);
} catch (error) {
const msg = error instanceof Error ? error.message : String(error);
return `❌ Bankr error: ${msg}`;
}
}
async function handleStatus(jobId: string): Promise<string> {
if (!jobId) {
return '❌ Usage: /bankr status <jobId>';
}
const client = getBankrClient();
try {
const result = await client.getJobStatus(jobId);
return formatResult(result);
} catch (error) {
const msg = error instanceof Error ? error.message : String(error);
return `❌ Failed to get status: ${msg}`;
}
}
async function handleCancel(jobId: string): Promise<string> {
if (!jobId) {
return '❌ Usage: /bankr cancel <jobId>';
}
const client = getBankrClient();
try {
const result = await client.cancelJob(jobId);
return `✅ Job cancelled: ${result.jobId}`;
} catch (error) {
const msg = error instanceof Error ? error.message : String(error);
return `❌ Failed to cancel: ${msg}`;
}
}
// =============================================================================
// Formatting
// =============================================================================
function formatResult(result: JobResult, updates?: string[]): string {
const lines: string[] = [];
// Show progress updates if any
if (updates && updates.length > 0) {
lines.push(...updates);
lines.push('');
}
// Status emoji
const statusEmoji = {
pending: '⏳',
processing: '🔄',
completed: '✅',
failed: '❌',
cancelled: '🚫',
}[result.status] || '❓';
lines.push(`${statusEmoji} **Status**: ${result.status}`);
// Response
if (result.response) {
lines.push('');
lines.push(result.response);
}
// Error
if (result.error) {
lines.push('');
lines.push(`**Error**: ${result.error}`);
}
// Rich data summary
if (result.richData && result.richData.length > 0) {
lines.push('');
lines.push(`📊 ${result.richData.length} data object(s) returned`);
}
// Timing
if (result.processingTime) {
lines.push('');
lines.push(`⏱️ Completed in ${(result.processingTime / 1000).toFixed(1)}s`);
}
// Job ID for reference
lines.push('');
lines.push(`🆔 Job: \`${result.jobId}\``);
return lines.join('\n');
}
function getHelp(): string {
return `**Bankr** - AI Crypto Trading
**Commands:**
\`/bankr <prompt>\` - Execute any trading command
\`/bankr status <jobId>\` - Check job status
\`/bankr cancel <jobId>\` - Cancel pending job
**Examples:**
\`/bankr Buy $50 of ETH on Base\`
\`/bankr Show my portfolio\`
\`/bankr Swap 0.1 ETH for USDC\`
\`/bankr What's the price of Bitcoin?\`
\`/bankr DCA $100 into ETH weekly\`
**Chains:** Base, Ethereum, Polygon, Solana, Unichain
**Setup:** Set BANKR_API_KEY from bankr.bot/api`;
}
// =============================================================================
// Agent Tools
// =============================================================================
export default {
name: 'bankr',
description: 'AI-powered crypto trading via natural language',
commands: ['/bankr'],
handle: execute,
};
export const tools = [
{
name: 'bankr_execute',
description: 'Execute a crypto trading command via Bankr AI agent. Supports trading, swaps, portfolio, NFTs, Polymarket, leverage, automation.',
parameters: {
type: 'object',
properties: {
prompt: {
type: 'string',
description: 'Natural language trading command (e.g., "Buy $50 of ETH on Base")',
},
},
required: ['prompt'],
},
execute: async ({ prompt }: { prompt: string }) => {
return handlePrompt(prompt);
},
},
{
name: 'bankr_portfolio',
description: 'Get wallet portfolio and balances via Bankr',
parameters: {
type: 'object',
properties: {
chain: {
type: 'string',
description: 'Optional chain filter (base, ethereum, polygon, solana)',
},
},
},
execute: async ({ chain }: { chain?: string }) => {
const prompt = chain
? `Show my portfolio on ${chain}`
: 'Show my complete portfolio';
return handlePrompt(prompt);
},
},
{
name: 'bankr_price',
description: 'Get token price via Bankr',
parameters: {
type: 'object',
properties: {
token: {
type: 'string',
description: 'Token symbol (e.g., ETH, BTC, SOL)',
},
},
required: ['token'],
},
execute: async ({ token }: { token: string }) => {
return handlePrompt(`What is the price of ${token}?`);
},
},
{
name: 'bankr_swap',
description: 'Swap tokens via Bankr',
parameters: {
type: 'object',
properties: {
amount: {
type: 'string',
description: 'Amount to swap (e.g., "0.1", "$50")',
},
from: {
type: 'string',
description: 'Token to swap from',
},
to: {
type: 'string',
description: 'Token to swap to',
},
chain: {
type: 'string',
description: 'Chain (default: base)',
},
},
required: ['amount', 'from', 'to'],
},
execute: async ({ amount, from, to, chain }: { amount: string; from: string; to: string; chain?: string }) => {
const chainStr = chain ? ` on ${chain}` : '';
return handlePrompt(`Swap ${amount} ${from} for ${to}${chainStr}`);
},
},
{
name: 'bankr_transaction',
description: 'Submit a raw transaction via Bankr',
parameters: {
type: 'object',
properties: {
to: {
type: 'string',
description: 'Target address',
},
data: {
type: 'string',
description: 'Calldata (hex)',
},
value: {
type: 'string',
description: 'Value in wei (default: 0)',
},
chainId: {
type: 'number',
description: 'Chain ID (e.g., 8453 for Base)',
},
},
required: ['to', 'data', 'chainId'],
},
execute: async ({ to, data, value, chainId }: { to: string; data: string; value?: string; chainId: number }) => {
const tx = { to, data, value: value || '0', chainId };
return handlePrompt(`Submit this transaction: ${JSON.stringify(tx)}`);
},
},
];
Related skills
FAQ
Which chains does Bankr support?
Base, Polygon, Ethereum, Solana, and Unichain.
How are commands tracked?
Each command runs as a job; you can check status or cancel a pending job by jobId.