AgentSkillsCN

Bankr x402 SDK - Wallet Operations

当用户询问“设置 SDK”“初始化 BankrClient”“配置钱包”“设置支付钱包”“将钱包连接至 Bankr”“获取钱包地址”“设置环境变量”“配置私钥”“双钱包配置”“分离支付与交易钱包”或需要在 SDK 客户端初始化、双钱包配置、钱包地址生成、环境搭建,以及 BankrClient 选项等方面获得帮助时,应使用此技能。

SKILL.md
--- frontmatter
name: Bankr x402 SDK - Wallet Operations
description: This skill should be used when the user asks to "set up the SDK", "initialize BankrClient", "configure wallet", "set up payment wallet", "connect wallet to Bankr", "get wallet address", "set up environment variables", "configure private key", "two wallet setup", "separate payment and trading wallets", or needs help with SDK client initialization, two-wallet configuration, wallet address derivation, environment setup, or BankrClient options.
version: 1.1.0

SDK Wallet Operations

Initialize and configure the BankrClient with proper wallet setup.

Two-Wallet System

WalletPurposeRequired
Payment (privateKey)Signs x402 micropayments ($0.01/request)Yes
Context (walletAddress)Receives swapped tokens, NFTsNo (defaults to payment wallet)

Basic Setup

typescript
import { BankrClient } from "@bankr/sdk";

const client = new BankrClient({
  privateKey: process.env.BANKR_PRIVATE_KEY as `0x${string}`,
});

const result = await client.promptAndWait({
  prompt: "What are my balances?",
});

Separate Wallets (Recommended)

For enhanced security, use different wallets for payments and receiving:

typescript
const client = new BankrClient({
  // Hot wallet with minimal USDC for payments
  privateKey: process.env.PAYMENT_WALLET_PK as `0x${string}`,
  // Cold/trading wallet receives tokens
  walletAddress: process.env.RECEIVING_WALLET,
});

Configuration Options

OptionTypeRequiredDescription
privateKey0x${string}YesPayment wallet private key
walletAddressstringNoOverride receiving wallet
baseUrlstringNoAPI endpoint (default: production)
timeoutnumberNoRequest timeout ms (default: 600000)

SDK Methods

MethodDescription
promptAndWait()Submit prompt and wait for result
prompt()Submit prompt, return immediately
pollJob()Poll until job completes
getJobStatus()Check job status once
cancelJob()Cancel pending/processing job
getWalletAddress()Get context wallet address

Per-Request Override

typescript
// Override wallet for a single request
const result = await client.promptAndWait({
  prompt: "Swap 0.1 ETH to USDC",
  walletAddress: "0xDifferentWallet...",
});

Environment Setup

bash
# Required
BANKR_PRIVATE_KEY=0x...your_payment_wallet_key...

# Optional
BANKR_WALLET_ADDRESS=0x...your_receiving_wallet...

Security Best Practices

  1. Never commit private keys - Use environment variables
  2. Minimize payment wallet balance - Keep only $1-2 USDC
  3. Use separate wallets - Payment (hot) vs receiving (cold)
  4. Rotate keys periodically - If payment wallet compromised

Related Skills

  • sdk-capabilities: Full list of supported operations
  • sdk-job-management: Async job handling and polling