> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sequence.xyz/llms.txt
> Use this file to discover all available pages before exploring further.

# ガススポンサーシップ

> Sequence Builderは、プロジェクトオーナーがWeb3アプリのユーザーのためにガス代を負担できるGas Sponsorship機能を提供しています。トランザクション手数料をカバーすることで、ユーザーは手数料のために暗号資産を用意することなく、シームレスなゲーム体験を楽しめます。

ユーザーがSequenceウォレットを利用する際、どのチェーンでもコントラクト単位またはアドレス単位でガス代をスポンサーすることが可能です。これにより、ユーザーのオンボーディング体験がスムーズになり、コンバージョン率も向上します。デフォルトでは、Sequenceは開発者体験向上のためテストネット上のすべてのガス代をスポンサーしていますが、Mainnet移行時にはユーザーのためにガス代をスポンサーすることを推奨します。

<Warning>
  現在のBuilderの挙動：

  本番ネットワークでのBuilderコントラクトデプロイは自己負担のトランザクションとして扱ってください。Gas Sponsorshipにウォレットやコントラクトを追加しても、Builderから新しいコントラクトをデプロイする場合（多くのファクトリーベースのデプロイも含む）、デプロイするウォレットがネットワークガスを支払う必要がある場合があります。

  Gas Sponsorshipは、すでにデプロイされたコントラクトへのリレートランザクションで最も信頼性があります。

  ウォレットアドレスのスポンサーは、コントラクトアドレスのスポンサーよりも範囲が広いです。スポンサーされたウォレットは、そのネットワーク上で単一のコントラクトに限らずリレートランザクションをカバーできますが、コントラクトアドレスのスポンサーはより限定的です。
</Warning>

##### なぜアプリのためにガス代をスポンサーする必要があるのでしょうか？

ユーザーのオンボーディング時にガス代を支払うための暗号資産を用意するのは大きな障壁となります。ガス代を代わりに負担することでこの問題を解決し、最終的にコンバージョン率やリテンションの向上につながります。

ガススポンサーシップは簡単に有効化でき、サポートしている全ネットワークで単一残高から利用可能です。

## ガススポンサーシップの有効化方法

<Steps>
  <Step title="プロジェクトの作成または選択">
    プロジェクトの作成方法は[こちらの手順](/solutions/builder/project-management#watch-a-project-be-created-in-the-builder)をご覧ください。

    すでにプロジェクトがある場合は、サインインしてリストから選択してください。
  </Step>

  <Step title="ウォレットまたはコントラクトをスポンサーする">
    まず、[ガススポンサーシップ概要ページ](https://sequence.build/project/default/relayer?view=overview)にアクセスします。

    次に、特定のウォレットアドレスに対してガスをスポンサーする場合は`+ Add Address`をクリックします。

    <Frame>
      <img src="https://mintcdn.com/sequence-0fb8d9e6/Vi-2x7Y0RDGd2c0N/images/builder/builder_gas_sponsoring_add_address.png?fit=max&auto=format&n=Vi-2x7Y0RDGd2c0N&q=85&s=6df27986ac1f40e6bab43fc8e4d3f54e" alt="リレイヤーネットワークを選択" width="2508" height="1196" data-path="images/builder/builder_gas_sponsoring_add_address.png" />
    </Frame>

    または、`Add Contract` をクリックして、スポンサーしたいスマートコントラクトを選択します。

    <Frame>
      <img src="https://mintcdn.com/sequence-0fb8d9e6/Vi-2x7Y0RDGd2c0N/images/builder/builder_gas_sponsoring_add_contract.png?fit=max&auto=format&n=Vi-2x7Y0RDGd2c0N&q=85&s=214996149f521b4f70fe21f74c13d51c" alt="リレイヤーネットワークを選択" width="2508" height="1196" data-path="images/builder/builder_gas_sponsoring_add_contract.png" />
    </Frame>

    ウォレットスポンサーとコントラクトスポンサーでは範囲が異なります。ウォレットをスポンサーすると、そのウォレットのリレートランザクションが選択したネットワーク上の複数のコントラクトでカバーされます。コントラクトをスポンサーすると、多くのユーザーが恩恵を受けますが、その特定のコントラクトとのやり取りに限られます。
  </Step>

  <Step title="支払い方法の追加と設定">
    次に、スポンサーシップの資金をクレジットカードで追加します。[ガススポンサーシップ設定](https://sequence.build/project/default/relayer?view=gas-tank)にアクセスし、「Setup Payment Method」を選択してください。

    支払い方法を追加すると、ガススポンサーシップの設定が更新されます。

    一度だけチャージすることも、自動チャージを設定して毎月どのくらい補助するか細かく調整することもできます。希望のチャージ額を選択したら、設定を保存してください。

    残高が5ドル未満になり、スポンサーしているコントラクトがある場合は、自動的にお知らせします。
  </Step>

  <Step title="スポンサーシップのテスト">
    本番リリース前にスポンサー設定をテストすることをおすすめします。コントラクトがすでにデプロイされた後、そのコントラクトを呼び出すか、スポンサーされたウォレットでメインネットのトランザクションを実行してください。まもなくスポンサーされたトランザクションのリストが表示されるはずです。

    スポンサー設定のテストとしてBuilderのコントラクトデプロイを使用しないでください。デプロイ時のトランザクションでは、デプロイするウォレットがガス代を支払う必要がある場合があります。
  </Step>
</Steps>

## エコシステム全体のガススポンサーシップ

また、エコシステム全体のトランザクションをスポンサーする機能も提供しています。これは、リレイヤーを通じて複数の署名者をチェーンレベルで調整する仕組みです。これにより、エコシステム上で開発する開発者やSequenceウォレットのユーザーが、最高のオンボーディングとUXを体験できます。ご希望の場合は、[こちらからお問い合わせ](https://support.sequence.xyz)ください。

## Webhookによる条件付きスポンサーシップ

取引ごとにスポンサーシップの判断が必要な場合（例：ウォレットごとの利用上限、KYC制限、ユーザー階層ルールなど）、任意のガススポンサーにWebhookを設定できます。スポンサー付き取引が届くと、Relayerが取引詳細をあなたのエンドポイントにPOSTし、あなたが承認した場合のみスポンサーします。

### 設定

ガススポンサーを作成または更新する際、以下を設定してください：

* `webhookUrl` — あなたのHTTPSエンドポイント。HTTPSは必須です。
* `webhookAuthToken` *(オプション、推奨)* — 32文字以上の共有シークレット。Relayerは毎回 `Authorization: Bearer <token>` として送信します。トークンがない場合、URLを知っている誰でも呼び出せてしまいます。

### リクエスト

RelayerはJSONボディをあなたの`webhookUrl`にPOSTします：

```json theme={null}
{
  "chainId": 137,
  "projectId": 12345,
  "gasSponsorId": 678,
  "walletAddress": "0x70236ffbAd7b70c2C65928c7Ca413AEa639FA0dE",
  "transactions": [
    { "to": "0xA0b8...", "value": "0x0", "data": "0xa9059cbb..." }
  ]
}
```

毎回送信されるヘッダー：

* `Content-Type: application/json`
* `Authorization: Bearer <token>` — `webhookAuthToken`を設定した場合のみ
* `X-Sequence-Request-Id: <uuid>` — 呼び出しごとに一意の識別子。ログや重複排除に利用できます。

`transactions[].value`と`data`は16進数でエンコードされています。1回の判断で複数のバッチ呼び出しをカバーできますので、配列全体にルールを適用してください。

### レスポンス

**HTTP 200**で、以下のJSONボディを正確に返してください：

```json theme={null}
{ "sponsor": true }
```

または

```json theme={null}
{ "sponsor": false }
```

<Warning>
  **HTTPステータスコードが重要です。** Relayerは`200 OK`のみを有効な判断として扱います。それ以外のステータス（`201`、`202`、`400`、`500`など）は通信エラーとみなし、取引はスポンサーされます（「フェイルオープン」参照）。

  拒否を`400`で返したり、承認を`201`で返したりしないでください。必ず`200`を返し、判断は`sponsor`フィールドに記載してください。
</Warning>

### タイムアウトとフェイルオープン動作

Relayerはあなたのレスポンスを**2秒間**待ちます。エンドポイントが遅い、到達できない、200以外のステータスを返す、不正なJSONを返す、または`sponsor`フィールドがない場合、Relayerは取引をスポンサーします。

このフェイルオープン動作は意図的です。Webhookの不具合でユーザーのスポンサーシップが静かに停止しないようにしています。取引を拒否するには、HTTP 200で明示的に`{"sponsor": false}`を返す必要があります。

### セキュリティ

* HTTPSは必須です。Relayerはリダイレクトを追跡しないため、`http://`へリダイレクトするHTTPSエンドポイントは拒否されます。
* エンドポイントで他の認証（IP許可リストやエッジプロキシなど）を強制していない限り、`webhookAuthToken`を設定してください。
* トークンは`Authorization`ヘッダーにそのまま送信されます。このヘッダーはログに記録しないでください。
* トークンをローテーションするには、新しい値で`UpdateGasSponsor`を呼び出してください。ゲートを完全に停止するには、`webhookUrl`を空にしてください。
