FWSS network capacity & gas forecast

How much of Filecoin's gas budget does FWSS use today, how is it growing, and when does it become relevant to network congestion? Data from FOC Observer, Filfox, and Glif.  ·  ⚡ extreme scenarios← back to index
Loading live network data... | Model last updated: checking...
Methodology — how this tool works, what the numbers mean, and how the model was built

1. Filecoin gas: tipsets, blocks, and the gas target

Filecoin produces a new tipset approximately every 30 seconds. A tipset is a set of blocks mined at the same epoch — on average, ~4.9 blocks per tipset (this varies; Filfox shows 4.91 over the last 24h as of writing). Each block has a gas target of 5 billion gas units. The effective gas capacity per tipset is therefore:

gas_target_per_tipset = 5,000,000,000 × avg_blocks_per_tipset
≈ 5B × 4.9 = 24.5 billion gas units per tipset

There are approximately 2,880 tipsets per day (86,400 seconds ÷ 30 seconds/tipset).

2. How the base fee responds to gas usage

Filecoin's base fee adjustment mechanism was introduced in FIP-0001 and is inspired by EIP-1559, but is not identical to it. The key differences from Ethereum's EIP-1559 are: (a) the BaseFee is burned entirely — it is not split between burn and validators; (b) the miner tip (GasPremium) is applied to GasLimit, not GasUsed; (c) there is an OverEstimationBurn mechanism that penalises senders who over-estimate gas limits. The adjustment rule itself is the same: ±12.5% per epoch based on whether gas used exceeded or fell short of the target. The base fee (in attoFIL per gas unit) adjusts after every tipset based on how full the previous tipset was relative to its target:

  • If gas used = gas target → base fee unchanged
  • If gas used > gas target → base fee increases (up to +12.5% per tipset)
  • If gas used < gas target → base fee decreases (down to −12.5% per tipset)

When usage consistently exceeds the target, the base fee rises exponentially. A sustained 10% overshoot doubles the base fee in roughly 6 tipsets (~3 minutes). This is why the gas target is the critical threshold — not a hard cap, but the point above which costs start increasing rapidly.

Today, the Filecoin base fee is near its floor of 100 attoFIL (the minimum). This means the total network gas usage is well below the 5B/block target — the network is not congested. FWSS contributes a negligible fraction of this already-low load.

3. How FWSS gas is distributed across tipsets

FWSS requires two on-chain transactions per dataset per day: provePossession and nextProvingPeriod. These are not evenly distributed — they cluster around proving windows. However, for the purposes of this analysis, we treat them as uniformly spread across the 2,880 tipsets of the day. This gives a conservative (lower-bound) estimate of FWSS's per-tipset gas contribution.

FWSS_gas_per_tipset = (N_datasets × (gas_PP(pieces) + gas_NPP)) / 2880

where:
gas_PP(pieces) = 158.67M + 8.485M × log₂(pieces)  [logarithmic model, R²=0.9551]
gas_NPP = ~124M  [empirical constant]
N_datasets = number of active datasets proving today

The addPieces and createDataSet transactions add further gas but are intermittent — they are not included in the daily proving baseline shown here. The forecast tool adds them only when you explicitly configure upload activity.

4. The provePossession model — why logarithmic, not multilinear

FIPs discussion #761 proposes a multilinear regression model for Filecoin gas estimation. That proposal targets the miner actor cron job, where several structurally distinct operations contribute independently to gas — live partitions, fault partitions, precommit expiries — each with a different marginal cost and each justifying a separate regression term with appropriate weights.

For provePossession, the physical mechanism is different and simpler. The PDP protocol samples exactly 5 random pieces per proof (hardcoded). Each challenge verifies a Merkle inclusion proof, traversing a tree of depth log₂(N). The gas cost therefore follows:

gas_provePossession(N) = α + β × log₂(N)
α = 158,670,000 gas (base overhead, independent of piece count)
β = 8,485,000 gas (cost per doubling of piece count)

This model was fitted using ordinary least squares on 670 real mainnet datasets spanning 1 to 868,515 pieces. The fit achieves R²=0.9551 and mean absolute error of 4.8M gas — equivalent to the multilinear model's accuracy on this specific operation, without requiring additional predictors.

630
datasets fitted
0.9899
3.2M
MAE (gas)
1→868k
piece range
On weights: FIPs discussion #761 uses weighted subgroup regressions to handle heterogeneous gas behaviour across different precommit regimes. For provePossession, no such subgroup structure exists — piece count via log₂ is a uniform predictor across all observed ranges. Weighted regression was considered and tested but did not improve R² materially. Weights are therefore not used. If future protocol changes introduce structurally new sources of variance (variable challenge counts, new proof types), a multilinear approach following FIPs #761 should be revisited.

5. nextProvingPeriod — why a constant

nextProvingPeriod advances the proof schedule. It does not access the piece Merkle tree, so its gas cost is independent of dataset size. Across 32,393 real mainnet transactions, the gas is flat at ~130M with standard deviation ~7.7M. The empirical mean (queried live from FOC Observer) is the appropriate model.

6. Why FWSS cannot saturate the network alone — and what the thresholds mean

At 475 active datasets (the recent peak), FWSS proving generates roughly 90 billion gas per day, or ~31 million gas per tipset. Against a target of 24.5 billion gas per tipset, this is 0.13% of capacity.

To reach 1% of the gas target, FWSS would need approximately 28,000 active datasets — about 60× the current level. To reach 5%, it would need ~140,000. These are the thresholds shown in Section 5 of this tool. They are not predictions — they are benchmarks that help the team understand at what scale FWSS starts contributing meaningfully to network pressure.

The more relevant near-term concern is not saturation of the network, but saturation of specific time windows: if proving transactions cluster around certain epochs (as they naturally do when multiple datasets share the same proving period), they could create local spikes even at low overall load. This tool does not model intra-day clustering — it assumes uniform distribution as a baseline.

7. Data sources

DataSourceUpdate frequency
30-day proving activity (historical series)FOC Observer REST APIHardcoded from last query — update periodically
Base fee (current)Glif Lotus node (Filecoin.ChainHead)Live on page load
Avg blocks/tipsetFilfox API (/api/v1/stats/base-fee)Live on page load
Model coefficients (α, β)OLS on FOC Observer dataHardcoded — refit as data grows
Dataset distribution (670 datasets)FOC Observer — snapshot April 2026Hardcoded — refit monthly
0. Filecoin network gas — total picture Network data as of 21 Apr 2026 · update ↗
Total network gas by actor type from Starboard CSV (2026-04-21, most recent day available). This is what's already consuming the gas budget before FWSS. FWSS (from FOC Observer) is shown at the bottom for comparison.
Total network gas/day
Loading...
all actors · 2026-04-21 · Starboard CSV
WindowPoSt (storage proofs)
SP proving existing storage
Sealing (PreCommit + ProveCommit)
onboarding new storage
FWSS (PDP proving)
today · FOC Observer
FWSS % of network total
FWSS / total network gas
FWSS % of gas target
vs 5B/block target
Network gas breakdown — by actor type
Gas used per day by each actor category. The gas target is 5B gas/block × ~4.9 blocks/tipset × 2,880 tipsets/day = ~70.6 trillion gas/day. FWSS is a sliver at the bottom.
Loading network gas data...
How big can FWSS get? — capacity thresholds in real terms
Using real FWSS data: today there are 475 active datasets, 1.09 million pieces, ~2.25 TiB of storage. Average piece size = ~2.3 MB. These numbers let us express gas thresholds in terms of actual storage capacity.
These are gas-only constraints. Real FWSS capacity will likely be constrained by storage provider capacity, economics, and client demand long before hitting any gas limit. At 5% of the gas target, FWSS would represent ~78 TiB of stored data — a meaningful but not extreme amount.
1. Network gas headroom — today
Current base fee
attoFIL · Glif live
Gas target/tipset
~23.5B
5B × avg blocks/tipset
Active FWSS datasets
~480
proven last 24h · 475 active total
FWSS gas/tipset
proving only, uniform spread
FWSS % of gas target
share of per-tipset target
Base fee scenario — network congestion context
The base fee is the best real-time signal for network congestion. Select a scenario to see how FWSS costs change. Note: the gas bars below are fixed — they show gas units consumed, which do not depend on base fee. What changes with base fee is the FIL/USD cost of those gas units, shown in the cost card below.
Base fee (attoFIL)
Loading...
Cost at selected base fee — updates with scenario
These values change when you select a different base fee scenario above. Gas units × base fee ÷ 10¹⁸ = FIL cost.
Daily proving cost (all FWSS)
FIL · across all active datasets
Daily proving cost (USD)
at current FIL price
Cost per dataset per 30d
avg dataset (300 pieces)
Network congestion
2. FWSS gas growth — last 30 days
Daily total FWSS proving gas (sum of all provePossession + nextProvingPeriod transactions), from FOC Observer. Each point is one calendar day. The daily target line is 23.5B × 2,880 tipsets = 67.7 trillion gas — the aggregate daily budget. FWSS is a thin line at the bottom.
FWSS gas/day (proving)
Network daily gas budget (23.5B × 2880 tipsets)
FWSS gas trend.
30d avg active datasets
per day
Net growth (last 30d)
datasets/day (linear fit)
Peak (last 30d)
max active in one day
3. Dataset piece distribution — why the mean is misleading
The mean piece count across 475 active datasets is ~1,729 pieces — but this is driven almost entirely by two outlier datasets (868k and 144k pieces). The median is well below 100. Using the mean would grossly overestimate gas costs for the typical dataset. The logarithmic model means even these extreme outliers cost only ~2× more to prove than a 1-piece dataset.
Piece count distribution — 475 active datasets (April 2026)
1 piece
146
23% · ~158M gas/proof
2–10 pieces
162
26% · ~165–183M gas
11–100
128
20% · ~183–215M gas
101–1,000
170
27% · ~215–243M gas
>1,000
24
4% · up to ~316M gas
The top 4% of datasets (>1,000 pieces) do consume more gas per proof — but because the relationship is logarithmic, a 1,000× increase in pieces only doubles the gas. The number of active datasets is a much stronger driver of total network gas than piece count. This is quantified in the sensitivity analysis in Section 4.
4. Growth forecast
Scenario presets
Conservative
+5 datasets/day, small pieces, 15% churn/mo
Base case
+15 datasets/day, mixed pieces, 10% churn/mo
Aggressive
+50 datasets/day, large pieces, 5% churn/mo
Forecast parameters
All parameters are editable. Dataset churn is the monthly percentage of datasets that are terminated — offsetting new additions. Avg pieces per new dataset feeds into the logarithmic model to compute per-dataset proving gas.
Starting datasets (today) 480
New datasets per day 5
Dataset churn rate (%/month) 10 %/mo
Avg pieces per new dataset 100
Piece count growth (%/month) 0 %/mo
Forecast horizon
Datasets at end of period
in 90 days
FWSS % of gas target
at end of period
Datasets needed for 1%
of gas target
Time to reach 1%
at current growth rate
FWSS as % of Filecoin gas target — forecast
Green line = modelled FWSS share of the 23.5B gas/tipset target. The 1% line (red dashed) is the threshold where FWSS starts contributing meaningfully to base fee pressure. The 5% line (orange dashed) is where it becomes a significant driver.
FWSS % of gas target
1% threshold
5% threshold
FWSS gas forecast.
Sensitivity analysis — what drives gas growth?
Holding all other parameters fixed, what happens to FWSS gas/tipset if we multiply each variable? Blue = dataset count multiplier, green = piece count multiplier. The asymmetry shows that dataset count is the dominant lever.
Sensitivity analysis.
How many FWSS datasets fit, given current network load?
The Filecoin gas target is 5B gas/block × avg blocks/tipset × 2,880 tipsets/day ≈ 70,560 Ggas/day. Each FWSS dataset consumes ~322 Ggas/day (provePossession + nextProvingPeriod). The table shows how much headroom remains for FWSS given different levels of non-FWSS network activity — derived from real Starboard data. Today's live value is computed dynamically from FOC Observer.
Base fee (ref.)
attoFIL
Network gas used
Ggas/day
% of gas target
used by rest of network
Headroom for FWSS
Ggas/day
Max FWSS datasets
before hitting gas target
Network scenario — max FWSS datasets before hitting gas target
How many FWSS datasets fit, given current network load?
The Filecoin gas target is ~70,560 Ggas/day (5B gas/block × ~4.9 blocks/tipset × 2,880 tipsets/day). Each FWSS dataset consumes between 283M and 444M gas/day depending on piece count (provePossession + nextProvingPeriod). The table below shows the real distribution of active datasets and their gas cost. The scenario selector shows how much headroom remains for FWSS given different levels of non-FWSS network activity — derived from real Starboard data.
Dataset type # datasets Avg pieces Avg piece size Avg total size Gas/day
1 piece 225 1 15 MB 0.01 GB 283M
2–10 pieces 223 4 17 MB 0.1 GB 300M
11–100 pieces 155 61 28 MB 1.4 GB 333M
101–1k pieces 243 229 31 MB 9.3 GB 349M
1k–10k pieces 30 1,744 21 MB 33.3 GB 374M
>10k pieces 2 508,705 1 MB 160.1 GB 444M
Weighted average 878 318M
Base fee (ref.)
attoFIL
Network gas used
Ggas/day (non-FWSS)
% of gas target
used by rest of network
Headroom for FWSS
Ggas/day
Max FWSS datasets
weighted avg mix before gas target
5. Scale thresholds — where to act before it matters
At what dataset count does FWSS proving reach X% of the gas target? Computed using the weighted average gas per dataset from the current piece distribution (Section 3). Red = already near or past; amber = requires meaningful growth; green = far off.
These thresholds assume the current piece distribution holds. If large-piece datasets grow disproportionately, thresholds shift lower — but the logarithmic model limits the impact. A dataset with 1M pieces costs only ~2× more to prove than a 1-piece dataset.
6. How to update the model
Automatic updates
The model refits itself every day at 09:00 UTC via GitHub Actions. The script re-queries FOC Observer for all new on-chain data, refits the logarithmic regression, and commits updated coefficients to this repo. The "Model last updated" date in the top bar reflects the last successful commit.
Manual update — 2 clicks
If you want to force an immediate refit (e.g. after a protocol upgrade or a large batch of new datasets), click the button below. It opens the GitHub Actions page — then click Run workflow → Run workflow.
Then click Run workflowRun workflow. Takes ~60 seconds. You need access to the repo.
What the refit does: queries FOC Observer for all provePossession transactions (≥3 proofs per dataset), refits gas = α + β × log₂(pieces) via OLS, updates coefficients in calculator.html and capacity.html, updates the 30-day HIST series, and commits. If R² drops below 0.95 the workflow logs a warning — it could mean a protocol change introduced new gas variables.
Don't have repo access? Ask Luca to add you as a collaborator: GitHub repo → Settings → Collaborators → Add people. With collaborator access you can trigger workflows without touching code.