Bankr Agent - Sign & Submit API について
Bankr Agent - Sign & Submit APIは、メッセージや型付きデータ、トランザクションの署名と、生トランザクションの送信を行う同期エンドポイントを提供します。非同期ジョブのポーリングなしで署名やトランザクションハッシュを取得するワークフロー向けです。
主な機能
- 01メッセージと型付きデータへの署名
- 02ブロードキャスト前のトランザクション署名
- 03生トランザクションのオンチェーン送信
- 04確認待ちの任意指定
- 05署名と取引結果の同期応答
活用シーン
- 01ウォレット所有権確認用メッセージへの署名
- 02EIP-2612の許可への署名
- 03事前構築したトランザクションcalldataの送信
- 04承認とスワップの連続実行
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ bankrbot/ claude-plugins --skill bankr-agent---sign-&-submit-apiインストール後、Claude Code で/bankr-agent---sign-&-submit-apiを入力して読み込まれたか確認します。
詳細
署名・送信 API
メッセージに署名し、トランザクションを直接送信する同期エンドポイントです。ポーリングは不要です。
概要
| エンドポイント | 目的 | 戻り値 |
|---|---|---|
POST /agent/sign | メッセージ、型付きデータ、またはトランザクションに署名します | 署名 |
POST /agent/submit | 未加工のトランザクションをチェーンに送信します | トランザクションハッシュ |
非同期でジョブのポーリングが必要な /agent/prompt とは異なり、これらのエンドポイントはすぐに応答を返します。
POST /agent/sign
データに署名します。ネットワークにはブロードキャストしません。
署名の種類
| 種類 | 使用例 |
|---|---|
personal_sign | プレーンテキストのメッセージに署名する(認証、検証) |
eth_signTypedData_v4 | EIP-712 型付きデータに署名する(パーミット、注文) |
eth_signTransaction | 後でブロードキャストするトランザクションに署名する |
プロンプトの例
メッセージに署名する:
- 「このメッセージに署名してください:Hello World」
- 「nonce abc123 を使って MyApp にサインインしてください」
型付きデータに署名する(EIP-712 パーミット):
- 「USDC の承認に関するこの EIP-712 パーミットに署名してください」
ブロードキャストせずにトランザクションに署名する:
- 「このトランザクションに署名しますが、送信しないでください」
成功レスポンス
{
"success": true,
"signature": "0x...",
"signer": "0xYourWalletAddress",
"signatureType": "personal_sign"
}
よくあるエラー
| ステータス | エラー | 原因 |
|---|---|---|
| 400 | 必須フィールドがありません | message、typedData、または transaction がありません |
| 401 | 認証が必要です | API キーがないか、無効です |
| 403 | 読み取り専用 API キーです | キーに書き込み権限がありません |
POST /agent/submit
未加工のトランザクションをブロックチェーンに直接送信します。
トランザクションのフィールド
| フィールド | 必須 | 説明 |
|---|---|---|
to | はい | 宛先アドレス |
chainId | はい | チェーン ID(8453=Base、1=Ethereum、137=Polygon) |
value | いいえ | wei 単位の値(文字列) |
data | いいえ | コールデータ(16 進数文字列) |
gas | いいえ | ガス上限 |
waitForConfirmation | いいえ | オンチェーンでの確認を待つかどうか(デフォルト:true) |
プロンプトの例
未加工のトランザクションを送信する:
- 「このトランザクションを Base で送信してください:{to: 0x..., data: 0x..., value: 0}」
シンプルな ETH 送金:
- 「0x... に 1 ETH を送金してください」
成功レスポンス
確認済みの場合:
{
"success": true,
"transactionHash": "0x...",
"status": "success",
"blockNumber": "12345678",
"gasUsed": "21000",
"signer": "0xYourWalletAddress",
"chainId": 8453
}
トランザクションのステータス値
| ステータス | 説明 |
|---|---|
success | 確認され、成功しました |
reverted | 確認されましたが、リバートしました |
pending | 送信済みですが、まだ確認されていません |
ユースケース
- 認証:ウォレットの所有権を証明するためにメッセージに署名します
- ガスレス承認:ガスを使わずに EIP-2612 パーミットに署名します
- 事前構築済みトランザクション:外部ツールのコールデータを送信します
- 複数ステップのワークフロー:承認とスワップを順番に実行します
/agent/prompt との比較
| 機能 | /agent/prompt | /agent/sign | /agent/submit |
|---|---|---|---|
| 入力 | 自然言語 | 構造化データ | トランザクションオブジェクト |
| 応答 | 非同期(ジョブ ID) | 同期(署名) | 同期(トランザクションハッシュ) |
| オンチェーンで実行 | AI エージェント経由 | いいえ | はい |
| 最適な用途 | 一般的な問い合わせ | 認証、パーミット | 未加工のトランザクション |
セキュリティに関する注意事項
/agent/submitは確認プロンプトなしで即座に実行されます- 送信前に、すべてのトランザクションパラメーターを検証してください
- 重要なトランザクションには
waitForConfirmation: trueを使用してください - 読み取り専用 API キーでは、これらのエンドポイントを使用できません(403)
コメント
Markdown 対応