メインコンテンツへスキップ
ユーザーがSequenceウォレットを利用する際、どのチェーンでもコントラクト単位またはアドレス単位でガス代をスポンサーすることが可能です。これにより、ユーザーのオンボーディング体験がスムーズになり、コンバージョン率も向上します。デフォルトでは、Sequenceは開発者体験向上のためテストネット上のすべてのガス代をスポンサーしていますが、Mainnet移行時にはユーザーのためにガス代をスポンサーすることを推奨します。
現在のBuilderの挙動:本番ネットワークでのBuilderコントラクトデプロイは自己負担のトランザクションとして扱ってください。Gas Sponsorshipにウォレットやコントラクトを追加しても、Builderから新しいコントラクトをデプロイする場合(多くのファクトリーベースのデプロイも含む)、デプロイするウォレットがネットワークガスを支払う必要がある場合があります。Gas Sponsorshipは、すでにデプロイされたコントラクトへのリレートランザクションで最も信頼性があります。ウォレットアドレスのスポンサーは、コントラクトアドレスのスポンサーよりも範囲が広いです。スポンサーされたウォレットは、そのネットワーク上で単一のコントラクトに限らずリレートランザクションをカバーできますが、コントラクトアドレスのスポンサーはより限定的です。
なぜアプリのためにガス代をスポンサーする必要があるのでしょうか?
ユーザーのオンボーディング時にガス代を支払うための暗号資産を用意するのは大きな障壁となります。ガス代を代わりに負担することでこの問題を解決し、最終的にコンバージョン率やリテンションの向上につながります。 ガススポンサーシップは簡単に有効化でき、サポートしている全ネットワークで単一残高から利用可能です。

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

1

プロジェクトの作成または選択

プロジェクトの作成方法はこちらの手順をご覧ください。すでにプロジェクトがある場合は、サインインしてリストから選択してください。
2

ウォレットまたはコントラクトをスポンサーする

まず、ガススポンサーシップ概要ページにアクセスします。次に、特定のウォレットアドレスに対してガスをスポンサーする場合は+ Add Addressをクリックします。
リレイヤーネットワークを選択
または、Add Contract をクリックして、スポンサーしたいスマートコントラクトを選択します。
リレイヤーネットワークを選択
ウォレットスポンサーとコントラクトスポンサーでは範囲が異なります。ウォレットをスポンサーすると、そのウォレットのリレートランザクションが選択したネットワーク上の複数のコントラクトでカバーされます。コントラクトをスポンサーすると、多くのユーザーが恩恵を受けますが、その特定のコントラクトとのやり取りに限られます。
3

支払い方法の追加と設定

次に、スポンサーシップの資金をクレジットカードで追加します。ガススポンサーシップ設定にアクセスし、「Setup Payment Method」を選択してください。支払い方法を追加すると、ガススポンサーシップの設定が更新されます。一度だけチャージすることも、自動チャージを設定して毎月どのくらい補助するか細かく調整することもできます。希望のチャージ額を選択したら、設定を保存してください。残高が5ドル未満になり、スポンサーしているコントラクトがある場合は、自動的にお知らせします。
4

スポンサーシップのテスト

本番リリース前にスポンサー設定をテストすることをおすすめします。コントラクトがすでにデプロイされた後、そのコントラクトを呼び出すか、スポンサーされたウォレットでメインネットのトランザクションを実行してください。まもなくスポンサーされたトランザクションのリストが表示されるはずです。スポンサー設定のテストとしてBuilderのコントラクトデプロイを使用しないでください。デプロイ時のトランザクションでは、デプロイするウォレットがガス代を支払う必要がある場合があります。

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

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

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

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

設定

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

リクエスト

RelayerはJSONボディをあなたのwebhookUrlにPOSTします:
{
  "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[].valuedataは16進数でエンコードされています。1回の判断で複数のバッチ呼び出しをカバーできますので、配列全体にルールを適用してください。

レスポンス

HTTP 200で、以下のJSONボディを正確に返してください:
{ "sponsor": true }
または
{ "sponsor": false }
HTTPステータスコードが重要です。 Relayerは200 OKのみを有効な判断として扱います。それ以外のステータス(201202400500など)は通信エラーとみなし、取引はスポンサーされます(「フェイルオープン」参照)。拒否を400で返したり、承認を201で返したりしないでください。必ず200を返し、判断はsponsorフィールドに記載してください。

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

Relayerはあなたのレスポンスを2秒間待ちます。エンドポイントが遅い、到達できない、200以外のステータスを返す、不正なJSONを返す、またはsponsorフィールドがない場合、Relayerは取引をスポンサーします。 このフェイルオープン動作は意図的です。Webhookの不具合でユーザーのスポンサーシップが静かに停止しないようにしています。取引を拒否するには、HTTP 200で明示的に{"sponsor": false}を返す必要があります。

セキュリティ

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