ERC-4337スマートコントラクトウォレットの仕組みとは?
執筆者 Brady Werkheiser
Account Abstraction(ERC-4337)を利用するスマートコントラクトウォレットは、EOA(Externally Owned Address)ウォレットのように単一の秘密鍵で管理されるウォレットではなく、スマートコントラクトによって管理されるウォレットを作成する。
スマートコントラクトウォレットのプログラマブルな性質は、幅広い新しいユースケースの開発を可能にする。セキュリティや匿名性を損なうことなく複雑さを軽減することで、スマートコントラクトウォレットは次のブロックチェーンユーザー層のオンボーディングを促進する。
埋め込み型スマートコントラクトウォレットをアプリに追加したいですか?エンタープライズグレードのEmbedded Accountsと垂直統合されたAAインフラストラクチャを使えば、シードフレーズやガス、摩擦なしでユーザーをオンボーディングできます。
スマートコントラクトウォレットとは何か
スマートコントラクトウォレットは、スマートコントラクトを使ってデジタル資産(暗号通貨、NFTなど)を保管・管理する。スマートコントラクトウォレットはアカウントアブストラクションの基盤である。アカウントアブストラクションとは、Ethereumの様々なアカウントタイプを単一のタイプに統合するプロセスであり、アカウントの制御をネットワークから「抽象化」し、スマートコントラクトによって定義する。
ERC-4337を利用するスマートコントラクトウォレットの例:
- Soul Wallet
- Candide
- UniPass
- Castle
- Openfort
ERC-4337を利用していない主なスマートコントラクトウォレットはSafeとArgentである。
コントラクトアカウント(cas)とは何か
スマートコントラクトとも呼ばれるコントラクトアカウントは、当事者間の情報のやり取りを管理するコードを含む。コントラクトアカウントはあらゆるDeFiプロトコル、NFTコレクション、ERC-20トークンで使用されている。
コントラクトのビジネスロジックと状態変数はすべてオンチェーンに保存される。スマートコントラクトの状態とコードはオンチェーンに保存されるため、それをデプロイする外部所有アカウントは手数料を支払う必要がある。
注:web3プログラミングには「スマートコントラクトファクトリー」というパターンがあり、コントラクトが定義済みのインターフェースを通じて他のコントラクトをデプロイできる。この場合でも、それを開始するトランザクションはEOAから発生し、EOAによって支払われなければならない。
コントラクトアカウントは**外部所有アカウント(eoas)**とどう違うのか
スマートコントラクトアカウントとEOAアカウントの主な違いは、スマートコントラクトアカウントがロジックを含むことができる点である。EOAアカウントのみがトランザクションを開始できるため、スマートコントラクトアカウントはBundlerのEOAアカウントに依存し、ユーザーオペレーションを1つのトランザクションにまとめてブロックチェーンに投稿してもらう。
現在のEthereumプロトコルでは、コントラクト呼び出しであれ価値の転送であれ、トランザクションを開始できるアカウントタイプはEOAのみである。あるコントラクトアカウントが別のコントラクトアカウントを呼び出す場合でも、トランザクションの起点は常に外部所有アカウントである。
コントラクトアカウントとEOAアカウントの比較を以下に示す。
では、スマートコントラクトウォレットはトランザクションを自ら開始できないのに、どのようにトランザクションを実行するのだろうか。
ERC-4337スマートコントラクトウォレットの仕組み
スマートコントラクトウォレットはトランザクションを開始できないため、EOAウォレットによって呼び出される必要がある。このプロセスは複数のAccount Abstractionインフラストラクチャプロバイダー(例:Bundler)とスマートコントラクト(例:EntryPoint)によってサポートされている。
スマートコントラクトウォレットのトランザクションの典型的な流れ:
- ユーザーがUserOperationを実行したいと考える
- UserOperationsは「代替メンプール」に送信される
- EOAウォレットを持つBundlerがすべてのUserOperationsをまとめてEntryPointコントラクトに送信する
- EntryPointコントラクトがすべてのUserOperationsを検証し実行する
- UserOperationsをまとめたEOAウォレットは、ユーザーに代わって支払ったETHを、ユーザーのウォレットまたはPaymasterから返済される

スマートコントラクトウォレットの仕組みを技術的な観点から理解するのは難しいかもしれないが、エンドユーザーにとって、スマートコントラクトウォレットはEOAウォレットと比較して多くの改善をもたらす。プログラマビリティやソーシャルリカバリーのような機能がその例である。
スマートコントラクトウォレットの仕組みを学ぶための追加リソース
Account Abstractionの各コンポーネントの仕組みについて詳しくは、Alchemy社のAccount Abstraction Infrastructureエンジニアリングチームに所属するDavid Philipsonによる記事シリーズ「You Could Have Invented Account Abstraction」を参照。
よくある質問
スマートコントラクトウォレットとは何か
スマートコントラクトウォレットは、単一の秘密鍵ではなくスマートコントラクトを使って暗号通貨やNFTなどのデジタル資産を保管・管理するものであり、アカウントアブストラクションの基盤としての役割を果たす。
ERC-4337スマートコントラクトウォレットはどのように機能するか
ERC-4337ウォレットでは、ユーザーがUserOperationsを作成して代替メンプールに送信し、Bundlerがそれらを収集してEntryPointコントラクトに提出して検証・実行を行い、その後ウォレットまたはPaymasterから返済を受けるという流れになっている。
スマートコントラクトアカウントとEOAアカウントの違いは何か
スマートコントラクトアカウントはプログラマブルなロジックを含むがトランザクションを自ら開始することはできず、EOAアカウントはトランザクションを開始できるがプログラマブルな機能を持たない。
UserOperationsとは何か
UserOperationsは、ユーザーが作成するトランザクションリクエストであり、代替メンプールに送信され、Bundlerがそれを収集してEntryPointコントラクトを通じて処理する。
ERC-4337におけるBundlerの役割は何か
Bundlerは、EOAウォレットを持つノードであり、代替メンプールからUserOperationsを収集し、それらをまとめてEntryPointコントラクトに提出し、検証・実行を行わせる。
EntryPointコントラクトとは何か
EntryPointコントラクトは、Bundlerによって提出されたバンドル済みのUserOperationsを検証・実行するオンチェーンのスマートコントラクトである。
スマートコントラクトウォレットにガス手数料は必要か
スマートコントラクトウォレットはPaymasterを使ってガス手数料をスポンサーすることができ、ユーザーが直接ガスを支払う必要のないガスレストランザクションを実現できる。
ERC-4337スマートコントラクトウォレットの例を教えてほしい
例としてSoul Wallet、Candide、UniPass、Castle、Openfortが挙げられ、SafeとArgentはERC-4337を利用していないスマートコントラクトウォレットである。
関連する概要
ウォレット2026年9月2日
エージェントウォレット: AIエージェントのためのセッションと権限モデル
AIエージェントが秘密鍵を保持せずにスコープ化された取り消し可能なウォレットアクセスを得る仕組み: セッション、委任署名、即時失効。
ウォレット2026年7月29日
Cursorに秘密鍵を貼り付けるのをやめる:コーディングエージェントにウォレットを持たせる方法
秘密鍵を渡さずに、コーディングエージェントにウォレットを持たせる方法。Alchemy CLIのエージェントウォレットがスコープ付きセッションを使い、.envに秘密鍵を置かずにエージェントが取引できる仕組みを解説します。
ウォレット2026年6月24日
暗号資産Bundlerとは?
暗号資産のBundlerは、バッチ処理、MEV、ロールアップ、トークンローンチ、アカウントアブストラクションにわたって、複数のトランザクションや操作を1つのオンチェーン送信にまとめます。

ブロックチェーンで魔法を生み出す
Alchemyは、最も強力なweb3開発者向けプロダクトとツールを、豊富なリソース、コミュニティ、そして卓越したサポートと組み合わせて提供します。