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

# BroadcastTx

> gRPC: `cosmos.tx.v1beta1.Service/BroadcastTx` ([reference](/sdk/latest/api-reference/grpc/tx#broadcasttx))

BroadcastTx broadcast transaction.



## OpenAPI

````yaml /sdk/latest/api-reference/rest/openapi.yaml post /cosmos/tx/v1beta1/txs
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.


    Generated from cosmos/cosmos-sdk at commit
    2086680ff8b08fd269ee653e087ea577bab79534 on ref `release/v0.55.x`.


    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
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/tx/v1beta1/txs:
    post:
      tags:
        - tx
      summary: BroadcastTx
      description: >-
        gRPC: `cosmos.tx.v1beta1.Service/BroadcastTx`
        ([reference](/sdk/latest/api-reference/grpc/tx#broadcasttx))


        BroadcastTx broadcast transaction.
      operationId: tx_v1beta1_BroadcastTx
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                tx_bytes:
                  type: string
                  format: byte
                  description: tx_bytes is the raw transaction.
                mode:
                  type: string
                  enum:
                    - BROADCAST_MODE_UNSPECIFIED
                    - BROADCAST_MODE_BLOCK
                    - BROADCAST_MODE_SYNC
                    - BROADCAST_MODE_ASYNC
                  default: BROADCAST_MODE_UNSPECIFIED
                  description: >-
                    BroadcastMode specifies the broadcast mode for the
                    TxService.Broadcast RPC

                    method.

                     - BROADCAST_MODE_UNSPECIFIED: zero-value for mode ordering
                     - BROADCAST_MODE_BLOCK: DEPRECATED: use BROADCAST_MODE_SYNC instead,
                    BROADCAST_MODE_BLOCK is not supported by the SDK from
                    v0.47.x onwards.
                     - BROADCAST_MODE_SYNC: BROADCAST_MODE_SYNC defines a tx broadcasting mode where the client waits
                    for a CheckTx execution response only.
                     - BROADCAST_MODE_ASYNC: BROADCAST_MODE_ASYNC defines a tx broadcasting mode where the client
                    returns immediately.
              description: >-
                BroadcastTxRequest is the request type for the
                Service.BroadcastTxRequest

                RPC method.
        description: >-
          BroadcastTxRequest is the request type for the
          Service.BroadcastTxRequest

          RPC method.
        required: true
      responses:
        '200':
          description: A successful response.
          content:
            '*/*':
              schema:
                type: object
                properties:
                  tx_response:
                    description: tx_response is the queried TxResponses.
                    type: object
                    properties:
                      height:
                        type: string
                        format: int64
                        title: The block height
                      txhash:
                        type: string
                        description: The transaction hash.
                      codespace:
                        type: string
                        title: Namespace for the Code
                      code:
                        type: integer
                        format: int64
                        description: Response code.
                      data:
                        type: string
                        description: Result bytes, if any.
                      raw_log:
                        type: string
                        description: >-
                          The output of the application's logger (raw string).
                          May be

                          non-deterministic.
                      logs:
                        type: array
                        items:
                          type: object
                          properties:
                            msg_index:
                              type: integer
                              format: int64
                            log:
                              type: string
                            events:
                              type: array
                              items:
                                type: object
                                properties:
                                  type:
                                    type: string
                                  attributes:
                                    type: array
                                    items:
                                      type: object
                                      properties:
                                        key:
                                          type: string
                                        value:
                                          type: string
                                      description: >-
                                        Attribute defines an attribute wrapper
                                        where the key and value are

                                        strings instead of raw bytes.
                                      additionalProperties: false
                                    nullable: true
                                description: >-
                                  StringEvent defines en Event object wrapper
                                  where all the attributes

                                  contain key/value pairs that are strings
                                  instead of raw bytes.
                                additionalProperties: false
                              description: >-
                                Events contains a slice of Event objects that
                                were emitted during some

                                execution.
                              nullable: true
                          description: >-
                            ABCIMessageLog defines a structure containing an
                            indexed tx ABCI message log.
                          additionalProperties: false
                        description: >-
                          The output of the application's logger (typed). May be
                          non-deterministic.
                        nullable: true
                      info:
                        type: string
                        description: Additional information. May be non-deterministic.
                      gas_wanted:
                        type: string
                        format: int64
                        description: Amount of gas requested for transaction.
                      gas_used:
                        type: string
                        format: int64
                        description: Amount of gas consumed by transaction.
                      tx:
                        description: The request transaction bytes.
                        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
                      timestamp:
                        type: string
                        description: >-
                          Time of the previous block. For heights > 1, it's the
                          weighted median of

                          the timestamps of the valid votes in the
                          block.LastCommit. For height == 1,

                          it's genesis time.
                      events:
                        type: array
                        items:
                          type: object
                          properties:
                            type:
                              type: string
                            attributes:
                              type: array
                              items:
                                type: object
                                properties:
                                  key:
                                    type: string
                                  value:
                                    type: string
                                  index:
                                    type: boolean
                                    title: nondeterministic
                                description: >-
                                  EventAttribute is a single key-value pair,
                                  associated with an event.
                                additionalProperties: false
                              nullable: true
                          description: >-
                            Event allows application developers to attach
                            additional information to

                            ResponseFinalizeBlock and ResponseCheckTx.

                            Later, transactions may be queried using these
                            events.
                          additionalProperties: false
                        description: >-
                          Events defines all the events emitted by processing a
                          transaction. Note,

                          these events include those emitted by processing all
                          the messages and those

                          emitted from the ante. Whereas Logs contains the
                          events, with

                          additional metadata, emitted only by processing the
                          messages.
                        nullable: true
                    nullable: true
                description: |-
                  BroadcastTxResponse is the response type for the
                  Service.BroadcastTx 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"
                            }

````