This skill should be used when the user asks to "scaffold a Bankr SDK project", "create new SDK bot", "build a Bankr web service", "create Bankr dashboard", "build Bankr CLI tool", "project structure...
Directory structures and templates for Bankr SDK projects using x402 micropayments.
| Template | Use Case | Key Features |
|---|---|---|
| bot | Automated tasks | Polling loop, scheduler, transaction execution |
| web-service | HTTP APIs | REST endpoints, async handling, webhook support |
| dashboard | Web UIs | Frontend + backend, portfolio display |
| cli | Command-line tools | Subcommands, interactive prompts |
For automated trading bots, price monitors, portfolio rebalancers, 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 SDK client (from x402-client-patterns skill)
│ ├── executor.ts # Transaction execution with viem/ethers
│ ├── types.ts # TypeScript interfaces
│ └── config.ts # Configuration loading
└── scripts/
└── run.sh # Convenience script
import { bankrClient } from "./bankr-client";
import { executeTransaction } from "./executor";
const INTERVAL = 60000; // 1 minute
async function runBot() {
console.log("Starting Bankr SDK bot...");
while (true) {
try {
const result = await bankrClient.promptAndWait({
prompt: "Check ETH price",
onStatusUpdate: (msg) => console.log("Status:", msg),
});
if (result.status === "completed") {
console.log("Result:", result.response);
// Execute transactions if returned
if (result.transactions?.length) {
for (const tx of result.transactions) {
await executeTransaction(tx);
}
}
}
} catch (error) {
console.error("Error:", error);
}
await new Promise((r) => setTimeout(r, INTERVAL));
}
}
runBot();
For HTTP APIs that wrap Bankr SDK for mobile apps or integrations.
{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
│ │ ├── swap.ts # Swap endpoints
│ │ └── portfolio.ts # Portfolio endpoints
│ ├── bankr-client.ts # Bankr SDK client
│ ├── types.ts # TypeScript interfaces
│ └── config.ts # Configuration loading
└── scripts/
└── run.sh
{
"dependencies": {
"express": "^4.18.0"
}
}
For web UIs with portfolio tracking, swap interfaces, or monitoring.
{project-name}/
├── package.json
├── tsconfig.json
├── .env.example
├── .gitignore
├── README.md
├── server/
│ ├── index.ts # Backend server
│ ├── bankr-client.ts # Bankr SDK 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
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/
│ │ ├── swap.ts # Swap commands
│ │ ├── balance.ts # Balance query commands
│ │ └── send.ts # Transfer commands
│ ├── bankr-client.ts # Bankr SDK client
│ ├── executor.ts # Transaction execution
│ └── types.ts
└── scripts/
└── run.sh
{
"dependencies": {
"commander": "^12.0.0"
}
}
import { program } from "commander";
import { swap } from "./commands/swap";
import { balance } from "./commands/balance";
program
.name("bankr-cli")
.description("CLI for Bankr SDK operations")
.version("1.0.0");
program
.command("balance")
.description("Get wallet balances")
.action(balance);
program
.command("swap <amount> <from> <to>")
.description("Swap tokens")
.option("-c, --chain <chain>", "Target chain", "base")
.option("-y, --yes", "Skip confirmation")
.action(swap);
program.parse();
| Need | Recommended Template |
|---|---|
| Automated recurring tasks | bot |
| HTTP API for mobile/web | web-service |
| Visual interface | dashboard |
| Terminal-based tool | cli |
| Price alerts | bot |
| Portfolio viewer | dashboard |
| Quick trades | cli |
All templates share common files. Load the x402-client-patterns skill for:
bankr-client.ts - SDK client setupexecutor.ts - Transaction executionpackage.json - Base dependenciestsconfig.json - TypeScript config.env.example - Environment template.gitignore - Standard ignoresbun install or npm install.env.example to .env and add BANKR_PRIVATE_KEYbun dev or npm run dev for developmentbun run build or npm run build for production