From bankr-agent-dev
Submits raw EVM transactions, custom contract calls, and pre-built calldata via Bankr API. Provides JSON schema, validation, TypeScript integration for Ethereum, Polygon, Base, Unichain.
npx claudepluginhub bankrbot/claude-plugins --plugin bankr-agent-devThis skill uses the workspace's default tool permissions.
Submit raw EVM transactions with explicit calldata via the Bankr API.
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Searches prompts.chat for AI prompt templates by keyword or category, retrieves by ID with variable handling, and improves prompts via AI. Use for discovering or enhancing prompts.
Checks Next.js compilation errors using a running Turbopack dev server after code edits. Fixes actionable issues before reporting complete. Replaces `next build`.
Submit raw EVM transactions with explicit calldata via the Bankr API.
| Operation | Description |
|---|---|
| Submit calldata | Execute pre-built calldata on any supported chain |
| Custom contract calls | Interact with any contract using raw function calls |
| Value transfers with data | Send ETH/MATIC while executing calldata |
{
"to": "0x...",
"data": "0x...",
"value": "0",
"chainId": 8453
}
| Field | Type | Required | Description |
|---|---|---|---|
to | string | Yes | Contract address (0x + 40 hex chars) |
data | string | Yes | Calldata (0x + hex, or "0x" for empty) |
value | string | Yes | Wei amount as string |
chainId | number | Yes | Target chain (1, 137, or 8453) |
| Chain | Chain ID |
|---|---|
| Ethereum | 1 |
| Polygon | 137 |
| Base | 8453 |
| Unichain | 130 |
import { execute } from "./bankr-client";
// Submit arbitrary transaction
const txJson = {
to: "0x1234567890abcdef1234567890abcdef12345678",
data: "0xa9059cbb...",
value: "0",
chainId: 8453
};
await execute(`Submit this transaction: ${JSON.stringify(txJson)}`);
import { execute } from "./bankr-client";
interface ArbitraryTx {
to: string;
data: string;
value: string;
chainId: number;
}
async function submitArbitraryTx(tx: ArbitraryTx): Promise<void> {
// Validate before submission
if (!tx.to.match(/^0x[a-fA-F0-9]{40}$/)) {
throw new Error("Invalid address format");
}
if (!tx.data.startsWith("0x")) {
throw new Error("Calldata must start with 0x");
}
if (![1, 137, 8453, 130].includes(tx.chainId)) {
throw new Error("Unsupported chain");
}
const prompt = `Submit this transaction: ${JSON.stringify(tx)}`;
await execute(prompt);
}
// Example: ERC-20 transfer
await submitArbitraryTx({
to: "0xTokenContractAddress...",
data: "0xa9059cbb000000000000000000000000...", // transfer(address,uint256)
value: "0",
chainId: 8453
});
try {
await submitArbitraryTx(tx);
} catch (error) {
if (error.message.includes("reverted")) {
// Transaction reverted - check calldata encoding
console.error("Transaction reverted:", error);
} else if (error.message.includes("insufficient")) {
// Not enough funds for gas + value
console.error("Insufficient funds:", error);
} else if (error.message.includes("unsupported")) {
// Chain not supported
console.error("Unsupported chain:", error);
}
}
bankr-client-patterns - Client setup and execute functionbankr-api-basics - API fundamentalsbankr-token-trading - Higher-level trading operations