> For the complete documentation index, see [llms.txt](https://docs.pancakeswap.finance/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.pancakeswap.finance/japanese/qu-yin/pancakeswap-infinity/hooks.md).

# Hooks

{% hint style="info" %}
hookの開発に関する詳細な技術ドキュメントをお探しの開発者の方は、[こちら](https://developer.pancakeswap.finance/contracts/infinity/guides/develop-a-hook)をご覧ください。
{% endhint %}

HooksはPancakeSwap Infinityの流動性プールの動作を開発者が拡張・カスタマイズできる強力なアドオンです。流動性プールに新機能を追加する「プラグイン」や「ウィジェット」のようなものだと考えてください。

#### 🔍 Hooksとは何ですか？

* Hooksは開発者、プロトコル、またはコミュニティメンバーなど誰でも作成できる外部スマートコントラクトであり、流動性プールにアタッチして動作を拡張または変更します。
* 各プールにアタッチできるhookは1つのみですが、1つのhookが多くのプールに対応できます。
* Hooksは以下のような主要なアクションの前後にカスタムコードを実行できます：
  * プールの初期化
  * スワップ
  * 流動性の追加・削除
  * 寄付<br>

**⛓️ Hooksの仕組み：**

* Hookはプール作成時に選択され、後で変更することはできません。
* Hookコントラクトは特定のアクション（スワップ、流動性追加など）時にトリガーされ、コントラクト内で定義されたロジックをそれらのアクションの前後に実行します。
* 例えば、hookは以下のことができます：
  * CAKEホルダーにスワップ手数料の割引を提供する
  * カスタム手数料を徴収して報酬を配布する
  * StableSwapやTWAMM形式の注文などの新しいスワップロジックを有効にする<br>

#### ⚙️ Hookコールバック

Hooksは10の特定のタイミングでトリガーできます。開発者はどれを実装するかを選択できます：

* beforeInitialize / afterInitialize
* beforeAddLiquidity / afterAddLiquidity
* beforeRemoveLiquidity / afterRemoveLiquidity
* beforeSwap / afterSwap
* beforeDonate / afterDonate<br>

これらにより、hooksを通じて高度にカスタマイズ可能なモジュラーな動作を実装できます。

#### 🔧 2種類のHooks

**タイプ1：承認不要**

これらのhooksは自動的に実行され、ユーザーの許可を必要としません。スワップや流動性変更などのアクションによってトリガーされます。

例：

* 動的手数料：市場のボラティリティに基づいてスワップ手数料を調整する
* 手数料リベート：CAKEを保有しているユーザーや高取引量のユーザーに割引を提供する

フロー例（CAKE手数料割引）：

1. ユーザーがスワップを開始します。
2. Hookが`beforeSwap`hookコールバックを通じてユーザーのCAKE残高を確認します。
3. ユーザーが定義された閾値に達するほど十分なCAKEを保有している場合、プール手数料が50%割引になります。
4. トランザクションの残りは通常通り進行します。<br>

{% hint style="success" %}
これらのhooksは特別なUIや追加の操作を必要としません。メリットは自動的に適用されます。
{% endhint %}

**タイプ2：ユーザーの承認が必要**

これらのhooksは、ユーザーが直接やり取りし、承認を提供する必要があり、ポジションの作成や管理のために資金の転送が必要になる場合があります。

例：

* 指値注文：目標価格に達した時にのみスワップを実行する。
* TWAMM：より良い約定のために大きな注文を小さく分割する。
* アクティブ流動性管理：最適な収益のためにLPポジションを自動管理する。

フロー例（指値注文Hook）：

1. ユーザーがhookコントラクトと直接やり取りします（通常のスワップUIではありません）。
2. 指値価格、トークンペア、数量などの詳細を入力します。
3. Hookが注文を表すレシートトークンを発行します。
4. その後、プール価格が目標に達したとき、hookがafterSwapを使用して注文を実行します。
5. ユーザーはレシートトークンを返却してスワップされたアセットを受け取ることができます。

{% hint style="info" %}
これらのhooksはカスタムUIが必要なことが多く、ユーザーはhookコントラクトが資金を保持することを信頼し承認する必要があります。
{% endhint %}

#### 🚀 活用例とイノベーション

Hooksは無限の可能性を開きます：

* カスタムAMM（例：ステーブルコイン曲線）
* 流動性マイニング報酬
* 自動取引戦略、流動性管理
* オンチェーン指値注文、その他の注文タイプ
* 動的価格設定と手数料調整
* 収益強化LP戦略<br>

Hooksを使用することで、開発者はPancakeSwap Infinityの既存インフラを活用して全く新しいDeFi体験を構築でき、開発のスピードアップとコスト削減が実現できます。


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.pancakeswap.finance/japanese/qu-yin/pancakeswap-infinity/hooks.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
