Help us improve
Share bugs, ideas, or general feedback.
From bankr-agent-dev
Provides directory structures and starter templates for Bankr API projects: bots with polling loops, web services with REST endpoints, dashboards, and CLI tools.
npx claudepluginhub bankrbot/claude-plugins --plugin bankr-agent-devHow this skill is triggered — by the user, by Claude, or both
Slash command
/bankr-agent-dev:bankr-project-templatesThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Directory structures and templates for Bankr API projects.
Provides directory structures and TypeScript templates for Bankr x402 SDK projects including bots, web services, dashboards, and CLI tools with code examples.
Provides reusable TypeScript client code, JobStatus types, transaction interfaces for swaps, approvals, ERC20/NFT transfers, and common files like package.json/tsconfig for Bankr API integrations.
Share bugs, ideas, or general feedback.
Directory structures and templates for Bankr API projects.
| Template | Use Case | Key Features |
|---|---|---|
| bot | Automated tasks | Polling loop, scheduler, status streaming |
| web-service | HTTP APIs | REST endpoints, webhooks, async handling |
| dashboard | Web UIs | Frontend + backend, real-time updates |
| cli | Command-line tools | Subcommands, interactive prompts |
For automated trading bots, price monitors, alert systems, and scheduled tasks.
{project-name}/
├── package.json
├── tsconfig.json
├── .env.example
├── .gitignore
├── README.md
├── src/
│ ├── index.ts # Main entry point with scheduler
│ ├── bankr-client.ts # Bankr API client (from bankr-client-patterns skill)
│ ├── types.ts # TypeScript interfaces
│ └── config.ts # Configuration loading
└── scripts/
└── run.sh # Convenience script
.env based configurationimport { execute } from "./bankr-client";
const INTERVAL = 60000; // 1 minute
async function runBot() {
console.log("Starting Bankr bot...");
while (true) {
try {
const result = await execute(
"Check ETH price",
(msg) => console.log("Status:", msg)
);
if (result.status === "completed") {
console.log("Result:", result.response);
// Add your logic here
}
} catch (error) {
console.error("Error:", error);
}
await new Promise(r => setTimeout(r, INTERVAL));
}
}
runBot();
For HTTP APIs that wrap or extend Bankr functionality.
{project-name}/
├── package.json
├── tsconfig.json
├── .env.example
├── .gitignore
├── README.md
├── src/
│ ├── index.ts # Server entry point
│ ├── server.ts # Express/Fastify server setup
│ ├── routes/
│ │ ├── health.ts # Health check endpoint
│ │ └── bankr.ts # Bankr proxy/extension routes
│ ├── bankr-client.ts # Bankr API client
│ ├── types.ts # TypeScript interfaces
│ └── config.ts # Configuration loading
└── scripts/
└── run.sh
{
"dependencies": {
"express": "^4.18.0"
}
}
Or for Fastify:
{
"dependencies": {
"fastify": "^4.25.0"
}
}
For web UIs with portfolio tracking, market analysis, or monitoring.
{project-name}/
├── package.json
├── tsconfig.json
├── .env.example
├── .gitignore
├── README.md
├── server/
│ ├── index.ts # Backend server
│ ├── bankr-client.ts # Bankr API client
│ ├── routes/
│ │ └── api.ts # API routes for frontend
│ └── types.ts
├── public/
│ ├── index.html # Main HTML page
│ ├── styles.css # Basic styles
│ └── app.js # Frontend JavaScript
└── scripts/
└── run.sh
async function checkPrice() {
const response = await fetch('/api/price/ETH');
const data = await response.json();
document.getElementById('eth-price').textContent = data.price;
}
setInterval(checkPrice, 30000);
checkPrice();
For command-line tools with subcommands and interactive features.
{project-name}/
├── package.json
├── tsconfig.json
├── .env.example
├── .gitignore
├── README.md
├── src/
│ ├── index.ts # CLI entry with commander.js
│ ├── commands/
│ │ ├── trade.ts # Trading commands
│ │ ├── price.ts # Price query commands
│ │ └── status.ts # Job status commands
│ ├── bankr-client.ts # Bankr API client
│ └── types.ts
└── scripts/
└── run.sh
{
"dependencies": {
"commander": "^12.0.0"
}
}
import { program } from "commander";
import { price } from "./commands/price";
import { trade } from "./commands/trade";
program
.name("bankr-cli")
.description("CLI for Bankr operations")
.version("1.0.0");
program
.command("price <token>")
.description("Get token price")
.action(price);
program
.command("trade <action> <amount> <token>")
.description("Execute a trade")
.option("-c, --chain <chain>", "Target chain", "base")
.action(trade);
program.parse();
| Need | Recommended Template |
|---|---|
| Automated recurring tasks | bot |
| HTTP API for integrations | web-service |
| Visual interface | dashboard |
| Terminal-based tool | cli |
| Price alerts | bot |
| Trading API | web-service |
| Portfolio viewer | dashboard |
| Quick trades | cli |
All templates share common files. Load the bankr-client-patterns skill for:
bankr-client.ts - Complete API clientpackage.json - Base dependenciestsconfig.json - TypeScript config.env.example - Environment template.gitignore - Standard ignoresbun install or npm install.env.example to .env and add BANKR_API_KEYbun dev or npm run dev for developmentbun run build or npm run build for production