---
title: "Get protocol by code"
method: GET
path: "/v1/protocols/{code}"
tags: ["Protocols"]
---

# Get protocol by code

`GET /v1/protocols/{code}`

Returns a protocol with the specified proto code.

## Path parameters

- `code` integer, required

## Response `200`

- Protocol
  - `code` integer — Protocol code, representing a number of protocol changes since genesis (mod 256, but `-1` for the genesis block)
  - `hash` string, required — Hash of the protocol
  - `version` integer — Global version number
  - `firstLevel` integer — Block height where the protocol was applied
  - `firstCycle` integer — Index of the first cycle started with the protocol
  - `firstCycleLevel` integer — Level of the first block of the first cycle started with the protocol
  - `lastLevel` integer, nullable — Block height where the protocol ends. `null` if the protocol is active
  - `constants` ProtocolConstants, required
    - `rampUpCycles` integer — The number of cycles where security deposit is ramping up
    - `noRewardCycles` integer — The number of cycles with no baking rewards
    - `consensusRightsDelay` integer — Delay in cycles after which baking rights are assigned
    - `delegateParametersActivationDelay` integer — Delay in cycles after which the parameters from `set_delegate_parameters` operations take effect
    - `blocksPerCycle` integer — A number of blocks the cycle contains
    - `blocksPerCommitment` integer — A number of blocks that indicates how often seed nonce hash is included in a block. Seed nonce hash presents in only one out of `blocksPerCommitment`
    - `blocksPerSnapshot` integer — A number of blocks that indicates how often a snapshot (snapshots are records of the state of stake distributions) is taken
    - `blocksPerVoting` integer — A number of block that indicates how long a voting period takes
    - `timeBetweenBlocks` integer — Minimum amount of seconds between blocks
    - `attestersPerBlock` integer — Number of bakers that assigned to attest a block
    - `hardOperationGasLimit` integer — Maximum amount of gas that one operation can consume
    - `hardOperationStorageLimit` integer — Maximum amount of storage that one operation can consume
    - `hardBlockGasLimit` integer — Maximum amount of total gas usage of a single block
    - `minimalStake` integer — Required number of tokens to get 1 roll (micro tez)
    - `minimalFrozenStake` integer — Required number of tokens to be frozen by bakers (micro tez)
    - `blockDeposit` integer — Security deposit for baking (producing) a block (micro tez)
    - `blockReward` integer[], required — Reward for baking (producing) a block (micro tez)
    - `attestationDeposit` integer — Security deposit for sending an attestation operation (micro tez)
    - `attestationReward` integer[], required — Reward for sending an attestation operation (micro tez)
    - `originationSize` integer — Initial storage size of an originated (created) account (bytes)
    - `byteCost` integer — Cost of one storage byte in the blockchain (micro tez)
    - `proposalQuorum` number, double — Percentage of the total number of voting power required to select a proposal on the proposal period
    - `ballotQuorumMin` number, double — The minimum value of quorum percentage on the exploration and promotion periods
    - `ballotQuorumMax` number, double — The maximum value of quorum percentage on the exploration and promotion periods
    - `lbToggleThreshold` integer — 1/2 window size of 2000 blocks with precision of 1000000 for integer computation
    - `consensusThreshold` integer — Attestation quorum
    - `minParticipationNumerator` integer — Number of attested slots needed to receive attestation rewards
    - `minParticipationDenominator` integer — Number of attested slots needed to receive attestation rewards
    - `denunciationPeriod` integer — Number of cycles after double baking/(pre)attestation where an accusation operation can be injected
    - `slashingDelay` integer — Number of cycles after double baking/(pre)attestation evidence where slashing happens
    - `maxDelegatedOverFrozenRatio` integer — The ratio of delegated tez over the baker’s frozen stake
    - `maxExternalOverOwnStakeRatio` integer — The ratio of external staked balance over the baker’s own staked balance
    - `delegationPowerDivider` integer — The divider by which delegation power is divided
    - `smartRollupOriginationSize` integer — Initial storage size of an originated (created) smart rollup (bytes)
    - `smartRollupStakeAmount` integer — Smart rollup commitment bond (mutez)
    - `smartRollupChallengeWindow` integer — Window (in blocks) when it's possible to refute pending commitment
    - `smartRollupCommitmentPeriod` integer — Period (in blocks) for publishing commitments
    - `smartRollupTimeoutPeriod` integer — Period (in blocks) when a refutation game player must make a turn
    - `dalNumberOfShards` integer — Number of DAL Shards
    - `dictator` string, nullable — Governance dictator
    - `endorsersPerBlock` integer — **DEPRECATED**
    - `endorsementDeposit` integer — **DEPRECATED**
    - `endorsementReward` integer[] — **DEPRECATED**
  - `extras` unknown

---

[API](https://skmtc.dev/tzkt/apis/tzkt-api.md) · [All operations](https://skmtc.dev/tzkt/apis/tzkt-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/tzkt/tzkt-api/revisions/a2e2aba5e534/schema)
