CCM
/Skills
SkillsMCPMarketplacesDigestToolsAdvertise

This week in Claude

Every Monday: Claude Code, Agent SDK, MCP, and the Anthropic platform moves worth your time.

Skills by Category
Frontend DevelopmentBackend & APIsTesting & QASecurityDevOps & CI/CDGit & Pull RequestsDocumentationCode Review & QualityAI & Agent BuildingSkill Development
MCP Servers by Category
Sales & MarketingWeb & Browser AutomationDatabasesAI & LLM ToolsCloud & InfrastructureCommunication & MessagingDeveloper ToolsDesign & CreativeDocuments & KnowledgeSearch & Web Crawling
Marketplaces by Category
AI Agents & OrchestrationLLM IntegrationDevelopment ToolsFrontend & UIBackend & APIsDatabasesTesting & Code QualityDevOps & CloudSecurity & ComplianceGit & Version Control

Claude Code Marketplaces

Discover Claude Code plugins, extensions, and tools. Automatically updated directory of Anthropic Claude AI marketplaces with development tools, productivity plugins, and integrations.

Resources

  • Browse Skills
  • Browse MCP Servers
  • Browse Marketplaces
  • Skill index
  • MCP index
  • Marketplace index
  • Plugins Reference

Community

  • About
  • Tools
  • Feedback
  • Privacy Policy
  • Advertise

Built for the Claude Code community with Claude Code by mertbuilds.com

Independent project, not affiliated with Anthropic
bankrbot avatar

Bankr

bankrbot/openclaw-skills
624 installs1.2k stars
Summary

This is a natural language interface for crypto trading and DeFi operations across Base, Ethereum, Solana, and six other chains. You can check balances with PnL, swap tokens, manage NFTs, use leverage on Hyperliquid or Avantis, bet on Polymarket, or deploy tokens by just asking. It handles both simple operations through a wallet API and complex multi-step flows through an agent API that interprets prompts. The CLI setup walks you through email verification and generates API keys with granular permissions for wallet access, agent capabilities, and even an LLM gateway. If you're building trading bots or want to execute on-chain operations without writing chain-specific code, this bridges the gap between English and transactions.

Install to Claude Code

npx -y skills add bankrbot/openclaw-skills --skill bankr --agent claude-code

Installs into .claude/skills of the current project.

CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
MCP-ready Email SendingMCP-ready Email Sending
MCP-ready Email Sending
Plug Mailtrap into your AI workflow and let it handle the email.
Connect Mailtrap MCP →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Capacitor - Shared memory for your team’s coding agents.
Capacitor - Shared memory for your team’s coding agents.
Make coding agent sessions - Searchable, Shareable, Vendor-neutral & Scored.
Try For Free →
CodeScene MCP ServerCodeScene MCP Server
CodeScene MCP Server
Your agent targets a perfect 10 Code Health score. Deterministic. Every commit.
Try For Free →
Give your AI the whole web as clean markdownGive your AI the whole web as clean markdown
Give your AI the whole web as clean markdown
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
belt - the only tool your agent needs
belt - the only tool your agent needs
belt cli automatically finds the best tools and skills for your agent. image, video, music, tts...
one prompt install →
inference shell
inference shell
create and run specialised agents in minutes
build now →
CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
MCP-ready Email SendingMCP-ready Email Sending
MCP-ready Email Sending
Plug Mailtrap into your AI workflow and let it handle the email.
Connect Mailtrap MCP →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Capacitor - Shared memory for your team’s coding agents.
Capacitor - Shared memory for your team’s coding agents.
Make coding agent sessions - Searchable, Shareable, Vendor-neutral & Scored.
Try For Free →
CodeScene MCP ServerCodeScene MCP Server
CodeScene MCP Server
Your agent targets a perfect 10 Code Health score. Deterministic. Every commit.
Try For Free →
Give your AI the whole web as clean markdownGive your AI the whole web as clean markdown
Give your AI the whole web as clean markdown
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
belt - the only tool your agent needs
belt - the only tool your agent needs
belt cli automatically finds the best tools and skills for your agent. image, video, music, tts...
one prompt install →
inference shell
inference shell
create and run specialised agents in minutes
build now →
Files
SKILL.mdView on GitHub

Bankr

Execute crypto trading and DeFi operations using natural language. Two integration options:

  1. Bankr CLI (recommended) — Install @bankr/cli for a batteries-included terminal experience
  2. REST API — Call https://api.bankr.bot directly from any language or tool

Both use the same API key. The API has two layers:

  • Wallet API (/wallet/*) — Direct, synchronous endpoints for portfolio, transfers, signing, and transaction submission
  • Agent API (/agent/*) — AI-powered async prompt endpoint for natural language operations

Getting an API Key

Before using either option, you need a Bankr API key. Two ways to get one:

Option A: Headless email login (recommended for agents)

Two-step flow — send OTP, then verify and complete setup. See "First-Time Setup" below for the full guided flow with user preference prompts.

# Step 1 — send OTP to email
bankr login email user@example.com

# Step 2 — verify OTP and generate API key (options based on user preferences)
bankr login email user@example.com --code 123456 --accept-terms --key-name "My Agent" --read-write

This creates a wallet, accepts terms, and generates an API key — no browser needed. Before running step 2, ask the user which APIs they need (wallet, agent, both via --read-write, LLM gateway) and their preferred key name.

Option B: Bankr Terminal

  1. Visit bankr.bot/api-keys
  2. Sign up / Sign in — Enter your email and the one-time passcode (OTP) sent to it
  3. Generate an API key — Create a key with Wallet & Agent API access enabled (the key starts with bk_...)

Both options automatically provision EVM wallets (Base, Ethereum, Polygon, Unichain) and a Solana wallet — no manual wallet setup needed.

Option 1: Bankr CLI (Recommended)

Install

bun install -g @bankr/cli

Or with npm:

npm install -g @bankr/cli

First-Time Setup

Headless email login (recommended for agents)

When the user asks to log in with an email, walk them through this flow:

Step 1 — Send verification code

bankr login email <user-email>

Step 2 — Ask the user for the OTP code and all preferences in a single message. This avoids unnecessary back-and-forth. Ask for:

  1. OTP code — the code they received via email
  2. Accept Terms of Service (REQUIRED) — Present the Terms of Service link and confirm the user agrees. The login command will fail for new users without --accept-terms. You MUST ask for ToS acceptance and do not pass --accept-terms unless the user has explicitly confirmed.
  3. Which APIs do they need?
    • Wallet API — enabled by default, use --no-wallet-api to disable
    • Agent API (--agent-api) — AI-powered prompts and natural language operations
    • Token Launch — enabled by default, use --no-token-launch to disable
    • Add --read-write to allow transactions (without it, enabled APIs are read-only)
  4. Enable LLM gateway access? (--llm) — multi-model API at llm.bankr.bot (currently limited to beta testers). Skip if user doesn't need it.
  5. Key name? (--key-name) — a display name for the API key (e.g. "My Agent", "Trading Bot")

Step 3 — Construct and run the step 2 command with the user's choices. Do NOT execute if the user has not explicitly accepted the Terms of Service — ask again if needed:

# Full access: wallet + agent with write + LLM
bankr login email <user-email> --code <otp> --accept-terms --key-name "My Agent" --agent-api --read-write --llm

# Agent with write access (AI can execute transactions)
bankr login email <user-email> --code <otp> --accept-terms --key-name "Trading Agent" --agent-api --read-write

# Default key (wallet + token launch, read-only)
bankr login email <user-email> --code <otp> --accept-terms --key-name "My Key"

# Agent read-only (research, prices, balances — no transactions)
bankr login email <user-email> --code <otp> --accept-terms --key-name "Research Agent" --agent-api

# LLM-only (no wallet, no token launch)
bankr login email <user-email> --code <otp> --accept-terms --key-name "LLM Client" --no-wallet-api --no-token-launch --llm
Login options reference
OptionDescription
--code <otp>OTP code received via email (step 2)
--accept-termsAccept Terms of Service without prompting (required for new users)
--key-name <name>Display name for the API key (e.g. "My Agent"). Prompted if omitted
--no-wallet-apiDisable Wallet API (enabled by default)
--agent-apiEnable Agent API (AI prompts, natural language operations)
--read-writeDisable read-only mode (allow transactions). Without this, enabled APIs are read-only
--no-token-launchDisable Token Launch API (enabled by default)
--llmEnable LLM gateway access (multi-model API at llm.bankr.bot). Currently limited to beta testers
--allowed-ips <ips>Comma-separated IP/CIDR allowlist for the API key (e.g., 1.2.3.4,10.0.0.0/24)
--allowed-recipients <addresses>Comma-separated EVM/Solana addresses the key can send to (auto-classified by 0x prefix)

New key defaults (when no flags are passed):

FlagDefaultTo change
walletApiEnabledEnabled--no-wallet-api
agentApiEnabledDisabled--agent-api
tokenLaunchApiEnabledEnabled--no-token-launch
llmGatewayEnabledDisabled--llm
readOnlyEnabled (read-only)--read-write

Any option not provided on the command line will be prompted interactively by the CLI, so you can mix headless and interactive as needed.

Login with existing API key

If the user already has an API key:

bankr login --api-key bk_YOUR_KEY_HERE

If they need to create one at the Bankr Terminal:

  1. Run bankr login --url — prints the terminal URL
  2. Present the URL to the user, ask them to generate a bk_... key
  3. Run bankr login --api-key bk_THE_KEY
Separate LLM Gateway Key (Optional)

If your LLM gateway key differs from your API key, pass --llm-key during login or run bankr config set llmKey YOUR_LLM_KEY afterward. When not set, the API key is used for both. See references/llm-gateway.md for full details.

Verify Setup
bankr whoami
bankr wallet portfolio
bankr agent prompt "What is my balance?"

Option 2: REST API (Direct)

No CLI installation required — call the API directly with curl, fetch, or any HTTP client.

Authentication

All requests require an X-API-Key header:

curl -X POST "https://api.bankr.bot/agent/prompt" \
  -H "X-API-Key: bk_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"prompt": "What is my ETH balance?"}'

Quick Example: Submit → Poll → Complete

# 1. Submit a prompt — returns a job ID
JOB=$(curl -s -X POST "https://api.bankr.bot/agent/prompt" \
  -H "X-API-Key: $BANKR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"prompt": "What is my ETH balance?"}')
JOB_ID=$(echo "$JOB" | jq -r '.jobId')

# 2. Poll until terminal status
while true; do
  RESULT=$(curl -s "https://api.bankr.bot/agent/job/$JOB_ID" \
    -H "X-API-Key: $BANKR_API_KEY")
  STATUS=$(echo "$RESULT" | jq -r '.status')
  [ "$STATUS" = "completed" ] || [ "$STATUS" = "failed" ] || [ "$STATUS" = "cancelled" ] && break
  sleep 2
done

# 3. Read the response
echo "$RESULT" | jq -r '.response'

Conversation Threads

Every prompt response includes a threadId. Pass it back to continue the conversation:

# Start — the response includes a threadId
curl -X POST "https://api.bankr.bot/agent/prompt" \
  -H "X-API-Key: $BANKR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"prompt": "What is the price of ETH?"}'
# → {"jobId": "job_abc", "threadId": "thr_XYZ", ...}

# Continue — pass threadId to maintain context
curl -X POST "https://api.bankr.bot/agent/prompt" \
  -H "X-API-Key: $BANKR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"prompt": "And what about SOL?", "threadId": "thr_XYZ"}'

Omit threadId to start a new conversation. CLI equivalent: bankr agent prompt --continue (reuses last thread) or bankr agent prompt --thread <id>.

API Endpoints Summary

Wallet API (/wallet/*) — Direct endpoints (synchronous)
EndpointMethodAuthDescription
/wallet/meGETReadWallet info (address, chains)
/wallet/portfolioGETReadPortfolio balances, supports ?include=pnl,nfts for progressive loading
/wallet/swap-quotePOSTReadQuote a swap (same-chain EVM, cross-chain, or Solana) without executing
/wallet/swapPOSTWriteExecute a swap — same-chain EVM, cross-chain, or any Solana leg (output returns to your wallet)
/wallet/transferPOSTWriteTransfer tokens (multi-chain, supports allowedRecipients enforcement)
/wallet/signPOSTWriteSign messages, typed data, or transactions
/wallet/submitPOSTWriteSubmit raw transactions to chain
  • Read endpoints (/wallet/me, /wallet/portfolio) — any valid API key with a wallet
  • Swap quote (/wallet/swap-quote) — a quote is a read, so read-only API keys are allowed; API-key callers still need walletApiEnabled
  • Write endpoints (/wallet/swap, /wallet/transfer, /wallet/sign, /wallet/submit) — require walletApiEnabled and reject read-only keys. /wallet/transfer also enforces allowedRecipients; /wallet/swap does not (output returns to your own wallet)
  • IP allowlist enforced on all endpoints
Recipient & user lookup helpers (public, no auth)
EndpointMethodDescription
/addresses/resolve?value=<recipient>&type=<address|ens|twitter|farcaster>GETResolve a recipient (0x address, ENS-style name .eth/.base.eth/.cb.id, or social handle) to a 0x address. Used by bankr wallet transfer --to to support ENS input.
/users/search?...GETSearch Bankr users by Twitter or Farcaster username.

The legacy aliases /public/resolve-recipient and /public/search-users have been removed — use the structured /addresses/resolve and /users/search endpoints instead.

Agent API (/agent/*) — AI-powered endpoints (async)
EndpointMethodDescription
/agent/promptPOSTSubmit a prompt (async, returns job ID)
/agent/job/{jobId}GETCheck job status and results
/agent/job/{jobId}/cancelPOSTCancel a running job
Public endpoints (no auth required)
EndpointMethodDescription
/token-launchesGETList recent token launches (cached, public)
Removed legacy endpoints

The following /agent/* endpoints have been removed. Use the /wallet/* equivalents:

RemovedUse Instead
GET /agent/meGET /wallet/me
GET /agent/balancesGET /wallet/portfolio
POST /agent/signPOST /wallet/sign
POST /agent/submitPOST /wallet/submit

For full API details (request/response schemas, job states, rich data, polling strategy), see:

Reference: references/api-workflow.md | references/sign-submit-api.md

CLI Command Reference (v0.3.x)

@bankr/cli 0.2+ organizes commands into three namespaces: wallet, agent, and tokens. Old flat commands (balances, prompt, status, etc.) still work as deprecated aliases.

bankr wallet — Wallet Operations

CommandDescription
bankr walletShow wallet info (default: whoami)
bankr wallet portfolioPortfolio balances across all chains (hides tokens under $1 by default)
bankr wallet portfolio --pnlInclude profit/loss data
bankr wallet portfolio --nftsInclude NFT holdings
bankr wallet portfolio --allInclude both PnL and NFTs
bankr wallet portfolio --chain <chains>Filter by chain(s): base, polygon, mainnet, unichain, arbitrum, bnb, worldchain, robinhood, solana (comma-separated)
bankr wallet portfolio --jsonOutput raw JSON
bankr wallet transfer --to <recipient> --token <symbol> --amount <amount>Transfer tokens; --to accepts a 0x address or ENS-style name (.eth, .base.eth, .cb.id), --token resolves symbols to contracts. Social handles work via the AI agent only.
bankr wallet transfer --to vitalik.eth --token USDC --amount 50 --chain baseENS recipient with explicit chain
bankr wallet swap --from <symbol/addr> --to <symbol/addr> --amount <amount>Swap tokens on a single EVM chain (same-chain). Resolves symbols to contracts; --from/--to/--amount required; --chain defaults to base. Solana is not supported (use the Wallet API or agent for cross-chain and Solana swaps).
bankr wallet swap --from ETH --to USDC --amount 0.1 --chain base --quote-onlyPrint the swap quote (you pay / you receive / min received) without executing
bankr wallet signSign messages/typed data/transactions
bankr wallet submitSubmit raw transactions

bankr agent — AI Agent Operations

CommandDescription
bankr agent prompt <text>Send a prompt to the Bankr AI agent
bankr agent prompt <text> --model <id>Max Mode — run this prompt on a specific gateway model, billed from LLM credits (-m also works)
bankr agent prompt --continue <text>Continue the most recent conversation thread
bankr agent prompt --thread <id> <text>Continue a specific conversation thread
bankr agent status <jobId>Check the status of a running job
bankr agent cancel <jobId>Cancel a running job
bankr agent profileView/manage agent profile
bankr agent skillsShow all Bankr AI agent skills with examples

bankr tokens — Token Discovery

CommandDescription
bankr tokens search <query>Search for tokens by name or symbol
bankr tokens info <symbol-or-address>Get detailed token information

bankr files — File Storage

CommandDescription
bankr files ls [--folder <path>]List files, optionally scoped to a folder
bankr files upload <file> [--folder <path>]Upload a local file
bankr files download <fileId>Get a download URL
bankr files cat <fileId>Print file contents to stdout (or save locally)
bankr files edit <fileId> --find <text> --replace <text>Find/replace in place (--all for every occurrence)
bankr files write <fileId> [--from <path>]Overwrite text content from a local file or stdin
bankr files search <query> [--folder <path>] [--limit <n>]Search by filename, extension, or description
bankr files mkdir <name> [--parent <path>]Create a folder
bankr files rm <fileId>Delete a file (soft — recoverable for 24h)
bankr files storageShow storage usage and quota

bankr club — Bankr Club Membership

Manage Bankr Club subscription from the CLI (status, signup, cancel). Pay with USDC (default), BNKR, ETH, or any Base ERC-20 — non-USDC/BNKR tokens are swapped to USDC at checkout.

CommandDescription
bankr clubShow membership status (default; same as status)
bankr club statusShow plan, renewal date, and daily message count
bankr club signupSubscribe (monthly, USDC default)
bankr club signup --yearlySubscribe yearly ($198 — saves ~$42/year)
bankr club signup --token <symbol-or-addr>Pay with USDC (default), BNKR, ETH, or any 0x-prefixed Base ERC-20
bankr club signup -ySkip the confirmation prompt
bankr club cancelCancel subscription (access continues until period ends)

Pricing is $20/mo or $198/yr USD-equivalent. Actual on-chain amount depends on the chosen token's price at quote time. The --token flag was added in CLI 0.3.4; older versions only support USDC.

What Club actually gates (everything else works without it):

PerkStandardBankr Club
Swap fee0.65%0.15%
Terminal messages5/dayUnlimited
Agent API requests100/day1,000/day
Concurrent recurring agent-command automations—Up to 20
Gas-sponsored token deploys3/day10/day
Token deploys50/day100/day
File storage1 GB (10 MB/file)10 GB (50 MB/file)
Monthly file downloads10 GB100 GB
Model routingStandardTop-tier models
Browser sessions, advanced research (Bankr score, PnL & volume analytics, web search, social sentiment)—Included

Max Mode is the alternative to a subscription — pay per request from LLM credits for unlimited terminal messages, and it works with external/connected wallets, which Club checkout does not (Club requires an embedded Bankr wallet). On the Agent API, non-Club Max Mode is still capped at 100 requests/day. Holding a legacy Bankr Club NFT does not grant membership; it was a commemorative token for the first 1,000 subscribers.

Monthly → yearly upgrade: active monthly members can upgrade to yearly by asking the agent (e.g. "upgrade me to yearly"). The full yearly price is charged and the new 365-day term stacks on top of any remaining monthly time, so no paid time is lost. Yearly → monthly downgrades and yearly resubscribes are not supported.

Auth & Config Commands

CommandDescription
bankr loginAuthenticate with the Bankr API (interactive menu)
bankr login email <address>Send OTP to email (headless step 1)
bankr login email <address> --code <otp> [options]Verify OTP and complete setup (headless step 2)
bankr login --api-key <key>Login with an existing API key directly
bankr login --api-key <key> --llm-key <key>Login with separate LLM gateway key
bankr login --urlPrint Bankr Terminal URL for API key generation
bankr logoutClear stored credentials
bankr whoamiShow current authentication info
bankr config get [key]Get config value(s)
bankr config set <key> <value>Set a config value
bankr --config <path> <command>Use a custom config file path

Valid config keys: apiKey, apiUrl, llmKey, llmUrl

Default config location: ~/.bankr/config.json. Override with --config or BANKR_CONFIG env var.

Non-Interactive Mode

For headless environments — CI pipelines, Docker containers, cron jobs — pass the --not-interactive (alias --ni) global flag, or set BANKR_NOT_INTERACTIVE=1. Both forms work before or after the subcommand.

The flag implies --yes on every confirmation prompt and fails fast (exit 1, clear error) when a command would otherwise hang on a required prompt. Use it whenever the user asks for an automated/scripted invocation.

CommandRequired headless flag(s) when --ni is set
bankr login--api-key <key>, login siwe --private-key <key>, or login email <addr> [--code <otp>]
bankr launch--name <name> (other fields default to empty)
bankr fees claim-wallet--all (plus --private-key or BANKR_PRIVATE_KEY)
bankr agenta prompt argument or piped stdin

Read-only commands (whoami, wallet portfolio, tokens, agent status, etc.) don't prompt at all — --ni is harmless but redundant.

Examples:

# Cron — claim creator fees nightly
BANKR_PRIVATE_KEY=0x... bankr --ni fees claim-wallet --all

# CI — programmatic token launch (simulate, no broadcast)
bankr --ni launch --name MyToken --symbol MTK --simulate

# Pipeline — agent prompt from stdin
echo "summarize today's trades" | bankr --ni agent prompt

Deprecated Aliases

Old flat commands still work but prefer the namespaced versions:

DeprecatedUse Instead
bankr promptbankr agent
bankr statusbankr agent status
bankr cancelbankr agent cancel
bankr balancesbankr wallet portfolio
bankr profilebankr agent profile
bankr signbankr wallet sign
bankr submitbankr wallet submit
bankr skillsbankr agent skills

Environment Variables

VariableDescription
BANKR_API_KEYAPI key (overrides stored key)
BANKR_API_URLAPI URL (default: https://api.bankr.bot)
BANKR_LLM_KEYLLM gateway key (falls back to BANKR_API_KEY if not set)
BANKR_LLM_URLLLM gateway URL (default: https://llm.bankr.bot)
BANKR_NOT_INTERACTIVESet to 1 to enable non-interactive mode globally (equivalent to passing --ni / --not-interactive on every invocation)

Environment variables override config file values. Config file values override defaults.

LLM Gateway Commands

CommandDescription
bankr llm modelsList available LLM models
bankr llm creditsCheck credit balance
bankr llm credits add <amount> [--token <addr>] [-y]Top up LLM credits from wallet
bankr llm credits auto [--enable/--disable] [--amount] [--threshold] [--tokens]View or configure auto top-up
bankr llm setup openclaw [--install]Generate or install OpenClaw config
bankr llm setup opencode [--install]Generate or install OpenCode config
bankr llm setup claudeShow Claude Code environment setup
bankr llm setup cursorShow Cursor IDE setup instructions
bankr llm claude [args...]Launch Claude Code via the Bankr LLM Gateway
bankr claude [args...]Top-level alias for bankr llm claude
bankr llm opencode [args...]Launch OpenCode via the Bankr LLM Gateway

On the launcher commands (bankr claude, bankr llm claude, bankr llm opencode) all arguments — including -h / --help — are forwarded to the spawned tool, and a help run doesn't require authentication. Use bankr --help / bankr llm --help for the Bankr CLI's own help. Named commands also take precedence over the prompt fallthrough, so bankr claude ... launches Claude Code instead of prompting the agent; use bankr agent "..." when a prompt starts with a command name.

The bankr claude alias and the --help passthrough require @bankr/cli 0.3.18+; on older versions use bankr llm claude.

Core Usage

Simple Query

For straightforward requests that complete quickly:

bankr agent prompt "What is my ETH balance?"
bankr agent prompt "What's the price of Bitcoin?"

The CLI handles the full submit-poll-complete workflow automatically. You can also use the shorthand — any unrecognized command is treated as a prompt:

bankr What is the price of ETH?

Interactive Prompt

For prompts containing $ or special characters that the shell would expand:

# Interactive mode — no shell expansion issues
bankr agent prompt
# Then type: Buy $50 of ETH on Base

# Or pipe input
echo 'Buy $50 of ETH on Base' | bankr agent prompt

Conversation Threads

Continue a multi-turn conversation with the agent:

# First prompt — starts a new thread automatically
bankr agent prompt "What is the price of ETH?"
# → Thread: thr_ABC123

# Continue the conversation (agent remembers the ETH context)
bankr agent prompt --continue "And what about BTC?"
bankr agent prompt -c "Compare them"

# Resume any thread by ID
bankr agent prompt --thread thr_ABC123 "Show me ETH chart"

Thread IDs are automatically saved to config after each prompt. The --continue / -c flag reuses the last thread.

Manual Job Control

For advanced use or long-running operations:

# Submit and get job ID
bankr agent prompt "Buy $100 of ETH"
# → Job submitted: job_abc123

# Check status of a specific job
bankr agent status job_abc123

# Cancel if needed
bankr agent cancel job_abc123

LLM Gateway

The Bankr LLM Gateway is a unified API for Claude, Gemini, GPT, Grok, DeepSeek, Qwen, Kimi, MiniMax, GLM, and other models — multi-provider access, cost tracking, automatic failover, and SDK compatibility through a single endpoint.

Base URL: https://llm.bankr.bot | Dashboard: bankr.bot/llm | API Keys: bankr.bot/api-keys

Key Concepts

  • Uses your llmKey if configured, otherwise falls back to your API key
  • LLM credits (USD) and trading wallet (crypto) are completely separate balances — having crypto does NOT give you LLM credits
  • New accounts start with $0 LLM credits — top up via bankr llm credits add 25 or at bankr.bot/llm?tab=credits before making any LLM calls, or you will get a 402 error
  • Check credits: bankr llm credits | Top up: bankr llm credits add <amount> | Auto top-up: bankr llm credits auto --enable --amount 25 --tokens USDC
  • In OpenClaw config, prefix model IDs with bankr/ (e.g. bankr/claude-sonnet-5). In direct API calls, use bare IDs (e.g. claude-sonnet-5). Run bankr llm models for the current model list
  • Claude Code's [1m] context-tier suffix is optional through the gateway — it's stripped before model lookup and the 1M window comes from the model's own context window, so claude-opus-5 and claude-opus-5[1m] behave identically. If you do use it, quote it (--model "claude-opus-5[1m]") — in zsh it's a glob character class and the command aborts before the CLI runs
  • Per-model discounts available for Bankr Club members and partners — applied automatically at billing time
  • Image generation: generate images via the OpenAI-native /v1/images/generations endpoint (model gpt-image-2), billed from the same LLM credit balance — see the reference
  • Expiring credit grants: promotional or developer grants may carry an expiry date. Your spendable balance is your permanent (purchased) credits plus any unexpired grants — grants are spent first (soonest-expiring first) and drop off automatically at expiry
  • Privacy tiers: every request is served at standard, zdr (zero data retention), or private (TEE). Ask for a tier per request, per model, per base URL, or account-wide — see below

Privacy Tiers

Three nesting levels of data-handling guarantee, requested the same way on every endpoint:

TierGuaranteeCoverage
standard (default)Never routed to a provider that trains on your prompts. Providers may still retain them.Every model
zdrOnly providers that retain nothing.Subset — filter with bankr llm models --zdr
privateRuns inside a hardware-secured enclave (TEE), attestation verified per request. Zero-retention by construction.Open-weight models only

Four ways to ask, so any client can reach any tier:

# 1. The `privacy` request field
curl -X POST https://llm.bankr.bot/v1/chat/completions -H "X-API-Key: $BANKR_LLM_KEY" \
  -d '{"model":"glm-5.2","privacy":"zdr","messages":[{"role":"user","content":"Hello"}]}'

# 2. A base-path prefix — for tools that only take a base URL, key, and model
export OPENAI_BASE_URL=https://llm.bankr.bot/zdr/v1      # OpenAI-compatible clients
export ANTHROPIC_BASE_URL=https://llm.bankr.bot/zdr      # Anthropic-compatible clients

# 3. A model-ID suffix
bankr llm models --zdr                                   # which models have a ZDR slot
# → use `glm-5.2:zdr` or `glm-5.2:private` as the model ID

# 4. Account-wide — Settings in the web terminal, applies to every request
  • Every tier fails closed. If no provider can serve your model at the tier you asked for, the request is rejected (422 zdr_unavailable) — never quietly downgraded.
  • Account setting and request combine, strongest wins. A request can tighten past the account setting; nothing in a request can drop below it.
  • A tier endpoint is authoritative. Sending a request that names a different tier to /zdr or /private returns 400 privacy_conflict rather than merging. An unparseable privacy value returns 400 invalid_privacy rather than being ignored.
  • X-Privacy-Tier response header reports the tier the request was actually handled under, so the guarantee is verifiable rather than assumed.
  • Tier matching is case-insensitive, and only a trailing :zdr / :private token counts as the suffix opt-in.

Max Mode — Pick the Agent's Model

Max Mode overrides the Bankr agent's default model with any model from the gateway, billed per token from your LLM credit balance (not your trading wallet):

bankr agent "analyze my portfolio" --model claude-opus-5     # or -m
bankr agent "what are the top memecoins today?" -m gemini-3.1-pro
bankr agent prompt "tell me more" --continue --model claude-sonnet-5

The setting is stored on your wallet and applies across every surface — CLI, web terminal, social platforms, and automations. In the web terminal, toggle the Max button and pick a model from the picker.

  • Credits are enforced per LLM call, not after the fact. Your spendable balance (minus anything already metered but not yet deducted) becomes the run's budget, re-checked before every call — the turn ends honestly when it's exhausted instead of overspending.
  • Shortfalls survive. If a batch can't be fully covered, the credit is left untouched and the usage stays owed, so a later top-up settles it rather than the overspend being written off.
  • Top up before enabling, or Max Mode messages will fail.

Quick Commands

bankr llm models                           # List available models
bankr llm credits                          # Check credit balance
bankr llm credits add 25                   # Top up $25 credits (defaults to Base USDC)
bankr llm credits add 25 --token USDT      # Pay USDT on whichever chain holds the most
bankr llm credits add 25 --token ETH       # Native token; auto-swapped on its chain
bankr llm credits auto --enable --amount 25 --tokens USDC,USDT  # Multi-chain auto top-up
bankr llm setup openclaw --install         # Install Bankr provider into OpenClaw
bankr llm setup claude                     # Print Claude Code env vars
bankr claude                               # Launch Claude Code through gateway
bankr claude --model claude-opus-5         # Any tool flags are forwarded
bankr llm opencode                         # Launch OpenCode through gateway

Agent Credit Top-Up

The AI agent can top up your LLM credits directly in conversation — no CLI or web dashboard needed:

bankr agent prompt "Top up my LLM credits with $25"
bankr agent prompt "Add $10 of LLM credits using my ETH"
bankr agent prompt "How many LLM credits do I have left?"

The agent can also report your current LLM credit balance in conversation — including any expiring grants and when they lapse — without needing the bankr llm credits command.

Sending credits to another Bankr user. Credit is transferable peer-to-peer — ask the agent ("send $20 of LLM credits to @alice") or POST /llm/credits/transfer. The recipient must already be a Bankr user (X username or 0x address; no ENS on this path), the minimum is $1, and a wallet may send at most $500 per trailing 24 hours. Read-only API keys are refused; pass your own transferId so a retry can't double-send.

Granted credit can be sent too, behind an opt-in. By default only purchased credit moves. Set useGrantedCredits (the transfer_llm_credits tool flag, or the "use granted credits" toggle in the web Send Credits panel) to let a transfer also spend granted credit — operator grants and bonuses, including ones carrying an expiry:

  • Purchased credit still spends first, and free. Only the overflow into the granted slice carries a 10% burn fee, charged on top of the amount.
  • The recipient always receives exactly the amount you entered. You are debited amount + fee, and the fee is burned — it isn't credited to anyone.
  • Each granted dollar is fee'd once. Concurrent sends can't double-claim the same slice, and a replayed transferId reports the original fee rather than charging again.
  • Leaving the flag off keeps the old behaviour byte-for-byte, so existing integrations need no change.

Two different ceilings, and the smaller one binds. Your balance has a transferable slice (the pool net of reserve, debt and live grants), and your daily budget clamps what can move today. Both are exposed on /llm/usage — balanceTransferableUsd for the balance-side figure, alongside grantedTransferableUsd and transferFeeBps — so a wallet holding $265 that's temporarily gated to $10 by a rolling window can be shown as exactly that, rather than as if the money were missing. The agent quotes both figures and names which one is binding when you ask about your balance.

Daily spend budget. You can cap what the gateway spends on your behalf, independently of your balance. The window is a trailing 24 hours, not a calendar day — nothing resets at midnight, capacity returns as charges age out. Over budget, spending requests return 402 with type: daily_budget_exceeded (distinct from insufficient_credits), while read-only GET endpoints keep working so you can poll for when you're unblocked. The same budget also ends Max Mode agent runs early.

1 credit = $1 USD. Multi-chain: pay with USDC or USDT directly on Base, Polygon, Ethereum, Arbitrum, or BNB Chain, or with any other ERC-20 (auto-swapped to the chain's preferred stablecoin — USDC on most chains, USDT on BNB). When using --token, the CLI picks the chain with the highest USD balance of that token. Maximum $1,000 per top-up.

Model Deprecation

The gateway supports model deprecation with auto-redirect to replacement models. Deprecated models return X-Model-Deprecated and X-Model-Replacement response headers. Hard-deprecated models return HTTP 410 — update your model ID to the replacement indicated in the header.

For full details — setup paths, model list, provider config, SDK examples, key management, and troubleshooting — see:

Reference: references/llm-gateway.md

Capabilities Overview

Trading Operations

  • Token Swaps: Buy/sell/swap tokens across chains
  • Cross-Chain: Bridge tokens between chains
  • Limit Orders: Execute at target prices
  • Stop Loss: Automatic sell protection
  • DCA: Dollar-cost averaging strategies
  • TWAP: Time-weighted average pricing

Reference: references/token-trading.md

Portfolio Management

  • Check balances across all chains (bankr wallet portfolio or GET /wallet/portfolio)
  • View USD valuations with optional PnL tracking (--pnl or ?include=pnl)
  • View NFT holdings (--nfts or ?include=nfts)
  • Track holdings by token or chain
  • Real-time price updates
  • Multi-chain aggregation
  • Wrapping/unwrapping the native token (ETH ↔ WETH and equivalents) is reflected in both balances right away
  • Filter by chain: bankr wallet portfolio --chain base,solana or GET /wallet/portfolio?chains=base,solana

Reference: references/portfolio.md

Market Research

  • Token prices and market data
  • Technical analysis (RSI, MACD, etc.)
  • Social sentiment analysis
  • Price charts
  • Trending tokens
  • Token comparisons
  • Holder snapshots — largest-first holder lists with USD value and supply percentage, plus a concentration summary. Supports a minimum-USD floor, which makes it usable for airdrop targeting ("holders of X with $50+")

Reference: references/market-research.md

Transfers

  • Send to 0x addresses, ENS-style names (.eth, .base.eth, .cb.id), or social handles
  • CLI direct (bankr wallet transfer) accepts 0x addresses + ENS only — social handles go through the AI agent
  • Multi-chain support
  • Bulk / multi-recipient sends via the agent — same-chain ERC-20 transfers to many recipients batch into a single on-chain transaction (one set of gas)
  • Flexible amount formats
  • Social handle resolution (Twitter, Farcaster, Telegram) via the agent

Reference: references/transfers.md

NFT Operations

  • Browse and search collections
  • View floor prices and listings
  • Purchase NFTs via OpenSea — including listings priced in an ERC-20 rather than the native token (e.g. USDG on Robinhood Chain). The token approval, the payment-currency balance check, and decimals-aware pricing are all handled for you
  • Accept offers on NFTs you own
  • View your NFT portfolio
  • Transfer NFTs
  • Mint from supported platforms

Reference: references/nft-operations.md

Polymarket Betting

  • Search prediction markets
  • Check odds
  • Place bets on outcomes
  • View positions — including any unspent collateral left in the Polymarket deposit wallet, which is recoverable with "sweep my polymarket deposit wallet"
  • Redeem winnings

Reference: references/polymarket.md

Leverage Trading

  • Hyperliquid (primary) — Perpetual futures on Hyperliquid L1 with on-chain order book. Crypto, stocks (TSLA, AAPL, NVDA via HIP-3), spot trading. Up to 50x leverage.
  • Avantis (secondary) — Perpetuals on Base for crypto, equities (NVDA, TSLA, AAPL, HOOD, and more), forex, and commodities. Equity, forex, and commodity pairs trade during their underlying market hours only.
  • Stop loss, take profit, and position management on both platforms
  • Funding Hyperliquid is a venue deposit/withdraw, not a bridge: a deposit only reaches Hyperliquid, a withdrawal only lands on Arbitrum. Name the venue ("deposit $500 to hyperliquid") rather than saying "bridge"; to move withdrawn funds onward, chain a cross-chain swap after the withdrawal
  • Hyperliquid charges a 1 USDC withdrawal fee, taken out of the requested amount — so your full withdrawable balance is requestable (you receive amount − 1), and withdrawals under $1 are refused rather than netting to zero

Reference: references/leverage-trading.md | references/hyperliquid.md

Tokenized Stock Trading

Trade tokenized stocks and ETFs — real-world equities issued as on-chain tokens — with a plain prompt, the same way you trade any other asset. Bankr resolves the best venue automatically when you name a ticker, or you can specify a chain/venue:

  • Robinhood Chain — spot tokens issued by Robinhood (200 stocks and ETFs: NVDA, AAPL, TSLA, SPY, QQQ, and more). Trades settle against USDG (Global Dollar); Bankr routes funding through it automatically. Requires one-time location verification.
  • Base (B20 tokenized equities) — Coinbase-issued equity tokens on Base: AAPL, AMZN, COIN, CRCL, GOOGL, INTC, META, MSFT, MSTR, NVDA, SNDK, SPCX, TSLA. Same location verification as Robinhood stocks.
  • Solana — spot tokens from third-party issuers such as xStocks (AAPLx, TSLAx). No verification required; trade like any other token.
  • Base (third-party issuers) — other issuers' spot stock tokens on Base. No verification required.
  • Leveraged (perps) — for long/short exposure without owning the token, use Avantis (Base) or Hyperliquid.

Location verification is a one-time step — log in to the Bankr console (verified automatically from your connection, renews on login, expires after 30 days). Not available in the US, UK, or sanctioned countries/regions.

Spot stocks work with swaps, transfers, limit orders, and DCA. Only issuer-tokenized stock trades (Robinhood Chain and Base B20) are location-gated — memecoins, bridging, and transfers work without verification. Tickers collide across chains (12 of the 13 B20 tickers also exist on Robinhood Chain), so name the chain when you mean a specific one.

Reference: references/tokenized-stocks.md

Token Deployment

  • EVM (Base or Robinhood Chain): Launch ERC20 tokens via Doppler on a Uniswap V4 pool with customizable metadata and social links. Supply is fixed and non-mintable once deployed; standard launches use 100 billion (the web launch flow can set a custom figure — the deploy API and CLI always use the standard supply). Ticker symbols are 1–20 characters. Every trade pays a 0.7% swap fee on the pool and 95% of it goes to you (0.665% of volume, claimable anytime); the hook adds the Bankr protocol fee + BNKR buyback and LP fee on top, for 1.75% all-in. The 0.285% LP fee is creator-side too — it compounds as locked liquidity in your own pool, strengthening your token's liquidity on every swap, so the creator side totals 0.95% of volume. The default chain depends on the surface: the CLI (bankr launch) and the web launch form preselect Base, while the AI agent and the deploy API fall back to Robinhood Chain when no chain is named. Name the chain explicitly (bankr launch --chain robinhood, "chain": "base", or "launch it on Base") whenever it matters. Legacy Clanker tokens remain claimable (claims auto-detect Doppler vs Clanker).
  • Stock-paired launches (EVM, optional): pair the new token's pool with a registry tokenized stock instead of WETH, so the token trades against equity exposure. Available on Base (B20 equities) and Robinhood Chain — pass pairedStockAddress to the deploy API, or ask the agent to pair the launch with a ticker. Only stocks Bankr can price are offered, since launch-curve math needs a USD price.
  • Base quote-token launches (optional): on Base, quote the pool in BNKR or ba3Pump (Bankr-bridged PUMP from Solana) instead of WETH — pass chain: "base" with the matching fixed pairedTokenAddress. User-key launches only; it can't be combined with pairedStockAddress, and omitting both gives you WETH. Volume in these pools stays eligible for the weekly developer rebate on the same terms as WETH-quoted launches.
  • Quote-only fees (EVM, optional): opt in at launch to collect all creator fees in the quote token (e.g. WETH) instead of a mix of the launched token and quote token — your total take is identical either way. Ask for "quote-only fees", pass quoteOnlyFees: true to the deploy API, or use bankr launch --quote-only-fees. Fixed at launch, like the fee schedule itself.
  • Degen mode (EVM, optional): start the token at a $2,500 market cap instead of the standard starting cap, for maximum early volatility. Explicit opt-in only — ask for "degen mode" by name, or pass degenMode: true to the deploy API. The figure is fixed; there is no custom starting market cap, a token named DEGEN does not opt you in, and the mode is unavailable on partner deploys.
  • Solana: Launch SPL tokens via Raydium LaunchLab with bonding curve and auto-migration to CPMM
  • Creator fee claiming on both chains
  • Fee Key NFTs for Solana (50% LP trading fees post-migration)
  • Optional fee recipient designation with 99.9%/0.1% split (Solana)
  • Both creator AND fee recipient can claim bonding curve fees (gas sponsored)
  • Optional vesting parameters (Solana)
  • Base launch limits: 50/day standard, 100/day Bankr Club (gas sponsored within limits)
  • Tokens deployed through Bankr are always visible in your portfolio, even without market price data

Reference: references/token-deployment.md

Selling your own creator-fee token: Bankr blocks selling a token you earn fees on through the ordinary swap/limit/stop/DCA/TWAP tools (buying and transferring are unaffected). Builders take profit gradually instead via Glidepath — an AI-paced gradual exit managed from the token page at bankr.bot. Glidepath is a web feature; it isn't a CLI/API action. Details: https://docs.bankr.bot/token-launching/glidepath

Automation

  • Limit orders
  • Stop loss orders
  • DCA (dollar-cost averaging)
  • TWAP (time-weighted average price)
  • Scheduled commands

Reference: references/automation.md

x402 Paid API Calls

The agent can discover, call, and deploy x402-protected API endpoints, automatically handling token payments on Base:

  • Discover endpoints in the Bankr registry or via web search
  • Inspect endpoint pricing, methods, and input/output schemas
  • Call endpoints with automatic payment signing in the endpoint's required token — USDC or any supported ERC-20 (max $10/request). From the CLI, --max-payment <usd> is your cap and is what gets sent: an endpoint's advertised price is display-only and can never raise it, and a call whose advertised price exceeds your cap fails closed rather than paying
  • Deploy new x402 endpoints directly through the agent (write handler code, set pricing, deploy)
  • Price your own endpoints in USDC or any supported ERC-20; revenue settles on-chain and is accounted in USD at settlement time
  • Works with any x402-compatible endpoint (Bankr-hosted or external)

Reference: references/x402-cloud.md

Web Browsing

The agent has a built-in headless browser for web interactions:

  • Open URLs and navigate web pages
  • Read page content, extract data, and take screenshots
  • Interact with page elements (click, type, scroll)
  • Persist browser sessions across multi-step workflows
  • Useful for research, data extraction, and interacting with web apps that don't have APIs

Reference: references/x402-cloud.md

File Storage

Every Bankr wallet has a persistent filesystem, shared across the CLI, web terminal, API, and every social surface the agent runs on.

  • Create, read, edit, search, move, rename, and delete files by asking the agent — a path (/research/notes.md) works anywhere a file ID does
  • bankr files ls|upload|download|cat|edit|write|search|mkdir|rm|storage from the CLI; /user/files/* over REST
  • Ask questions about a file without loading it — the agent runs a read-only jq/grep/awk-style pipeline in a sandbox and returns only the answer, so a 4 MB CSV never enters the conversation. Available on every wallet, no Club subscription needed
  • Run outputs (/runs) — a separate, conversation-scoped scratch namespace. Deliverables a sandboxed run writes to ./output/ persist there automatically and stay readable by path in later turns, and oversized tool results are stored there instead of crowding the conversation. Text only, ~14 days, 10 MB per file / 100 MB per conversation. Save anything that matters longer into your own filesystem
  • Quotas: 1 GB / 10 MB per file / 10 GB monthly downloads on the free tier; 10 GB / 50 MB / 100 GB on Bankr Club. Checked at write time, resolved live from your current Club status
  • Deletion is soft — files are recoverable via support for 24 hours, then permanently gone

Reference: references/files.md

Ask About Bankr

The agent can answer questions about Bankr itself — how features work, official domains and links, the official Telegram bot, and support channels — grounded in Bankr's own documentation. When it doesn't have a confident answer it abstains rather than guessing, so you won't get fabricated links or facts. Useful for onboarding questions and for verifying that a link or channel is genuinely official.

Extending the Agent with Skills

Skills work in two directions, and they're easy to confuse. This document is the first direction: the Bankr skill installed into your agent, so it can trade. The second is the reverse — installing skills into your Bankr agent to teach it new behaviours.

  • Install by pasting a link. A public GitHub folder URL (tree/<branch>/<path> containing a SKILL.md), a blob/…/SKILL.md URL, a bare repo when the skill sits at the root, or a direct .md file URL. Links from the bankr.bot Discover and partner pages work too — both the canonical share URL and the in-app routes the UI hands out resolve to the catalogue entry.
  • Reinstalling replaces. A skill installed under a name that already exists overwrites it — that's the update path.
  • Size limits: SKILL.md is capped at 1 MB, and each individual file under references/ at 100 KB. The agent loads a reference file's text inline on demand (up to 200 KB); binary files (images, PDFs) arrive as metadata plus a path it can hand to CLI tools.
  • Frontmatter is optional. A skill published in the frontmatter-less convention still installs — Bankr synthesizes the name from the first heading and the description from the opening prose, and keeps the full document as the body without truncating it.
  • Curated skills are suggested, not silently used. When a request has no native route but a curated skill covers it, the agent can name that skill even if you haven't installed it — so a capability gap reads as "install this" rather than a flat failure. Nothing is installed on your behalf.

bankr agent skills lists what the agent currently has.

Arbitrary Transactions

  • Submit raw EVM transactions with explicit calldata
  • Custom contract calls to any address
  • Execute pre-built calldata from other tools
  • Value transfers with data
  • Read an unknown contract's ABI and call it — struct (tuple) parameters are expanded into the parenthesized signature form the encoder accepts, so struct-taking functions like Uniswap V4 position mints encode on the first try instead of failing as tuple

Reference: references/arbitrary-transaction.md

Supported Chains

ChainNative TokenBest ForGas Cost
BaseETHMemecoins, general trading, B20 tokenized equitiesVery Low
PolygonPOLGaming, NFTs, frequent tradesVery Low
EthereumETHBlue chips, high liquidityHigh
SolanaSOLHigh-speed tradingMinimal
UnichainETHNewer L2 optionVery Low
World ChainETHUniswap V3/V4 swapsVery Low
ArbitrumETHDeFi, low-cost transactionsVery Low
BNB ChainBNBBSC ecosystem tradingLow
Robinhood ChainETHTokenized stocks & ETFs (USDG), memecoins, token launchesVery Low

Robinhood Chain is an EVM L2 (chainId 4663) whose native stablecoin is USDG (Global Dollar). It hosts 200 Robinhood-issued tokenized stocks and ETFs alongside memecoins, and supports Bankr token launches (Doppler). Tokenized-stock trades require location verification (see Tokenized Stock Trading); memecoin swaps, token launches, bridging, and transfers do not.

Base additionally hosts the B20 tokenized equities — Coinbase-issued, 8-decimal equity tokens whose redemption ratio to the underlying share is an on-chain multiplier that moves on corporate actions. Trading them is gated by the same location verification as Robinhood stocks; everything else on Base is not.

Safety & Access Control

Bankr has two independent layers of safety controls. A transaction must satisfy both to broadcast.

Wallet-Level Security (bankr.bot → Security)

User-controlled settings that apply to every surface — chat, agent, API, CLI. Configured at bankr.bot → Security; requires web authentication (an API key cannot change them).

ControlDefaultEffect
Pause all transactionsOffBlocks every outbound transaction until unpaused
Daily spending limit$500 / 24hRejects any tx that pushes rolling-24h USD outflow past the limit
Per-transaction limit$500Rejects any single tx priced above the limit
Price impact limitOn (15%)Rejects a swap whose estimated price impact exceeds the limit — guards against catastrophic fills in thin/low-liquidity pools. Adjustable 1–100% or turned off
Permitted recipientsOffRestricts transfers/swaps to an allowlist; new entries enter a configurable cooldown (default 24h)
Arbitrary contract callsOff (blocked)While off, blocks write_contract, raw /wallet/submit, and arbitrary transaction tools (named operations like swaps still work). Enabling is a timed opt-in — see below
Response channelsAll onPer-channel control over where the agent is allowed to reply (X, Farcaster, Telegram). A disabled channel is silently skipped; account management on Telegram (/start, wallet linking) stays live

If USD pricing is unavailable and a limit is enabled, the transaction is rejected (fail-closed) rather than waved through. Your own wallet addresses are always implicitly allowed as recipients.

Spend limits apply to every swap path, including cross-chain and Solana legs — the sell side is priced and checked before execution, and a successful swap counts toward your rolling 24h total.

The $500 defaults are real limits, not placeholders. A wallet that has never touched its daily/per-transaction settings is enforced at $500 on every path — including the ones that skip the agent preflight: x402 calls, raw /wallet/submit, and direct signer callers. If your integration signs large transactions, raise the limit explicitly rather than assuming an unconfigured wallet is uncapped.

One side effect worth knowing: the price-impact limit also fails closed on venues that can't report an impact figure. The clearest case is a brand-new Solana token still on its LaunchLab bonding curve — with the limit enabled, that fallback is refused rather than filled unguarded. Turn the limit off if you specifically need those fills.

Timed Windows (auto-restoring)

Rather than turning a protection off indefinitely, you can turn it off for a fixed window and let it restore itself. Available on the daily limit, per-transaction limit, price impact limit, arbitrary contract calls, and each response channel; the duration vocabulary is fixed at 10, 30, 60, or 1440 minutes.

  • A deadline only ever resolves toward the safer state. On a protection, the timer runs while it is off and restores it when the window lapses. On arbitrary contract calls the framing inverts — the timer runs while calls are enabled and revokes them at expiry — so in both cases a lapsed deadline locks down rather than opens up.
  • Resolution happens at read time, not on a sweeper, so an expired window is already in effect the moment the next transaction is evaluated. There is no gap to race.
  • Every explicit write replaces the timer. Toggling a setting or editing its amount clears any running window, so a stale off-window can't survive a change you thought was unrelated.
  • The window is server-computed from the duration you pick; you can't hand the API a deadline of your own.

These are web-authenticated settings like the rest of the Security screen — an API key can read the resolved state (/user, /user/security) but cannot change it. Treat "the limit is off" as a fact with an expiry attached: a long-running integration should re-read the resolved settings rather than caching what it saw at startup.

Protected-Token Swap Guard

Bankr blocks swaps of a small set of protected tokens where swapping is almost always a costly mistake — for example staked positions that should be unwound through their own redeem flow. The block is swap-only: the token stays visible in your portfolio, transferable, and usable with the relevant staking/redeem tools. When a swap is blocked, the agent returns a clear reason pointing you to the correct exit path. This guard applies across the swap/limit/stop/DCA/TWAP tools on the EVM swap paths.

Impostor-Token Screening

A common attack is to airdrop dust that reports a canonical currency's ticker — USDG, USDC, USDT, EURC, a chain's native or wrapped symbol — from an address that isn't the real one, hoping an agent copies the address straight out of a balance listing and trades into it. Bankr treats a negative security verdict on that shape as decisive: the token drops out of your portfolio listing rather than reaching the agent as a clean-looking symbol: "USDG" entry.

The screen is narrow on purpose. Genuine canonical tokens match on address and are unaffected, fresh launches with real liquidity keep the more forgiving classification they need, and a token you actually bought through Bankr is never hidden by a spam verdict — only unsolicited dust drops. When you mean a specific asset, naming the ticker (not an address pasted from a balance list) lets Bankr resolve it to the vetted contract.

BNKR Staking Is Withdraw-Only

BNKR staking is deprecated and no longer accepts new deposits. Asking the agent to stake BNKR gets an explanation rather than a transaction. Existing stakers keep the full exit path — initiate cooldown, redeem shares, withdraw — and can still view their staked position. Don't build flows that assume a deposit will go through.

API-Key Level Controls (bankr.bot/api-keys)

Per-key settings configured at bankr.bot/api-keys:

API Key Types: Bankr uses a single key format (bk_...) with capability flags (walletApiEnabled, agentApiEnabled, tokenLaunchApiEnabled, llmGatewayEnabled). You can optionally configure a separate LLM Gateway key via bankr config set llmKey or BANKR_LLM_KEY — useful when you want independent revocation or different permissions for agent vs LLM access.

Read-Only API Keys: New keys default to readOnly: true. This filters all write tools (swaps, transfers, staking, token launches, etc.) from agent sessions. The /wallet/swap, /wallet/sign, /wallet/submit, and /wallet/transfer write endpoints return 403 (the /wallet/swap-quote read endpoint still works). Use --read-write during login or toggle in the web settings to disable. Ideal for monitoring bots and research agents.

IP Whitelisting: Set allowedIps on your API key to restrict usage to specific IPs or CIDR ranges (e.g., 10.0.0.0/24). Requests from non-whitelisted IPs are rejected with 403 at the auth layer.


View the full SKILL.md on GitHub

Featured
CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
MCP-ready Email SendingMCP-ready Email Sending
MCP-ready Email Sending
Plug Mailtrap into your AI workflow and let it handle the email.
Connect Mailtrap MCP →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Capacitor - Shared memory for your team’s coding agents.
Capacitor - Shared memory for your team’s coding agents.
Make coding agent sessions - Searchable, Shareable, Vendor-neutral & Scored.
Try For Free →
CodeScene MCP ServerCodeScene MCP Server
CodeScene MCP Server
Your agent targets a perfect 10 Code Health score. Deterministic. Every commit.
Try For Free →
Give your AI the whole web as clean markdownGive your AI the whole web as clean markdown
Give your AI the whole web as clean markdown
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
belt - the only tool your agent needs
belt - the only tool your agent needs
belt cli automatically finds the best tools and skills for your agent. image, video, music, tts...
one prompt install →
inference shell
inference shell
create and run specialised agents in minutes
build now →
First SeenJun 3, 2026
View on GitHub

More from bankrbot/openclaw-skills

All 6 skills →
  • Botchan389
  • Clanker136
  • Erc 8004135
  • Neynar125
  • Onchainkit117

Recommended

juliusbrussee avatar
caveman

juliusbrussee/caveman

Ultra-compressed communication mode. Cuts output tokens 65% (measured) by speaking like caveman while keeping full technical accuracy. Supports intensity levels: lite, full (default), ultra, wenyan-lite, wenyan-full, wenyan-ultra. Use when user says "caveman mode", "talk like caveman", "use caveman", "less tokens", "be brief", or invokes /caveman. Also auto-triggers when token efficiency is requested.
443.2k
98.9k
mattpocock avatar
grill-me

mattpocock/skills

A relentless interview to sharpen a plan or design.
896.5k
221k
shadcn avatar
improve

shadcn/improve

Survey any codebase as a senior advisor and produce prioritized, self-contained implementation plans for OTHER models/agents to execute. Strictly read-only on source code — never implements, fixes, or refactors anything itself. Use when asked to audit a codebase, find improvement opportunities (bugs, security, performance, test coverage, tech debt, migrations, DX), suggest features or where to take the project next (roadmap, product direction), or generate handoff plans for another agent to implement.
29.7k
8.9k
obra avatar
systematic-debugging

obra/superpowers

Use when encountering any bug, test failure, or unexpected behavior, before proposing fixes
229.2k
273.5k
forrestchang avatar
karpathy-guidelines

forrestchang/andrej-karpathy-skills

Behavioral guidelines to reduce common LLM coding mistakes through explicit assumptions, simplicity, and verifiable success criteria.
17.9k
191.7k
vercel-labs avatar
find-skills

vercel-labs/skills

Helps users discover and install agent skills when they ask questions like "how do I do X", "find a skill for X", "is there a skill that can...", or express interest in extending capabilities. This skill should be used when the user is looking for functionality that might exist as an installable skill.
3M
28.2k