zcash_protocol/constants/mainnet.rs
1//! Constants for the Zcash main network.
2
3/// The mainnet coin type for ZEC, as defined by [SLIP 44].
4///
5/// [SLIP 44]: https://github.com/satoshilabs/slips/blob/master/slip-0044.md
6pub const COIN_TYPE: u32 = 133;
7
8/// The HRP for a Bech32-encoded mainnet Sapling [`ExtendedSpendingKey`].
9///
10/// Defined in [ZIP 32].
11///
12/// [`ExtendedSpendingKey`]: https://docs.rs/sapling-crypto/latest/sapling_crypto/zip32/struct.ExtendedSpendingKey.html
13/// [ZIP 32]: https://github.com/zcash/zips/blob/main/zips/zip-0032.rst
14pub const HRP_SAPLING_EXTENDED_SPENDING_KEY: &str = "secret-extended-key-main";
15
16/// The HRP for a Bech32-encoded mainnet [`ExtendedFullViewingKey`].
17///
18/// Defined in [ZIP 32].
19///
20/// [`ExtendedFullViewingKey`]: https://docs.rs/sapling-crypto/latest/sapling_crypto/zip32/struct.ExtendedFullViewingKey.html
21/// [ZIP 32]: https://github.com/zcash/zips/blob/main/zips/zip-0032.rst
22pub const HRP_SAPLING_EXTENDED_FULL_VIEWING_KEY: &str = "zxviews";
23
24/// The HRP for a Bech32-encoded mainnet Sapling [`PaymentAddress`].
25///
26/// Defined in section 5.6.4 of the [Zcash Protocol Specification].
27///
28/// [`PaymentAddress`]: https://docs.rs/sapling-crypto/latest/sapling_crypto/struct.PaymentAddress.html
29/// [Zcash Protocol Specification]: https://github.com/zcash/zips/blob/main/rendered/protocol/protocol.pdf
30pub const HRP_SAPLING_PAYMENT_ADDRESS: &str = "zs";
31
32/// The prefix for a Base58Check-encoded mainnet Sprout address.
33///
34/// Defined in the [Zcash Protocol Specification section 5.6.3][sproutpaymentaddrencoding].
35///
36/// [sproutpaymentaddrencoding]: https://zips.z.cash/protocol/protocol.pdf#sproutpaymentaddrencoding
37pub const B58_SPROUT_ADDRESS_PREFIX: [u8; 2] = [0x16, 0x9a];
38
39/// The prefix for a Base58Check-encoded mainnet [`PublicKeyHash`].
40///
41/// [`PublicKeyHash`]: https://docs.rs/zcash_primitives/latest/zcash_primitives/legacy/enum.TransparentAddress.html
42pub const B58_PUBKEY_ADDRESS_PREFIX: [u8; 2] = [0x1c, 0xb8];
43
44/// The prefix for a Base58Check-encoded mainnet [`ScriptHash`].
45///
46/// [`ScriptHash`]: https://docs.rs/zcash_primitives/latest/zcash_primitives/legacy/enum.TransparentAddress.html
47pub const B58_SCRIPT_ADDRESS_PREFIX: [u8; 2] = [0x1c, 0xbd];
48
49/// The HRP for a Bech32m-encoded mainnet [ZIP 320] TEX address.
50///
51/// [ZIP 320]: https://zips.z.cash/zip-0320
52pub const HRP_TEX_ADDRESS: &str = "tex";
53
54/// The HRP for a Bech32m-encoded mainnet Unified Address.
55///
56/// Defined in [ZIP 316][zip-0316].
57///
58/// [zip-0316]: https://zips.z.cash/zip-0316
59pub const HRP_UNIFIED_ADDRESS: &str = "u";
60
61/// The HRP for a Bech32m-encoded mainnet Unified FVK.
62///
63/// Defined in [ZIP 316][zip-0316].
64///
65/// [zip-0316]: https://zips.z.cash/zip-0316
66pub const HRP_UNIFIED_FVK: &str = "uview";
67
68/// The HRP for a Bech32m-encoded mainnet Unified IVK.
69///
70/// Defined in [ZIP 316][zip-0316].
71///
72/// [zip-0316]: https://zips.z.cash/zip-0316
73pub const HRP_UNIFIED_IVK: &str = "uivk";