ZIP 2009 โ€” Reduce Marginal Fee to 1000 Zatoshis and Raise the Weight Ratio Cap to 10

Proposed

Terminology

The key words "MUST", and "SHOULD" in this document are to be interpreted as described in BCP 14 1 when, and only when, they appear in all capitals.

Fee terminology is as defined in ZIP 317 2; "zatoshi" is as defined in the Zcash protocol specification. 3

Abstract

This ZIP cuts ZIP 317's 2 marginal_fee from 5,000 to 1,000 zatoshis per logical action, so the minimum conventional fee drops from 10,000 to 2,000 zatoshis. It also raises weight_ratio_cap in ZIP 317's block template algorithm from 4 to 10, so that the fee cut does not narrow the range as sharply. Nothing else in ZIP 317 changes.

Motivation

ZIP 317's fee was set in late 2022, when ZEC was about USD 30 and the minimum fee of 10,000 zatoshis cost about USD 0.0030. The fee is fixed in zatoshis, so when the price went up, so did the fee. At about USD 1,300 (the price on 2026-10-21), the minimum fee costs about USD 0.13.

Cutting marginal_fee to 1,000 brings the minimum fee to 2,000 zatoshis, about USD 0.026. Even after a 5x cut, it is still about 8.7 times what it was when ZEC was about USD 30. It only gets cheaper than the 2022 fee if ZEC falls below about USD 150.

Additionally, weight_ratio_cap is a multiple of the conventional fee, so cutting marginal_fee shrinks the range of inclusion-influencing fees from 10,000 - 40,000 zatoshis to 2,000 - 8,000. Raising weight_ratio_cap to 10 widens that range to 2,000 - 20,000, still below the today's maximum. It also keeps transactions from wallets that have not yet updated, which pay 5x the new conventional fee, from being clamped at the cap.

Privacy Implications

Privacy: If wallets switch to the new fee at different times, the fee reveals which wallet software made the transaction. To keep that window short, wallets SHOULD switch at the activation height given under Deployment, not when the release ships.

Specification

Changes to ZIP 317

These changes add a Revision 2 to ZIP 317 2.

In the Revisions section, add:

  • Revision 2: Reduces marginal_fee from 5000 to 1000 zatoshis per logical action, and raises weight_ratio_cap from 4 to 10, as specified in ZIP 2009. It applies from ๐–ฅ๐–ค๐–ค_๐–ฑ๐–ค๐–ฃ๐–ด๐–ข๐–ณ๐–จ๐–ฎ๐–ญ_๐–ง๐–ค๐–จ๐–ฆ๐–ง๐–ณ, which is 3590000 on Mainnet and 4465026 on Testnet. For a wallet, the height that determines whether it applies is the height of the block in which the transaction is expected to be mined. For a node, it is the height of the next block.

In the parameter table of the Fee calculation section, replace the entry

marginal_fee | 5000 | zatoshis per logical action (as defined below)

with

marginal_fee | 5000 before Revision 2; 1000 from Revision 2 | zatoshis per logical action (as defined below)

No other entry in the table changes.

In the section Rationale for the chosen parameters, update the rationale for the marginal fee to cover the value of marginal_fee from Revision 2, following the Rationale section of this ZIP.

In the section Recommended algorithm for block template construction, replace

Define constants weight_ratio_cap=4 and block_unpaid_action_limit=50.

with

Define constants weight_ratio_cap=4 before Revision 2, or 10 from Revision 2, and block_unpaid_action_limit=50.

In the section Rationale for block template construction algorithm, replace the paragraph that begins "The rationale for choosing weight_ratio_cap=4" with:

The rationale for choosing weight_ratio_cap=10 from Revision 2 is as a compromise between not allowing any prioritization of transactions relative to those that pay the conventional fee, and allowing arbitrary prioritization based on ability to pay. Because the cap is a multiple of the conventional fee, the fee at which a transaction's weight ratio saturates falls with marginal_fee. A cap of 10 at marginal_fee=1000 places that point below where it was at weight_ratio_cap=4 and marginal_fee=5000.

In the Deployment section, add:

Revision 2 applies from ๐–ฅ๐–ค๐–ค_๐–ฑ๐–ค๐–ฃ๐–ด๐–ข๐–ณ๐–จ๐–ฎ๐–ญ_๐–ง๐–ค๐–จ๐–ฆ๐–ง๐–ณ, as specified in ZIP 2009.

If ZIP 235 4 activates, the fraction removed from circulation is unchanged: of a 2,000-zatoshi fee, 1,200 zatoshis are removed and 800 go to the miner.

Interaction with the getstandardfee RPC endpoint

zebrad's getstandardfee RPC endpoint reports the ZIP 317 marginal_fee. Implementations providing this or an equivalent endpoint MUST report 1,000 zatoshis per logical action from the activation height given in the Deployment section.

Rationale

Why a marginal_fee of 1,000. A 5x cut still leaves the fee at about 8.7 times its 2022 cost in USD, as of 2026-10-21.

Why not cut marginal_fee further. ZIP 218 5 limits the shielded actions in each block to a global budget of 330 units. An adversary who fills this budget with their own transactions crowds other users' shielded transactions out of blocks: a denial of service against use of the chain, rather than against nodes. The cheapest way to fill it is a transaction with 150 Sapling spends and 150 Sapling outputs, which count as 150 logical actions, plus 30 Orchard or Ironwood actions, for 180 logical actions per block. At marginal_fee=1000 and the 25-second block target spacing, an adversary who does not mine pays 0.0018 ZEC per block, about 6.2 ZEC per day. A further cut would lower this cost in proportion, which would risk providing insufficient disincentive to a DoS attack.

Why a weight_ratio_cap of 10. This maintains the rationale in ZIP 317, section "Rationale for block template construction algorithm", of limiting the ability of an adversary to gain a significant advantage over other users by paying more than the conventional fee.

Precedent. ZIP 313 6 reduced the conventional fee in 2020 the same way: a wallet convention, no network upgrade.

Deployment

Node implementations MUST ship the new relay policy before wallets adopt the new fee. block_unpaid_action_limit is 0 in both zebra and zakura and is not operator-configurable, so an un-upgraded node will not relay a 2,000-zatoshi transaction at all, since it counts 2 unpaid actions under the old parameters.

Both parameter changes apply from ๐–ฅ๐–ค๐–ค_๐–ฑ๐–ค๐–ฃ๐–ด๐–ข๐–ณ๐–จ๐–ฎ๐–ญ_๐–ง๐–ค๐–จ๐–ฆ๐–ง๐–ณ. On Mainnet, this is block height 3590000, expected around 19 November 2026, about two weeks after NU7 activation 7. On Testnet, it is block height 4465026, the Testnet activation height of NU7; this has already passed, so the changes apply immediately.

References

Footnotes

  1. Information on BCP 14 โ€” "RFC 2119: Key words for use in RFCs to Indicate Requirement Levels" and "RFC 8174: Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words" โ†ฉ

  2. ZIP 317: Proportional Transfer Fee Mechanism โ†ฉ โ†ฉ2 โ†ฉ3

  3. Zcash Protocol Specification, Version 2025.6.3 [NU6.1] or later โ†ฉ

  4. ZIP 235: Remove 60% of Transaction Fees From Circulation โ†ฉ

  5. ZIP 218: 25-second Block Target Spacing โ€” Fee incentives and DoS resistance โ†ฉ

  6. ZIP 313: Reduce Conventional Transaction Fee to 1000 zatoshis โ†ฉ

  7. ZIP 259: Deployment of the NU7 Network Upgrade โ†ฉ