bankr-dev---api-basics by bankrbot/claude-plugins
npx skills add https://github.com/bankrbot/claude-plugins --skill 'Bankr Dev - API Basics'回答关于 Bankr API 的问题时:
references/job-response-schema.mdexamples/ 目录中的工作示例Bankr Agent API 通过简单的异步任务模式,实现了对加密货币交易、市场分析和预测市场的程序化访问。
所有 Bankr 操作都遵循提交-轮询-完成模式:
此模式用于处理可能需要 30 秒到 2 分钟以上的操作(如交易、复杂分析)。
https://api.bankr.bot
所有请求都需要 x-api-key 请求头:
x-api-key: bk_your_api_key_here
广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
API 密钥与特定用户的 Bankr 账户和钱包绑定。
POST /agent/prompt
Content-Type: application/json
{
"prompt": "Buy $50 of ETH on Base"
}
响应:
{
"success": true,
"jobId": "job_abc123",
"status": "pending"
}
代码示例:
async function submitPrompt(prompt: string): Promise<{ jobId: string }> {
const response = await fetch(`${API_URL}/agent/prompt`, {
method: "POST",
headers: {
"x-api-key": API_KEY,
"Content-Type": "application/json",
},
body: JSON.stringify({ prompt }),
});
const data = await response.json();
if (!data.success) throw new Error(data.error || "Failed to submit");
return { jobId: data.jobId };
}
GET /agent/job/{jobId}
响应:
{
"success": true,
"jobId": "job_abc123",
"status": "completed",
"prompt": "What is the price of ETH?",
"response": "Ethereum (ETH) is currently trading at $3,245.67...",
"transactions": [],
"statusUpdates": [
{ "message": "Fetching price data...", "timestamp": "2024-01-15T10:00:02Z" }
],
"createdAt": "2024-01-15T10:00:00Z",
"completedAt": "2024-01-15T10:00:05Z",
"processingTime": 5000
}
代码示例:
async function getJobStatus(jobId: string): Promise<JobStatusResponse> {
const response = await fetch(`${API_URL}/agent/job/${jobId}`, {
headers: { "x-api-key": API_KEY },
});
return response.json();
}
完整的 TypeScript 接口定义,请参见 references/job-response-schema.md。
POST /agent/job/{jobId}/cancel
Content-Type: application/json
响应:
{
"success": true,
"jobId": "job_abc123",
"status": "cancelled",
"prompt": "Buy $50 of ETH on Base",
"cancelledAt": "2024-01-15T10:00:15Z"
}
何时取消:
代码示例:
async function cancelJob(jobId: string): Promise<JobStatusResponse> {
const response = await fetch(`${API_URL}/agent/job/${jobId}/cancel`, {
method: "POST",
headers: {
"x-api-key": API_KEY,
"Content-Type": "application/json",
},
});
return response.json();
}
// 用法:如果任务耗时过长则取消
const timeout = setTimeout(async () => {
console.log("Job taking too long, cancelling...");
await cancelJob(jobId);
}, 60000); // 60 秒后取消
| 状态 | 含义 | 操作 |
|---|---|---|
pending | 任务已排队,尚未开始 | 继续轮询 |
processing | 任务正在运行 | 继续轮询,检查 statusUpdates |
completed | 任务成功完成 | 读取 response 和 transactions |
failed | 任务遇到错误 | 检查 error 字段 |
cancelled | 任务已被取消 | 无需进一步操作 |
Bankr API 接受自然语言提示,用于:
加密货币交易:
价格与市场数据:
Polymarket 预测市场:
DeFi 操作:
async function waitForCompletion(jobId: string): Promise<JobStatus> {
const POLL_INTERVAL = 2000; // 2 秒
const MAX_POLLS = 120; // 最长 4 分钟
for (let i = 0; i < MAX_POLLS; i++) {
const status = await getJobStatus(jobId);
// 终止状态
if (['completed', 'failed', 'cancelled'].includes(status.status)) {
return status;
}
// 记录进度更新
if (status.statusUpdates?.length) {
console.log('Progress:', status.statusUpdates.at(-1)?.message);
}
await new Promise(r => setTimeout(r, POLL_INTERVAL));
}
throw new Error('Job timed out');
}
任务完成时,响应包含:
response : Bankr 的文本回答transactions : 已执行交易的数组,包含链/代币详情richData : 图像或图表(base64 或 URL)statusUpdates : 执行过程中的进度消息processingTime : 持续时间(毫秒)完整的字段文档,请参见 references/job-response-schema.md。
处理以下错误情况:
BANKR_API_KEYstatus === 'failed' 并读取 error 字段// 1. 提交提示
const { jobId } = await submitPrompt("What is the price of ETH?");
// 2. 轮询直到完成
const result = await waitForCompletion(jobId);
// 3. 处理结果
if (result.status === 'completed') {
console.log(result.response);
// "Ethereum (ETH) is currently trading at $3,245.67..."
} else if (result.status === 'failed') {
console.error('Error:', result.error);
}
references/job-response-schema.md - 完整的 TypeScript 接口和字段文档examples/basic-client.ts - 简单的 API 客户端实现examples/polling-with-updates.ts - 带状态更新处理的轮询每周安装量
0
代码仓库
GitHub 星标数
70
首次出现
1970年1月1日
When answering questions about the Bankr API:
references/job-response-schema.mdexamples/ directoryThe Bankr Agent API enables programmatic access to crypto trading, market analysis, and prediction markets through a simple asynchronous job pattern.
All Bankr operations follow a submit-poll-complete pattern:
This pattern handles operations that may take 30 seconds to 2+ minutes (trades, complex analysis).
https://api.bankr.bot
All requests require the x-api-key header:
x-api-key: bk_your_api_key_here
The API key is tied to a specific user's Bankr account and wallet.
POST /agent/prompt
Content-Type: application/json
{
"prompt": "Buy $50 of ETH on Base"
}
Response:
{
"success": true,
"jobId": "job_abc123",
"status": "pending"
}
Code example:
async function submitPrompt(prompt: string): Promise<{ jobId: string }> {
const response = await fetch(`${API_URL}/agent/prompt`, {
method: "POST",
headers: {
"x-api-key": API_KEY,
"Content-Type": "application/json",
},
body: JSON.stringify({ prompt }),
});
const data = await response.json();
if (!data.success) throw new Error(data.error || "Failed to submit");
return { jobId: data.jobId };
}
GET /agent/job/{jobId}
Response:
{
"success": true,
"jobId": "job_abc123",
"status": "completed",
"prompt": "What is the price of ETH?",
"response": "Ethereum (ETH) is currently trading at $3,245.67...",
"transactions": [],
"statusUpdates": [
{ "message": "Fetching price data...", "timestamp": "2024-01-15T10:00:02Z" }
],
"createdAt": "2024-01-15T10:00:00Z",
"completedAt": "2024-01-15T10:00:05Z",
"processingTime": 5000
}
Code example:
async function getJobStatus(jobId: string): Promise<JobStatusResponse> {
const response = await fetch(`${API_URL}/agent/job/${jobId}`, {
headers: { "x-api-key": API_KEY },
});
return response.json();
}
For complete TypeScript interfaces, see references/job-response-schema.md.
POST /agent/job/{jobId}/cancel
Content-Type: application/json
Response:
{
"success": true,
"jobId": "job_abc123",
"status": "cancelled",
"prompt": "Buy $50 of ETH on Base",
"cancelledAt": "2024-01-15T10:00:15Z"
}
When to cancel:
Code example:
async function cancelJob(jobId: string): Promise<JobStatusResponse> {
const response = await fetch(`${API_URL}/agent/job/${jobId}/cancel`, {
method: "POST",
headers: {
"x-api-key": API_KEY,
"Content-Type": "application/json",
},
});
return response.json();
}
// Usage: Cancel if job takes too long
const timeout = setTimeout(async () => {
console.log("Job taking too long, cancelling...");
await cancelJob(jobId);
}, 60000); // Cancel after 60 seconds
| Status | Meaning | Action |
|---|---|---|
pending | Job queued, not started | Keep polling |
processing | Job running | Keep polling, check statusUpdates |
completed | Job finished successfully | Read response and transactions |
failed | Job encountered error | Check error field |
cancelled | Job was cancelled |
The Bankr API accepts natural language prompts for:
Crypto Trading:
Price & Market Data:
Polymarket Predictions:
DeFi Operations:
async function waitForCompletion(jobId: string): Promise<JobStatus> {
const POLL_INTERVAL = 2000; // 2 seconds
const MAX_POLLS = 120; // 4 minutes max
for (let i = 0; i < MAX_POLLS; i++) {
const status = await getJobStatus(jobId);
// Terminal states
if (['completed', 'failed', 'cancelled'].includes(status.status)) {
return status;
}
// Log progress updates
if (status.statusUpdates?.length) {
console.log('Progress:', status.statusUpdates.at(-1)?.message);
}
await new Promise(r => setTimeout(r, POLL_INTERVAL));
}
throw new Error('Job timed out');
}
When a job completes, the response includes:
response : The text answer from Bankrtransactions : Array of executed transactions with chain/token detailsrichData : Images or charts (base64 or URL)statusUpdates : Progress messages during executionprocessingTime : Duration in millisecondsFor complete field documentation, see references/job-response-schema.md.
Handle these error cases:
BANKR_API_KEY before making requestsstatus === 'failed' and read error field// 1. Submit prompt
const { jobId } = await submitPrompt("What is the price of ETH?");
// 2. Poll until complete
const result = await waitForCompletion(jobId);
// 3. Handle result
if (result.status === 'completed') {
console.log(result.response);
// "Ethereum (ETH) is currently trading at $3,245.67..."
} else if (result.status === 'failed') {
console.error('Error:', result.error);
}
references/job-response-schema.md - Complete TypeScript interfaces and field documentationexamples/basic-client.ts - Simple API client implementationexamples/polling-with-updates.ts - Polling with status update handlingWeekly Installs
0
Repository
GitHub Stars
70
First Seen
Jan 1, 1970
钱包策略生成器 | 为EVM和Solana钱包创建安全策略规则
3,700 周安装
| No further action |