Bankr Dev - Arbitrary Transactions について
Bankr Dev - Arbitrary Transactionsは、Bankr API経由で生のEVMトランザクションを送信する開発者向けスキルです。宛先、calldata、送金額、チェーンIDを指定し、コントラクト呼び出しやデータ付き送金を行えます。
主な機能
- 01事前構築したcalldataの送信
- 02カスタムコントラクト呼び出し
- 03calldata付きの送金
- 04チェーンと取引項目の指定
活用シーン
- 01エンコード済みコントラクト取引の送信
- 02コントラクト関数の呼び出し
- 03calldata実行を伴う送金
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ bankrbot/ claude-plugins --skill bankr-dev---arbitrary-transactionsインストール後、Claude Code で/bankr-dev---arbitrary-transactionsを入力して読み込まれたか確認します。
詳細
任意トランザクション機能
Bankr API を使用して、明示的な calldata を含む生の EVM トランザクションを送信します。
できること
| 操作 | 説明 |
|---|---|
| calldata の送信 | サポート対象の任意のチェーンで、事前に構築した calldata を実行します |
| カスタムコントラクト呼び出し | 生の関数呼び出しを使用して、任意のコントラクトとやり取りします |
| データ付きの送金 | calldata を実行しながら ETH/MATIC を送信します |
JSON スキーマ
{
"to": "0x...",
"data": "0x...",
"value": "0",
"chainId": 8453
}
| フィールド | 型 | 必須 | 説明 |
|---|---|---|---|
to | string | はい | コントラクトアドレス(0x + 40 桁の 16 進数) |
data | string | はい | calldata(0x + 16 進数、または空の場合は "0x") |
value | string | はい | 文字列形式の Wei 額 |
chainId | number | はい | 対象チェーン(1、137、または 8453) |
サポート対象チェーン
| チェーン | チェーン 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- クライアントのセットアップと execute 関数bankr-api-basics- API の基本bankr-token-trading- より高度な取引操作
コメント
Markdown 対応