---
title: "POST /tendermint.abci.ABCI/InitChain"
method: POST
path: "/tendermint.abci.ABCI/InitChain"
tags: ["ABCI"]
---

# POST /tendermint.abci.ABCI/InitChain

`POST /tendermint.abci.ABCI/InitChain`

## Request body

- TendermintAbciRequestInitChain
  - `app_state_bytes` string, byte
  - `chain_id` string
  - `consensus_params` TendermintTypesConsensusParams — ConsensusParams contains consensus critical parameters that determine the validity of blocks.
    - `abci` TendermintTypesABCIParams — ABCIParams configure functionality specific to the Application Blockchain Interface.
      - `vote_extensions_enable_height` string, int64 — vote_extensions_enable_height configures the first height during which vote extensions will be enabled. During this specified height, and for all subsequent heights, precommit messages that do not contain valid extension data will be considered invalid. Prior to this height, vote extensions will not be used or accepted by validators on the network. Once enabled, vote extensions will be created by the application in ExtendVote, passed to the application for validation in VerifyVoteExtension and given to the application to use when proposing a block during PrepareProposal.
    - `block` TendermintTypesBlockParams — BlockParams contains limits on the block size.
      - `max_bytes` string, int64
      - `max_gas` string, int64
    - `evidence` TendermintTypesEvidenceParams — EvidenceParams determine how we handle evidence of malfeasance.
      - `max_age_duration` string — Max age of evidence, in time. It should correspond with an app's "unbonding period" or other similar mechanism for handling [Nothing-At-Stake attacks](https://github.com/ethereum/wiki/wiki/Proof-of-Stake-FAQ#what-is-the-nothing-at-stake-problem-and-how-can-it-be-fixed).
      - `max_age_num_blocks` string, int64 — Max age of evidence, in blocks. The basic formula for calculating this is: MaxAgeDuration / {average block time}.
      - `max_bytes` string, int64
    - `validator` TendermintTypesValidatorParams — ValidatorParams restrict the public key types validators can use. NOTE: uses ABCI pubkey naming, not Amino names.
      - `pub_key_types` string[]
    - `version` TendermintTypesVersionParams — VersionParams contains the ABCI application version.
      - `app` string, uint64
  - `initial_height` string, int64
  - `time` string, date-time
  - `validators` TendermintAbciValidatorUpdate[]
    - `power` string, int64
    - `pub_key` TendermintCryptoPublicKey
      - `ed25519` string, byte
      - `secp256k1` string, byte

## Response `200`

A successful response.

- TendermintAbciResponseInitChain
  - `app_hash` string, byte
  - `consensus_params` TendermintTypesConsensusParams — ConsensusParams contains consensus critical parameters that determine the validity of blocks.
    - `abci` TendermintTypesABCIParams — ABCIParams configure functionality specific to the Application Blockchain Interface.
      - `vote_extensions_enable_height` string, int64 — vote_extensions_enable_height configures the first height during which vote extensions will be enabled. During this specified height, and for all subsequent heights, precommit messages that do not contain valid extension data will be considered invalid. Prior to this height, vote extensions will not be used or accepted by validators on the network. Once enabled, vote extensions will be created by the application in ExtendVote, passed to the application for validation in VerifyVoteExtension and given to the application to use when proposing a block during PrepareProposal.
    - `block` TendermintTypesBlockParams — BlockParams contains limits on the block size.
      - `max_bytes` string, int64
      - `max_gas` string, int64
    - `evidence` TendermintTypesEvidenceParams — EvidenceParams determine how we handle evidence of malfeasance.
      - `max_age_duration` string — Max age of evidence, in time. It should correspond with an app's "unbonding period" or other similar mechanism for handling [Nothing-At-Stake attacks](https://github.com/ethereum/wiki/wiki/Proof-of-Stake-FAQ#what-is-the-nothing-at-stake-problem-and-how-can-it-be-fixed).
      - `max_age_num_blocks` string, int64 — Max age of evidence, in blocks. The basic formula for calculating this is: MaxAgeDuration / {average block time}.
      - `max_bytes` string, int64
    - `validator` TendermintTypesValidatorParams — ValidatorParams restrict the public key types validators can use. NOTE: uses ABCI pubkey naming, not Amino names.
      - `pub_key_types` string[]
    - `version` TendermintTypesVersionParams — VersionParams contains the ABCI application version.
      - `app` string, uint64
  - `validators` TendermintAbciValidatorUpdate[]
    - `power` string, int64
    - `pub_key` TendermintCryptoPublicKey
      - `ed25519` string, byte
      - `secp256k1` string, byte

## Other responses

- `default` — An unexpected error response.

## Changes

- **2025-02-05** `de0653d8a73d` — 1 info
  - api operation id `EvidenceABCI_InitChain` removed and replaced with `CircuitABCI_InitChain`
- **2024-08-14** `21c607e4fa20` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/pokt-network/apis/http-api-console/changes/tendermint.abci.ABCI/InitChain/post.md)

---

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