> ## 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.

# CurrentPlan

> gRPC: `cosmos.upgrade.v1beta1.Query/CurrentPlan` ([reference](/sdk/next/api-reference/grpc/upgrade#currentplan))

CurrentPlan queries the current upgrade plan.



## OpenAPI

````yaml /sdk/next/api-reference/rest/openapi.yaml get /cosmos/upgrade/v1beta1/current_plan
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/upgrade/v1beta1/current_plan:
    get:
      tags:
        - upgrade
      summary: CurrentPlan
      description: >-
        gRPC: `cosmos.upgrade.v1beta1.Query/CurrentPlan`
        ([reference](/sdk/next/api-reference/grpc/upgrade#currentplan))


        CurrentPlan queries the current upgrade plan.
      operationId: upgrade_v1beta1_CurrentPlan
      responses:
        '200':
          description: A successful response.
          content:
            '*/*':
              schema:
                type: object
                properties:
                  plan:
                    description: plan is the current upgrade plan.
                    type: object
                    properties:
                      name:
                        type: string
                        description: >-
                          Sets the name for the upgrade. This name will be used
                          by the upgraded

                          version of the software to apply any special
                          "on-upgrade" commands during

                          the first BeginBlock method after the upgrade is
                          applied. It is also used

                          to detect whether a software version can handle a
                          given upgrade. If no

                          upgrade handler with this name has been set in the
                          software, it will be

                          assumed that the software is out-of-date when the
                          upgrade Time or Height is

                          reached and the software will exit.
                      time:
                        type: string
                        format: date-time
                        description: >-
                          Deprecated: Time based upgrades have been deprecated.
                          Time based upgrade logic

                          has been removed from the SDK.

                          If this field is not empty, an error will be thrown.
                        nullable: true
                      height:
                        type: string
                        format: int64
                        description: The height at which the upgrade must be performed.
                      info:
                        type: string
                        title: >-
                          Any application specific upgrade info to be included
                          on-chain

                          such as a git commit that validators could
                          automatically upgrade to
                      upgraded_client_state:
                        description: >-
                          Deprecated: UpgradedClientState field has been
                          deprecated. IBC upgrade logic has been

                          moved to the IBC module in the sub module 02-client.

                          If this field is not empty, an error will be thrown.
                        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
                    nullable: true
                description: >-
                  QueryCurrentPlanResponse is the response type for the
                  Query/CurrentPlan 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"
                            }

````