> ## Documentation Index
> Fetch the complete documentation index at: https://docs.cosmos.network/llms.txt
> Use this file to discover all available pages before exploring further.

# HistoricalInfo

> gRPC: `cosmos.staking.v1beta1.Query/HistoricalInfo` ([reference](/sdk/next/api-reference/grpc/staking#historicalinfo))

HistoricalInfo queries the historical info for given height.



## OpenAPI

````yaml /sdk/next/api-reference/rest/openapi.yaml get /cosmos/staking/v1beta1/historical_info/{height}
openapi: 3.0.0
info:
  title: Cosmos SDK REST API
  description: >-
    HTTP bindings for the gRPC query services of the standard Cosmos SDK
    modules, documenting Cosmos SDK v0.55 (unreleased).


    Generated from cosmos/cosmos-sdk at commit
    c1126e4e5460571378bf9bd9c49cce476b0791e2 on ref `main`.


    A chain exposes only the modules its application registers, so it may serve
    a subset of these routes alongside routes of its own.
  version: v0.55 (unreleased)
servers:
  - url: https://cosmos-rest.publicnode.com
    description: >-
      Community-run public endpoint serving Cosmos Hub. Not operated by the
      Cosmos SDK team, and running a different SDK version than these pages
      document. Endpoints for modules the chain does not include return 501.
  - url: http://localhost:1317
    description: Your own node. Requires api.enable in app.toml.
security: []
tags:
  - name: auth
  - name: authz
  - name: bank
  - name: base
  - name: consensus
  - name: distribution
  - name: epochs
  - name: evidence
  - name: feegrant
  - name: gov
  - name: mint
  - name: slashing
  - name: staking
  - name: tx
  - name: upgrade
paths:
  /cosmos/staking/v1beta1/historical_info/{height}:
    get:
      tags:
        - staking
      summary: HistoricalInfo
      description: >-
        gRPC: `cosmos.staking.v1beta1.Query/HistoricalInfo`
        ([reference](/sdk/next/api-reference/grpc/staking#historicalinfo))


        HistoricalInfo queries the historical info for given height.
      operationId: staking_v1beta1_HistoricalInfo
      parameters:
        - name: height
          description: height defines at which height to query the historical info.
          in: path
          required: true
          schema:
            type: string
            format: int64
      responses:
        '200':
          description: A successful response.
          content:
            '*/*':
              schema:
                type: object
                properties:
                  hist:
                    description: hist defines the historical info at the given height.
                    type: object
                    properties:
                      header:
                        type: object
                        properties:
                          version:
                            title: basic block info
                            type: object
                            properties:
                              block:
                                type: string
                                format: uint64
                              app:
                                type: string
                                format: uint64
                            description: >-
                              Consensus captures the consensus rules for
                              processing a block in the blockchain,

                              including all blockchain data structures and the
                              rules of the application's

                              state transition machine.
                            nullable: true
                            additionalProperties: false
                          chain_id:
                            type: string
                          height:
                            type: string
                            format: int64
                          time:
                            type: string
                            format: date-time
                            nullable: true
                          last_block_id:
                            title: prev block info
                            type: object
                            properties:
                              hash:
                                type: string
                                format: byte
                                nullable: true
                              part_set_header:
                                type: object
                                properties:
                                  total:
                                    type: integer
                                    format: int64
                                  hash:
                                    type: string
                                    format: byte
                                    nullable: true
                                title: PartsetHeader
                                nullable: true
                                additionalProperties: false
                            nullable: true
                            additionalProperties: false
                          last_commit_hash:
                            type: string
                            format: byte
                            description: commit from validators from the last block
                            title: hashes of block data
                            nullable: true
                          data_hash:
                            type: string
                            format: byte
                            title: transactions
                            nullable: true
                          validators_hash:
                            type: string
                            format: byte
                            description: validators for the current block
                            title: hashes from the app output from the prev block
                            nullable: true
                          next_validators_hash:
                            type: string
                            format: byte
                            title: validators for the next block
                            nullable: true
                          consensus_hash:
                            type: string
                            format: byte
                            title: consensus params for current block
                            nullable: true
                          app_hash:
                            type: string
                            format: byte
                            title: state after txs from the previous block
                            nullable: true
                          last_results_hash:
                            type: string
                            format: byte
                            title: >-
                              root hash of all results from the txs from the
                              previous block
                            nullable: true
                          evidence_hash:
                            type: string
                            format: byte
                            description: evidence included in the block
                            title: consensus info
                            nullable: true
                          proposer_address:
                            type: string
                            format: byte
                            title: original proposer of the block
                            nullable: true
                        description: Header defines the structure of a block header.
                        nullable: true
                        additionalProperties: false
                      valset:
                        type: array
                        items:
                          type: object
                          properties:
                            operator_address:
                              type: string
                              description: >-
                                operator_address defines the address of the
                                validator's operator; bech encoded in JSON.
                            consensus_pubkey:
                              description: >-
                                consensus_pubkey is the consensus public key of
                                the validator, as a Protobuf Any.
                              type: object
                              properties:
                                '@type':
                                  type: string
                                  description: >-
                                    A URL/resource name that uniquely identifies
                                    the type of the serialized

                                    protocol buffer message. This string must
                                    contain at least

                                    one "/" character. The last segment of the
                                    URL's path must represent

                                    the fully qualified name of the type (as in

                                    `path/google.protobuf.Duration`). The name
                                    should be in a canonical form

                                    (e.g., leading "." is not accepted).


                                    In practice, teams usually precompile into
                                    the binary all types that they

                                    expect it to use in the context of Any.
                                    However, for URLs which use the

                                    scheme `http`, `https`, or no scheme, one
                                    can optionally set up a type

                                    server that maps type URLs to message
                                    definitions as follows:


                                    * If no scheme is provided, `https` is
                                    assumed.

                                    * An HTTP GET on the URL must yield a
                                    [google.protobuf.Type][]
                                      value in binary format, or produce an error.
                                    * Applications are allowed to cache lookup
                                    results based on the
                                      URL, or have them precompiled into a binary to avoid any
                                      lookup. Therefore, binary compatibility needs to be preserved
                                      on changes to types. (Use versioned type names to manage
                                      breaking changes.)

                                    Note: this functionality is not currently
                                    available in the official

                                    protobuf release, and it is not used for
                                    type URLs beginning with

                                    type.googleapis.com. As of May 2023, there
                                    are no widely used type server

                                    implementations and no plans to implement
                                    one.


                                    Schemes other than `http`, `https` (or the
                                    empty scheme) might be

                                    used with implementation specific semantics.
                              additionalProperties: {}
                              nullable: true
                            jailed:
                              type: boolean
                              description: >-
                                jailed defined whether the validator has been
                                jailed from bonded status or not.
                            status:
                              description: >-
                                status is the validator status
                                (bonded/unbonding/unbonded).
                              type: string
                              enum:
                                - BOND_STATUS_UNSPECIFIED
                                - BOND_STATUS_UNBONDED
                                - BOND_STATUS_UNBONDING
                                - BOND_STATUS_BONDED
                              default: BOND_STATUS_UNSPECIFIED
                              nullable: true
                            tokens:
                              type: string
                              description: >-
                                tokens define the delegated tokens (incl.
                                self-delegation).
                            delegator_shares:
                              type: string
                              description: >-
                                delegator_shares defines total shares issued to
                                a validator's delegators.
                            description:
                              description: >-
                                description defines the description terms for
                                the validator.
                              type: object
                              properties:
                                moniker:
                                  type: string
                                  description: >-
                                    moniker defines a human-readable name for
                                    the validator.
                                identity:
                                  type: string
                                  description: >-
                                    identity defines an optional identity
                                    signature (ex. UPort or Keybase).
                                website:
                                  type: string
                                  description: website defines an optional website link.
                                security_contact:
                                  type: string
                                  description: >-
                                    security_contact defines an optional email
                                    for security contact.
                                details:
                                  type: string
                                  description: details define other optional details.
                              nullable: true
                              additionalProperties: false
                            unbonding_height:
                              type: string
                              format: int64
                              description: >-
                                unbonding_height defines, if unbonding, the
                                height at which this validator has begun
                                unbonding.
                            unbonding_time:
                              type: string
                              format: date-time
                              description: >-
                                unbonding_time defines, if unbonding, the min
                                time for the validator to complete unbonding.
                              nullable: true
                            commission:
                              description: commission defines the commission parameters.
                              type: object
                              properties:
                                commission_rates:
                                  description: >-
                                    commission_rates defines the initial
                                    commission rates to be used for creating a
                                    validator.
                                  type: object
                                  properties:
                                    rate:
                                      type: string
                                      description: >-
                                        rate is the commission rate charged to
                                        delegators, as a fraction.
                                    max_rate:
                                      type: string
                                      description: >-
                                        max_rate defines the maximum commission
                                        rate which validator can ever charge, as
                                        a fraction.
                                    max_change_rate:
                                      type: string
                                      description: >-
                                        max_change_rate defines the maximum
                                        daily increase of the validator
                                        commission, as a fraction.
                                  nullable: true
                                  additionalProperties: false
                                update_time:
                                  type: string
                                  format: date-time
                                  description: >-
                                    update_time is the last time the commission
                                    rate was changed.
                                  nullable: true
                              nullable: true
                              additionalProperties: false
                            min_self_delegation:
                              type: string
                              description: >-
                                min_self_delegation is the validator's self
                                declared minimum self delegation.
                            unbonding_on_hold_ref_count:
                              type: string
                              format: int64
                              title: >-
                                strictly positive if this validator's unbonding
                                has been stopped by external modules
                            unbonding_ids:
                              type: array
                              items:
                                type: string
                                format: uint64
                              title: >-
                                list of unbonding ids, each uniquely identifying
                                an unbonding of this validator
                          description: >-
                            Validator defines a validator, together with the
                            total amount of the

                            Validator's bond shares and their exchange rate to
                            coins. Slashing results in

                            a decrease in the exchange rate, allowing correct
                            calculation of future

                            undelegations without iterating over delegators.
                            When coins are delegated to

                            this validator, the validator is credited with a
                            delegation whose number of

                            bond shares is based on the amount of coins
                            delegated divided by the current

                            exchange rate. Voting power can be calculated as
                            total bonded shares

                            multiplied by exchange rate.
                        nullable: true
                    nullable: true
                    additionalProperties: false
                description: >-
                  QueryHistoricalInfoResponse is response type for the
                  Query/HistoricalInfo RPC

                  method.
                additionalProperties: false
        default:
          description: An unexpected error response.
          content:
            '*/*':
              schema:
                type: object
                properties:
                  code:
                    type: integer
                    format: int32
                  message:
                    type: string
                  details:
                    type: array
                    items:
                      type: object
                      properties:
                        '@type':
                          type: string
                          description: >-
                            A URL/resource name that uniquely identifies the
                            type of the serialized

                            protocol buffer message. This string must contain at
                            least

                            one "/" character. The last segment of the URL's
                            path must represent

                            the fully qualified name of the type (as in

                            `path/google.protobuf.Duration`). The name should be
                            in a canonical form

                            (e.g., leading "." is not accepted).


                            In practice, teams usually precompile into the
                            binary all types that they

                            expect it to use in the context of Any. However, for
                            URLs which use the

                            scheme `http`, `https`, or no scheme, one can
                            optionally set up a type

                            server that maps type URLs to message definitions as
                            follows:


                            * If no scheme is provided, `https` is assumed.

                            * An HTTP GET on the URL must yield a
                            [google.protobuf.Type][]
                              value in binary format, or produce an error.
                            * Applications are allowed to cache lookup results
                            based on the
                              URL, or have them precompiled into a binary to avoid any
                              lookup. Therefore, binary compatibility needs to be preserved
                              on changes to types. (Use versioned type names to manage
                              breaking changes.)

                            Note: this functionality is not currently available
                            in the official

                            protobuf release, and it is not used for type URLs
                            beginning with

                            type.googleapis.com. As of May 2023, there are no
                            widely used type server

                            implementations and no plans to implement one.


                            Schemes other than `http`, `https` (or the empty
                            scheme) might be

                            used with implementation specific semantics.
                      additionalProperties: {}
                      description: >-
                        `Any` contains an arbitrary serialized protocol buffer
                        message along with a

                        URL that describes the type of the serialized message.


                        Protobuf library provides support to pack/unpack Any
                        values in the form

                        of utility functions or additional generated methods of
                        the Any type.


                        Example 1: Pack and unpack a message in C++.

                            Foo foo = ...;
                            Any any;
                            any.PackFrom(foo);
                            ...
                            if (any.UnpackTo(&foo)) {
                              ...
                            }

                        Example 2: Pack and unpack a message in Java.

                            Foo foo = ...;
                            Any any = Any.pack(foo);
                            ...
                            if (any.is(Foo.class)) {
                              foo = any.unpack(Foo.class);
                            }
                            // or ...
                            if (any.isSameTypeAs(Foo.getDefaultInstance())) {
                              foo = any.unpack(Foo.getDefaultInstance());
                            }

                         Example 3: Pack and unpack a message in Python.

                            foo = Foo(...)
                            any = Any()
                            any.Pack(foo)
                            ...
                            if any.Is(Foo.DESCRIPTOR):
                              any.Unpack(foo)
                              ...

                         Example 4: Pack and unpack a message in Go

                             foo := &pb.Foo{...}
                             any, err := anypb.New(foo)
                             if err != nil {
                               ...
                             }
                             ...
                             foo := &pb.Foo{}
                             if err := any.UnmarshalTo(foo); err != nil {
                               ...
                             }

                        The pack methods provided by protobuf library will by
                        default use

                        'type.googleapis.com/full.type.name' as the type URL and
                        the unpack

                        methods only use the fully qualified type name after the
                        last '/'

                        in the type URL, for example "foo.bar.com/x/y.z" will
                        yield type

                        name "y.z".


                        JSON

                        ====

                        The JSON representation of an `Any` value uses the
                        regular

                        representation of the deserialized, embedded message,
                        with an

                        additional field `@type` which contains the type URL.
                        Example:

                            package google.profile;
                            message Person {
                              string first_name = 1;
                              string last_name = 2;
                            }

                            {
                              "@type": "type.googleapis.com/google.profile.Person",
                              "firstName": <string>,
                              "lastName": <string>
                            }

                        If the embedded message type is well-known and has a
                        custom JSON

                        representation, that representation will be embedded
                        adding a field

                        `value` which holds the custom JSON in addition to the
                        `@type`

                        field. Example (for message
                        [google.protobuf.Duration][]):

                            {
                              "@type": "type.googleapis.com/google.protobuf.Duration",
                              "value": "1.212s"
                            }

````