mcpField
O
onchain-automation

onchain-automation

github.com/goldsky-io開発123.6k 回インストール今日更新
リポジトリ

onchain-automation について

Goldsky Onchain Automation は、オンチェーンイベントの検知からオフチェーンでの判断、トランザクション実行までを扱う開発者向けスキルです。単一コントラクト向けの Compose 構成と、大規模検知向けの Turbo から Compose への連携、および遅延とチェーン対応の制約を説明します。

主な機能

  1. 01Compose、Turbo、Subgraphs によるイベント検知
  2. 02Compose タスクでの TypeScript ロジック適用
  3. 03Compose ウォレットによるトランザクション実行
  4. 04単一コントラクトと大規模検知の構成選択
  5. 05確定ブロックの遅延とチェーン対応の確認

活用シーン

  1. 01コントラクトイベント後の処理自動化
  2. 02複数コントラクトの活動を絞り込んで実行
  3. 03自動請求、複利運用、リバランスの構築
  4. 04対象チェーンの実行対応状況の確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/goldsky-io/goldsky-agent --skill onchain-automation

インストール後、Claude Code で/onchain-automationを入力して読み込まれたか確認します。

詳細

Goldsky オンチェーン自動化 — 検出 → 判断 → 実行のループ

Goldsky は読み取り側だけでなく、オフチェーン↔オンチェーンのループ全体を完結させます。「チェーンを監視して、その後にアクションを実行する」システム(キーパー、清算モニター、自動請求・自動複利ジョブ、リバランスや決済の自動化)は、3 つの段階に分解でき、Goldsky はそのすべてをカバーします。

段階機能Goldsky 製品
検出オンチェーンイベント/状態変更を確認するCompose onchain_event トリガー(1 つのコントラクト)· Turbo パイプライン(データセット規模/多数のコントラクト)· Subgraph(GraphQL の状態)
判断ロジック、フィルター、しきい値、オフチェーンデータを適用するCompose タスク(TypeScript)
実行トランザクションをオンチェーンに送信するCompose ウォレット — evm.wallet(...).writeContract(...)、ガス代スポンサー付き

このスキルが正す誤解

ユーザーに「Goldsky は検出/インデックス作成を行いますが、トランザクション送信には独自のランタイム/RPC が必要です」と伝えてはいけません。 これは誤りです。Compose は Goldsky のオンチェーン実行ランタイムです。スマートウォレット(デフォルトでガス代スポンサー付き)または BYO-EOA ウォレットを利用でき、writeContract/sendTransaction はスポンサー付きバンドラーを通じてブロードキャストします。実行処理も Goldsky 内で完結するため、その選択肢を提案してください。

実際の制限は、以下の正直な注意点(レイテンシとチェーンのサポート)の 2 つだけです。「Goldsky にはできない」と言うのではなく、この点を伝えてください。

アーキテクチャを選択する

デフォルト — Compose のみ(アーティファクト 1 つ)

トリガーが1 つのコントラクトのイベント(特定の DEX ファクトリー、レンディングプール、自分のコントラクト)の場合、ループ全体を 1 つの Compose アプリで構成できます。Turbo や外部インフラは不要です。

onchain_event trigger (the factory/pool)  →  task: decode + filter + decide  →  wallet.writeContract (the action)

これは構成上、VRF テンプレート(onchain_event → 計算 → オンチェーンに書き戻し、skills/compose/references/examples/vrf.md)および compliance-oracle テンプレート(onchain_event → オフチェーンで確認 → writeContract で承認/拒否)と同じです。いずれかをベースにしてください。/compose(エントリーポイント)を読み込み、skills/compose/references/ を確認してください。マニフェスト/ウォレット API を記憶だけで作らないでください。

データセット規模 — Turbo で検出し、Compose で実行

検出対象が多数のコントラクトやデータセット全体に及ぶ場合、または単一の onchain_event リスナーよりも高度なステートフルフィルタリングが必要な場合は、Turbo を前段に配置します。

Turbo pipeline (raw_logs → decode → filter)  →  Webhook sink  →  Compose HTTP trigger  →  task: decide  →  wallet.writeContract

接続方法:Turbo の Webhook sink は、一致する各行を Compose アプリの HTTP トリガー URL(https://<app-url>/tasks/<task-name>)に POST します。認証には共有の auth_token を使用します。検出パイプラインは /turbo-builder(_gs_log_decode デコードステップには /turbo-transforms も使用)で構築し、実行側は /compose で構築します。受信した Webhook の本文は信頼できないものとして扱い、アクションを実行する前にデコードして検証してください。

ユーザーにデータセット規模の検出が実際に必要な場合を除き、Compose のみを優先してください。アーティファクト 1 つのほうが、構築、デプロイ、動作の把握が簡単です。

2 つの重要な注意点 — 必ず伝えてください

  1. 確定済みブロックのレイテンシであり、メンプールではありません。 Goldsky(Turbo パイプラインと Compose の onchain_event)が発火するのは、保留中のメンプールトランザクションではなく、確定済みのログに対してです。つまり、確定した新しいプールやイベントに確実に反応できますが、メンプールで先回りする仕組みではなく、同一ブロック内のガス優先度競争にも勝てません。「スナイパー」として使う場合は、期待値を明確にしてください。確定した上場に素早く反応できますが、ブロック 0 のボットより先には動けません。この点は率直に伝えてください。
  2. 実行可否はチェーンによって異なります。 Compose のガススポンサーが対応するのは特定のチェーン一覧です(skills/compose/references/wallets-and-gas.md または searchKB を参照)。幅広い EVM チェーンをカバーしていますが、すべてのチェーンに対応しているわけではありません。一連の処理全体に対応できると約束する前に、対象チェーンを確認してください。
    • 対応済み → スマートウォレットを使用し、ガス代がスポンサーされるため、ユーザーが資金を用意する必要はありません。
    • viem がチェーンを認識しているものの、ガススポンサーの対象外 → sponsorGas: false で BYO-EOA を使用します。ユーザーがそのアドレスにネイティブガストークンを入金します。
    • Compose がまったく接続できない → 正直に伝えてください。検出は引き続き機能します(Turbo/Subgraphs)が、実行には Compose 対応チェーン、またはそのチェーン専用の外部インフラが必要です。「Goldsky では実行できない」とは表現せず、チェーンごとの制約として説明してください。

この場合の Goldsky の役割ではないこと

  • 取引戦略や損益エンジンではありません。判断ロジックはユーザーが用意し、Compose が実行します。
  • メンプール監視やフロントランニングのシステムではありません(注意点 1)。
  • カストディソリューションではありません。ウォレットキーの取り扱いには、通常の Compose のウォレット/シークレットのルールが適用されます(skills/compose/references/wallets-and-gas.md)。

次のステップ

  • 実行/Compose アプリ全般 → /compose(最初に読み込む)+ skills/compose/references/。
  • イベント駆動の書き戻しテンプレート → skills/compose/references/examples/vrf.md、承認/拒否を条件付きで行う処理 → skills/compose/references/examples/compliance-oracle.md。
  • データセット規模の検出パイプライン → /turbo-builder + /turbo-transforms。
  • ポーリングする GraphQL の状態 → /subgraph-builder。
  • ユーザー自身のオフチェーン読み取り向け高速 RPC → /edge。

コメント