Introduction to the Namada Protocol
The Namada protocol is a proof-of-stake layer 1 blockchain protocol. State transitions are governed by validity predicates, and rules of the protocol are defined by protocol parameters. The following section describes key parameters and concepts, and how to query them.
Epochs
The system relies on the concept of epochs. An epoch is a range of consecutive blocks identified by consecutive natural numbers. Each epoch lasts a minimum duration and includes a minimum number of blocks since the beginning of the last epoch. These are defined by protocol parameters.
To query the epoch duration parameters, the following command can be run:
namadac query-protocol-parameters
In order to query the current epoch of the chain, the following command can be run:
namadac epoch
Protocol parameters
All of the current protocol parameters can be queried using the following command:
namadac query-protocol-parameters
This will display the list of protocol parameters. E.g:
Governance Parameters
Min. proposal fund: 2000.000000 native tokens
Max. proposal code size: 1000000 bytes
Min. proposal voting period: 12 epochs
Max. proposal period: 84 epochs
Max. proposal content size: 10000 characters
Min. proposal grace epochs: 1
Max. proposal latency: 8 epochs
Public Goods Funding Parameters
Pgf inflation rate: 0.05
Steward inflation rate: 0
Max. number of stewards: 5
Protocol parameters
Min. epoch duration: 21600 seconds
Epochs per year: 1460
Min. number of blocks: 2700
Masp epoch multiplier: 4
Implicit VP hash: FB4462B86FF8969826FB66DFA0397CD795DF9DE9769F7A414D368200A8342951
VP allowlist: ["fb4462b86ff8969826fb66dfa0397cd795df9de9769f7a414d368200a8342951", "abb163de1f532c740ee6bb69ccc69a5a55505b5c92979d1f256527833b8dfeca"]
Transactions allowlist: ["c6629064a1c3bde8503212cfa5e9b954169a7f162ad411b63a71db782fe909d7", "490cf419bdbffe616c6aa6c72d38064e350ee65fb04d92472ccf285aec6844b6", "473ee80e6e714f6097ec713c88f527b38da6479354075c879b66b9f53e813cb0", "0295796e5ff47aeecb95b68c2fe308693e5f84b251126f26d03309e5f4f5da55", "b745bc2b87bf8acd07e2f3409c77eee06c9b5206d2a77a2f23bb8e593c70cbfe", "1b5a323c140b54700f280cde8b9aac1c12555f9c119e936432ddfa8f194d23ac", "b6a1f7e069360650d2c6a1bdd2e5f4e18bb748d35dad02c31c027673fa042d8c", "5120581194f1e6a122d2eec3f886e9cf5f079f56540d96193d3c1f9804c4d936", "cecb1f1b75cd649915423c5e68be20c5232f94ab57a11a908dc66751bbdc4f72", "26f90ec6676444cd6191d7555fd48861372f901c46e5178c59a897b411616918", "33ee28597cf0f6a11dfe6e23e9aedf2eb04dabb44069cbe317768f4d982d80be", "fbe97ce1136225bdbf8e388bab833a8c51e80bc1b8d94f7d3f8e49b3fad08543", "7d5ad1877643f7d9b32a511ef93a11e8503426baee0f5986d29e3f63a2355d58", "b63738a98927be05fd27f00d208e8703031e45b579d42f776d27234c48a48523", "f1fc74460bd9bbd17140c88dfc0543440f066ffb84849c35c2bb0e331e51cf1c", "6d753db0390e7cec16729fc405bfe41384c93bd79f42b8b8be41b22edbbf1b7c", "36e774350b865752c9d309d518223abf0a60374bae15a1f73dfe4721b5887048", "2e17680cec3e97ff5a6d4db2ba4a376a15f6da143abce690affd800645c6db80", "12faf164aef7b6f91ed918db39f00e19fd3fc527a63f3b2589f43bf30bbaf24b", "d7e34efc128d6a1c84691200f72f83ad9f696e1766f8ce083894f26343fc395f", "faad78023b9391596981ac9a536070a3d7d469d5c6e20c2855b2cfca63c38f59", "8a9df03a1a8f5e9e606e14a97fdfb2097dba062da1b3b2158bbfa7deabeeadfb"]
Max. proposal bytes: 6291456
Max tx bytes: 1048576
Max. block gas: 3000000 gas units
Masp fee payment gas limit: 100000 gas units
Minimum gas costs:
tnam1q9gr66cvu4hrzm0sd5kmlnjje82gs3xlfg3v6nu7: 0.000001 per gas unit
Gas scale: 50000
Is native token transferable: false
Proof of Stake parameters
Pipeline length: 2 epochs
Unbonding length: 53 epochs
Cubic slashing window length: 1 epoch
Max. consensus validator slots: 255
Validator stake threshold: 1000.000000 native tokens
Duplicate vote minimum slash rate: 0.001
Light client attack minimum slash rate: 0.001
Liveness window: 10000 blocks
Liveness threshold: 0.1
Block proposer reward: 0.125
Block vote reward: 0.1
Max inflation rate: 0.05
Target staked ratio: 0.55
Inflation kP gain: 0.5
Inflation kD gain: 0.5
Votes per raw native token: 1
Governance parameters
- Min. proposal fund: The minimum amount of native tokens required to submit a proposal.
- Max. proposal code size: The maximum size of the code that can be submitted in a proposal.
- Min. proposal voting period: The minimum duration (in epochs) of the voting period for a proposal.
- Max. proposal period: The maximum duration (in epochs) of the proposal period.
- Max. proposal content size: The maximum number of characters of the content that can be submitted in a proposal.
- Min. proposal grace epochs: The minimum number of epochs between the end of a proposal's voting period and the epoch at which the code executes.
The proposal period is defined as the time between the epoch when voting begins (start epch) and the epoch when the proposal code would execute (activation epoch).
Any changes enacted by a passing proposal (for example, changes to the protocol parameters) will take effect at the beginning of the activation epoch.
Public Goods Funding Parameters
- Pgf inflation rate: The annual inflation rate for the Public Goods Funding -- the percentage of newly minted tokens that are allotted to the PGF treasury annually.
- Steward inflation rate: The annual inflation rate for the Steward account(s) -- the percentage of newly minted tokens allotted to funding PGF Steward operations (such as reviewing PGF recipient nominees) annually. This inflation amount is minted for each steward.
- Max number of stewards: The maximum number of PGF stewards allowed at a given time
Protocol parameters
- Min. epoch duration: The minimum number of seconds per epoch.
- Epochs per year: the configured number of epochs in a year
- Min. number of blocks: The minimum number of blocks per epoch.
- Masp epoch multiplier: the number of epochs in a MASP epoch, which is when shielded rewards inflation is minted.
- VP allowlist: The list of validity predicates (their wasm hashes) that are "whitelisted" and can be invoked in transactions.
- Transactions allowlist: The list of transactions (their wasm hashes) that are "whitelisted" and can be invoked in transactions.
- Max block gas: The maximum amount of gas that a block can consume.
- Fee unshielding gas limit: The maximum amount of gas that a fee unshielding transaction can consume.
- Fee unshielding descriptions limit: The maximum number of characters that can be included in the description of a fee unshielding transaction.
- Gas cost table: The gas cost table for the different tokens (indicated by address) that can pay for gas.
PoS parameters
- Pipeline length: The number of epochs until a bond becomes active (and other transactions take effect).
- Unbonding length: Determines the number of epochs it takes to withdraw unbonded tokens.
- Cubic slashing window length: Determines the size of the epoch window used to do cubic slashing.
- Max. consensus validator slots: The maximum number of consensus validator slots.
- Validator stake threshold: The minimum amount of tokens that a validator must have in order to be eligible for consensus.
- Duplicate vote minimum slash rate: The minimum slashing rate for a duplicate vote.
- Light client attack minimum slash rate: The minimum slashing rate for a light client attack.
- Liveness window: The number of blocks that are considered for the liveness check, counted by number of blocks that a validator signs
- Liveness threshold: The fraction of blocks that a validator must sign within the window in order to be considered live. Any active validator in the consensus set falling below this threshold will be jailed for inactivity.
- Block proposer reward: The reward coefficient for the block proposer.
- Block vote reward: The reward coefficient for the block voter.
- Max inflation rate: The maximum annual inflation rate.
- Target staked ratio: The target ratio of the total staked tokens to the total supply.
- Inflation kP gain: The
kp
(proportional) gain for the inflation parameter in the PD controller. - Inflation kD gain: The
kd
(second order) gain for the inflation parameter. - Votes per raw token: The number of votes per raw token bonded.