smithery/bankrbot

Bankr Dev - Arbitrary Transactions

This skill should be used when building apps that submit raw EVM transactions, custom contract calls, or need to execute pre-built calldata through Bankr. Covers JSON format, validation, and integration patterns.

Installation

$ npx skills add smithery/bankrbot --skill bankr-dev-arbitrary-transactions

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from smithery/bankrbot · top by installs.

npx skills add smithery/bankrbot

Browse all from smithery/bankrbot

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Skill metadata

Parsed from SKILL.md frontmatter.

Version1.0.0

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 3,123 B
  • docs SUMMARY.md 252 B

History

  1. First recorded snapshot · 0 installs

SKILL.md

Arbitrary Transaction Capability

Submit raw EVM transactions with explicit calldata via the Bankr API.

What You Can Do

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

JSON Schema

{
  "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)

Supported Chains

Chain Chain ID
Ethereum 1
Polygon 137
Base 8453
Unichain 130

Usage

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)}`);

Integration Pattern

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
});

Error Handling

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);
  }
}

Related Skills

  • bankr-client-patterns - Client setup and execute function
  • bankr-api-basics - API fundamentals
  • bankr-token-trading - Higher-level trading operations