Terminology 
The key words "MUST", "SHALL", "SHOULD", and "MAY" in this document are to be interpreted as described in BCP 14 when, and only when, they appear in all capitals.
The term "Zcash" in this document is to be interpreted as described in the Zcash Trademark Donation and License Agreement ( or successor agreement) while that agreement is in effect. On termination of that agreement, the term "Zcash" will refer to the continuations of the same Mainnet and Testnet block chains as determined by social consensus.
The term "network upgrade" in this document is to be interpreted as described in ZIP 200 , and the Zcash Trademark Donation and License Agreement ( or successor agreement) while that agreement is in effect.
The term "block subsidy" in this document is to be interpreted as described in section 3.10 of the Zcash Protocol Specification .
The term "halving" in this document is to be interpreted as described in section 7.8 of the Zcash Protocol Specification .
The terms "Bootstrap Project" (or "BP"), "Electric Coin Company" (or "ECC"), "Zcash Foundation" (or "ZF"), "Major Grants", "BP slice", "ZF slice", and "MG slice" in this document are to be interpreted as described in ZIP 1014 .
The terms "Zcash Community Grants (or "ZCG") and "Financial Privacy Foundation" (or "FPF") in this document are to be interpreted as described in ZIP 1015 .
The terms "Testnet" and "Mainnet" are to be interpreted as described in section 3.12 of the Zcash Protocol Specification .
"Canopy" is the code-name for the fifth Zcash network upgrade, also known as Network Upgrade 4.
"NU6" is the code-name for the seventh Zcash network upgrade, also known as Network Upgrade 6.
Specification 
Revisions 
- Revision 0: The initial version of this specification, as agreed upon by the Zcash community in ZIP 1014 .
- Revision 1: Funding streams defined to start at Zcash's second halving, and last for one year, as agreed upon in ZIP 1015 .
- Revision 2: Funding streams defined to start at the end height of the Revision 1 funding streams, and last for three years, as agreed upon in ZIP 1016 .
- Revision 3: Preserve the Revision 2 funding streams until the third halving under the 25-second block target spacing of ZIP 218 .
Activation 
The Blossom network upgrade changed the height of the first halving to block height 1046400 , as a consequence of reducing the block target spacing from 150 seconds to 75 seconds.
Since ZIP 1014 specifies that the Zcash Development Fund starts at the first halving, the activation height of Canopy on Mainnet therefore SHALL be 1046400.
Revision 0 of ZIP 207 SHALL be activated in Canopy.
Since ZIP 1015 specifies that the specified funding streams start at the second halving, the activation height of NU6 on Mainnet therefore SHALL be 2726400.
Revision 1 of ZIP 207 SHALL be activated in NU6.
For Revision 3, the NU7 activation height
\(A\)
on each network SHALL be a multiple of 3. ZIP 259 assigns the activation heights.
As specified in , a funding stream is active for a span of blocks that includes the block at its start height, but excludes the block at its end height.
Funding Streams 
As of Revision 0, the following funding streams are defined for Mainnet:
| Stream |
Numerator |
Denominator |
Start height |
End height |
FS_ZIP214_BP |
7 |
100 |
1046400 |
2726400 |
FS_ZIP214_ZF |
5 |
100 |
1046400 |
2726400 |
FS_ZIP214_MG |
8 |
100 |
1046400 |
2726400 |
As of Revision 0, the following funding streams are defined for Testnet:
| Stream |
Numerator |
Denominator |
Start height |
End height |
FS_ZIP214_BP |
7 |
100 |
1028500 |
2796000 |
FS_ZIP214_ZF |
5 |
100 |
1028500 |
2796000 |
FS_ZIP214_MG |
8 |
100 |
1028500 |
2796000 |
As of Revision 1, the following additional streams are defined for Mainnet:
| Stream |
Numerator |
Denominator |
Start height |
End height |
FS_FPF_ZCG |
8 |
100 |
2726400 |
3146400 |
FS_DEFERRED |
12 |
100 |
2726400 |
3146400 |
As of Revision 1, the following additional streams are defined for Testnet:
| Stream |
Numerator |
Denominator |
Start height |
End height |
FS_FPF_ZCG |
8 |
100 |
2976000 |
3396000 |
FS_DEFERRED |
12 |
100 |
2976000 |
3396000 |
As of Revision 2, the following additional streams are defined for Mainnet:
| Stream |
Numerator |
Denominator |
Start height |
End height |
FS_FPF_ZCG_H3 |
8 |
100 |
3146400 |
4406400 |
FS_CCF_H3 |
12 |
100 |
3146400 |
4406400 |
As of Revision 2, the following additional streams are defined for Testnet:
| Stream |
Numerator |
Denominator |
Start height |
End height |
FS_FPF_ZCG_H3 |
8 |
100 |
3536500 |
4476000 |
FS_CCF_H3 |
12 |
100 |
3536500 |
4476000 |
As of Revision 3, the end height of each Revision 2 funding stream on each network SHALL be
\(\mathsf{HeightForHalving}(3)\kern-0.03em\textsf{,}\)
calculated using the post-NU7
\(\mathsf{Halving}\)
function of ZIP 218 . This change takes effect at NU7 activation on that network. The start height, numerator, and denominator of each stream remain as specified above. The end height is exclusive, as specified in ZIP 207 .
For a network on which NU7 activates before the third halving, let
\(A\)
be its NU7 activation height, and let
\(H_3\)
be the pre-NU7 third-halving height (4406400 on Mainnet or 4476000 on Testnet). The new end height is
\(A + 3 \cdot (H_3 - A)\kern-0.03em\textsf{.}\)
This expression is equivalent to
\(\mathsf{HeightForHalving}(3)\)
under ZIP 218 for these networks. If NU7 activates at or after
\(H_3\kern-0.03em\textsf{,}\)
this revision does not reactivate an expired funding stream.
On Testnet, ZIP 259 assigns the NU7 activation height
\(A = 4465026\kern-0.03em\textsf{.}\)
The new end height of FS_FPF_ZCG_H3 and FS_CCF_H3 on Testnet is therefore
\(4465026 + 3 \cdot (4476000 - 4465026) = 4497948\kern-0.03em\textsf{.}\)
The value of each stream at a post-NU7 height SHALL continue to be calculated separately using the floor operation in ZIP 207 and the post-NU7
\(\mathsf{BlockSubsidy}\)
of ZIP 218 . No fractional zatoshi is paid or carried forward. In particular, when the post-NU7 block subsidy is 52083333 zatoshi before the third halving, FS_FPF_ZCG_H3 receives 4166666 zatoshi and FS_CCF_H3 receives 6249999 zatoshi per block.
As of Revision 3, the
\(\mathsf{AddressIndex}\)
and
\(\mathsf{Address}\)
calculations for FS_FPF_ZCG_H3 SHALL use the NU7
\(\mathsf{AddressPeriod}\)
definition in Revision 2 of ZIP 207 . This triples the remaining block count if NU7 activates partway through an address period, and each subsequent period lasts 105000 blocks. At the 25-second target spacing, each period retains approximately its previous wall-clock duration and funding amount, subject to per-block rounding.
Notes for Revision 0:
- The block heights of halvings are different between Testnet and Mainnet, as a result of different activation heights for the Blossom network upgrade (which changed the block target spacing). The end height of these funding streams corresponds to the second halving on each network.
- On Testnet, the activation height of Canopy will be before the first halving. Therefore, the consequence of the above rules for Testnet is that the amount sent to each Zcash Development Fund recipient address will initially (before Testnet block height 1116000) be double the number of currency units as the corresponding initial amount on Mainnet. This reduces to the same number of currency units as on Mainnet, from Testnet block heights 1116000 (inclusive) to 2796000 (exclusive).
Notes for Revision 1:
- The new funding streams begin at the second halving for Mainnet, but the second halving on Testnet occurred prior to the introduction of the new funding streams. For both new funding streams on each network, the associated duration corresponds to approximately one year's worth of blocks.
Dev Fund Recipient Addresses for Revision 0
For each of Testnet and Mainnet, before deploying this ZIP in a node implementation with the activation height set for that network, each of the parties (ECC on behalf of BP; and ZF) SHALL generate sequences of recipient addresses to be used for each stream in each funding period:
- ECC SHALL generate the addresses for the
FS_ZIP214_BP funding stream, which on Mainnet corresponds to the BP slice;
- ZF SHALL generate the addresses for the
FS_ZIP214_ZF and FS_ZIP214_MG funding streams, which on Mainnet correspond to the ZF slice and MG slice respectively.
Within each stream, the addresses MAY be independent, or MAY be repeated between funding periods. Each party SHOULD take account of operational security issues associated with potential compromise of the associated spending keys.
Funds sent to each Mainnet funding stream SHALL be governed by all requirements on the corresponding slice specified in ZIP 1014 .
No requirements are imposed on the use of funds sent to Testnet funding streams.
Direct-grant option 
ZIP 1014 specified a "direct-grant option" by which, if agreed upon by both ECC and ZF before Canopy activation, some portion of the MG slice may be directly assigned to the grantee(s), rather than accepted and disbursed by ZF. However, this option was never taken up.
Mainnet Recipient Addresses for Revision 0
FS_ZIP214_BP.AddressList[0..47] = [
"t3LmX1cxWPPPqL4TZHx42HU3U5ghbFjRiif",
"t3Toxk1vJQ6UjWQ42tUJz2rV2feUWkpbTDs",
"t3ZBdBe4iokmsjdhMuwkxEdqMCFN16YxKe6",
"t3ZuaJziLM8xZ32rjDUzVjVtyYdDSz8GLWB",
"t3bAtYWa4bi8VrtvqySxnbr5uqcG9czQGTZ",
"t3dktADfb5Rmxncpe1HS5BRS5Gcj7MZWYBi",
"t3hgskquvKKoCtvxw86yN7q8bzwRxNgUZmc",
"t3R1VrLzwcxAZzkX4mX3KGbWpNsgtYtMntj",
"t3ff6fhemqPMVujD3AQurxRxTdvS1pPSaa2",
"t3cEUQFG3KYnFG6qYhPxSNgGi3HDjUPwC3J",
"t3WR9F5U4QvUFqqx9zFmwT6xFqduqRRXnaa",
"t3PYc1LWngrdUrJJbHkYPCKvJuvJjcm85Ch",
"t3bgkjiUeatWNkhxY3cWyLbTxKksAfk561R",
"t3Z5rrR8zahxUpZ8itmCKhMSfxiKjUp5Dk5",
"t3PU1j7YW3fJ67jUbkGhSRto8qK2qXCUiW3",
"t3S3yaT7EwNLaFZCamfsxxKwamQW2aRGEkh",
"t3eutXKJ9tEaPSxZpmowhzKhPfJvmtwTEZK",
"t3gbTb7brxLdVVghSPSd3ycGxzHbUpukeDm",
"t3UCKW2LrHFqPMQFEbZn6FpjqnhAAbfpMYR",
"t3NyHsrnYbqaySoQqEQRyTWkjvM2PLkU7Uu",
"t3QEFL6acxuZwiXtW3YvV6njDVGjJ1qeaRo",
"t3PdBRr2S1XTDzrV8bnZkXF3SJcrzHWe1wj",
"t3ZWyRPpWRo23pKxTLtWsnfEKeq9T4XPxKM",
"t3he6QytKCTydhpztykFsSsb9PmBT5JBZLi",
"t3VWxWDsLb2TURNEP6tA1ZSeQzUmPKFNxRY",
"t3NmWLvZkbciNAipauzsFRMxoZGqmtJksbz",
"t3cKr4YxVPvPBG1mCvzaoTTdBNokohsRJ8n",
"t3T3smGZn6BoSFXWWXa1RaoQdcyaFjMfuYK",
"t3gkDUe9Gm4GGpjMk86TiJZqhztBVMiUSSA",
"t3eretuBeBXFHe5jAqeSpUS1cpxVh51fAeb",
"t3dN8g9zi2UGJdixGe9txeSxeofLS9t3yFQ",
"t3S799pq9sYBFwccRecoTJ3SvQXRHPrHqvx",
"t3fhYnv1S5dXwau7GED3c1XErzt4n4vDxmf",
"t3cmE3vsBc5xfDJKXXZdpydCPSdZqt6AcNi",
"t3h5fPdjJVHaH4HwynYDM5BB3J7uQaoUwKi",
"t3Ma35c68BgRX8sdLDJ6WR1PCrKiWHG4Da9",
"t3LokMKPL1J8rkJZvVpfuH7dLu6oUWqZKQK",
"t3WFFGbEbhJWnASZxVLw2iTJBZfJGGX73mM",
"t3L8GLEsUn4QHNaRYcX3EGyXmQ8kjpT1zTa",
"t3PgfByBhaBSkH8uq4nYJ9ZBX4NhGCJBVYm",
"t3WecsqKDhWXD4JAgBVcnaCC2itzyNZhJrv",
"t3ZG9cSfopnsMQupKW5v9sTotjcP5P6RTbn",
"t3hC1Ywb5zDwUYYV8LwhvF5rZ6m49jxXSG5",
"t3VgMqDL15ZcyQDeqBsBW3W6rzfftrWP2yB",
"t3LC94Y6BwLoDtBoK2NuewaEbnko1zvR9rm",
"t3cWCUZJR3GtALaTcatrrpNJ3MGbMFVLRwQ",
"t3YYF4rPLVxDcF9hHFsXyc5Yq1TFfbojCY6",
"t3XHAGxRP2FNfhAjxGjxbrQPYtQQjc3RCQD"
]
FS_ZIP214_ZF.AddressList[0..47] = ["t3dvVE3SQEi7kqNzwrfNePxZ1d4hUyztBA1"] * 48
FS_ZIP214_MG.AddressList[0..47] = ["t3XyYW8yBFRuMnfvm5KLGFbEVz25kckZXym"] * 48
(i.e. FS_ZIP214_ZF.AddressList and FS_ZIP214_MG.AddressList for Mainnet each consist of 48 repetitions of the same address).
Mainnet Recipients for Revision 1
FS_FPF_ZCG.AddressList[0..11] = ["t3cFfPt1Bcvgez9ZbMBFWeZsskxTkPzGCow"] * 12
FS_DEFERRED = DEFERRED_POOL as defined in ZIP 207
Mainnet Recipients for Revision 2
FS_FPF_ZCG_H3.AddressList[0..35] = ["t3cFfPt1Bcvgez9ZbMBFWeZsskxTkPzGCow"] * 36
FS_CCF_H3 = DEFERRED_POOL as defined in ZIP 207
The Revision 2 address list remains valid under Revision 3: the last active block still selects index 35 when NU7 activates during the Revision 2 funding stream.
Testnet Recipient Addresses for Revision 0
FS_ZIP214_BP.AddressList[0..50] = [
"t26ovBdKAJLtrvBsE2QGF4nqBkEuptuPFZz",
"t26ovBdKAJLtrvBsE2QGF4nqBkEuptuPFZz",
"t26ovBdKAJLtrvBsE2QGF4nqBkEuptuPFZz",
"t26ovBdKAJLtrvBsE2QGF4nqBkEuptuPFZz",
"t2NNHrgPpE388atmWSF4DxAb3xAoW5Yp45M",
"t2VMN28itPyMeMHBEd9Z1hm6YLkQcGA1Wwe",
"t2CHa1TtdfUV8UYhNm7oxbzRyfr8616BYh2",
"t2F77xtr28U96Z2bC53ZEdTnQSUAyDuoa67",
"t2ARrzhbgcpoVBDPivUuj6PzXzDkTBPqfcT",
"t278aQ8XbvFR15mecRguiJDQQVRNnkU8kJw",
"t2Dp1BGnZsrTXZoEWLyjHmg3EPvmwBnPDGB",
"t2KzeqXgf4ju33hiSqCuKDb8iHjPCjMq9iL",
"t2Nyxqv1BiWY1eUSiuxVw36oveawYuo18tr",
"t2DKFk5JRsVoiuinK8Ti6eM4Yp7v8BbfTyH",
"t2CUaBca4k1x36SC4q8Nc8eBoqkMpF3CaLg",
"t296SiKL7L5wvFmEdMxVLz1oYgd6fTfcbZj",
"t29fBCFbhgsjL3XYEZ1yk1TUh7eTusB6dPg",
"t2FGofLJXa419A76Gpf5ncxQB4gQXiQMXjK",
"t2ExfrnRVnRiXDvxerQ8nZbcUQvNvAJA6Qu",
"t28JUffLp47eKPRHKvwSPzX27i9ow8LSXHx",
"t2JXWPtrtyL861rFWMZVtm3yfgxAf4H7uPA",
"t2QdgbJoWfYHgyvEDEZBjHmgkr9yNJff3Hi",
"t2QW43nkco8r32ZGRN6iw6eSzyDjkMwCV3n",
"t2DgYDXMJTYLwNcxighQ9RCgPxMVATRcUdC",
"t2Bop7dg33HGZx3wunnQzi2R2ntfpjuti3M",
"t2HVeEwovcLq9RstAbYkqngXNEsCe2vjJh9",
"t2HxbP5keQSx7p592zWQ5bJ5GrMmGDsV2Xa",
"t2TJzUg2matao3mztBRJoWnJY6ekUau6tPD",
"t29pMzxmo6wod25YhswcjKv3AFRNiBZHuhj",
"t2QBQMRiJKYjshJpE6RhbF7GLo51yE6d4wZ",
"t2F5RqnqguzZeiLtYHFx4yYfy6pDnut7tw5",
"t2CHvyZANE7XCtg8AhZnrcHCC7Ys1jJhK13",
"t2BRzpMdrGWZJ2upsaNQv6fSbkbTy7EitLo",
"t2BFixHGQMAWDY67LyTN514xRAB94iEjXp3",
"t2Uvz1iVPzBEWfQBH1p7NZJsFhD74tKaG8V",
"t2CmFDj5q6rJSRZeHf1SdrowinyMNcj438n",
"t2ErNvWEReTfPDBaNizjMPVssz66aVZh1hZ",
"t2GeJQ8wBUiHKDVzVM5ZtKfY5reCg7CnASs",
"t2L2eFtkKv1G6j55kLytKXTGuir4raAy3yr",
"t2EK2b87dpPazb7VvmEGc8iR6SJ289RywGL",
"t2DJ7RKeZJxdA4nZn8hRGXE8NUyTzjujph9",
"t2K1pXo4eByuWpKLkssyMLe8QKUbxnfFC3H",
"t2TB4mbSpuAcCWkH94Leb27FnRxo16AEHDg",
"t2Phx4gVL4YRnNsH3jM1M7jE4Fo329E66Na",
"t2VQZGmeNomN8c3USefeLL9nmU6M8x8CVzC",
"t2RicCvTVTY5y9JkreSRv3Xs8q2K67YxHLi",
"t2JrSLxTGc8wtPDe9hwbaeUjCrCfc4iZnDD",
"t2Uh9Au1PDDSw117sAbGivKREkmMxVC5tZo",
"t2FDwoJKLeEBMTy3oP7RLQ1Fihhvz49a3Bv",
"t2FY18mrgtb7QLeHA8ShnxLXuW8cNQ2n1v8",
"t2L15TkDYum7dnQRBqfvWdRe8Yw3jVy9z7g"
]
FS_ZIP214_ZF.AddressList[0..50] = ["t27eWDgjFYJGVXmzrXeVjnb5J3uXDM9xH9v"] * 51
FS_ZIP214_MG.AddressList[0..50] = ["t2Gvxv2uNM7hbbACjNox4H6DjByoKZ2Fa3P"] * 51
(i.e. FS_ZIP214_ZF.AddressList and FS_ZIP214_MG.AddressList for Testnet each consist of 51 repetitions of the same address).
Testnet Recipients for Revision 1
FS_FPF_ZCG.AddressList[0..12] = ["t2HifwjUj9uyxr9bknR8LFuQbc98c3vkXtu"] * 13
FS_DEFERRED = DEFERRED_POOL as defined in ZIP 207
Testnet Recipients for Revision 2
FS_FPF_ZCG_H3.AddressList[0..26] = ["t2HifwjUj9uyxr9bknR8LFuQbc98c3vkXtu"] * 27
FS_CCF_H3 = DEFERRED_POOL as defined in ZIP 207
The Revision 2 address list remains valid under Revision 3: the last active block still selects index 26 when NU7 activates during the Revision 2 funding stream.