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:
There are approximately 2,880 tipsets per day (86,400 seconds ÷ 30 seconds/tipset).
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:
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.
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.
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.
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:
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.
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.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.
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.
| Data | Source | Update frequency |
|---|---|---|
| 30-day proving activity (historical series) | FOC Observer REST API | Hardcoded from last query — update periodically |
| Base fee (current) | Glif Lotus node (Filecoin.ChainHead) | Live on page load |
| Avg blocks/tipset | Filfox API (/api/v1/stats/base-fee) | Live on page load |
| Model coefficients (α, β) | OLS on FOC Observer data | Hardcoded — refit as data grows |
| Dataset distribution (670 datasets) | FOC Observer — snapshot April 2026 | Hardcoded — refit monthly |
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.| 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 |
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.