Superfluid(スーパーフルイド)は、Ethereum系のチェーン上でトークンを1秒ごとに送り続ける「マネーストリーミング」のプロトコルです。英単語のsuperfluidは物理学の「超流動」を指しますが、本記事で扱うのはSuperfluid Foundationが維持しているスマートコントラクト群のほうです。公式サイトの表示では、2026年11月8日時点で累計17億4,703万ドル超が131万人超の受取人へ流れています。
この記事は同日の公式ドキュメント・npm・オンチェーンの設定値をもとに仕組みを整理し、Baseメインネットのフォーク上で公式SDKを動かして、残高切れのときにバッファがどこへ行くかを測った結果を載せます。後半では2026年の運営体制の変化とセキュリティ事案を取り上げました。
まとめ:Superfluidの要点(2026年11月時点)
- ERC-20を拡張したSuper Tokenの残高を、送金者から受取人へ毎秒流し続ける。残高の継続的な増減にはガス代がかからず、開始・変更・停止の各操作にはガス代が必要。Baseフォークで測った開始時の消費量は約35.1万gas
- 流量の単位はwei/秒。開始時に原則として流量4時間分を切り上げた額がバッファとしてロックされ、Ethereumではトークン別の最低額も適用される。自分で止めれば戻るが、残高を切らして閉じられると1 weiも戻らない
- 全11メインネットのオンチェーン設定は清算期間14,400秒・Patrician Period 1,800秒。Ethereumだけトークンごとの最低デポジットがある
- 2026年は3つの変化があった。ETHxのラップ経路の停止(4〜5月)、CeloでのSuper App悪用(9月)、共同創業者の離脱(10月)。プロトコルはFoundationが維持すると表明している
- SUPは2025年11月17日に譲渡可能になった。報酬はSeason 7(上限1,000万SUP)まで続いている
- 代表的な競合だったSablierは2026年7月13日にメンテナンスモードへ移行。日本の雇用契約に基づく賃金は通貨払いが原則で、ウォレットへのトークン送金は法定の例外に含まれない(労働基準法24条・同規則7条の2)
Superfluidの仕組み:Super Token・Money Streaming・Distribution Pools
機能はすべてSuper Tokenの上に載っています。通常のERC-20に「アグリーメント」と呼ばれる送金ロジックを足したもので、どのアグリーメントを使うかで送金の形が決まります。
Super Tokenの種類とラップの手順
公式のSuper Tokens概要はWrapperとPureの2形態で説明し、用語集はETHなどを包むNative Assetを分けて3種類としています。
| 種類 | 元になる資産 | 例 |
|---|---|---|
| ERC-20 Wrapper | 既存のERC-20 | USDC → USDCx |
| Native Asset | チェーンのネイティブ資産 | ETH → ETHx |
| Pure | なし(最初からSuper Token) | SUP |
Wrapper型ではERC-20を預けると同量のSuper Tokenが発行され(wrap)、焼却すると元のトークンが戻ります(unwrap)。balanceOf()は静的な残高にストリームの増減を足したリアルタイム残高を返すので、ストリーム中は呼ぶたびに値が変わります。
Money Streaming(旧CFA)の流量計算
一対一のストリームはMoney Streaming(旧Constant Flow Agreement)が担います。同じ送金者から同じ受取人へは、1トークンにつき1本しか張れません。残高は毎秒書き換わるわけではなく、最後に流量を変えた時点の残高に「純流量×経過秒数」を足して読み出すたびに計算しています。このため、送金の継続自体に毎秒のトランザクションは必要ありません。
月額から流量へは、1か月を365÷12日(2,628,000秒)として割ります。SDKのTIME_UNIT.monthも同じ値です。30日で割るとダッシュボードの表示額と少しずれます。
Distribution Pools(GDA)の即時分配とストリーミング分配
一対多・多対多の分配を担うのがDistribution Pools(General Distribution Agreement)です。管理者が各メンバーへユニットを割り当て、ユニット数に比例して配る仕組みで、公式の説明どおり1回で配る即時分配とプールへ流し続けるストリーミング分配の両方に対応します。旧方式のInstant Distribution Agreementは非推奨化が進んでいるので、新規の実装で選ぶ理由はありません。
残高切れで起きること:バッファの行き先を3段階で実測
Superfluidは送金者のウォレット残高から直接流すため、総額を前もって預ける必要がありません。その代わり、残高が尽きたときに受取人を守るのがバッファと清算です。「残高が尽きれば止まるだけ」という理解では、送金者はバッファを失います。
流量4時間分のバッファとEthereumの最低デポジット
2026年11月8日に、全11メインネットのガバナンスコントラクトのgetPPPConfigを呼びました。清算期間は14,400秒(4時間)、Patrician Periodは1,800秒(30分)でいずれも一致します。公式の清算ドキュメントの値と同じで、デプロイスクリプトの既定値2,880秒とは異なります。
ネイティブ資産のラッパーを持つ10本で、CFAv1ForwarderのgetBufferAmountByFlowrateに流量1×1015 wei/秒を渡すと、返値はすべて14,400,000,001,650,458,624 weiでした。14,400秒分に、預託額を232 wei単位で切り上げた端数が乗った値です。
Ethereumだけはトークンごとに最低デポジットがあります。極小の流量(1,000 wei/秒)を渡すと、返値はETHx 0.001、USDCx 2、DAIx 69でした。2026年11月8日にEthereum上で照会した値は、公式ドキュメントの表にあるETHx 0.042、USDCx 69とは異なり、DAIx 69だけが一致しました。見積もりは表ではなくこの関数で取ってください。
Patrician・Plebs・Insolventごとのバッファの行き先
BaseのフォークでETHxを0.002ラップし、月額0.3 ETHx相当(114,155,251,141 wei/秒、バッファ0.00164384 ETHx)で流しました。残高は3,119秒でゼロになります。そこから時間を進めて第三者に閉じさせた結果が次の表で、単位はETHxです。
| 残高ゼロからの経過 | 状態 | 閉じた人の受取 | PICのステーク増減 | 送金者に戻る額 |
|---|---|---|---|---|
| 600秒 | Critical(Patrician Period) | 0 | +0.00157466 | 0 |
| 2,400秒 | Critical(Plebs Period) | +0.00136963 | 0 | 0 |
| 20,000秒 | Insolvent | +0.00164384 | -0.00228345 | 0 |
閉じられるまで受取人への支払いはバッファから続きます。残りのバッファは、最初の30分ならトークンごとに1人いるPIC(Patrician in Charge)のステークへ、以降は閉じた人へ渡ります。バッファを使い切ったInsolventでは、閉じた人にバッファ相当額が支払われ、原資と不足分はPICのステークから引かれました。
送金者の残高は3回とも0です。止め方で差がつきます。setFlowrateに0を渡して自分で止めた通常のケースでは、バッファが送金者へ戻り、残高は0.086849から0.090137 ETHxに増えました。USDCのまま資金を持つなら、公式のAuto-Wrapが流量のおおむね2日分を下回った時点で約7日分をラップしてくれます。
第三者が清算するときの呼び先はHost
ストリームの監視と閉鎖を担うノードがSentinelで、運用に許可は要りません。PICの座はTOGA(Transparent Ongoing Auction)で、より多くステークした参加者に移ります。自前で書くときの落とし穴は呼び先です。第三者がCFAv1ForwarderのdeleteFlowを呼ぶと、対象がCriticalでもCFA_ACL_OPERATOR_NO_DELETE_PERMISSIONSで失敗しました。次のようにHostのcallAgreementへCFA本体の呼び出しを渡すと通ります。
const data = encodeFunctionData({
abi: parseAbi(['function deleteFlow(address token,address sender,address receiver,bytes ctx) returns (bytes)']),
functionName: 'deleteFlow',
args: [ETHX, sender, receiver, '0x'],
});
await liquidator.writeContract({
address: HOST, // Base: 0x4C073B3baB6d8826b8C5b229f3cfdC1eC6E47E74
abi: parseAbi(['function callAgreement(address agreementClass,bytes callData,bytes userData) returns (bytes)']),
functionName: 'callAgreement',
args: [CFA, data, '0x'], // Base の CFA: 0x19ba78B9cDB05A877718841c574325fdB53601bb
});
実測のcallAgreementのガスは34.6万〜37.0万でした。
対応ネットワークとコントラクトアドレス(11メインネット)
公式のネットワーク定義@superfluid-finance/metadata 1.6.6(2026年11月3日公開)に収録されたメインネットは次の11本です。
| ネットワーク | chainId | ネイティブ資産のSuper Token |
|---|---|---|
| Ethereum | 1 | ETHx |
| Base | 8453 | ETHx |
| Optimism | 10 | ETHx |
| Arbitrum One | 42161 | ETHx |
| Scroll | 534352 | ETHx |
| Polygon | 137 | MATICx(中身はPOL) |
| Gnosis Chain | 100 | xDAIx |
| Avalanche C | 43114 | AVAXx |
| BNB Smart Chain | 56 | BNBx |
| Celo | 42220 | CELOx |
| Arc | 5042 | なし(USDCがガス代) |
Arcは1.6.5で追加された最新のネットワークです。ガス代がUSDCである事情はArc(Circle)とは?USDCをガス代にするL1の仕組みとメインネットの実測値【2026年10月】で扱っています。1.6.6ではGnosis・Polygon・Optimism・Arbitrum One・Avalanche C・BNB Smart ChainのTOGAが再デプロイされアドレスが変わったので、Sentinelを運用している場合は更新が要ります。
フロントエンドから使うforwarderは全チェーン共通です。
- CFAv1Forwarder(一対一のストリーム):
0xcfA132E353cB4E398080B9700609bb008eceB125 - GDAv1Forwarder(Distribution Pools):
0x6DA13Bde224A05a288748d857b9e7DDEffd1dE08
Super Tokenのアドレスはチェーンごとに異なります。どのチェーンを選ぶかで手数料の構造も変わるため、比較はブロックチェーンのロールアップとは?レイヤー2の仕組み・種類と手数料・出金日数の比較【2026年版】を参照してください。
公式SDKでストリームを作る手順(Baseのフォークで実行確認)
SDKの公式ドキュメントが案内するのは@sfpro/sdk(npmのlatestは0.3.2)で、ストリームの作成・更新・停止にはCFAv1ForwarderのsetFlowrateを使います。
クイックスタートのcalculateFlowrateは未エクスポート
ドキュメントのクイックスタートはcalculateFlowrateをimportしていますが、0.3.2の@sfpro/sdk/utilがエクスポートするのはcalculateFlowratePerSecondとcalculateCurrentBalanceだけです。写すとimportの段階で失敗するので、次のコードのとおりに置き換えてください。
ETHをラップしてストリームを開始するコード
npm install @sfpro/[email protected] [email protected] [email protected]のあと、次のスクリプトをstream.mjsとして保存してください。Node.js 18以上を用意し、PRIVATE_KEYに送金者の秘密鍵、RPC_URLに接続先、RECEIVERに受取人アドレスを設定して、node stream.mjsで実行します。フォークで再現する場合はRPC_URLをローカルAnvilへ向け、送金者にラップ用の0.1 ETHとガス代を用意します。
import { cfaForwarderAbi, cfaForwarderAddress, superTokenAbi } from '@sfpro/sdk/abi';
import { calculateFlowratePerSecond } from '@sfpro/sdk/util';
import { TIME_UNIT } from '@sfpro/sdk/constant';
import { createPublicClient, createWalletClient, http, parseEther, formatEther } from 'viem';
import { base } from 'viem/chains';
import { privateKeyToAccount } from 'viem/accounts';
const ETHX = '0x46fd5cfB4c12D87acD3a13e92BAa53240C661D93'; // Base の ETHx
const RECEIVER = process.env.RECEIVER;
const forwarder = cfaForwarderAddress[base.id];
const account = privateKeyToAccount(process.env.PRIVATE_KEY);
const transport = http(process.env.RPC_URL);
const pub = createPublicClient({ chain: base, transport });
const wallet = createWalletClient({ account, chain: base, transport });
// 月額 0.3 ETHx を wei/秒に換算(TIME_UNIT.month は 2,628,000 秒)
const flowrate = calculateFlowratePerSecond({ amountWei: parseEther('0.3'), timeUnit: TIME_UNIT.month });
// 1. ETH を ETHx へラップ
await pub.waitForTransactionReceipt({
hash: await wallet.writeContract({ address: ETHX, abi: superTokenAbi, functionName: 'upgradeByETH', value: parseEther('0.1') }),
});
// 2. 開始時にロックされるバッファ額
const buffer = await pub.readContract({
address: forwarder, abi: cfaForwarderAbi, functionName: 'getBufferAmountByFlowrate', args: [ETHX, flowrate],
});
// 3. ストリーム開始(別の値を渡すと更新、0 で停止)
await pub.waitForTransactionReceipt({
hash: await wallet.writeContract({ address: forwarder, abi: cfaForwarderAbi, functionName: 'setFlowrate', args: [ETHX, RECEIVER, flowrate] }),
});
const current = await pub.readContract({
address: forwarder, abi: cfaForwarderAbi, functionName: 'getFlowrate', args: [ETHX, account.address, RECEIVER],
});
console.log('forwarder:', forwarder);
console.log('flowrate (wei/s):', current.toString());
console.log('buffer (ETHx):', formatEther(buffer));
実行結果:1日後の受取額と各操作のガス
2026年11月8日、Foundryのanvilでhttps://mainnet.base.orgをフォークし(ブロック54,733,301付近)、viem 2.57.16と@sfpro/sdk 0.3.2で実行しました。
forwarder: 0xcfA132E353cB4E398080B9700609bb008eceB125
flowrate (wei/s): 114155251141
buffer (ETHx): 0.001643838603001856
| 操作 | 消費ガス |
|---|---|
| ETHのラップ(upgradeByETH) | 203,648 |
| ストリーム開始 | 351,016 |
| 流量の更新 | 334,867 |
| ストリーム停止 | 300,911〜318,165(2回) |
受取人の残高は開始直後は0で、時刻を進めた後の実測残高は0.00986313 ETHxでした。これは流量114,155,251,141 wei/秒の86,401秒分に相当し、厳密な86,400秒分は約0.00986301 ETHxです。月額0.3 ETHxの1日分(0.3÷30.4167日)と一致します。受取人は何もしなくても残高が増えるので、引き出しトランザクションは不要です。Solidityからは公式のSuperTokenV1Libraryを使います。開発環境の用意はSolidity入門|開発環境の作り方・基本構文・Sepoliaデプロイ手順【2026年10月】にまとめました。
2026年の運営体制とセキュリティ事案
採用を検討するなら、仕組みより先にここを読んでください。2026年は開発体制にも安全性にも変化がありました。
Foundationによる維持と共同創業者の離脱(2026年10月)
2026年10月7日の公式フォーラムの告知は、共同創業者のFrancesco Renzi氏(0xFran)が暗号資産の分野を離れると伝えています。プロトコルは2025年4月からSuperfluid Foundationへ移管済みで、Foundationは維持を続けると表明しました。プロトコルの原著者で主任設計者のMiao氏(hellwolf)は同日の声明で、Foundationへの必要な支援と助言を続けるとしています。
プロトコルを開発したSuperfluid Finance社は、人とAIエージェントが共用するSuperfluid Walletを2026年9月時点でベータ公開しています。人が鍵を持ち、エージェントの提案を人が承認する設計です。Wallet側はSUPの報酬制度の変更をDAOへ提案するとしています。エージェント向け決済の全体像はCircle Agent Stackとは?Agent Wallets・Nanopaymentsの仕組みとCLIでの使い方【CLI 1.2.0対応】が参考になります。
CeloのSuper App悪用と未回収残高(2026年9月)
2026年9月3日に検知された事案では、悪意あるSuper Appが清算を妨げました。Security Councilの報告によると、終了時コールバックが約900KBの戻り値を返し、Hostがそれをメモリへコピーする費用がCeloのブロックガス(約3,000万)を超えたため、deleteFlowも清算も通らなくなりました。
原因はCeloだけSuper Appの登録を許可制から外していたことです。他のメインネットは許可制のままで影響を受けていません。9月4日に修正が入り、Celoの許可制も復活、戻り値の上限は128KiBになりました。損失は大きく、G$は2,801,252,167枚が裏付けのない残高となり、そのうち2,256,724,080枚が売却されています。
ETHxの一時停止とyield backendの投票(2026年4〜6月)
ETHxやUSDCxの裏付け資産は、DAOの収益のためAaveやSparkで運用される設計に変わっています(SIP #9・#13)。2026年4月18日のrsETH事案でAaveのWETH市場が凍結されると、Ethereum・Base・ArbitrumのETHxはラップとアンラップの経路が影響を受け、BaseとArbitrumまで含めた全面復旧は5月11日でした。
継続の是非を問うSIP #15(ETHx)と#16(USDCx)の投票は反対が賛成を上回りましたが、定足数に届かず、6月1日に「措置なし」となりました。つまり同じ構造は残っています。支払いの原資をETHxやUSDCxで長期に抱える設計なら、AaveやSparkの停止でアンラップが滞る可能性を前提に、現金化の猶予を持たせてください。
SUPトークンの現況:譲渡解禁・Reserve・報酬シーズン
SUPはSuperfluid DAOのガバナンストークンで、2025年2月19日にローンチしました。発行設計はgenesisで10億枚です。公式の初期設計では、最初の2年間の経過後にDAOが追加発行やインフレ機構を決められます。チームと投資家の割当は、1年のクリフ後に3分の1が解放され、残る3分の2が続く2年間の線形ストリームで解放されます。
大きな節目は2025年11月17日の譲渡解禁です。以降、報酬をためるReserveから次の方法で動かせます。
- 12か月かけてストリームで引き出す
- すぐ引き出して20%を受け取る(残り80%はステーカーとLPへ配分)
- 30日のクールダウン付きでステークして報酬を得る
- Uniswap V3のSUP/ETHxプールへ流動性を出す(7日ロック。180日保有するとCommunity Chargeなしで即時引き出し)
報酬は2026年のSeason 7まで続き、SIP #17の排出上限は1,000万SUPです。Base上のコントラクトは0xa69f80524381275a7ffdb3ae01c54150644c8792で、2026年11月8日にブロック54,738,219で読んだtotalSupplyは853,267,215 SUPでした。Baseのみの値なので設計上の10億枚とは一致しません。別プロジェクトのSUPも流通しているので、購入や受取の前にこのアドレスを確かめてください。
Sablier・LlamaPayとの比較と選び方
違いは「資金をどこに置くか」と「残高が足りないときにどうなるか」です。
| 項目 | Superfluid | Sablier Lockup | Sablier Flow | LlamaPay |
|---|---|---|---|---|
| 資金の置き場所 | 送金者のウォレット | 総額を先にロック | ストリームへ随時入金 | 支払者ごとの共有残高 |
| 終了日 | 不要 | 必須 | 不要 | 不要 |
| 残高不足時 | 清算・バッファ没収 | 起きない | 債務として記録 | 債務として記録 |
| 受取方法 | 自動で残高に反映 | 引き出し操作 | 引き出し操作 | 引き出し操作 |
| トークン | Super Tokenへラップ | ERC-20のまま | ERC-20のまま | ERC-20のまま |
| 開発状況 | Foundationが維持 | メンテナンスモード | メンテナンスモード | v2の最終コミット2023年2月 |
Sablierのメンテナンス移行と公式UIの新規作成制限
Lockup(npm 4.0.1)とFlow(npm 3.0.1)に分かれるSablierは、2026年7月13日の発表で新製品の開発を止めました。公式UIでは終了が2028年6月より後のベスティングとエアドロップ、無期限の支払いストリームを新規に作れません。コントラクトは動き続けますが、これから給与ストリームを組む先としては選びにくい状況です。
LlamaPayの債務記録とリポジトリの更新状況
LlamaPayはDefiLlamaのチームが作ったプロトコルで、支払者の共有残高から全ストリームを引き、足りなければ不足分を債務として記録します。ラップは不要ですが、受取人の引き出し操作が要ります。GitHubの最終コミットはllamapayが2022年6月21日、llamapay-v2が2023年2月26日です。HedgeyはAnchorage Digital傘下に入り、DripsはGitHubリポジトリへの資金提供が中心です。Sablierの公式UIには新規作成の制限があるので、比較するときは各サービスの現行の提供範囲を個別に確かめてください。
用途別の使い分けと採用すべきでない場面
業務委託報酬・ベスティング・報酬分配での使い分け
- 業務委託・コントリビューターへの報酬:Money Streamingで1人1本張り、会計はStream Accounting APIで月次や日次に区切って集計する
- トークンのベスティング:公式のVesting Schedulerでクリフと線形ストリームを組む。トークンは送金者のウォレットかSafeに残る
- コミュニティ報酬・収益分配:Distribution Poolsでメンバーにユニットを割り当てる
- ストリームに連動した処理:開始・更新・削除をきっかけに動くSuper Appを作る。ただし前述のCeloの事案は、この機構が攻撃面になり得ることを示している
USDCを送金原資にする場合は、USDCxへラップしてストリーミングに使います。ステーブルコインの種類や規制はステーブルコインとは?仕組み・3類型と国内の購入経路、日米欧の規制にまとめました。
Superfluidを選ばない条件
- 日本の従業員に賃金として払う:労働基準法24条は「賃金は、通貨で、直接労働者に、その全額を支払わなければならない」と定めています。通貨以外は、法令や労働協約に別段の定めがある場合を除き、同法施行規則7条の2が認める銀行口座・一定の証券総合口座・指定資金移動業者の口座に限られ、ウォレットへのトークン送金は含まれません
- 受取人に満額を保証したい:送金者が残高を移せばストリームは清算されます。投資家向けベスティングのように途中で引き揚げられては困る契約は、総額をロックしてキャンセル不可にする方式が向きます
- 残高を監視する体制が無い:清算されるとバッファは戻りません。Auto-Wrapも監視も用意できないなら、月1回の一括送金のほうが事故は少なくなります
- カードや銀行振込との併用が前提:請求や消込をオンチェーンだけで完結させるのは現実的ではありません。既存の決済と組み合わせる設計は決済・サブスクリプションシステム開発でご相談いただけます
反対に、海外の業務委託先やDAOのコントリビューターへの継続報酬、プロジェクト自身のトークンのベスティングなら、受取人の引き出し操作が不要で、送金を継続するだけなら追加のトランザクションも不要という利点があります。ウォレットの準備はMetaMask(メタマスク)とは?ウォレットの作り方・使い方と安全対策【2026年10月】を参照してください。
よくある質問
Superfluidとは何ですか?
EVM互換チェーンでトークンを1秒ごとに送り続けるストリーミング送金のプロトコルです。ERC-20を拡張したSuper Tokenの残高を、流量(wei/秒)に従って送金者から受取人へ移し続けます。液体ヘリウムなどの物理現象である超流動(superfluid)とは関係ありません。
Superfluidのトークン(SUP)とは何ですか?
Superfluid DAOのガバナンストークンです。2025年2月19日にローンチし、同年11月17日に譲渡可能になりました。genesisの発行は10億枚で、利用者には報酬(SPR)がストリームで配られ、2026年はSeason 7の上限が1,000万SUPです。Foundationの2026年10月の声明では、DEXとCoinbaseで取引が続いています。
Superfluidのダッシュボードでは何ができますか?
公式のWebアプリ(app.superfluid.org。旧URLのapp.superfluid.financeは301転送されます)に、Portfolio、送信、Wrap / Unwrap、Swap & Bridge、Vesting、Auto-Wrap、Approvals、Activity Historyのメニューがあります。コードを書かずにラップやストリームの作成・停止、履歴の確認ができ、コントラクトのアドレスはSuperfluid Explorerで調べられます。
ストリーム中にガス代はかかりますか?
かかりません。残高の継続的な増減にはガス代がかかりません。開始・流量の変更・停止に加え、ラップやアンラップなどのトランザクションにはガス代が必要です。プロトコル手数料については、Superfluid側が2023年12月のENS向けの回答で、プロトコル手数料とUI手数料は無いと説明しています。ただし開始時に流量4時間分のバッファがロックされる点は別です。
送金者の残高が尽きるとどうなりますか?
ストリームはCriticalになり、誰でも閉じられる状態です。閉じられるまではバッファから受取人への支払いが続き、残ったバッファは最初の30分ならPICのステークへ、その後は閉じた人へ渡ります。Baseのフォークでの実測でも送金者に戻る額は0でした。残高を切らす前に自分で流量を0にすれば、バッファは戻ります。