Protocol Intro

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.