---
title: "User Operation Overridesのご紹介"
description: "User Operation Overridesにより、gas feeを細かく制御できます。L2ではgas feeの市場が急速に変動するため、pending中のUOが失敗することがあります。"
---

# User Operation Overridesのご紹介

<ImageBlock
  src="https://media.alchemy.com/1705444621-user-op-overrides.png"
  alt="User Operation Overrides リリース: ガス代をきめ細かく制御"
  width={2400}
  height={1350}
  priority
/>

[Account Abstraction](/overviews/what-is-account-abstraction)により、ユーザーは従来のExternally Owned Accounts（EOA）の代わりに、スマートコントラクトアカウントをウォレットとして使用できます。スマートコントラクトアカウントからトランザクションを開始する場合、[User Operations](/overviews/user-operations)（UserOpsまたはUOs）には、通常のトランザクションと同様にトランザクションの詳細が含まれます：`sender`、`to`、`calldata`、`maxFeePerGas`、`maxPriorityFee`、`signature`、`nonce`。

スマートコントラクトアカウントは、代わりにトランザクションを実行するために[Bundler](/overviews/what-is-a-bundler)に依存しているため、user operationにはガスを見積もったりpaymasterでガスをスポンサーしたりするための新しいフィールドセットも含まれています：`callGasLimit`、`verificationGasLimit`、`preVerificationGas`、`paymasterAndData`。

本日、開発者がガス料金をきめ細かく制御できるようにする[User Operation Overrides](https://www.alchemy.com/docs/wallets/resources/types#useroperationoverrides)をローンチします。L2上ではガス料金市場が急速に変動するため、それが起こると保留中のUOが失敗することがあります。

UO Overridesを使用すると、ガス見積もりをオーバーライドできるため、実際のガスコストと乖離した[ガス見積もり](/blog/l2-gas-and-signature-aggregators)に関係なく、UserOpsがマイニングされるというより強力な保証を得られます。

## user operation overridesの機能
ガス料金の見積もりは多くの複雑な入力を組み込んでいるため正確に見積もるのが難しいのですが、これをオーバーライドすることで、絶対値ベースまたは倍率ベースのオーバーライド値を設定し、ガスの変動に関係なくUserOpが正常にマイニングされるというより強力な保証を得られます。

## user operation overridesの利点は何ですか？
UO Overridesの主な開発者向けの利点は2つあります。ガスとpaymasterの値の見積もりの複雑さを簡素化することと、手数料市場が不安定な時期にUOがマイニングされる可能性を高めることです。

### 1. 複雑さの簡素化
現在、適切なガス料金を見積もるには6種類の異なるガスタイプを組み込む必要があり、ガス見積もりを「正しく」行うのが難しくなっています。Fee Overridesを使えば、開発者はガス見積もりを一定の閾値でオーバーライドするパラメータを設定できるため、見積もりの精度に関係なくUserOpsがマイニングされます。

### 2. 結果を自分で制御する
これまで[aa-sdk](https://www.alchemy.com/docs/wallets)を使用する際の悩みの種の一つは、ネットワークが混雑すると、チームがAlchemyのエンジニアにガス見積もりとUserOpの成功を代わりに処理してもらうよう依頼せざるを得なかったことです。

User Operation Overridesにより、チームはどのUserOpsを最も重要視するかを選択し、カスタムオーバーライド値を設定してより高い制御性を持てるようになり、UOが正常にマイニングされる可能性を高めることができます。

## user operation overridesの機能にはどのようなものがありますか？
User Operation Overridesでは、以下についてオーバーライド値を指定できます：

1. `maxFeePerGas`
1. `maxPriorityFeePerGas`
1. `callGasLimit`
1. `preVerificationGas`
1. `verificationGasLimit`
1. `paymasterAndData`

AlchemyのAA SDKを使って開発している方は、あらゆる[Bundler](/bundler)や[Paymaster](/gasless-transactions)でUser Operation Overridesを利用できます！

## user operation overridesはどのように機能しますか？
オーバーライド値は、`SmartAccountProvider`の各ミドルウェアから利用できます。例えば、デフォルトの[`middlewares`](https://www.alchemy.com/docs/wallets/concepts/middleware)（`gasEstimator`や`feeDataGetter`など）は、オーバーライド値が指定されている場合、その値を見積もり値に適用します。

`paymasterAndData`フィールド以外のオーバーライドフィールドは、**絶対値**または**倍率値**のいずれかになります。デフォルトのミドルウェアでは、オーバーライド値が絶対値の場合、単純に見積もり値を上書きします。

オーバーライド値が倍率値の場合、見積もり値は指定された倍率値で_引き上げ_られます。例えば、`maxPriorityFeePerGas`フィールドのオーバーライド値が`\{ multiplier: 1.1 \}`の場合、user operationの見積もり`maxPriorityFeePerGas`に1.1倍、つまり10%の増加が適用されます。

始めるには、[User Operation Overrideのドキュメント](https://www.alchemy.com/docs/wallets/resources/types#useroperationoverrides)をご覧ください！
