最近、n8n で自動化ワークフローを構築していて、ある問題に気づきました。n8n は様々なサービスを簡単に連携できますが、Ethereum ブロックチェーンとのやり取りは意外と難しいのです。通常、Code Node を使用して ethers.js や viem などの外部ライブラリをインストールするか、Crypto ノードを使用して自分で署名を生成する必要があり、開発者以外には非常に困難です。
コミュニティには既に n8n-nodes-web3 がありますが、機能は比較的シンプルで、多くの一般的な操作がサポートされていません。そこで、Claude Code の Vibe Coding 能力をテストしつつ、n8n ノード開発も試してみたいと思いました。自分自身もこれらの機能を頻繁に必要としていたので、より包括的な Ethereum 統合パッケージを作ることにしました。
n8n-nodes-ethereum
このプロジェクトの目標は、完全な Ethereum ブロックチェーン統合を提供し、n8n のビジュアルインターフェースで様々なブロックチェーン操作をコードを書かずに処理できるようにすることです。プロジェクトは viem を基盤ライブラリとして使用しています(従来の web3.js と比べて、よりモダンで型安全、そして積極的にメンテナンスされています)。また、統一された Resource/Operation デザインパターンを採用しています。
主な機能
プロジェクトには 2 つのノードが含まれています:
- Ethereum Node:様々なブロックチェーン操作を実行するための通常ノード
- Ethereum Trigger Node:新しいブロック、コントラクトイベント、特定アドレスへのトランザクションを監視できるトリガーノード
機能は一般的なユースケースのほとんどをカバーしています:
- 10 種類のリソースタイプ:アカウント、ブロック、トランザクション、コントラクト、ERC20、ERC721、ERC1155、ENS、Gas、署名、ユーティリティ関数など
- 完全なトークン標準サポート:ERC20、ERC721、ERC1155 のすべての標準メソッドを内蔵、ABI を自分で処理する必要なし
- マルチチェーンサポート:18 以上の EVM 互換ネットワーク(Ethereum、Polygon、BSC、Arbitrum、Optimism、Base など)をデフォルトでサポート、カスタム RPC も設定可能
- トリガー:新しいブロック、コントラクトイベント、特定アドレスのトランザクションを監視し、リアルタイムで反応するワークフローを作成
- セキュリティ設計:RPC 接続とウォレット認証情報は分離して管理、読み取り専用操作には秘密鍵不要
操作面では、このパッケージはユーザーが ABI を貼り付けて関数やイベントを指定できるようになっており、入力に誤りがある場合は即座に通知されます。これには依然としてある程度の技術的知識が必要ですが、手動で calldata を構築して署名を組み立てるよりもはるかに簡略化されています。LLM を活用すれば、開発者でない方でも複雑なコントラクト操作を容易に行えるはずです。
例えば、以下のようなワークフローを簡単に作成できます:
- 特定の NFT コントラクトの Transfer イベントを監視し、新しいトランザクションがあれば通知を送信
- DAO のトレジャリー残高を定期的にチェックし、閾値を下回ったらアラート
- トークン転送を自動化し、確認を待機
- Gas Price を監視し、価格が十分に低い時にトランザクションを実行
機能の完全なリストはドキュメントサイトを参照してください。
現状と今後
プロジェクトはバージョン 1.0.1 に到達し、より完全なサポートと基本的なテストを通過しています。主な機能は実装済みですが、現在もすべてのノードが正しく動作することを確認するための自動テストを継続的に構築中です。
セキュリティ警告:基本的なテストは通過していますが、まずテストネットで試してから、問題がないことを確認した上で本番環境で使用することをお勧めします。資金に関わる操作には特に注意し、自動化ウォレットには必要最低限の金額のみを保管することをお勧めします。
次のステップは、エラー処理の改善です。現在のバージョンでは、エラーが発生した際にユーザーがどのように対処すべきか明確なガイダンスを提供できていない場合があります。将来的には、より分かりやすいエラーメッセージを追加し、ユーザーが問題を報告する際に十分なコンテキストを簡単に提供できる仕組みを作りたいと考えています。
また、Uniswap などの一般的な DeFi プロトコルとの統合も検討しています。しかし、専用ノードを増やしすぎるとインターフェースが複雑になり、使いにくくなる恐れがあります。これは長期的な目標であり、機能の豊富さと使いやすさのバランスをどのように取るか、現在検討中です。
今後の計画としては、テストカバレッジの改善を続け、ユーザーフィードバックに基づいてより多くの機能を追加していく予定です。コントリビューションも歓迎します!
もっと詳しく知りたい方へ
n8n を使用していてブロックチェーンとやり取りする必要がある方は、ぜひこのパッケージを試してみてください:
- インストール:
- npm を使用:
npm install @0xlimao/n8n-nodes-ethereum - UI を使用:Settings > Community Nodes > Install で
@0xlimao/n8n-nodes-ethereumを検索してインストール(再起動不要)
- npm を使用:
- GitHub:https://github.com/flyinglimao/n8n-ethereum
- npm:https://www.npmjs.com/package/@0xlimao/n8n-nodes-ethereum
- ドキュメント:https://flyinglimao.github.io/n8n-ethereum/
ドキュメントには Claude が書いたインストール手順、認証情報の設定チュートリアル、各リソースの使い方、そしていくつかの一般的なワークフロー例が含まれています。
今回のプロジェクトは、大部分を Claude Code に指示して作業させました(この記事も、この段落を除いてほぼ Claude が書いています)。今回は数ヶ月前と比べて明らかに違いを感じました。一度に処理できるタスクが大きくなっていますが、それでも時々ループにはまることがあります。しかし、このような小規模なプロジェクトの開発にはかなり便利です。馴染みのないソースを使うよりも、プロジェクトの複雑さがそれほど高くなければ、AI に直接書いてもらう方が安全かもしれません(汚染の心配はまだありますが)。