{
  "schemaVersion": "1.0",
  "item": {
    "slug": "bankr-2",
    "name": "Bankr",
    "source": "tencent",
    "type": "skill",
    "category": "AI 智能",
    "sourceUrl": "https://clawhub.ai/oguhfailed/bankr-2",
    "canonicalUrl": "https://clawhub.ai/oguhfailed/bankr-2",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/bankr-2",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=bankr-2",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md",
      "references/api-workflow.md",
      "references/arbitrary-transaction.md",
      "references/automation.md",
      "references/error-handling.md",
      "references/leverage-trading.md"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-23T16:43:11.935Z",
      "expiresAt": "2026-04-30T16:43:11.935Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
        "contentDisposition": "attachment; filename=\"4claw-imageboard-1.0.1.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/bankr-2"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/bankr-2",
    "agentPageUrl": "https://openagent3.xyz/skills/bankr-2/agent",
    "manifestUrl": "https://openagent3.xyz/skills/bankr-2/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/bankr-2/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "Bankr",
        "body": "Execute crypto trading and DeFi operations using natural language. Two integration options:\n\nBankr CLI (recommended) — Install @bankr/cli for a batteries-included terminal experience\nREST API — Call https://api.bankr.bot directly from any language or tool\n\nBoth use the same API key and the same async job workflow under the hood."
      },
      {
        "title": "Getting an API Key",
        "body": "Before using either option, you need a Bankr API key. Two ways to get one:\n\nOption A: Headless email login (recommended for agents)\n\nTwo-step flow — send OTP, then verify and complete setup. See \"First-Time Setup\" below for the full guided flow with user preference prompts.\n\n# Step 1 — send OTP to email\nbankr login email user@example.com\n\n# Step 2 — verify OTP and generate API key (options based on user preferences)\nbankr login email user@example.com --code 123456 --accept-terms --key-name \"My Agent\" --read-write\n\nThis creates a wallet, accepts terms, and generates an API key — no browser needed. Before running step 2, ask the user whether they need read-only or read-write access, LLM gateway, and their preferred key name.\n\nOption B: Bankr Terminal\n\nVisit bankr.bot/api\nSign up / Sign in — Enter your email and the one-time passcode (OTP) sent to it\nGenerate an API key — Create a key with Agent API access enabled (the key starts with bk_...)\n\nBoth options automatically provision EVM wallets (Base, Ethereum, Polygon, Unichain) and a Solana wallet — no manual wallet setup needed."
      },
      {
        "title": "Install",
        "body": "bun install -g @bankr/cli\n\nOr with npm:\n\nnpm install -g @bankr/cli"
      },
      {
        "title": "First-Time Setup",
        "body": "Headless email login (recommended for agents)\n\nWhen the user asks to log in with an email, walk them through this flow:\n\nStep 1 — Send verification code\n\nbankr login email <user-email>\n\nStep 2 — Ask the user for the OTP code they received via email.\n\nStep 3 — Before completing login, ask the user about their preferences:\n\nAccept Terms of Service — Present the Terms of Service link and confirm the user agrees. Required for new users — do not pass --accept-terms unless the user has explicitly confirmed.\nRead-only or read-write API key?\n\nRead-only (default) — portfolio, balances, prices, research only\nRead-write (--read-write) — enables swaps, transfers, orders, token launches, leverage, Polymarket bets\n\n\nEnable LLM gateway access? (--llm) — multi-model API at llm.bankr.bot (currently limited to beta testers). Skip if user doesn't need it.\nKey name? (--key-name) — a display name for the API key (e.g. \"My Agent\", \"Trading Bot\")\n\nStep 4 — Construct and run the step 2 command with the user's choices:\n\n# Example with all options\nbankr login email <user-email> --code <otp> --accept-terms --key-name \"My Agent\" --read-write --llm\n\n# Example read-only, no LLM\nbankr login email <user-email> --code <otp> --accept-terms --key-name \"Research Bot\"\n\nLogin options reference\n\nOptionDescription--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--read-writeEnable write operations: swaps, transfers, orders, token launches, leverage, Polymarket bets. Without this flag, the key is read-only (portfolio, balances, prices, research only)--llmEnable LLM gateway access (multi-model API at llm.bankr.bot). Currently limited to beta testers\n\nAny option not provided on the command line will be prompted interactively by the CLI, so you can mix headless and interactive as needed.\n\nLogin with existing API key\n\nIf the user already has an API key:\n\nbankr login --api-key bk_YOUR_KEY_HERE\n\nIf they need to create one at the Bankr Terminal:\n\nRun bankr login --url — prints the terminal URL\nPresent the URL to the user, ask them to generate a bk_... key\nRun bankr login --api-key bk_THE_KEY\n\nSeparate LLM Gateway Key (Optional)\n\nIf 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.\n\nVerify Setup\n\nbankr whoami\nbankr prompt \"What is my balance?\""
      },
      {
        "title": "Option 2: REST API (Direct)",
        "body": "No CLI installation required — call the API directly with curl, fetch, or any HTTP client."
      },
      {
        "title": "Authentication",
        "body": "All requests require an X-API-Key header:\n\ncurl -X POST \"https://api.bankr.bot/agent/prompt\" \\\n  -H \"X-API-Key: bk_YOUR_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"prompt\": \"What is my ETH balance?\"}'"
      },
      {
        "title": "Quick Example: Submit → Poll → Complete",
        "body": "# 1. Submit a prompt — returns a job ID\nJOB=$(curl -s -X POST \"https://api.bankr.bot/agent/prompt\" \\\n  -H \"X-API-Key: $BANKR_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"prompt\": \"What is my ETH balance?\"}')\nJOB_ID=$(echo \"$JOB\" | jq -r '.jobId')\n\n# 2. Poll until terminal status\nwhile true; do\n  RESULT=$(curl -s \"https://api.bankr.bot/agent/job/$JOB_ID\" \\\n    -H \"X-API-Key: $BANKR_API_KEY\")\n  STATUS=$(echo \"$RESULT\" | jq -r '.status')\n  [ \"$STATUS\" = \"completed\" ] || [ \"$STATUS\" = \"failed\" ] || [ \"$STATUS\" = \"cancelled\" ] && break\n  sleep 2\ndone\n\n# 3. Read the response\necho \"$RESULT\" | jq -r '.response'"
      },
      {
        "title": "Conversation Threads",
        "body": "Every prompt response includes a threadId. Pass it back to continue the conversation:\n\n# Start — the response includes a threadId\ncurl -X POST \"https://api.bankr.bot/agent/prompt\" \\\n  -H \"X-API-Key: $BANKR_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"prompt\": \"What is the price of ETH?\"}'\n# → {\"jobId\": \"job_abc\", \"threadId\": \"thr_XYZ\", ...}\n\n# Continue — pass threadId to maintain context\ncurl -X POST \"https://api.bankr.bot/agent/prompt\" \\\n  -H \"X-API-Key: $BANKR_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"prompt\": \"And what about SOL?\", \"threadId\": \"thr_XYZ\"}'\n\nOmit threadId to start a new conversation. CLI equivalent: bankr prompt --continue (reuses last thread) or bankr prompt --thread <id>."
      },
      {
        "title": "API Endpoints Summary",
        "body": "EndpointMethodDescription/agent/promptPOSTSubmit a prompt (async, returns job ID)/agent/job/{jobId}GETCheck job status and results/agent/job/{jobId}/cancelPOSTCancel a running job/agent/balancesGETWallet balances across chains (sync, optional ?chains= filter)/agent/signPOSTSign messages/transactions (sync)/agent/submitPOSTSubmit raw transactions (sync)\n\nFor full API details (request/response schemas, job states, rich data, polling strategy), see:\n\nReference: references/api-workflow.md | references/sign-submit-api.md"
      },
      {
        "title": "Core Commands",
        "body": "CommandDescriptionbankr 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 directlybankr login --api-key <key> --llm-key <key>Login with separate LLM gateway keybankr login --urlPrint Bankr Terminal URL for API key generationbankr logoutClear stored credentialsbankr whoamiShow current authentication infobankr prompt <text>Send a prompt to the Bankr AI agentbankr prompt --continue <text>Continue the most recent conversation threadbankr prompt --thread <id> <text>Continue a specific conversation threadbankr status <jobId>Check the status of a running jobbankr cancel <jobId>Cancel a running jobbankr balancesShow wallet token balances across all chainsbankr balances --chain <chains>Filter by chain(s): base, polygon, mainnet, unichain, solana (comma-separated)bankr balances --jsonOutput raw JSON balancesbankr skillsShow all Bankr AI agent skills with examples"
      },
      {
        "title": "Configuration Commands",
        "body": "CommandDescriptionbankr config get [key]Get config value(s)bankr config set <key> <value>Set a config valuebankr --config <path> <command>Use a custom config file path\n\nValid config keys: apiKey, apiUrl, llmKey, llmUrl\n\nDefault config location: ~/.bankr/config.json. Override with --config or BANKR_CONFIG env var."
      },
      {
        "title": "Environment Variables",
        "body": "VariableDescriptionBANKR_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)\n\nEnvironment variables override config file values. Config file values override defaults."
      },
      {
        "title": "LLM Gateway Commands",
        "body": "CommandDescriptionbankr llm modelsList available LLM modelsbankr llm setup openclaw [--install]Generate or install OpenClaw configbankr llm setup opencode [--install]Generate or install OpenCode configbankr llm setup claudeShow Claude Code environment setupbankr llm setup cursorShow Cursor IDE setup instructionsbankr llm claude [args...]Launch Claude Code via the Bankr LLM Gateway"
      },
      {
        "title": "Simple Query",
        "body": "For straightforward requests that complete quickly:\n\nbankr prompt \"What is my ETH balance?\"\nbankr prompt \"What's the price of Bitcoin?\"\n\nThe CLI handles the full submit-poll-complete workflow automatically. You can also use the shorthand — any unrecognized command is treated as a prompt:\n\nbankr What is the price of ETH?"
      },
      {
        "title": "Interactive Prompt",
        "body": "For prompts containing $ or special characters that the shell would expand:\n\n# Interactive mode — no shell expansion issues\nbankr prompt\n# Then type: Buy $50 of ETH on Base\n\n# Or pipe input\necho 'Buy $50 of ETH on Base' | bankr prompt"
      },
      {
        "title": "Conversation Threads",
        "body": "Continue a multi-turn conversation with the agent:\n\n# First prompt — starts a new thread automatically\nbankr prompt \"What is the price of ETH?\"\n# → Thread: thr_ABC123\n\n# Continue the conversation (agent remembers the ETH context)\nbankr prompt --continue \"And what about BTC?\"\nbankr prompt -c \"Compare them\"\n\n# Resume any thread by ID\nbankr prompt --thread thr_ABC123 \"Show me ETH chart\"\n\nThread IDs are automatically saved to config after each prompt. The --continue / -c flag reuses the last thread."
      },
      {
        "title": "Manual Job Control",
        "body": "For advanced use or long-running operations:\n\n# Submit and get job ID\nbankr prompt \"Buy $100 of ETH\"\n# → Job submitted: job_abc123\n\n# Check status of a specific job\nbankr status job_abc123\n\n# Cancel if needed\nbankr cancel job_abc123"
      },
      {
        "title": "LLM Gateway",
        "body": "The Bankr LLM Gateway is a unified API for Claude, Gemini, GPT, and other models — multi-provider access, cost tracking, automatic failover, and SDK compatibility through a single endpoint.\n\nBase URL: https://llm.bankr.bot | Dashboard: bankr.bot/llm | API Keys: bankr.bot/api"
      },
      {
        "title": "Key Concepts",
        "body": "Uses your llmKey if configured, otherwise falls back to your API key\nLLM credits (USD) and trading wallet (crypto) are completely separate balances — having crypto does NOT give you LLM credits\nNew accounts start with $0 LLM credits — top up at bankr.bot/llm before making any LLM calls, or you will get a 402 error\nCheck credits: bankr llm credits | Check trading wallet: bankr balances\nIn OpenClaw config, prefix model IDs with bankr/ (e.g. bankr/claude-sonnet-4.6). In direct API calls, use bare IDs (e.g. claude-sonnet-4.6)"
      },
      {
        "title": "Quick Commands",
        "body": "bankr llm models                           # List available models\nbankr llm credits                          # Check credit balance\nbankr llm setup openclaw --install         # Install Bankr provider into OpenClaw\nbankr llm setup claude                     # Print Claude Code env vars\nbankr llm claude                           # Launch Claude Code through gateway\n\nFor full details — setup paths, model list, provider config, SDK examples, key management, and troubleshooting — see:\n\nReference: references/llm-gateway.md"
      },
      {
        "title": "Trading Operations",
        "body": "Token Swaps: Buy/sell/swap tokens across chains\nCross-Chain: Bridge tokens between chains\nLimit Orders: Execute at target prices\nStop Loss: Automatic sell protection\nDCA: Dollar-cost averaging strategies\nTWAP: Time-weighted average pricing\n\nReference: references/token-trading.md"
      },
      {
        "title": "Portfolio Management",
        "body": "Check balances across all chains (bankr balances or GET /agent/balances)\nView USD valuations\nTrack holdings by token or chain\nReal-time price updates\nMulti-chain aggregation\nFilter by chain: bankr balances --chain base,solana or GET /agent/balances?chains=base,solana\n\nReference: references/portfolio.md"
      },
      {
        "title": "Market Research",
        "body": "Token prices and market data\nTechnical analysis (RSI, MACD, etc.)\nSocial sentiment analysis\nPrice charts\nTrending tokens\nToken comparisons\n\nReference: references/market-research.md"
      },
      {
        "title": "Transfers",
        "body": "Send to addresses, ENS, or social handles\nMulti-chain support\nFlexible amount formats\nSocial handle resolution (Twitter, Farcaster, Telegram)\n\nReference: references/transfers.md"
      },
      {
        "title": "NFT Operations",
        "body": "Browse and search collections\nView floor prices and listings\nPurchase NFTs via OpenSea\nView your NFT portfolio\nTransfer NFTs\nMint from supported platforms\n\nReference: references/nft-operations.md"
      },
      {
        "title": "Polymarket Betting",
        "body": "Search prediction markets\nCheck odds\nPlace bets on outcomes\nView positions\nRedeem winnings\n\nReference: references/polymarket.md"
      },
      {
        "title": "Leverage Trading",
        "body": "Long/short positions (up to 50x crypto, 100x forex/commodities)\nCrypto, forex, and commodities\nStop loss and take profit\nPosition management via Avantis on Base\n\nReference: references/leverage-trading.md"
      },
      {
        "title": "Token Deployment",
        "body": "EVM (Base): Deploy ERC20 tokens via Clanker with customizable metadata and social links\nSolana: Launch SPL tokens via Raydium LaunchLab with bonding curve and auto-migration to CPMM\nCreator fee claiming on both chains\nFee Key NFTs for Solana (50% LP trading fees post-migration)\nOptional fee recipient designation with 99.9%/0.1% split (Solana)\nBoth creator AND fee recipient can claim bonding curve fees (gas sponsored)\nOptional vesting parameters (Solana)\nRate limits: 1/day standard, 10/day Bankr Club (gas sponsored within limits)\n\nReference: references/token-deployment.md"
      },
      {
        "title": "Automation",
        "body": "Limit orders\nStop loss orders\nDCA (dollar-cost averaging)\nTWAP (time-weighted average price)\nScheduled commands\n\nReference: references/automation.md"
      },
      {
        "title": "Arbitrary Transactions",
        "body": "Submit raw EVM transactions with explicit calldata\nCustom contract calls to any address\nExecute pre-built calldata from other tools\nValue transfers with data\n\nReference: references/arbitrary-transaction.md"
      },
      {
        "title": "Supported Chains",
        "body": "ChainNative TokenBest ForGas CostBaseETHMemecoins, general tradingVery LowPolygonMATICGaming, NFTs, frequent tradesVery LowEthereumETHBlue chips, high liquidityHighSolanaSOLHigh-speed tradingMinimalUnichainETHNewer L2 optionVery Low"
      },
      {
        "title": "Safety & Access Control",
        "body": "Dedicated Agent Wallet: When building autonomous agents, create a separate Bankr account rather than using your personal wallet. This isolates agent funds — if a key is compromised, only the agent wallet is exposed. Fund it with limited amounts and replenish as needed.\n\nAPI Key Types: Bankr uses a single key format (bk_...) with capability flags (agentApiEnabled, 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.\n\nRead-Only API Keys: Keys with readOnly: true filter all write tools (swaps, transfers, staking, token launches, etc.) from agent sessions. The /agent/sign and /agent/submit endpoints return 403. Ideal for monitoring bots and research agents.\n\nIP Whitelisting: Set allowedIps on your API key to restrict usage to specific IPs. Requests from non-whitelisted IPs are rejected with 403 at the auth layer.\n\nRate Limits: 100 messages/day (standard), 1,000/day (Bankr Club), or custom per key. Resets 24h from first message (rolling window). LLM Gateway uses a credit-based system.\n\nKey safety rules:\n\nStore keys in environment variables (BANKR_API_KEY, BANKR_LLM_KEY), never in source code\nAdd ~/.bankr/ and .env to .gitignore — the CLI stores credentials in ~/.bankr/config.json\nTest with small amounts on low-cost chains (Base, Polygon) before production use\nUse waitForConfirmation: true with /agent/submit — transactions execute immediately with no confirmation prompt\nRotate keys periodically and revoke immediately if compromised at bankr.bot/api\n\nReference: references/safety.md"
      },
      {
        "title": "Check Before Trading",
        "body": "# Check balance\nbankr prompt \"What is my ETH balance on Base?\"\n\n# Check price\nbankr prompt \"What's the current price of PEPE?\"\n\n# Then trade\nbankr prompt \"Buy $20 of PEPE on Base\""
      },
      {
        "title": "Portfolio Review",
        "body": "# Direct balance check (no AI agent, instant response)\nbankr balances\nbankr balances --chain base\nbankr balances --chain base,solana\nbankr balances --json\n\n# Via AI agent (natural language, richer context)\nbankr prompt \"Show my complete portfolio\"\n\n# Chain-specific\nbankr prompt \"What tokens do I have on Base?\"\n\n# Token-specific\nbankr prompt \"Show my ETH across all chains\""
      },
      {
        "title": "Set Up Automation",
        "body": "# DCA strategy\nbankr prompt \"DCA $100 into ETH every week\"\n\n# Stop loss protection\nbankr prompt \"Set stop loss for my ETH at $2,500\"\n\n# Limit order\nbankr prompt \"Buy ETH if price drops to $3,000\""
      },
      {
        "title": "Market Research",
        "body": "# Price and analysis\nbankr prompt \"Do technical analysis on ETH\"\n\n# Trending tokens\nbankr prompt \"What tokens are trending on Base?\"\n\n# Compare tokens\nbankr prompt \"Compare ETH vs SOL\""
      },
      {
        "title": "API Workflow",
        "body": "Bankr uses an asynchronous job-based API:\n\nSubmit — Send prompt (with optional threadId), get job ID and thread ID\nPoll — Check status every 2 seconds\nComplete — Process results when done\nContinue — Reuse threadId for multi-turn conversations\n\nThe bankr prompt command handles this automatically. When using the REST API directly, implement the poll loop yourself (see Option 2 above or the reference below). For manual job control via CLI, use bankr status <jobId> and bankr cancel <jobId>.\n\nFor details on the API structure, job states, polling strategy, and error handling, see:\n\nReference: references/api-workflow.md"
      },
      {
        "title": "Synchronous Endpoints",
        "body": "For direct signing and transaction submission, Bankr also provides synchronous endpoints:\n\nPOST /agent/sign - Sign messages, typed data, or transactions without broadcasting\nPOST /agent/submit - Submit raw transactions directly to the blockchain\n\nThese endpoints return immediately (no polling required) and are ideal for:\n\nAuthentication flows (sign messages)\nGasless approvals (sign EIP-712 permits)\nPre-built transactions (submit raw calldata)\n\nReference: references/sign-submit-api.md"
      },
      {
        "title": "Error Handling",
        "body": "Common issues and fixes:\n\nAuthentication errors → Run bankr login or check bankr whoami (CLI), or verify your X-API-Key header (REST API)\nInsufficient balance → Add funds or reduce amount\nToken not found → Verify symbol and chain\nTransaction reverted → Check parameters and balances\nRate limiting → Wait and retry\n\nFor comprehensive error troubleshooting, setup instructions, and debugging steps, see:\n\nReference: references/error-handling.md"
      },
      {
        "title": "Security",
        "body": "Never share your API key or LLM key\nUse a dedicated agent wallet with limited funds for autonomous agents\nUse read-only API keys for monitoring and research-only agents\nSet IP whitelisting for server-side agents with known IPs\nVerify addresses before large transfers\nUse stop losses for leverage trading\nStore keys in environment variables, not source code — add ~/.bankr/ to .gitignore\n\nSee references/safety.md for comprehensive safety guidance."
      },
      {
        "title": "Trading",
        "body": "Check balance before trades\nSpecify chain for lesser-known tokens\nConsider gas costs (use Base/Polygon for small amounts)\nStart small, scale up after testing\nUse limit orders for better prices"
      },
      {
        "title": "Automation",
        "body": "Test automation with small amounts first\nReview active orders regularly\nSet realistic price targets\nAlways use stop loss for leverage\nMonitor execution and adjust as needed"
      },
      {
        "title": "For New Users",
        "body": "Start with balance checks and price queries\nTest with $5-10 trades first\nUse Base for lower fees\nEnable trading confirmations initially\nLearn one feature at a time"
      },
      {
        "title": "For Experienced Users",
        "body": "Leverage automation for strategies\nUse multiple chains for diversification\nCombine DCA with stop losses\nExplore advanced features (leverage, Polymarket)\nMonitor gas costs across chains"
      },
      {
        "title": "Trading",
        "body": "\"Buy $50 of ETH on Base\"\n\"Swap 0.1 ETH for USDC\"\n\"Sell 50% of my PEPE\"\n\"Bridge 100 USDC from Polygon to Base\""
      },
      {
        "title": "Portfolio",
        "body": "bankr balances (direct, no AI processing)\nbankr balances --chain base (single chain)\n\"Show my portfolio\"\n\"What's my ETH balance?\"\n\"Total portfolio value\"\n\"Holdings on Base\""
      },
      {
        "title": "Market Research",
        "body": "\"What's the price of Bitcoin?\"\n\"Analyze ETH price\"\n\"Trending tokens on Base\"\n\"Compare UNI vs SUSHI\""
      },
      {
        "title": "Transfers",
        "body": "\"Send 0.1 ETH to vitalik.eth\"\n\"Transfer $20 USDC to @friend\"\n\"Send 50 USDC to 0x123...\""
      },
      {
        "title": "NFTs",
        "body": "\"Show Bored Ape floor price\"\n\"Buy cheapest Pudgy Penguin\"\n\"Show my NFTs\""
      },
      {
        "title": "Polymarket",
        "body": "\"What are the odds Trump wins?\"\n\"Bet $10 on Yes for [market]\"\n\"Show my Polymarket positions\""
      },
      {
        "title": "Leverage",
        "body": "\"Open 5x long on ETH with $100\"\n\"Short BTC 10x with stop loss at $45k\"\n\"Show my Avantis positions\""
      },
      {
        "title": "Automation",
        "body": "\"DCA $100 into ETH weekly\"\n\"Set limit order to buy ETH at $3,000\"\n\"Stop loss for all holdings at -20%\""
      },
      {
        "title": "Token Deployment",
        "body": "Solana (LaunchLab):\n\n\"Launch a token called MOON on Solana\"\n\"Launch a token called FROG and give fees to @0xDeployer\"\n\"Deploy SpaceRocket with symbol ROCK\"\n\"Launch BRAIN and route fees to 7xKXtg...\"\n\"How much fees can I claim for MOON?\"\n\"Claim my fees for MOON\" (works for creator or fee recipient)\n\"Show my Fee Key NFTs\"\n\"Claim my fee NFT for ROCKET\" (post-migration)\n\"Transfer fees for MOON to 7xKXtg...\"\n\nEVM (Clanker):\n\n\"Deploy a token called BankrFan with symbol BFAN on Base\"\n\"Claim fees for my token MTK\""
      },
      {
        "title": "Arbitrary Transactions",
        "body": "\"Submit this transaction: {to: 0x..., data: 0x..., value: 0, chainId: 8453}\"\n\"Execute this calldata on Base: {...}\"\n\"Send raw transaction with this JSON: {...}\""
      },
      {
        "title": "Sign API (Synchronous)",
        "body": "Direct message signing without AI processing:\n\n# Sign a plain text message\ncurl -X POST \"https://api.bankr.bot/agent/sign\" \\\n  -H \"X-API-Key: $API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"signatureType\": \"personal_sign\", \"message\": \"Hello, Bankr!\"}'\n\n# Sign EIP-712 typed data (permits, orders)\ncurl -X POST \"https://api.bankr.bot/agent/sign\" \\\n  -H \"X-API-Key: $API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"signatureType\": \"eth_signTypedData_v4\", \"typedData\": {...}}'\n\n# Sign a transaction without broadcasting\ncurl -X POST \"https://api.bankr.bot/agent/sign\" \\\n  -H \"X-API-Key: $API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"signatureType\": \"eth_signTransaction\", \"transaction\": {\"to\": \"0x...\", \"chainId\": 8453}}'"
      },
      {
        "title": "Submit API (Synchronous)",
        "body": "Direct transaction submission without AI processing:\n\n# Submit a raw transaction\ncurl -X POST \"https://api.bankr.bot/agent/submit\" \\\n  -H \"X-API-Key: $API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"transaction\": {\"to\": \"0x...\", \"chainId\": 8453, \"value\": \"1000000000000000000\"},\n    \"waitForConfirmation\": true\n  }'\n\nReference: references/sign-submit-api.md"
      },
      {
        "title": "Resources",
        "body": "Documentation: https://docs.bankr.bot\nLLM Gateway Docs: https://docs.bankr.bot/llm-gateway/overview\nAPI Key Management: https://bankr.bot/api\nTerminal: https://bankr.bot/terminal\nCLI Package: https://www.npmjs.com/package/@bankr/cli\nTwitter: @bankr_bot"
      },
      {
        "title": "CLI Not Found",
        "body": "# Verify installation\nwhich bankr\n\n# Reinstall if needed\nbun install -g @bankr/cli"
      },
      {
        "title": "Authentication Issues",
        "body": "CLI:\n\n# Check current auth\nbankr whoami\n\n# Re-authenticate\nbankr login\n\n# Check LLM key specifically\nbankr config get llmKey\n\nREST API:\n\n# Test your API key\ncurl -s \"https://api.bankr.bot/_health\" -H \"X-API-Key: $BANKR_API_KEY\""
      },
      {
        "title": "API Errors",
        "body": "See references/error-handling.md for comprehensive troubleshooting."
      },
      {
        "title": "Getting Help",
        "body": "Check error message in CLI output or API response\nRun bankr whoami to verify auth (CLI) or test with a curl to /_health (REST API)\nConsult relevant reference document\nTest with simple queries first (bankr prompt \"What is my balance?\" or POST /agent/prompt)\n\nPro Tip: The most common issue is not specifying the chain for tokens. When in doubt, always include \"on Base\" or \"on Ethereum\" in your prompt.\n\nSecurity: Keep your API key private. Never commit your config file to version control. Only trade amounts you can afford to lose.\n\nQuick Win: Start by checking your portfolio (bankr prompt \"Show my portfolio\") to see what's possible, then try a small $5-10 trade on Base to get familiar with the flow."
      }
    ],
    "body": "Bankr\n\nExecute crypto trading and DeFi operations using natural language. Two integration options:\n\nBankr CLI (recommended) — Install @bankr/cli for a batteries-included terminal experience\nREST API — Call https://api.bankr.bot directly from any language or tool\n\nBoth use the same API key and the same async job workflow under the hood.\n\nGetting an API Key\n\nBefore using either option, you need a Bankr API key. Two ways to get one:\n\nOption A: Headless email login (recommended for agents)\n\nTwo-step flow — send OTP, then verify and complete setup. See \"First-Time Setup\" below for the full guided flow with user preference prompts.\n\n# Step 1 — send OTP to email\nbankr login email user@example.com\n\n# Step 2 — verify OTP and generate API key (options based on user preferences)\nbankr login email user@example.com --code 123456 --accept-terms --key-name \"My Agent\" --read-write\n\n\nThis creates a wallet, accepts terms, and generates an API key — no browser needed. Before running step 2, ask the user whether they need read-only or read-write access, LLM gateway, and their preferred key name.\n\nOption B: Bankr Terminal\n\nVisit bankr.bot/api\nSign up / Sign in — Enter your email and the one-time passcode (OTP) sent to it\nGenerate an API key — Create a key with Agent API access enabled (the key starts with bk_...)\n\nBoth options automatically provision EVM wallets (Base, Ethereum, Polygon, Unichain) and a Solana wallet — no manual wallet setup needed.\n\nOption 1: Bankr CLI (Recommended)\nInstall\nbun install -g @bankr/cli\n\n\nOr with npm:\n\nnpm install -g @bankr/cli\n\nFirst-Time Setup\nHeadless email login (recommended for agents)\n\nWhen the user asks to log in with an email, walk them through this flow:\n\nStep 1 — Send verification code\n\nbankr login email <user-email>\n\n\nStep 2 — Ask the user for the OTP code they received via email.\n\nStep 3 — Before completing login, ask the user about their preferences:\n\nAccept Terms of Service — Present the Terms of Service link and confirm the user agrees. Required for new users — do not pass --accept-terms unless the user has explicitly confirmed.\nRead-only or read-write API key?\nRead-only (default) — portfolio, balances, prices, research only\nRead-write (--read-write) — enables swaps, transfers, orders, token launches, leverage, Polymarket bets\nEnable LLM gateway access? (--llm) — multi-model API at llm.bankr.bot (currently limited to beta testers). Skip if user doesn't need it.\nKey name? (--key-name) — a display name for the API key (e.g. \"My Agent\", \"Trading Bot\")\n\nStep 4 — Construct and run the step 2 command with the user's choices:\n\n# Example with all options\nbankr login email <user-email> --code <otp> --accept-terms --key-name \"My Agent\" --read-write --llm\n\n# Example read-only, no LLM\nbankr login email <user-email> --code <otp> --accept-terms --key-name \"Research Bot\"\n\nLogin options reference\nOption\tDescription\n--code <otp>\tOTP code received via email (step 2)\n--accept-terms\tAccept Terms of Service without prompting (required for new users)\n--key-name <name>\tDisplay name for the API key (e.g. \"My Agent\"). Prompted if omitted\n--read-write\tEnable write operations: swaps, transfers, orders, token launches, leverage, Polymarket bets. Without this flag, the key is read-only (portfolio, balances, prices, research only)\n--llm\tEnable LLM gateway access (multi-model API at llm.bankr.bot). Currently limited to beta testers\n\nAny option not provided on the command line will be prompted interactively by the CLI, so you can mix headless and interactive as needed.\n\nLogin with existing API key\n\nIf the user already has an API key:\n\nbankr login --api-key bk_YOUR_KEY_HERE\n\n\nIf they need to create one at the Bankr Terminal:\n\nRun bankr login --url — prints the terminal URL\nPresent the URL to the user, ask them to generate a bk_... key\nRun bankr login --api-key bk_THE_KEY\nSeparate LLM Gateway Key (Optional)\n\nIf 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.\n\nVerify Setup\nbankr whoami\nbankr prompt \"What is my balance?\"\n\nOption 2: REST API (Direct)\n\nNo CLI installation required — call the API directly with curl, fetch, or any HTTP client.\n\nAuthentication\n\nAll requests require an X-API-Key header:\n\ncurl -X POST \"https://api.bankr.bot/agent/prompt\" \\\n  -H \"X-API-Key: bk_YOUR_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"prompt\": \"What is my ETH balance?\"}'\n\nQuick Example: Submit → Poll → Complete\n# 1. Submit a prompt — returns a job ID\nJOB=$(curl -s -X POST \"https://api.bankr.bot/agent/prompt\" \\\n  -H \"X-API-Key: $BANKR_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"prompt\": \"What is my ETH balance?\"}')\nJOB_ID=$(echo \"$JOB\" | jq -r '.jobId')\n\n# 2. Poll until terminal status\nwhile true; do\n  RESULT=$(curl -s \"https://api.bankr.bot/agent/job/$JOB_ID\" \\\n    -H \"X-API-Key: $BANKR_API_KEY\")\n  STATUS=$(echo \"$RESULT\" | jq -r '.status')\n  [ \"$STATUS\" = \"completed\" ] || [ \"$STATUS\" = \"failed\" ] || [ \"$STATUS\" = \"cancelled\" ] && break\n  sleep 2\ndone\n\n# 3. Read the response\necho \"$RESULT\" | jq -r '.response'\n\nConversation Threads\n\nEvery prompt response includes a threadId. Pass it back to continue the conversation:\n\n# Start — the response includes a threadId\ncurl -X POST \"https://api.bankr.bot/agent/prompt\" \\\n  -H \"X-API-Key: $BANKR_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"prompt\": \"What is the price of ETH?\"}'\n# → {\"jobId\": \"job_abc\", \"threadId\": \"thr_XYZ\", ...}\n\n# Continue — pass threadId to maintain context\ncurl -X POST \"https://api.bankr.bot/agent/prompt\" \\\n  -H \"X-API-Key: $BANKR_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"prompt\": \"And what about SOL?\", \"threadId\": \"thr_XYZ\"}'\n\n\nOmit threadId to start a new conversation. CLI equivalent: bankr prompt --continue (reuses last thread) or bankr prompt --thread <id>.\n\nAPI Endpoints Summary\nEndpoint\tMethod\tDescription\n/agent/prompt\tPOST\tSubmit a prompt (async, returns job ID)\n/agent/job/{jobId}\tGET\tCheck job status and results\n/agent/job/{jobId}/cancel\tPOST\tCancel a running job\n/agent/balances\tGET\tWallet balances across chains (sync, optional ?chains= filter)\n/agent/sign\tPOST\tSign messages/transactions (sync)\n/agent/submit\tPOST\tSubmit raw transactions (sync)\n\nFor full API details (request/response schemas, job states, rich data, polling strategy), see:\n\nReference: references/api-workflow.md | references/sign-submit-api.md\n\nCLI Command Reference\nCore Commands\nCommand\tDescription\nbankr login\tAuthenticate with the Bankr API (interactive menu)\nbankr login email <address>\tSend OTP to email (headless step 1)\nbankr login email <address> --code <otp> [options]\tVerify OTP and complete setup (headless step 2)\nbankr login --api-key <key>\tLogin with an existing API key directly\nbankr login --api-key <key> --llm-key <key>\tLogin with separate LLM gateway key\nbankr login --url\tPrint Bankr Terminal URL for API key generation\nbankr logout\tClear stored credentials\nbankr whoami\tShow current authentication info\nbankr prompt <text>\tSend a prompt to the Bankr AI agent\nbankr prompt --continue <text>\tContinue the most recent conversation thread\nbankr prompt --thread <id> <text>\tContinue a specific conversation thread\nbankr status <jobId>\tCheck the status of a running job\nbankr cancel <jobId>\tCancel a running job\nbankr balances\tShow wallet token balances across all chains\nbankr balances --chain <chains>\tFilter by chain(s): base, polygon, mainnet, unichain, solana (comma-separated)\nbankr balances --json\tOutput raw JSON balances\nbankr skills\tShow all Bankr AI agent skills with examples\nConfiguration Commands\nCommand\tDescription\nbankr config get [key]\tGet config value(s)\nbankr config set <key> <value>\tSet a config value\nbankr --config <path> <command>\tUse a custom config file path\n\nValid config keys: apiKey, apiUrl, llmKey, llmUrl\n\nDefault config location: ~/.bankr/config.json. Override with --config or BANKR_CONFIG env var.\n\nEnvironment Variables\nVariable\tDescription\nBANKR_API_KEY\tAPI key (overrides stored key)\nBANKR_API_URL\tAPI URL (default: https://api.bankr.bot)\nBANKR_LLM_KEY\tLLM gateway key (falls back to BANKR_API_KEY if not set)\nBANKR_LLM_URL\tLLM gateway URL (default: https://llm.bankr.bot)\n\nEnvironment variables override config file values. Config file values override defaults.\n\nLLM Gateway Commands\nCommand\tDescription\nbankr llm models\tList available LLM models\nbankr llm setup openclaw [--install]\tGenerate or install OpenClaw config\nbankr llm setup opencode [--install]\tGenerate or install OpenCode config\nbankr llm setup claude\tShow Claude Code environment setup\nbankr llm setup cursor\tShow Cursor IDE setup instructions\nbankr llm claude [args...]\tLaunch Claude Code via the Bankr LLM Gateway\nCore Usage\nSimple Query\n\nFor straightforward requests that complete quickly:\n\nbankr prompt \"What is my ETH balance?\"\nbankr prompt \"What's the price of Bitcoin?\"\n\n\nThe CLI handles the full submit-poll-complete workflow automatically. You can also use the shorthand — any unrecognized command is treated as a prompt:\n\nbankr What is the price of ETH?\n\nInteractive Prompt\n\nFor prompts containing $ or special characters that the shell would expand:\n\n# Interactive mode — no shell expansion issues\nbankr prompt\n# Then type: Buy $50 of ETH on Base\n\n# Or pipe input\necho 'Buy $50 of ETH on Base' | bankr prompt\n\nConversation Threads\n\nContinue a multi-turn conversation with the agent:\n\n# First prompt — starts a new thread automatically\nbankr prompt \"What is the price of ETH?\"\n# → Thread: thr_ABC123\n\n# Continue the conversation (agent remembers the ETH context)\nbankr prompt --continue \"And what about BTC?\"\nbankr prompt -c \"Compare them\"\n\n# Resume any thread by ID\nbankr prompt --thread thr_ABC123 \"Show me ETH chart\"\n\n\nThread IDs are automatically saved to config after each prompt. The --continue / -c flag reuses the last thread.\n\nManual Job Control\n\nFor advanced use or long-running operations:\n\n# Submit and get job ID\nbankr prompt \"Buy $100 of ETH\"\n# → Job submitted: job_abc123\n\n# Check status of a specific job\nbankr status job_abc123\n\n# Cancel if needed\nbankr cancel job_abc123\n\nLLM Gateway\n\nThe Bankr LLM Gateway is a unified API for Claude, Gemini, GPT, and other models — multi-provider access, cost tracking, automatic failover, and SDK compatibility through a single endpoint.\n\nBase URL: https://llm.bankr.bot | Dashboard: bankr.bot/llm | API Keys: bankr.bot/api\n\nKey Concepts\nUses your llmKey if configured, otherwise falls back to your API key\nLLM credits (USD) and trading wallet (crypto) are completely separate balances — having crypto does NOT give you LLM credits\nNew accounts start with $0 LLM credits — top up at bankr.bot/llm before making any LLM calls, or you will get a 402 error\nCheck credits: bankr llm credits | Check trading wallet: bankr balances\nIn OpenClaw config, prefix model IDs with bankr/ (e.g. bankr/claude-sonnet-4.6). In direct API calls, use bare IDs (e.g. claude-sonnet-4.6)\nQuick Commands\nbankr llm models                           # List available models\nbankr llm credits                          # Check credit balance\nbankr llm setup openclaw --install         # Install Bankr provider into OpenClaw\nbankr llm setup claude                     # Print Claude Code env vars\nbankr llm claude                           # Launch Claude Code through gateway\n\n\nFor full details — setup paths, model list, provider config, SDK examples, key management, and troubleshooting — see:\n\nReference: references/llm-gateway.md\n\nCapabilities Overview\nTrading Operations\nToken Swaps: Buy/sell/swap tokens across chains\nCross-Chain: Bridge tokens between chains\nLimit Orders: Execute at target prices\nStop Loss: Automatic sell protection\nDCA: Dollar-cost averaging strategies\nTWAP: Time-weighted average pricing\n\nReference: references/token-trading.md\n\nPortfolio Management\nCheck balances across all chains (bankr balances or GET /agent/balances)\nView USD valuations\nTrack holdings by token or chain\nReal-time price updates\nMulti-chain aggregation\nFilter by chain: bankr balances --chain base,solana or GET /agent/balances?chains=base,solana\n\nReference: references/portfolio.md\n\nMarket Research\nToken prices and market data\nTechnical analysis (RSI, MACD, etc.)\nSocial sentiment analysis\nPrice charts\nTrending tokens\nToken comparisons\n\nReference: references/market-research.md\n\nTransfers\nSend to addresses, ENS, or social handles\nMulti-chain support\nFlexible amount formats\nSocial handle resolution (Twitter, Farcaster, Telegram)\n\nReference: references/transfers.md\n\nNFT Operations\nBrowse and search collections\nView floor prices and listings\nPurchase NFTs via OpenSea\nView your NFT portfolio\nTransfer NFTs\nMint from supported platforms\n\nReference: references/nft-operations.md\n\nPolymarket Betting\nSearch prediction markets\nCheck odds\nPlace bets on outcomes\nView positions\nRedeem winnings\n\nReference: references/polymarket.md\n\nLeverage Trading\nLong/short positions (up to 50x crypto, 100x forex/commodities)\nCrypto, forex, and commodities\nStop loss and take profit\nPosition management via Avantis on Base\n\nReference: references/leverage-trading.md\n\nToken Deployment\nEVM (Base): Deploy ERC20 tokens via Clanker with customizable metadata and social links\nSolana: Launch SPL tokens via Raydium LaunchLab with bonding curve and auto-migration to CPMM\nCreator fee claiming on both chains\nFee Key NFTs for Solana (50% LP trading fees post-migration)\nOptional fee recipient designation with 99.9%/0.1% split (Solana)\nBoth creator AND fee recipient can claim bonding curve fees (gas sponsored)\nOptional vesting parameters (Solana)\nRate limits: 1/day standard, 10/day Bankr Club (gas sponsored within limits)\n\nReference: references/token-deployment.md\n\nAutomation\nLimit orders\nStop loss orders\nDCA (dollar-cost averaging)\nTWAP (time-weighted average price)\nScheduled commands\n\nReference: references/automation.md\n\nArbitrary Transactions\nSubmit raw EVM transactions with explicit calldata\nCustom contract calls to any address\nExecute pre-built calldata from other tools\nValue transfers with data\n\nReference: references/arbitrary-transaction.md\n\nSupported Chains\nChain\tNative Token\tBest For\tGas Cost\nBase\tETH\tMemecoins, general trading\tVery Low\nPolygon\tMATIC\tGaming, NFTs, frequent trades\tVery Low\nEthereum\tETH\tBlue chips, high liquidity\tHigh\nSolana\tSOL\tHigh-speed trading\tMinimal\nUnichain\tETH\tNewer L2 option\tVery Low\nSafety & Access Control\n\nDedicated Agent Wallet: When building autonomous agents, create a separate Bankr account rather than using your personal wallet. This isolates agent funds — if a key is compromised, only the agent wallet is exposed. Fund it with limited amounts and replenish as needed.\n\nAPI Key Types: Bankr uses a single key format (bk_...) with capability flags (agentApiEnabled, 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.\n\nRead-Only API Keys: Keys with readOnly: true filter all write tools (swaps, transfers, staking, token launches, etc.) from agent sessions. The /agent/sign and /agent/submit endpoints return 403. Ideal for monitoring bots and research agents.\n\nIP Whitelisting: Set allowedIps on your API key to restrict usage to specific IPs. Requests from non-whitelisted IPs are rejected with 403 at the auth layer.\n\nRate Limits: 100 messages/day (standard), 1,000/day (Bankr Club), or custom per key. Resets 24h from first message (rolling window). LLM Gateway uses a credit-based system.\n\nKey safety rules:\n\nStore keys in environment variables (BANKR_API_KEY, BANKR_LLM_KEY), never in source code\nAdd ~/.bankr/ and .env to .gitignore — the CLI stores credentials in ~/.bankr/config.json\nTest with small amounts on low-cost chains (Base, Polygon) before production use\nUse waitForConfirmation: true with /agent/submit — transactions execute immediately with no confirmation prompt\nRotate keys periodically and revoke immediately if compromised at bankr.bot/api\n\nReference: references/safety.md\n\nCommon Patterns\nCheck Before Trading\n# Check balance\nbankr prompt \"What is my ETH balance on Base?\"\n\n# Check price\nbankr prompt \"What's the current price of PEPE?\"\n\n# Then trade\nbankr prompt \"Buy $20 of PEPE on Base\"\n\nPortfolio Review\n# Direct balance check (no AI agent, instant response)\nbankr balances\nbankr balances --chain base\nbankr balances --chain base,solana\nbankr balances --json\n\n# Via AI agent (natural language, richer context)\nbankr prompt \"Show my complete portfolio\"\n\n# Chain-specific\nbankr prompt \"What tokens do I have on Base?\"\n\n# Token-specific\nbankr prompt \"Show my ETH across all chains\"\n\nSet Up Automation\n# DCA strategy\nbankr prompt \"DCA $100 into ETH every week\"\n\n# Stop loss protection\nbankr prompt \"Set stop loss for my ETH at $2,500\"\n\n# Limit order\nbankr prompt \"Buy ETH if price drops to $3,000\"\n\nMarket Research\n# Price and analysis\nbankr prompt \"Do technical analysis on ETH\"\n\n# Trending tokens\nbankr prompt \"What tokens are trending on Base?\"\n\n# Compare tokens\nbankr prompt \"Compare ETH vs SOL\"\n\nAPI Workflow\n\nBankr uses an asynchronous job-based API:\n\nSubmit — Send prompt (with optional threadId), get job ID and thread ID\nPoll — Check status every 2 seconds\nComplete — Process results when done\nContinue — Reuse threadId for multi-turn conversations\n\nThe bankr prompt command handles this automatically. When using the REST API directly, implement the poll loop yourself (see Option 2 above or the reference below). For manual job control via CLI, use bankr status <jobId> and bankr cancel <jobId>.\n\nFor details on the API structure, job states, polling strategy, and error handling, see:\n\nReference: references/api-workflow.md\n\nSynchronous Endpoints\n\nFor direct signing and transaction submission, Bankr also provides synchronous endpoints:\n\nPOST /agent/sign - Sign messages, typed data, or transactions without broadcasting\nPOST /agent/submit - Submit raw transactions directly to the blockchain\n\nThese endpoints return immediately (no polling required) and are ideal for:\n\nAuthentication flows (sign messages)\nGasless approvals (sign EIP-712 permits)\nPre-built transactions (submit raw calldata)\n\nReference: references/sign-submit-api.md\n\nError Handling\n\nCommon issues and fixes:\n\nAuthentication errors → Run bankr login or check bankr whoami (CLI), or verify your X-API-Key header (REST API)\nInsufficient balance → Add funds or reduce amount\nToken not found → Verify symbol and chain\nTransaction reverted → Check parameters and balances\nRate limiting → Wait and retry\n\nFor comprehensive error troubleshooting, setup instructions, and debugging steps, see:\n\nReference: references/error-handling.md\n\nBest Practices\nSecurity\nNever share your API key or LLM key\nUse a dedicated agent wallet with limited funds for autonomous agents\nUse read-only API keys for monitoring and research-only agents\nSet IP whitelisting for server-side agents with known IPs\nVerify addresses before large transfers\nUse stop losses for leverage trading\nStore keys in environment variables, not source code — add ~/.bankr/ to .gitignore\n\nSee references/safety.md for comprehensive safety guidance.\n\nTrading\nCheck balance before trades\nSpecify chain for lesser-known tokens\nConsider gas costs (use Base/Polygon for small amounts)\nStart small, scale up after testing\nUse limit orders for better prices\nAutomation\nTest automation with small amounts first\nReview active orders regularly\nSet realistic price targets\nAlways use stop loss for leverage\nMonitor execution and adjust as needed\nTips for Success\nFor New Users\nStart with balance checks and price queries\nTest with $5-10 trades first\nUse Base for lower fees\nEnable trading confirmations initially\nLearn one feature at a time\nFor Experienced Users\nLeverage automation for strategies\nUse multiple chains for diversification\nCombine DCA with stop losses\nExplore advanced features (leverage, Polymarket)\nMonitor gas costs across chains\nPrompt Examples by Category\nTrading\n\"Buy $50 of ETH on Base\"\n\"Swap 0.1 ETH for USDC\"\n\"Sell 50% of my PEPE\"\n\"Bridge 100 USDC from Polygon to Base\"\nPortfolio\nbankr balances (direct, no AI processing)\nbankr balances --chain base (single chain)\n\"Show my portfolio\"\n\"What's my ETH balance?\"\n\"Total portfolio value\"\n\"Holdings on Base\"\nMarket Research\n\"What's the price of Bitcoin?\"\n\"Analyze ETH price\"\n\"Trending tokens on Base\"\n\"Compare UNI vs SUSHI\"\nTransfers\n\"Send 0.1 ETH to vitalik.eth\"\n\"Transfer $20 USDC to @friend\"\n\"Send 50 USDC to 0x123...\"\nNFTs\n\"Show Bored Ape floor price\"\n\"Buy cheapest Pudgy Penguin\"\n\"Show my NFTs\"\nPolymarket\n\"What are the odds Trump wins?\"\n\"Bet $10 on Yes for [market]\"\n\"Show my Polymarket positions\"\nLeverage\n\"Open 5x long on ETH with $100\"\n\"Short BTC 10x with stop loss at $45k\"\n\"Show my Avantis positions\"\nAutomation\n\"DCA $100 into ETH weekly\"\n\"Set limit order to buy ETH at $3,000\"\n\"Stop loss for all holdings at -20%\"\nToken Deployment\n\nSolana (LaunchLab):\n\n\"Launch a token called MOON on Solana\"\n\"Launch a token called FROG and give fees to @0xDeployer\"\n\"Deploy SpaceRocket with symbol ROCK\"\n\"Launch BRAIN and route fees to 7xKXtg...\"\n\"How much fees can I claim for MOON?\"\n\"Claim my fees for MOON\" (works for creator or fee recipient)\n\"Show my Fee Key NFTs\"\n\"Claim my fee NFT for ROCKET\" (post-migration)\n\"Transfer fees for MOON to 7xKXtg...\"\n\nEVM (Clanker):\n\n\"Deploy a token called BankrFan with symbol BFAN on Base\"\n\"Claim fees for my token MTK\"\nArbitrary Transactions\n\"Submit this transaction: {to: 0x..., data: 0x..., value: 0, chainId: 8453}\"\n\"Execute this calldata on Base: {...}\"\n\"Send raw transaction with this JSON: {...}\"\nSign API (Synchronous)\n\nDirect message signing without AI processing:\n\n# Sign a plain text message\ncurl -X POST \"https://api.bankr.bot/agent/sign\" \\\n  -H \"X-API-Key: $API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"signatureType\": \"personal_sign\", \"message\": \"Hello, Bankr!\"}'\n\n# Sign EIP-712 typed data (permits, orders)\ncurl -X POST \"https://api.bankr.bot/agent/sign\" \\\n  -H \"X-API-Key: $API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"signatureType\": \"eth_signTypedData_v4\", \"typedData\": {...}}'\n\n# Sign a transaction without broadcasting\ncurl -X POST \"https://api.bankr.bot/agent/sign\" \\\n  -H \"X-API-Key: $API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"signatureType\": \"eth_signTransaction\", \"transaction\": {\"to\": \"0x...\", \"chainId\": 8453}}'\n\nSubmit API (Synchronous)\n\nDirect transaction submission without AI processing:\n\n# Submit a raw transaction\ncurl -X POST \"https://api.bankr.bot/agent/submit\" \\\n  -H \"X-API-Key: $API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"transaction\": {\"to\": \"0x...\", \"chainId\": 8453, \"value\": \"1000000000000000000\"},\n    \"waitForConfirmation\": true\n  }'\n\n\nReference: references/sign-submit-api.md\n\nResources\nDocumentation: https://docs.bankr.bot\nLLM Gateway Docs: https://docs.bankr.bot/llm-gateway/overview\nAPI Key Management: https://bankr.bot/api\nTerminal: https://bankr.bot/terminal\nCLI Package: https://www.npmjs.com/package/@bankr/cli\nTwitter: @bankr_bot\nTroubleshooting\nCLI Not Found\n# Verify installation\nwhich bankr\n\n# Reinstall if needed\nbun install -g @bankr/cli\n\nAuthentication Issues\n\nCLI:\n\n# Check current auth\nbankr whoami\n\n# Re-authenticate\nbankr login\n\n# Check LLM key specifically\nbankr config get llmKey\n\n\nREST API:\n\n# Test your API key\ncurl -s \"https://api.bankr.bot/_health\" -H \"X-API-Key: $BANKR_API_KEY\"\n\nAPI Errors\n\nSee references/error-handling.md for comprehensive troubleshooting.\n\nGetting Help\nCheck error message in CLI output or API response\nRun bankr whoami to verify auth (CLI) or test with a curl to /_health (REST API)\nConsult relevant reference document\nTest with simple queries first (bankr prompt \"What is my balance?\" or POST /agent/prompt)\n\nPro Tip: The most common issue is not specifying the chain for tokens. When in doubt, always include \"on Base\" or \"on Ethereum\" in your prompt.\n\nSecurity: Keep your API key private. Never commit your config file to version control. Only trade amounts you can afford to lose.\n\nQuick Win: Start by checking your portfolio (bankr prompt \"Show my portfolio\") to see what's possible, then try a small $5-10 trade on Base to get familiar with the flow."
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/oguhfailed/bankr-2",
    "publisherUrl": "https://clawhub.ai/oguhfailed/bankr-2",
    "owner": "oguhfailed",
    "version": "0.1.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/bankr-2",
    "downloadUrl": "https://openagent3.xyz/downloads/bankr-2",
    "agentUrl": "https://openagent3.xyz/skills/bankr-2/agent",
    "manifestUrl": "https://openagent3.xyz/skills/bankr-2/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/bankr-2/agent.md"
  }
}