---
title: "カスタムガストークンとは:トランザクション手数料にERC-20トークンを使う方法"
description: "Custom Gas Tokensを使うと、ユーザーはETHの代わりに独自のERC-20トークンでトランザクション手数料を支払えるようになります。実装方法、経済設計上の考慮点、実際の事例までを解説する完全ガイドです。"
---

# カスタムガストークンとは:トランザクション手数料にERC-20トークンを使う方法

<ImageBlock
  src="https://media.alchemy.com/1750256084-custom-gas-tokens-twitter.jpg"
  alt="Custom Gas Tokensは、ブロックチェーンオペレーターが独自のネイティブトークンを設定できるようにする"
  width={2400}
  height={1350}
  caption="Custom Gas Tokensは、ブロックチェーンオペレーターが独自のネイティブトークンを設定できるようにする"
  priority
/>

歴史的に、汎用ブロックチェーン\(Ethereum、Solanaなど\)は、トランザクション手数料に使用するネイティブトークンを指定してきました。[rollups](/rollups)やapp-chainの台頭により、Custom Gas Tokens \(CGTs\)を使えば、ブロックチェーンオペレーターが独自のトークンを設定できるようになります。

この機能には、トークンの実用性向上、ユーザー体験の改善、エコシステム経済への統制強化といった利点があります。ただし実装にあたっては、技術的アプローチ\(Native vs. [Account Abstraction](/gasless-transactions)\)とそれぞれの経済的トレードオフを慎重に検討する必要があります。

## Custom Gas Tokensとは何か

Custom Gas Tokens \(CGTs\)とは、チェーンの構築者がトランザクション手数料の支払いに使用するために設定する代替トークン\(多くの場合ERC-20\)です。これにより、ブロックチェーンインフラの考え方が変わり、プロトコル開発者はネットワーク手数料をエコシステム固有の通貨で支払う、自己完結型の経済システムを構築できるようになります。

この機能は、[アプリケーション特化型チェーン](/rollups)、[ゲーム](/gaming)エコシステム、シームレスなユーザー体験を実現したい[DeFiプロトコル](/defi)にとって特に有効です。

### チェーンオペレーターとアプリケーション開発者にとっての主なメリット

<ImageBlock
  src="https://media.alchemy.com/1750257010-custom-gas-tokens-twitter-1.jpg"
  alt="CGTsはチェーン、アプリ、ユーザーによりよい体験をもたらす"
  width={2880}
  height={1620}
  caption="CGTsはチェーン、アプリ、ユーザーによりよい体験をもたらす"
/>

- **トークンの実用性向上:** トークンを投機や governance 資産から、必須のインフラへと変えます。すべてのトランザクションでトークンが必要になるため、継続的かつ本質的な需要が生まれ、投機ではなく根本的な実用性を通じた価値蓄積が進みます。
- **経済的価値の内部化:** トランザクション手数料はエコシステム内にとどまり、ETHや他の外部トークンへの価値流出を防げます。これにより、ネットワーク活動によって生まれる価値をコミュニティが直接得られる、より持続可能な経済モデルが実現します。
- **統一されたブランド体験:** ユーザーがネイティブトークンだけで完結してやり取りできるようにすることで、エコシステムのアイデンティティを強化します。これはゲームチェーン、ソーシャルプラットフォーム、ブランドの一体感とユーザー体験の差別化が重要となる専門的なDeFiエコシステムにとって特に有効です。
- ユーザー体験の改善: ユーザーが複数のトークンを常に管理しなければならない「gas tokenの入れ替え」をなくします。Custom Gas Tokensを使えば、ユーザーはエコシステム内でのすべての用途に対して1つのトークンだけを保有すればよく、オンボーディングの摩擦が大幅に減ります。

### 実装アプローチ: NativeとAccount Abstractionの比較

<EmbeddedTable
  table={{
    columns: [
      { key: "1", width: 200, title: "Aspect", dataType: "object" },
      { key: "2", width: 200, title: "Native Implementation", dataType: "object" },
      { key: "3", width: 200, title: "Account Abstraction", dataType: "object" },
    ],
    data: [
      {
        "1": { title: "<p>Implementation Level</p>", tooltip: "", icon: "" },
        "2": { title: "<p>Protocol (EVM)</p>", tooltip: "", icon: "" },
        "3": { title: "<p>Application (Smart Contract)</p>", tooltip: "", icon: "" },
        id: 0,
      },
      {
        "1": { title: "<p>Setup Complexity</p>", tooltip: "", icon: "" },
        "2": { title: "<p>Moderate</p>", tooltip: "", icon: "" },
        "3": { title: "<p>High</p>", tooltip: "", icon: "" },
        id: 1,
      },
      {
        "1": { title: "<p>Flexibility</p>", tooltip: "", icon: "" },
        "2": { title: "<p>None- immutable post-genesis</p>", tooltip: "", icon: "" },
        "3": { title: "<p>Dynamic - Modifiable Runtime</p>", tooltip: "", icon: "" },
        id: 2,
      },
      {
        "1": { title: "<p>Gas Overhead</p>", tooltip: "", icon: "" },
        "2": { title: "<p>Minimal</p>", tooltip: "", icon: "" },
        "3": { title: "<p>-21,000 additional gas</p>", tooltip: "", icon: "" },
        id: 3,
      },
      {
        "1": { title: "<p>Developer Experience</p>", tooltip: "", icon: "" },
        "2": { title: "<p>Standard tooling compatible</p>", tooltip: "", icon: "" },
        "3": { title: "<p>Requires AA-specific SDKs</p>", tooltip: "", icon: "" },
        id: 4,
      },
      {
        "1": { title: "<p>Token Switching</p>", tooltip: "", icon: "" },
        "2": { title: "<p>Requires chain migration</p>", tooltip: "", icon: "" },
        "3": { title: "<p>Runtime configurable</p>", tooltip: "", icon: "" },
        id: 5,
      },
    ],
  }}
/>

#### Native実装

Nativeアプローチでは、チェーンをgenesis時点で設定し、プロトコルレベルですべてのgas支払いに特定のERC-20トークンを使用します。

**対応チェーン:**

- ✅ [Arbitrum Orbit](https://www.alchemy.com/dapps/arbitrum-orbit) \(動的な価格oracleを含む完全対応\)
- ✅ [zkSync Era](https://www.alchemy.com/overviews/how-to-start-developing-on-zksync-in-5-steps) \(継続的に対応\)
- ✅ Avalanche L1s
- ❌ [OP Stack](https://www.alchemy.com/dapps/op-stack) \(2024年5月時点で非推奨\)

**主な特徴:**

- すべてのトランザクションで指定トークンの使用が必須
- 既存の開発者ツールおよびインフラと直接統合可能
- genesisデプロイ後は設定が不変となる
- EVMレベルで決定論的なgas会計を提供

**留意点:**

- 複数トークンへの対応やデプロイ後のトークン変更に柔軟性がない
- ユーザーは指定トークンを取得する必要があり、オンボーディングが複雑化する可能性がある
- プロトコルレベルで予測可能なgasコストとなり、トランザクションフローを簡素化する
- ネイティブETHや他のトークンを前提とするアプリケーションとの互換性を制限する場合がある
- チェーン全体での指定トークンの普及に依存し、エコシステムの多様性に影響する

#### Account Abstraction実装

Account Abstractionアプローチでは、[ERC-4337](/overviews/what-is-account-abstraction)標準を活用し、[paymaster](/overviews/what-is-a-paymaster)アーキテクチャを通じて任意のERC-20トークンでgasを支払えるようにします。チェーンのコアプロトコルを変更する必要はありません。

**対応チェーン:**

- ✅ ERC-4337準拠のあらゆるチェーンと互換性あり
- ✅ OP Stack非推奨後の業界動向と一致
- ❌ paymasterインフラが必要で、チェーンによって異なる場合がある
- ❌ プロトコルレベルでは強制されないため、普遍的な普及は限定的

**主な特徴:**

- 複数トークンへの対応やプロトコルアップグレードなしでのトークン変更において最大限の柔軟性を提供
- アプリケーションごとに異なるgasトークンを指定できる、きめ細かな制御が可能
- ERC-20トークンを受け入れ、内部で変換処理を行うことで売り圧力を回避
- ERC-4337標準に沿った、将来性のあるアーキテクチャを提供

**留意点:**

- 追加インフラ\(paymaster、bundler、entry point\)により複雑性が増す
- 開発者およびユーザーにとってgas見積もりとトランザクションフローが複雑化する
- トークンブリッジが不要になり、多様なトークン利用時のユーザー体験が簡素化される
- トークン利用がアプリケーションレベルで強制されるため、普及に一貫性を欠くリスクがある
- 下流のツール\(block explorer、indexerなど\)に対してカスタム設定が必要

## 経済面での考慮事項

### 親チェーンの手数料問題

L2がCustom Gas Tokensを利用する場合でも、Ethereum \(L1\)上でのデータ可用性コストにはETHが必要です。同様に、L3はL2のネイティブトークンを必要とします。これにより、重要な経済的力学が生まれます。

1. **収集フェーズ**: チェーンがユーザーからのgas手数料としてCustomTokenを蓄積する
1. **変換の必要性**: チェーンはデータ投稿コストのためにETH/親トークンを必要とする
1. **市場での取引**: チェーンはCustomToken → 親トークンのスワップを実行する必要がある
1. **価格への影響**: CustomTokenに恒常的な売り圧力が生じる

### トークン経済の管理

チェーンオペレーターは、以下を考慮した高度な経済モデルを実装する必要があります。

- **収集予測**: gasトークンの蓄積率を予測する統計モデル
- **為替レートの変動性**: トークン価格変動に対するヘッジ戦略
- **流動性要件**: 変換に十分な市場の厚みを確保すること
- **準備金管理**: 価格ショックに備えた運用バッファの維持

**リスクシナリオ**: トークン価格が50%下落すると、収集されたgas手数料が親チェーンのコストを賄うのに不十分になり、ブロックごとに累積する運用赤字が発生する可能性があります。

## 技術要件と仕様

### 一般的なERC-20トークン準拠要件

トークン実装は通常、以下の技術的制約を満たす必要があります。

- 標準的なERC-20インターフェースの実装
- 小数点以下が正確に18桁\(コントラクトレベルで強制\)
- 非リベース型のトークン供給メカニズム
- 転送手数料や税の仕組みがないこと
- コールバックフックがないこと\(ERC-777機能なし\)
- `name\(\)`と`symbol\(\)`の戻り値が32バイト以下であること
- 転送用の単一のエントリーポイント\(アップグレード可能なproxyパターンなし\)

### コアプロトコルインターフェース

<CodeSnippet language="solidity" code={`solidity
interface IGasToken {
/// @notice Returns the gas token address and decimals/// @return token The ERC20 token address (or 0xEeee...eEEeE for ETH)/// @return decimals Always 18 for valid gas tokens
    function gasPayingToken() external view returns (address token, uint8 decimals);

/// @notice Returns the gas token name
function gasPayingTokenName() external view returns (string memory);

/// @notice Returns the gas token symbol
function gasPayingTokenSymbol() external view returns (string memory);

/// @notice Indicates if a custom gas token is active
function isCustomGasToken() external view returns (bool);
}`} />
ETHを使用するチェーンの場合、`gasPayingToken\(\)`は以下を返す必要があります:`\(0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE, 18\)`

### Account Abstractionのトランザクションフロー

<EmbeddedTable
  table={{
    columns: [
      { key: "1", width: 200, title: "Aspect", dataType: "object" },
      { key: "2", width: 200, title: "Native Implementation", dataType: "object" },
      { key: "3", width: 200, title: "Account Abstraction", dataType: "object" },
    ],
    data: [
      {
        "1": { title: "<p>Implementation Level</p>", tooltip: "", icon: "" },
        "2": { title: "<p>Protocol (EVM)</p>", tooltip: "", icon: "" },
        "3": { title: "<p>Application (Smart Contract)</p>", tooltip: "", icon: "" },
        id: 0,
      },
      {
        "1": { title: "<p>Setup Complexity</p>", tooltip: "", icon: "" },
        "2": { title: "<p>Moderate</p>", tooltip: "", icon: "" },
        "3": { title: "<p>High</p>", tooltip: "", icon: "" },
        id: 1,
      },
      {
        "1": { title: "<p>Flexibility</p>", tooltip: "", icon: "" },
        "2": { title: "<p>None- immutable post-genesis</p>", tooltip: "", icon: "" },
        "3": { title: "<p>Dynamic - Modifiable Runtime</p>", tooltip: "", icon: "" },
        id: 2,
      },
      {
        "1": { title: "<p>Gas Overhead</p>", tooltip: "", icon: "" },
        "2": { title: "<p>Minimal</p>", tooltip: "", icon: "" },
        "3": { title: "<p>~21,000 additional gas</p>", tooltip: "", icon: "" },
        id: 3,
      },
      {
        "1": { title: "<p>Developer Experience</p>", tooltip: "", icon: "" },
        "2": { title: "<p>Standard tooling compatible</p>", tooltip: "", icon: "" },
        "3": { title: "<p>Requires AA-specific SDKs</p>", tooltip: "", icon: "" },
        id: 4,
      },
      {
        "1": { title: "<p>Token Switching</p>", tooltip: "", icon: "" },
        "2": { title: "<p>Requires chain migration</p>", tooltip: "", icon: "" },
        "3": { title: "<p>Runtime configurable</p>", tooltip: "", icon: "" },
        id: 5,
      },
    ],
  }}
/>

AAのgas支払いフローは、以下の手順で動作します。

1. **User Operationの送信**: ユーザーがCustom Tokenでのgas支払い意図を含むoperationに署名する
1. **Paymasterによる検証**: トークンの受け入れ可否を検証し、必要な数量を計算する
1. **トークンの回収**: paymasterが`transferFrom`を通じてユーザーからcustom tokenを引き出す
1. **gasの支払い**: paymasterが実際の実行コスト分のETHをbundlerに支払う
1. **決済**: paymasterがトークン → ETHの変換を非同期で処理する

このアーキテクチャは、セキュリティ保証を維持しながら、gasの複雑さをエンドユーザーから隠蔽します。

## 本番実装とケーススタディ

### 導入に成功した事例

[**Degen Chain**](https://www.degen.tips/) \(Base上のArbitrum Orbit L3\)

- 最初の1週間で1,400万件超のトランザクション
- 77万を超えるアクティブアドレス
- ブリッジされた総額6,000万ドル超
- ネイティブなコミュニティトークンによる強力なproduct-market fitを実証

[**DeFi Kingdoms**](https://defikingdoms.com/) \(Avalanche Subnet\)

- CRYSTALをCustom Gas Tokenとして実装
- 新しいstakingベースの分配メカニズム
- 経済的な移行を通じてユーザーエンゲージメントを維持

### インフラプロバイダーにとっての考慮事項

RaaSプロバイダーやインフラチームは、Custom Gas Tokensを活用して、トークンの自動検証、価格oracleとの統合、流動性管理ソリューションなど、差別化されたサービスを提供できます。これにより、rollupエコシステムにおける付加価値サービスの新たな機会が生まれます。

### Optimismの非推奨化から学ぶこと

2024年5月にOptimismがネイティブなCustom Gas Tokenを非推奨としたことから、重要な知見が得られます。

- L1 portalコントラクトの変更に伴うセキュリティ上の懸念
- プロトコルアップグレードに対するアーキテクチャの柔軟性の欠如
- Account Abstractionパターンによる優れたユーザー体験

## 移行とアップグレードにおける考慮事項

<CalloutBlock>

⚠️ **重要な警告**: デプロイ後にgasトークンを移行または変更することには、重大な技術的課題が伴います。

</CalloutBlock>

移行の複雑さには以下が含まれます。

1. state移行を伴うbridgeコントラクトのアップグレード
1. 資金照合のためのチェーン全体の一時停止
1. ユーザー残高のマッピングと検証
1. エコシステム全体で連携した移行
1. 移行中に資金が失われるリスクがゼロではないこと

**ベストプラクティス**: 徹底した経済モデリングを行い、genesis時点で実装アーキテクチャを慎重に選択してください。判断に迷う場合は、選択の余地を残すためAccount Abstractionを選ぶことをお勧めします。

## 実装の判断基準

**採用すべき場合:**

- 本質的な実用性と流動性を備えた強力なトークンを持っている
- ユーザーがすでにそのトークンを保有し、積極的に利用している
- チェーンの経済に対して完全な統制を持ちたい
- クローズドなエコシステム\(ゲーム、ソーシャルなど\)を構築している
- 流動性管理のためのリソースがある

**見送るべき場合:**

- 他のチェーンとの最大限の相互運用性が必要
- トークンの価格変動が激しい、または流動性が低い
- 「最大限にETHに整合させたい」場合
- 運用の複雑さに対応するリソースがない
- 管轄地域で規制上の懸念がある

## 業界の動向と今後の見通し

エコシステムは、Custom Gas Tokenインフラへの明確な流れを示しています。

- **Optimism**: Native実装を完全に非推奨化
- **Arbitrum**: 両対応を維持しつつ、AAの採用が増加
- **zkSync**: Native対応を維持しながら、AAのロードマップも進行
- **Avalanche**: 両方に対応するプロトコル非依存のアプローチ
- **業界標準**: ERC-4337の採用がL2全体で加速

## 技術的な要点

1. **経済的な持続可能性には高度な管理が必要**: 適切な流動性の確保、価格ヘッジ、準備金管理は、運用を成功させる上で欠かせない
1. **ユーザー体験が普及を左右する**: gasトークンによる摩擦をなくすことで、コンバージョン率を桁違いに改善できる可能性がある
1. **選択の余地には定量化可能な価値がある**: デプロイ後にgasトークン戦略を変更できる能力は、AAの追加的な複雑さを正当化する

## よくある質問

**Q: Custom Gas Token \(CGT\)とは正確には何ですか?**

A: Custom Gas Tokenは、ブロックチェーン上のトランザクション手数料の支払いに任意のERC-20トークンを使用できるようにするもので、プロトコルレイヤーまたはアプリケーションレイヤーのいずれかで、ETHやチェーンのネイティブトークンの代わりに使用されます。

**Q: gasトークンはデプロイ後に変更できますか?**

A: Native実装はgenesis後は不変です。Account Abstraction実装は、プロトコルの変更なしにruntimeでの変更に対応しています。

**Q: 現在どのチェーンがCustom Gas Tokensに対応していますか?**

A: Arbitrum Orbit、zkSync Era、Avalanche L1sがnativeで対応しています。すべてのEVMチェーンは、ERC-4337を通じたAAベースの実装に対応しています。

**Q: 運用コストはどの程度ですか?**

A: Native実装では、流動性管理、価格スリッページ、運用バッファのために10〜20%程度のオーバーヘッドを見込む必要があります。AAはトランザクションあたり約21,000のgasを追加で消費しますが、流動性管理のオーバーヘッドはなくなります。

## 結論

Custom Gas Tokensは、ブロックチェーンアーキテクチャにおける基本的なプリミティブです。エコシステムの経済、ユーザーの普及、長期的な持続可能性に影響を与える戦略的な選択と言えます。成功のためには、技術的な実装の詳細と経済的な影響の両方を理解する必要があります。

ブロックチェーンインフラが成熟するにつれ、Custom Gas Tokensは差別化要因から標準機能へと移行していくでしょう。勝者となるのは、ユーザー体験を最優先に据えた、考え抜かれたトークン経済システムを設計できる者です。ブロックチェーンの未来は、Custom Gas Tokensによって実現される、独自の金融政策を持つエコシステムへとますます向かっています。

[Alchemy Rollups](/rollups)で[Custom Gas Tokenをデプロイする](https://www.alchemy.com/docs/reference/customizations-integrations#1-rollup-configuration)か、いつでも[チームにお問い合わせください](/contact-sales-rollups)。ぜひサポートさせてください。
