Skip to content

Latest commit

 

History

History
5181 lines (2658 loc) · 175 KB

proto-docs.md

File metadata and controls

5181 lines (2658 loc) · 175 KB

Protobuf Documentation

Table of Contents

Top

ibc/applications/fee/v1/ack.proto

IncentivizedAcknowledgement

IncentivizedAcknowledgement is the acknowledgement format to be used by applications wrapped in the fee middleware

Field Type Label Description
app_acknowledgement bytes the underlying app acknowledgement bytes
forward_relayer_address string the relayer address which submits the recv packet message
underlying_app_success bool success flag of the base application callback

Top

ibc/core/client/v1/client.proto

ClientConsensusStates

ClientConsensusStates defines all the stored consensus states for a given client.

Field Type Label Description
client_id string client identifier
consensus_states ConsensusStateWithHeight repeated consensus states and their heights associated with the client

ClientUpdateProposal

ClientUpdateProposal is a governance proposal. If it passes, the substitute client's latest consensus state is copied over to the subject client. The proposal handler may fail if the subject and the substitute do not match in client and chain parameters (with exception to latest height, frozen height, and chain-id).

Field Type Label Description
title string the title of the update proposal
description string the description of the proposal
subject_client_id string the client identifier for the client to be updated if the proposal passes
substitute_client_id string the substitute client identifier for the client standing in for the subject client

ConsensusStateWithHeight

ConsensusStateWithHeight defines a consensus state with an additional height field.

Field Type Label Description
height Height consensus state height
consensus_state google.protobuf.Any consensus state

Height

Height is a monotonically increasing data type that can be compared against another Height for the purposes of updating and freezing clients

Normally the RevisionHeight is incremented at each height while keeping RevisionNumber the same. However some consensus algorithms may choose to reset the height in certain conditions e.g. hard forks, state-machine breaking changes In these cases, the RevisionNumber is incremented so that height continues to be monitonically increasing even as the RevisionHeight gets reset

Field Type Label Description
revision_number uint64 the revision that the client is currently on
revision_height uint64 the height within the given revision

IdentifiedClientState

IdentifiedClientState defines a client state with an additional client identifier field.

Field Type Label Description
client_id string client identifier
client_state google.protobuf.Any client state

Params

Params defines the set of IBC light client parameters.

Field Type Label Description
allowed_clients string repeated allowed_clients defines the list of allowed client state types.

UpgradeProposal

UpgradeProposal is a gov Content type for initiating an IBC breaking upgrade.

Field Type Label Description
title string
description string
plan cosmos.upgrade.v1beta1.Plan
upgraded_client_state google.protobuf.Any An UpgradedClientState must be provided to perform an IBC breaking upgrade. This will make the chain commit to the correct upgraded (self) client state before the upgrade occurs, so that connecting chains can verify that the new upgraded client is valid by verifying a proof on the previous version of the chain. This will allow IBC connections to persist smoothly across planned chain upgrades

Top

ibc/core/channel/v1/channel.proto

Acknowledgement

Acknowledgement is the recommended acknowledgement format to be used by app-specific protocols. NOTE: The field numbers 21 and 22 were explicitly chosen to avoid accidental conflicts with other protobuf message formats used for acknowledgements. The first byte of any message with this format will be the non-ASCII values 0xaa (result) or 0xb2 (error). Implemented as defined by ICS: https://github.com/cosmos/ibc/tree/master/spec/core/ics-004-channel-and-packet-semantics#acknowledgement-envelope

Field Type Label Description
result bytes
error string

Channel

Channel defines pipeline for exactly-once packet delivery between specific modules on separate blockchains, which has at least one end capable of sending packets and one end capable of receiving packets.

Field Type Label Description
state State current state of the channel end
ordering Order whether the channel is ordered or unordered
counterparty Counterparty counterparty channel end
connection_hops string repeated list of connection identifiers, in order, along which packets sent on this channel will travel
version string opaque channel version, which is agreed upon during the handshake

Counterparty

Counterparty defines a channel end counterparty

Field Type Label Description
port_id string port on the counterparty chain which owns the other end of the channel.
channel_id string channel end on the counterparty chain

IdentifiedChannel

IdentifiedChannel defines a channel with additional port and channel identifier fields.

Field Type Label Description
state State current state of the channel end
ordering Order whether the channel is ordered or unordered
counterparty Counterparty counterparty channel end
connection_hops string repeated list of connection identifiers, in order, along which packets sent on this channel will travel
version string opaque channel version, which is agreed upon during the handshake
port_id string port identifier
channel_id string channel identifier

Packet

Packet defines a type that carries data across different chains through IBC

Field Type Label Description
sequence uint64 number corresponds to the order of sends and receives, where a Packet with an earlier sequence number must be sent and received before a Packet with a later sequence number.
source_port string identifies the port on the sending chain.
source_channel string identifies the channel end on the sending chain.
destination_port string identifies the port on the receiving chain.
destination_channel string identifies the channel end on the receiving chain.
data bytes actual opaque bytes transferred directly to the application module
timeout_height ibc.core.client.v1.Height block height after which the packet times out
timeout_timestamp uint64 block timestamp (in nanoseconds) after which the packet times out

PacketId

PacketId is an identifer for a unique Packet Source chains refer to packets by source port/channel Destination chains refer to packets by destination port/channel

Field Type Label Description
port_id string channel port identifier
channel_id string channel unique identifier
sequence uint64 packet sequence

PacketState

PacketState defines the generic type necessary to retrieve and store packet commitments, acknowledgements, and receipts. Caller is responsible for knowing the context necessary to interpret this state as a commitment, acknowledgement, or a receipt.

Field Type Label Description
port_id string channel port identifier.
channel_id string channel unique identifier.
sequence uint64 packet sequence.
data bytes embedded data that represents packet state.

Order

Order defines if a channel is ORDERED or UNORDERED

Name Number Description
ORDER_NONE_UNSPECIFIED 0 zero-value for channel ordering
ORDER_UNORDERED 1 packets can be delivered in any order, which may differ from the order in which they were sent.
ORDER_ORDERED 2 packets are delivered exactly in the order which they were sent

State

State defines if a channel is in one of the following states: CLOSED, INIT, TRYOPEN, OPEN or UNINITIALIZED.

Name Number Description
STATE_UNINITIALIZED_UNSPECIFIED 0 Default State
STATE_INIT 1 A channel has just started the opening handshake.
STATE_TRYOPEN 2 A channel has acknowledged the handshake step on the counterparty chain.
STATE_OPEN 3 A channel has completed the handshake. Open channels are ready to send and receive packets.
STATE_CLOSED 4 A channel has been closed and can no longer be used to send or receive packets.

Top

ibc/applications/fee/v1/fee.proto

Fee

Fee defines the ICS29 receive, acknowledgement and timeout fees

Field Type Label Description
recv_fee cosmos.base.v1beta1.Coin repeated the packet receive fee
ack_fee cosmos.base.v1beta1.Coin repeated the packet acknowledgement fee
timeout_fee cosmos.base.v1beta1.Coin repeated the packet timeout fee

IdentifiedPacketFees

IdentifiedPacketFees contains a list of type PacketFee and associated PacketId

Field Type Label Description
packet_id ibc.core.channel.v1.PacketId unique packet identifier comprised of the channel ID, port ID and sequence
packet_fees PacketFee repeated list of packet fees

PacketFee

PacketFee contains ICS29 relayer fees, refund address and optional list of permitted relayers

Field Type Label Description
fee Fee fee encapsulates the recv, ack and timeout fees associated with an IBC packet
refund_address string the refund address for unspent fees
relayers string repeated optional list of relayers permitted to receive fees

PacketFees

PacketFees contains a list of type PacketFee

Field Type Label Description
packet_fees PacketFee repeated list of packet fees

Top

ibc/applications/fee/v1/genesis.proto

FeeEnabledChannel

FeeEnabledChannel contains the PortID & ChannelID for a fee enabled channel

Field Type Label Description
port_id string unique port identifier
channel_id string unique channel identifier

ForwardRelayerAddress

ForwardRelayerAddress contains the forward relayer address and PacketId used for async acknowledgements

Field Type Label Description
address string the forward relayer address
packet_id ibc.core.channel.v1.PacketId unique packet identifer comprised of the channel ID, port ID and sequence

GenesisState

GenesisState defines the ICS29 fee middleware genesis state

Field Type Label Description
identified_fees IdentifiedPacketFees repeated list of identified packet fees
fee_enabled_channels FeeEnabledChannel repeated list of fee enabled channels
registered_payees RegisteredPayee repeated list of registered payees
registered_counterparty_payees RegisteredCounterpartyPayee repeated list of registered counterparty payees
forward_relayers ForwardRelayerAddress repeated list of forward relayer addresses

RegisteredCounterpartyPayee

RegisteredCounterpartyPayee contains the relayer address and counterparty payee address for a specific channel (used for recv fee distribution)

Field Type Label Description
channel_id string unique channel identifier
relayer string the relayer address
counterparty_payee string the counterparty payee address

RegisteredPayee

RegisteredPayee contains the relayer address and payee address for a specific channel

Field Type Label Description
channel_id string unique channel identifier
relayer string the relayer address
payee string the payee address

Top

ibc/applications/fee/v1/metadata.proto

Metadata

Metadata defines the ICS29 channel specific metadata encoded into the channel version bytestring See ICS004: https://github.com/cosmos/ibc/tree/master/spec/core/ics-004-channel-and-packet-semantics#Versioning

Field Type Label Description
fee_version string fee_version defines the ICS29 fee version
app_version string app_version defines the underlying application version, which may or may not be a JSON encoded bytestring

Top

ibc/applications/fee/v1/query.proto

QueryCounterpartyPayeeRequest

QueryCounterpartyPayeeRequest defines the request type for the CounterpartyPayee rpc

Field Type Label Description
channel_id string unique channel identifier
relayer string the relayer address to which the counterparty is registered

QueryCounterpartyPayeeResponse

QueryCounterpartyPayeeResponse defines the response type for the CounterpartyPayee rpc

Field Type Label Description
counterparty_payee string the counterparty payee address used to compensate forward relaying

QueryFeeEnabledChannelRequest

QueryFeeEnabledChannelRequest defines the request type for the FeeEnabledChannel rpc

Field Type Label Description
port_id string unique port identifier
channel_id string unique channel identifier

QueryFeeEnabledChannelResponse

QueryFeeEnabledChannelResponse defines the response type for the FeeEnabledChannel rpc

Field Type Label Description
fee_enabled bool boolean flag representing the fee enabled channel status

QueryFeeEnabledChannelsRequest

QueryFeeEnabledChannelsRequest defines the request type for the FeeEnabledChannels rpc

Field Type Label Description
pagination cosmos.base.query.v1beta1.PageRequest pagination defines an optional pagination for the request.
query_height uint64 block height at which to query

QueryFeeEnabledChannelsResponse

QueryFeeEnabledChannelsResponse defines the response type for the FeeEnabledChannels rpc

Field Type Label Description
fee_enabled_channels FeeEnabledChannel repeated list of fee enabled channels

QueryIncentivizedPacketRequest

QueryIncentivizedPacketRequest defines the request type for the IncentivizedPacket rpc

Field Type Label Description
packet_id ibc.core.channel.v1.PacketId unique packet identifier comprised of channel ID, port ID and sequence
query_height uint64 block height at which to query

QueryIncentivizedPacketResponse

QueryIncentivizedPacketsResponse defines the response type for the IncentivizedPacket rpc

Field Type Label Description
incentivized_packet IdentifiedPacketFees the identified fees for the incentivized packet

QueryIncentivizedPacketsForChannelRequest

QueryIncentivizedPacketsForChannelRequest defines the request type for querying for all incentivized packets for a specific channel

Field Type Label Description
pagination cosmos.base.query.v1beta1.PageRequest pagination defines an optional pagination for the request.
port_id string
channel_id string
query_height uint64 Height to query at

QueryIncentivizedPacketsForChannelResponse

QueryIncentivizedPacketsResponse defines the response type for the incentivized packets RPC

Field Type Label Description
incentivized_packets IdentifiedPacketFees repeated Map of all incentivized_packets

QueryIncentivizedPacketsRequest

QueryIncentivizedPacketsRequest defines the request type for the IncentivizedPackets rpc

Field Type Label Description
pagination cosmos.base.query.v1beta1.PageRequest pagination defines an optional pagination for the request.
query_height uint64 block height at which to query

QueryIncentivizedPacketsResponse

QueryIncentivizedPacketsResponse defines the response type for the IncentivizedPackets rpc

Field Type Label Description
incentivized_packets IdentifiedPacketFees repeated list of identified fees for incentivized packets

QueryPayeeRequest

QueryPayeeRequest defines the request type for the Payee rpc

Field Type Label Description
channel_id string unique channel identifier
relayer string the relayer address to which the distribution address is registered

QueryPayeeResponse

QueryPayeeResponse defines the response type for the Payee rpc

Field Type Label Description
payee_address string the payee address to which packet fees are paid out

QueryTotalAckFeesRequest

QueryTotalAckFeesRequest defines the request type for the TotalAckFees rpc

Field Type Label Description
packet_id ibc.core.channel.v1.PacketId the packet identifier for the associated fees

QueryTotalAckFeesResponse

QueryTotalAckFeesResponse defines the response type for the TotalAckFees rpc

Field Type Label Description
ack_fees cosmos.base.v1beta1.Coin repeated the total packet acknowledgement fees

QueryTotalRecvFeesRequest

QueryTotalRecvFeesRequest defines the request type for the TotalRecvFees rpc

Field Type Label Description
packet_id ibc.core.channel.v1.PacketId the packet identifier for the associated fees

QueryTotalRecvFeesResponse

QueryTotalRecvFeesResponse defines the response type for the TotalRecvFees rpc

Field Type Label Description
recv_fees cosmos.base.v1beta1.Coin repeated the total packet receive fees

QueryTotalTimeoutFeesRequest

QueryTotalTimeoutFeesRequest defines the request type for the TotalTimeoutFees rpc

Field Type Label Description
packet_id ibc.core.channel.v1.PacketId the packet identifier for the associated fees

QueryTotalTimeoutFeesResponse

QueryTotalTimeoutFeesResponse defines the response type for the TotalTimeoutFees rpc

Field Type Label Description
timeout_fees cosmos.base.v1beta1.Coin repeated the total packet timeout fees

Query

Query defines the ICS29 gRPC querier service.

Method Name Request Type Response Type Description HTTP Verb Endpoint
IncentivizedPackets QueryIncentivizedPacketsRequest QueryIncentivizedPacketsResponse IncentivizedPackets returns all incentivized packets and their associated fees GET /ibc/apps/fee/v1/incentivized_packets
IncentivizedPacket QueryIncentivizedPacketRequest QueryIncentivizedPacketResponse IncentivizedPacket returns all packet fees for a packet given its identifier GET /ibc/apps/fee/v1/channels/{packet_id.channel_id}/ports/{packet_id.port_id}/sequences/{packet_id.sequence}/incentivized_packet
IncentivizedPacketsForChannel QueryIncentivizedPacketsForChannelRequest QueryIncentivizedPacketsForChannelResponse Gets all incentivized packets for a specific channel GET /ibc/apps/fee/v1/channels/{channel_id}/ports/{port_id}/incentivized_packets
TotalRecvFees QueryTotalRecvFeesRequest QueryTotalRecvFeesResponse TotalRecvFees returns the total receive fees for a packet given its identifier GET /ibc/apps/fee/v1/channels/{packet_id.channel_id}/ports/{packet_id.port_id}/sequences/{packet_id.sequence}/total_recv_fees
TotalAckFees QueryTotalAckFeesRequest QueryTotalAckFeesResponse TotalAckFees returns the total acknowledgement fees for a packet given its identifier GET /ibc/apps/fee/v1/channels/{packet_id.channel_id}/ports/{packet_id.port_id}/sequences/{packet_id.sequence}/total_ack_fees
TotalTimeoutFees QueryTotalTimeoutFeesRequest QueryTotalTimeoutFeesResponse TotalTimeoutFees returns the total timeout fees for a packet given its identifier GET /ibc/apps/fee/v1/channels/{packet_id.channel_id}/ports/{packet_id.port_id}/sequences/{packet_id.sequence}/total_timeout_fees
Payee QueryPayeeRequest QueryPayeeResponse Payee returns the registered payee address for a specific channel given the relayer address GET /ibc/apps/fee/v1/channels/{channel_id}/relayers/{relayer}/payee
CounterpartyPayee QueryCounterpartyPayeeRequest QueryCounterpartyPayeeResponse CounterpartyPayee returns the registered counterparty payee for forward relaying GET /ibc/apps/fee/v1/channels/{channel_id}/relayers/{relayer}/counterparty_payee
FeeEnabledChannels QueryFeeEnabledChannelsRequest QueryFeeEnabledChannelsResponse FeeEnabledChannels returns a list of all fee enabled channels GET /ibc/apps/fee/v1/fee_enabled
FeeEnabledChannel QueryFeeEnabledChannelRequest QueryFeeEnabledChannelResponse FeeEnabledChannel returns true if the provided port and channel identifiers belong to a fee enabled channel GET /ibc/apps/fee/v1/channels/{channel_id}/ports/{port_id}/fee_enabled

Top

ibc/applications/fee/v1/tx.proto

MsgPayPacketFee

MsgPayPacketFee defines the request type for the PayPacketFee rpc This Msg can be used to pay for a packet at the next sequence send & should be combined with the Msg that will be paid for

Field Type Label Description
fee Fee fee encapsulates the recv, ack and timeout fees associated with an IBC packet
source_port_id string the source port unique identifier
source_channel_id string the source channel unique identifer
signer string account address to refund fee if necessary
relayers string repeated optional list of relayers permitted to the receive packet fees

MsgPayPacketFeeAsync

MsgPayPacketFeeAsync defines the request type for the PayPacketFeeAsync rpc This Msg can be used to pay for a packet at a specified sequence (instead of the next sequence send)

Field Type Label Description
packet_id ibc.core.channel.v1.PacketId unique packet identifier comprised of the channel ID, port ID and sequence
packet_fee PacketFee the packet fee associated with a particular IBC packet

MsgPayPacketFeeAsyncResponse

MsgPayPacketFeeAsyncResponse defines the response type for the PayPacketFeeAsync rpc

MsgPayPacketFeeResponse

MsgPayPacketFeeResponse defines the response type for the PayPacketFee rpc

MsgRegisterCounterpartyPayee

MsgRegisterCounterpartyPayee defines the request type for the RegisterCounterpartyPayee rpc

Field Type Label Description
port_id string unique port identifier
channel_id string unique channel identifier
relayer string the relayer address
counterparty_payee string the counterparty payee address

MsgRegisterCounterpartyPayeeResponse

MsgRegisterCounterpartyPayeeResponse defines the response type for the RegisterCounterpartyPayee rpc

MsgRegisterPayee

MsgRegisterPayee defines the request type for the RegisterPayee rpc

Field Type Label Description
port_id string unique port identifier
channel_id string unique channel identifier
relayer string the relayer address
payee string the payee address

MsgRegisterPayeeResponse

MsgRegisterPayeeResponse defines the response type for the RegisterPayee rpc

Msg

Msg defines the ICS29 Msg service.

Method Name Request Type Response Type Description HTTP Verb Endpoint
RegisterPayee MsgRegisterPayee MsgRegisterPayeeResponse RegisterPayee defines a rpc handler method for MsgRegisterPayee RegisterPayee is called by the relayer on each channelEnd and allows them to set an optional payee to which reverse and timeout relayer packet fees will be paid out. The payee should be registered on the source chain from which packets originate as this is where fee distribution takes place. This function may be called more than once by a relayer, in which case, the latest payee is always used.
RegisterCounterpartyPayee MsgRegisterCounterpartyPayee MsgRegisterCounterpartyPayeeResponse RegisterCounterpartyPayee defines a rpc handler method for MsgRegisterCounterpartyPayee RegisterCounterpartyPayee is called by the relayer on each channelEnd and allows them to specify the counterparty payee address before relaying. This ensures they will be properly compensated for forward relaying since the destination chain must include the registered counterparty payee address in the acknowledgement. This function may be called more than once by a relayer, in which case, the latest counterparty payee address is always used.
PayPacketFee MsgPayPacketFee MsgPayPacketFeeResponse PayPacketFee defines a rpc handler method for MsgPayPacketFee PayPacketFee is an open callback that may be called by any module/user that wishes to escrow funds in order to incentivize the relaying of the packet at the next sequence NOTE: This method is intended to be used within a multi msg transaction, where the subsequent msg that follows initiates the lifecycle of the incentivized packet
PayPacketFeeAsync MsgPayPacketFeeAsync MsgPayPacketFeeAsyncResponse PayPacketFeeAsync defines a rpc handler method for MsgPayPacketFeeAsync PayPacketFeeAsync is an open callback that may be called by any module/user that wishes to escrow funds in order to incentivize the relaying of a known packet (i.e. at a particular sequence)

Top

ibc/applications/interchain_accounts/controller/v1/controller.proto

Params

Params defines the set of on-chain interchain accounts parameters. The following parameters may be used to disable the controller submodule.

Field Type Label Description
controller_enabled bool controller_enabled enables or disables the controller submodule.

Top

ibc/applications/interchain_accounts/controller/v1/query.proto

QueryInterchainAccountRequest

QueryInterchainAccountRequest is the request type for the Query/InterchainAccount RPC method.

Field Type Label Description
owner string
connection_id string

QueryInterchainAccountResponse

QueryInterchainAccountResponse the response type for the Query/InterchainAccount RPC method.

Field Type Label Description
address string

QueryParamsRequest

QueryParamsRequest is the request type for the Query/Params RPC method.

QueryParamsResponse

QueryParamsResponse is the response type for the Query/Params RPC method.

Field Type Label Description
params Params params defines the parameters of the module.

Query

Query provides defines the gRPC querier service.

Method Name Request Type Response Type Description HTTP Verb Endpoint
InterchainAccount QueryInterchainAccountRequest QueryInterchainAccountResponse InterchainAccount returns the interchain account address for a given owner address on a given connection GET /ibc/apps/interchain_accounts/controller/v1/owners/{owner}/connections/{connection_id}
Params QueryParamsRequest QueryParamsResponse Params queries all parameters of the ICA controller submodule. GET /ibc/apps/interchain_accounts/controller/v1/params

Top

ibc/applications/interchain_accounts/host/v1/host.proto

Params

Params defines the set of on-chain interchain accounts parameters. The following parameters may be used to disable the host submodule.

Field Type Label Description
host_enabled bool host_enabled enables or disables the host submodule.
allow_messages string repeated allow_messages defines a list of sdk message typeURLs allowed to be executed on a host chain.

Top

ibc/applications/interchain_accounts/host/v1/query.proto

QueryParamsRequest

QueryParamsRequest is the request type for the Query/Params RPC method.

QueryParamsResponse

QueryParamsResponse is the response type for the Query/Params RPC method.

Field Type Label Description
params Params params defines the parameters of the module.

Query

Query provides defines the gRPC querier service.

Method Name Request Type Response Type Description HTTP Verb Endpoint
Params QueryParamsRequest QueryParamsResponse Params queries all parameters of the ICA host submodule. GET /ibc/apps/interchain_accounts/host/v1/params

Top

ibc/applications/interchain_accounts/v1/account.proto

InterchainAccount

An InterchainAccount is defined as a BaseAccount & the address of the account owner on the controller chain

Field Type Label Description
base_account cosmos.auth.v1beta1.BaseAccount
account_owner string

Top

ibc/applications/interchain_accounts/v1/genesis.proto

ActiveChannel

ActiveChannel contains a connection ID, port ID and associated active channel ID

Field Type Label Description
connection_id string
port_id string
channel_id string

ControllerGenesisState

ControllerGenesisState defines the interchain accounts controller genesis state

Field Type Label Description
active_channels ActiveChannel repeated
interchain_accounts RegisteredInterchainAccount repeated
ports string repeated
params ibc.applications.interchain_accounts.controller.v1.Params

GenesisState

GenesisState defines the interchain accounts genesis state

Field Type Label Description
controller_genesis_state ControllerGenesisState
host_genesis_state HostGenesisState

HostGenesisState

HostGenesisState defines the interchain accounts host genesis state

Field Type Label Description
active_channels ActiveChannel repeated
interchain_accounts RegisteredInterchainAccount repeated
port string
params ibc.applications.interchain_accounts.host.v1.Params

RegisteredInterchainAccount

RegisteredInterchainAccount contains a connection ID, port ID and associated interchain account address

Field Type Label Description
connection_id string
port_id string
account_address string

Top

ibc/applications/interchain_accounts/v1/metadata.proto

Metadata

Metadata defines a set of protocol specific data encoded into the ICS27 channel version bytestring See ICS004: https://github.com/cosmos/ibc/tree/master/spec/core/ics-004-channel-and-packet-semantics#Versioning

Field Type Label Description
version string version defines the ICS27 protocol version
controller_connection_id string controller_connection_id is the connection identifier associated with the controller chain
host_connection_id string host_connection_id is the connection identifier associated with the host chain
address string address defines the interchain account address to be fulfilled upon the OnChanOpenTry handshake step NOTE: the address field is empty on the OnChanOpenInit handshake step
encoding string encoding defines the supported codec format
tx_type string tx_type defines the type of transactions the interchain account can execute

Top

ibc/applications/interchain_accounts/v1/packet.proto

CosmosTx

CosmosTx contains a list of sdk.Msg's. It should be used when sending transactions to an SDK host chain.

Field Type Label Description
messages google.protobuf.Any repeated

InterchainAccountPacketData

InterchainAccountPacketData is comprised of a raw transaction, type of transaction and optional memo field.

Field Type Label Description
type Type
data bytes
memo string

Type

Type defines a classification of message issued from a controller chain to its associated interchain accounts host

Name Number Description
TYPE_UNSPECIFIED 0 Default zero value enumeration
TYPE_EXECUTE_TX 1 Execute a transaction on an interchain accounts host chain

Top

ibc/applications/transfer/v1/transfer.proto

DenomTrace

DenomTrace contains the base denomination for ICS20 fungible tokens and the source tracing information path.

Field Type Label Description
path string path defines the chain of port/channel identifiers used for tracing the source of the fungible token.
base_denom string base denomination of the relayed fungible token.

Params

Params defines the set of IBC transfer parameters. NOTE: To prevent a single token from being transferred, set the TransfersEnabled parameter to true and then set the bank module's SendEnabled parameter for the denomination to false.

Field Type Label Description
send_enabled bool send_enabled enables or disables all cross-chain token transfers from this chain.
receive_enabled bool receive_enabled enables or disables all cross-chain token transfers to this chain.

Top

ibc/applications/transfer/v1/genesis.proto

GenesisState

GenesisState defines the ibc-transfer genesis state

Field Type Label Description
port_id string
denom_traces DenomTrace repeated
params Params

Top

ibc/applications/transfer/v1/query.proto

QueryDenomHashRequest

QueryDenomHashRequest is the request type for the Query/DenomHash RPC method

Field Type Label Description
trace string The denomination trace ([port_id]/[channel_id])+/[denom]

QueryDenomHashResponse

QueryDenomHashResponse is the response type for the Query/DenomHash RPC method.

Field Type Label Description
hash string hash (in hex format) of the denomination trace information.

QueryDenomTraceRequest

QueryDenomTraceRequest is the request type for the Query/DenomTrace RPC method

Field Type Label Description
hash string hash (in hex format) or denom (full denom with ibc prefix) of the denomination trace information.

QueryDenomTraceResponse

QueryDenomTraceResponse is the response type for the Query/DenomTrace RPC method.

Field Type Label Description
denom_trace DenomTrace denom_trace returns the requested denomination trace information.

QueryDenomTracesRequest

QueryConnectionsRequest is the request type for the Query/DenomTraces RPC method

Field Type Label Description
pagination cosmos.base.query.v1beta1.PageRequest pagination defines an optional pagination for the request.

QueryDenomTracesResponse

QueryConnectionsResponse is the response type for the Query/DenomTraces RPC method.

Field Type Label Description
denom_traces DenomTrace repeated denom_traces returns all denominations trace information.
pagination cosmos.base.query.v1beta1.PageResponse pagination defines the pagination in the response.

QueryEscrowAddressRequest

QueryEscrowAddressRequest is the request type for the EscrowAddress RPC method.

Field Type Label Description
port_id string unique port identifier
channel_id string unique channel identifier

QueryEscrowAddressResponse

QueryEscrowAddressResponse is the response type of the EscrowAddress RPC method.

Field Type Label Description
escrow_address string the escrow account address

QueryParamsRequest

QueryParamsRequest is the request type for the Query/Params RPC method.

QueryParamsResponse

QueryParamsResponse is the response type for the Query/Params RPC method.

Field Type Label Description
params Params params defines the parameters of the module.

Query

Query provides defines the gRPC querier service.

Method Name Request Type Response Type Description HTTP Verb Endpoint
DenomTraces QueryDenomTracesRequest QueryDenomTracesResponse DenomTraces queries all denomination traces. GET /ibc/apps/transfer/v1/denom_traces
DenomTrace QueryDenomTraceRequest QueryDenomTraceResponse DenomTrace queries a denomination trace information. GET /ibc/apps/transfer/v1/denom_traces/{hash=**}
Params QueryParamsRequest QueryParamsResponse Params queries all parameters of the ibc-transfer module. GET /ibc/apps/transfer/v1/params
DenomHash QueryDenomHashRequest QueryDenomHashResponse DenomHash queries a denomination hash information. GET /ibc/apps/transfer/v1/denom_hashes/{trace=**}
EscrowAddress QueryEscrowAddressRequest QueryEscrowAddressResponse EscrowAddress returns the escrow address for a particular port and channel id. GET /ibc/apps/transfer/v1/channels/{channel_id}/ports/{port_id}/escrow_address

Top

ibc/applications/transfer/v1/tx.proto

MsgTransfer

MsgTransfer defines a msg to transfer fungible tokens (i.e Coins) between ICS20 enabled chains. See ICS Spec here: https://github.com/cosmos/ibc/tree/master/spec/app/ics-020-fungible-token-transfer#data-structures

Field Type Label Description
source_port string the port on which the packet will be sent
source_channel string the channel by which the packet will be sent
token cosmos.base.v1beta1.Coin the tokens to be transferred
sender string the sender address
receiver string the recipient address on the destination chain
timeout_height ibc.core.client.v1.Height Timeout height relative to the current block height. The timeout is disabled when set to 0.
timeout_timestamp uint64 Timeout timestamp in absolute nanoseconds since unix epoch. The timeout is disabled when set to 0.
memo string optional memo

MsgTransferResponse

MsgTransferResponse defines the Msg/Transfer response type.

Field Type Label Description
sequence uint64 sequence number of the transfer packet sent

Msg

Msg defines the ibc/transfer Msg service.

Method Name Request Type Response Type Description HTTP Verb Endpoint
Transfer MsgTransfer MsgTransferResponse Transfer defines a rpc handler method for MsgTransfer.

Top

ibc/applications/transfer/v2/packet.proto

FungibleTokenPacketData

FungibleTokenPacketData defines a struct for the packet payload See FungibleTokenPacketData spec: https://github.com/cosmos/ibc/tree/master/spec/app/ics-020-fungible-token-transfer#data-structures

Field Type Label Description
denom string the token denomination to be transferred
amount string the token amount to be transferred
sender string the sender address
receiver string the recipient address on the destination chain
memo string optional memo

Top

ibc/core/channel/v1/genesis.proto

GenesisState

GenesisState defines the ibc channel submodule's genesis state.

Field Type Label Description
channels IdentifiedChannel repeated
acknowledgements PacketState repeated
commitments PacketState repeated
receipts PacketState repeated
send_sequences PacketSequence repeated
recv_sequences PacketSequence repeated
ack_sequences PacketSequence repeated
next_channel_sequence uint64 the sequence for the next generated channel identifier

PacketSequence

PacketSequence defines the genesis type necessary to retrieve and store next send and receive sequences.

Field Type Label Description
port_id string
channel_id string
sequence uint64

Top

ibc/core/channel/v1/query.proto

QueryChannelClientStateRequest

QueryChannelClientStateRequest is the request type for the Query/ClientState RPC method

Field Type Label Description
port_id string port unique identifier
channel_id string channel unique identifier

QueryChannelClientStateResponse

QueryChannelClientStateResponse is the Response type for the Query/QueryChannelClientState RPC method

Field Type Label Description
identified_client_state ibc.core.client.v1.IdentifiedClientState client state associated with the channel
proof bytes merkle proof of existence
proof_height ibc.core.client.v1.Height height at which the proof was retrieved

QueryChannelConsensusStateRequest

QueryChannelConsensusStateRequest is the request type for the Query/ConsensusState RPC method

Field Type Label Description
port_id string port unique identifier
channel_id string channel unique identifier
revision_number uint64 revision number of the consensus state
revision_height uint64 revision height of the consensus state

QueryChannelConsensusStateResponse

QueryChannelClientStateResponse is the Response type for the Query/QueryChannelClientState RPC method

Field Type Label Description
consensus_state google.protobuf.Any consensus state associated with the channel
client_id string client ID associated with the consensus state
proof bytes merkle proof of existence
proof_height ibc.core.client.v1.Height height at which the proof was retrieved

QueryChannelRequest

QueryChannelRequest is the request type for the Query/Channel RPC method

Field Type Label Description
port_id string port unique identifier
channel_id string channel unique identifier

QueryChannelResponse

QueryChannelResponse is the response type for the Query/Channel RPC method. Besides the Channel end, it includes a proof and the height from which the proof was retrieved.

Field Type Label Description
channel Channel channel associated with the request identifiers
proof bytes merkle proof of existence
proof_height ibc.core.client.v1.Height height at which the proof was retrieved

QueryChannelsRequest

QueryChannelsRequest is the request type for the Query/Channels RPC method

Field Type Label Description
pagination cosmos.base.query.v1beta1.PageRequest pagination request

QueryChannelsResponse

QueryChannelsResponse is the response type for the Query/Channels RPC method.

Field Type Label Description
channels IdentifiedChannel repeated list of stored channels of the chain.
pagination cosmos.base.query.v1beta1.PageResponse pagination response
height ibc.core.client.v1.Height query block height

QueryConnectionChannelsRequest

QueryConnectionChannelsRequest is the request type for the Query/QueryConnectionChannels RPC method

Field Type Label Description
connection string connection unique identifier
pagination cosmos.base.query.v1beta1.PageRequest pagination request

QueryConnectionChannelsResponse

QueryConnectionChannelsResponse is the Response type for the Query/QueryConnectionChannels RPC method

Field Type Label Description
channels IdentifiedChannel repeated list of channels associated with a connection.
pagination cosmos.base.query.v1beta1.PageResponse pagination response
height ibc.core.client.v1.Height query block height

QueryNextSequenceReceiveRequest

QueryNextSequenceReceiveRequest is the request type for the Query/QueryNextSequenceReceiveRequest RPC method

Field Type Label Description
port_id string port unique identifier
channel_id string channel unique identifier

QueryNextSequenceReceiveResponse

QuerySequenceResponse is the request type for the Query/QueryNextSequenceReceiveResponse RPC method

Field Type Label Description
next_sequence_receive uint64 next sequence receive number
proof bytes merkle proof of existence
proof_height ibc.core.client.v1.Height height at which the proof was retrieved

QueryPacketAcknowledgementRequest

QueryPacketAcknowledgementRequest is the request type for the Query/PacketAcknowledgement RPC method

Field Type Label Description
port_id string port unique identifier
channel_id string channel unique identifier
sequence uint64 packet sequence

QueryPacketAcknowledgementResponse

QueryPacketAcknowledgementResponse defines the client query response for a packet which also includes a proof and the height from which the proof was retrieved

Field Type Label Description
acknowledgement bytes packet associated with the request fields
proof bytes merkle proof of existence
proof_height ibc.core.client.v1.Height height at which the proof was retrieved

QueryPacketAcknowledgementsRequest

QueryPacketAcknowledgementsRequest is the request type for the Query/QueryPacketCommitments RPC method

Field Type Label Description
port_id string port unique identifier
channel_id string channel unique identifier
pagination cosmos.base.query.v1beta1.PageRequest pagination request
packet_commitment_sequences uint64 repeated list of packet sequences

QueryPacketAcknowledgementsResponse

QueryPacketAcknowledgemetsResponse is the request type for the Query/QueryPacketAcknowledgements RPC method

Field Type Label Description
acknowledgements PacketState repeated
pagination cosmos.base.query.v1beta1.PageResponse pagination response
height ibc.core.client.v1.Height query block height

QueryPacketCommitmentRequest

QueryPacketCommitmentRequest is the request type for the Query/PacketCommitment RPC method

Field Type Label Description
port_id string port unique identifier
channel_id string channel unique identifier
sequence uint64 packet sequence

QueryPacketCommitmentResponse

QueryPacketCommitmentResponse defines the client query response for a packet which also includes a proof and the height from which the proof was retrieved

Field Type Label Description
commitment bytes packet associated with the request fields
proof bytes merkle proof of existence
proof_height ibc.core.client.v1.Height height at which the proof was retrieved

QueryPacketCommitmentsRequest

QueryPacketCommitmentsRequest is the request type for the Query/QueryPacketCommitments RPC method

Field Type Label Description
port_id string port unique identifier
channel_id string channel unique identifier
pagination cosmos.base.query.v1beta1.PageRequest pagination request

QueryPacketCommitmentsResponse

QueryPacketCommitmentsResponse is the request type for the Query/QueryPacketCommitments RPC method

Field Type Label Description
commitments PacketState repeated
pagination cosmos.base.query.v1beta1.PageResponse pagination response
height ibc.core.client.v1.Height query block height

QueryPacketReceiptRequest

QueryPacketReceiptRequest is the request type for the Query/PacketReceipt RPC method

Field Type Label Description
port_id string port unique identifier
channel_id string channel unique identifier
sequence uint64 packet sequence

QueryPacketReceiptResponse

QueryPacketReceiptResponse defines the client query response for a packet receipt which also includes a proof, and the height from which the proof was retrieved

Field Type Label Description
received bool success flag for if receipt exists
proof bytes merkle proof of existence
proof_height ibc.core.client.v1.Height height at which the proof was retrieved

QueryUnreceivedAcksRequest

QueryUnreceivedAcks is the request type for the Query/UnreceivedAcks RPC method

Field Type Label Description
port_id string port unique identifier
channel_id string channel unique identifier
packet_ack_sequences uint64 repeated list of acknowledgement sequences

QueryUnreceivedAcksResponse

QueryUnreceivedAcksResponse is the response type for the Query/UnreceivedAcks RPC method

Field Type Label Description
sequences uint64 repeated list of unreceived acknowledgement sequences
height ibc.core.client.v1.Height query block height

QueryUnreceivedPacketsRequest

QueryUnreceivedPacketsRequest is the request type for the Query/UnreceivedPackets RPC method

Field Type Label Description
port_id string port unique identifier
channel_id string channel unique identifier
packet_commitment_sequences uint64 repeated list of packet sequences

QueryUnreceivedPacketsResponse

QueryUnreceivedPacketsResponse is the response type for the Query/UnreceivedPacketCommitments RPC method

Field Type Label Description
sequences uint64 repeated list of unreceived packet sequences
height ibc.core.client.v1.Height query block height

Query

Query provides defines the gRPC querier service

Method Name Request Type Response Type Description HTTP Verb Endpoint
Channel QueryChannelRequest QueryChannelResponse Channel queries an IBC Channel. GET /ibc/core/channel/v1/channels/{channel_id}/ports/{port_id}
Channels QueryChannelsRequest QueryChannelsResponse Channels queries all the IBC channels of a chain. GET /ibc/core/channel/v1/channels
ConnectionChannels QueryConnectionChannelsRequest QueryConnectionChannelsResponse ConnectionChannels queries all the channels associated with a connection end. GET /ibc/core/channel/v1/connections/{connection}/channels
ChannelClientState QueryChannelClientStateRequest QueryChannelClientStateResponse ChannelClientState queries for the client state for the channel associated with the provided channel identifiers. GET /ibc/core/channel/v1/channels/{channel_id}/ports/{port_id}/client_state
ChannelConsensusState QueryChannelConsensusStateRequest QueryChannelConsensusStateResponse ChannelConsensusState queries for the consensus state for the channel associated with the provided channel identifiers. GET /ibc/core/channel/v1/channels/{channel_id}/ports/{port_id}/consensus_state/revision/{revision_number}/height/{revision_height}
PacketCommitment QueryPacketCommitmentRequest QueryPacketCommitmentResponse PacketCommitment queries a stored packet commitment hash. GET /ibc/core/channel/v1/channels/{channel_id}/ports/{port_id}/packet_commitments/{sequence}
PacketCommitments QueryPacketCommitmentsRequest QueryPacketCommitmentsResponse PacketCommitments returns all the packet commitments hashes associated with a channel. GET /ibc/core/channel/v1/channels/{channel_id}/ports/{port_id}/packet_commitments
PacketReceipt QueryPacketReceiptRequest QueryPacketReceiptResponse PacketReceipt queries if a given packet sequence has been received on the queried chain GET /ibc/core/channel/v1/channels/{channel_id}/ports/{port_id}/packet_receipts/{sequence}
PacketAcknowledgement QueryPacketAcknowledgementRequest QueryPacketAcknowledgementResponse PacketAcknowledgement queries a stored packet acknowledgement hash. GET /ibc/core/channel/v1/channels/{channel_id}/ports/{port_id}/packet_acks/{sequence}
PacketAcknowledgements QueryPacketAcknowledgementsRequest QueryPacketAcknowledgementsResponse PacketAcknowledgements returns all the packet acknowledgements associated with a channel. GET /ibc/core/channel/v1/channels/{channel_id}/ports/{port_id}/packet_acknowledgements
UnreceivedPackets QueryUnreceivedPacketsRequest QueryUnreceivedPacketsResponse UnreceivedPackets returns all the unreceived IBC packets associated with a channel and sequences. GET /ibc/core/channel/v1/channels/{channel_id}/ports/{port_id}/packet_commitments/{packet_commitment_sequences}/unreceived_packets
UnreceivedAcks QueryUnreceivedAcksRequest QueryUnreceivedAcksResponse UnreceivedAcks returns all the unreceived IBC acknowledgements associated with a channel and sequences. GET /ibc/core/channel/v1/channels/{channel_id}/ports/{port_id}/packet_commitments/{packet_ack_sequences}/unreceived_acks
NextSequenceReceive QueryNextSequenceReceiveRequest QueryNextSequenceReceiveResponse NextSequenceReceive returns the next receive sequence for a given channel. GET /ibc/core/channel/v1/channels/{channel_id}/ports/{port_id}/next_sequence

Top

ibc/core/channel/v1/tx.proto

MsgAcknowledgement

MsgAcknowledgement receives incoming IBC acknowledgement

Field Type Label Description
packet Packet
acknowledgement bytes
proof_acked bytes
proof_height ibc.core.client.v1.Height
signer string

MsgAcknowledgementResponse

MsgAcknowledgementResponse defines the Msg/Acknowledgement response type.

Field Type Label Description
result ResponseResultType

MsgChannelCloseConfirm

MsgChannelCloseConfirm defines a msg sent by a Relayer to Chain B to acknowledge the change of channel state to CLOSED on Chain A.

Field Type Label Description
port_id string
channel_id string
proof_init bytes
proof_height ibc.core.client.v1.Height
signer string

MsgChannelCloseConfirmResponse

MsgChannelCloseConfirmResponse defines the Msg/ChannelCloseConfirm response type.

MsgChannelCloseInit

MsgChannelCloseInit defines a msg sent by a Relayer to Chain A to close a channel with Chain B.

Field Type Label Description
port_id string
channel_id string
signer string

MsgChannelCloseInitResponse

MsgChannelCloseInitResponse defines the Msg/ChannelCloseInit response type.

MsgChannelOpenAck

MsgChannelOpenAck defines a msg sent by a Relayer to Chain A to acknowledge the change of channel state to TRYOPEN on Chain B.

Field Type Label Description
port_id string
channel_id string
counterparty_channel_id string
counterparty_version string
proof_try bytes
proof_height ibc.core.client.v1.Height
signer string

MsgChannelOpenAckResponse

MsgChannelOpenAckResponse defines the Msg/ChannelOpenAck response type.

MsgChannelOpenConfirm

MsgChannelOpenConfirm defines a msg sent by a Relayer to Chain B to acknowledge the change of channel state to OPEN on Chain A.

Field Type Label Description
port_id string
channel_id string
proof_ack bytes
proof_height ibc.core.client.v1.Height
signer string

MsgChannelOpenConfirmResponse

MsgChannelOpenConfirmResponse defines the Msg/ChannelOpenConfirm response type.

MsgChannelOpenInit

MsgChannelOpenInit defines an sdk.Msg to initialize a channel handshake. It is called by a relayer on Chain A.

Field Type Label Description
port_id string
channel Channel
signer string

MsgChannelOpenInitResponse

MsgChannelOpenInitResponse defines the Msg/ChannelOpenInit response type.

Field Type Label Description
channel_id string
version string

MsgChannelOpenTry

MsgChannelOpenInit defines a msg sent by a Relayer to try to open a channel on Chain B. The version field within the Channel field has been deprecated. Its value will be ignored by core IBC.

Field Type Label Description
port_id string
previous_channel_id string Deprecated. Deprecated: this field is unused. Crossing hello's are no longer supported in core IBC.
channel Channel NOTE: the version field within the channel has been deprecated. Its value will be ignored by core IBC.
counterparty_version string
proof_init bytes
proof_height ibc.core.client.v1.Height
signer string

MsgChannelOpenTryResponse

MsgChannelOpenTryResponse defines the Msg/ChannelOpenTry response type.

Field Type Label Description
version string

MsgRecvPacket

MsgRecvPacket receives incoming IBC packet

Field Type Label Description
packet Packet
proof_commitment bytes
proof_height ibc.core.client.v1.Height
signer string

MsgRecvPacketResponse

MsgRecvPacketResponse defines the Msg/RecvPacket response type.

Field Type Label Description
result ResponseResultType

MsgTimeout

MsgTimeout receives timed-out packet

Field Type Label Description
packet Packet
proof_unreceived bytes
proof_height ibc.core.client.v1.Height
next_sequence_recv uint64
signer string

MsgTimeoutOnClose

MsgTimeoutOnClose timed-out packet upon counterparty channel closure.

Field Type Label Description
packet Packet
proof_unreceived bytes
proof_close bytes
proof_height ibc.core.client.v1.Height
next_sequence_recv uint64
signer string

MsgTimeoutOnCloseResponse

MsgTimeoutOnCloseResponse defines the Msg/TimeoutOnClose response type.

Field Type Label Description
result ResponseResultType

MsgTimeoutResponse

MsgTimeoutResponse defines the Msg/Timeout response type.

Field Type Label Description
result ResponseResultType

ResponseResultType

ResponseResultType defines the possible outcomes of the execution of a message

Name Number Description
RESPONSE_RESULT_TYPE_UNSPECIFIED 0 Default zero value enumeration
RESPONSE_RESULT_TYPE_NOOP 1 The message did not call the IBC application callbacks (because, for example, the packet had already been relayed)
RESPONSE_RESULT_TYPE_SUCCESS 2 The message was executed successfully

Msg

Msg defines the ibc/channel Msg service.

Method Name Request Type Response Type Description HTTP Verb Endpoint
ChannelOpenInit MsgChannelOpenInit MsgChannelOpenInitResponse ChannelOpenInit defines a rpc handler method for MsgChannelOpenInit.
ChannelOpenTry MsgChannelOpenTry MsgChannelOpenTryResponse ChannelOpenTry defines a rpc handler method for MsgChannelOpenTry.
ChannelOpenAck MsgChannelOpenAck MsgChannelOpenAckResponse ChannelOpenAck defines a rpc handler method for MsgChannelOpenAck.
ChannelOpenConfirm MsgChannelOpenConfirm MsgChannelOpenConfirmResponse ChannelOpenConfirm defines a rpc handler method for MsgChannelOpenConfirm.
ChannelCloseInit MsgChannelCloseInit MsgChannelCloseInitResponse ChannelCloseInit defines a rpc handler method for MsgChannelCloseInit.
ChannelCloseConfirm MsgChannelCloseConfirm MsgChannelCloseConfirmResponse ChannelCloseConfirm defines a rpc handler method for MsgChannelCloseConfirm.
RecvPacket MsgRecvPacket MsgRecvPacketResponse RecvPacket defines a rpc handler method for MsgRecvPacket.
Timeout MsgTimeout MsgTimeoutResponse Timeout defines a rpc handler method for MsgTimeout.
TimeoutOnClose MsgTimeoutOnClose MsgTimeoutOnCloseResponse TimeoutOnClose defines a rpc handler method for MsgTimeoutOnClose.
Acknowledgement MsgAcknowledgement MsgAcknowledgementResponse Acknowledgement defines a rpc handler method for MsgAcknowledgement.

Top

ibc/core/client/v1/genesis.proto

GenesisMetadata

GenesisMetadata defines the genesis type for metadata that clients may return with ExportMetadata

Field Type Label Description
key bytes store key of metadata without clientID-prefix
value bytes metadata value

GenesisState

GenesisState defines the ibc client submodule's genesis state.

Field Type Label Description
clients IdentifiedClientState repeated client states with their corresponding identifiers
clients_consensus ClientConsensusStates repeated consensus states from each client
clients_metadata IdentifiedGenesisMetadata repeated metadata from each client
params Params
create_localhost bool create localhost on initialization
next_client_sequence uint64 the sequence for the next generated client identifier

IdentifiedGenesisMetadata

IdentifiedGenesisMetadata has the client metadata with the corresponding client id.

Field Type Label Description
client_id string
client_metadata GenesisMetadata repeated

Top

ibc/core/client/v1/query.proto

QueryClientParamsRequest

QueryClientParamsRequest is the request type for the Query/ClientParams RPC method.

QueryClientParamsResponse

QueryClientParamsResponse is the response type for the Query/ClientParams RPC method.

Field Type Label Description
params Params params defines the parameters of the module.

QueryClientStateRequest

QueryClientStateRequest is the request type for the Query/ClientState RPC method

Field Type Label Description
client_id string client state unique identifier

QueryClientStateResponse

QueryClientStateResponse is the response type for the Query/ClientState RPC method. Besides the client state, it includes a proof and the height from which the proof was retrieved.

Field Type Label Description
client_state google.protobuf.Any client state associated with the request identifier
proof bytes merkle proof of existence
proof_height Height height at which the proof was retrieved

QueryClientStatesRequest

QueryClientStatesRequest is the request type for the Query/ClientStates RPC method

Field Type Label Description
pagination cosmos.base.query.v1beta1.PageRequest pagination request

QueryClientStatesResponse

QueryClientStatesResponse is the response type for the Query/ClientStates RPC method.

Field Type Label Description
client_states IdentifiedClientState repeated list of stored ClientStates of the chain.
pagination cosmos.base.query.v1beta1.PageResponse pagination response

QueryClientStatusRequest

QueryClientStatusRequest is the request type for the Query/ClientStatus RPC method

Field Type Label Description
client_id string client unique identifier

QueryClientStatusResponse

QueryClientStatusResponse is the response type for the Query/ClientStatus RPC method. It returns the current status of the IBC client.

Field Type Label Description
status string

QueryConsensusStateHeightsRequest

QueryConsensusStateHeightsRequest is the request type for Query/ConsensusStateHeights RPC method.

Field Type Label Description
client_id string client identifier
pagination cosmos.base.query.v1beta1.PageRequest pagination request

QueryConsensusStateHeightsResponse

QueryConsensusStateHeightsResponse is the response type for the Query/ConsensusStateHeights RPC method

Field Type Label Description
consensus_state_heights Height repeated consensus state heights
pagination cosmos.base.query.v1beta1.PageResponse pagination response

QueryConsensusStateRequest

QueryConsensusStateRequest is the request type for the Query/ConsensusState RPC method. Besides the consensus state, it includes a proof and the height from which the proof was retrieved.

Field Type Label Description
client_id string client identifier
revision_number uint64 consensus state revision number
revision_height uint64 consensus state revision height
latest_height bool latest_height overrrides the height field and queries the latest stored ConsensusState

QueryConsensusStateResponse

QueryConsensusStateResponse is the response type for the Query/ConsensusState RPC method

Field Type Label Description
consensus_state google.protobuf.Any consensus state associated with the client identifier at the given height
proof bytes merkle proof of existence
proof_height Height height at which the proof was retrieved

QueryConsensusStatesRequest

QueryConsensusStatesRequest is the request type for the Query/ConsensusStates RPC method.

Field Type Label Description
client_id string client identifier
pagination cosmos.base.query.v1beta1.PageRequest pagination request

QueryConsensusStatesResponse

QueryConsensusStatesResponse is the response type for the Query/ConsensusStates RPC method

Field Type Label Description
consensus_states ConsensusStateWithHeight repeated consensus states associated with the identifier
pagination cosmos.base.query.v1beta1.PageResponse pagination response

QueryUpgradedClientStateRequest

QueryUpgradedClientStateRequest is the request type for the Query/UpgradedClientState RPC method

QueryUpgradedClientStateResponse

QueryUpgradedClientStateResponse is the response type for the Query/UpgradedClientState RPC method.

Field Type Label Description
upgraded_client_state google.protobuf.Any client state associated with the request identifier

QueryUpgradedConsensusStateRequest

QueryUpgradedConsensusStateRequest is the request type for the Query/UpgradedConsensusState RPC method

QueryUpgradedConsensusStateResponse

QueryUpgradedConsensusStateResponse is the response type for the Query/UpgradedConsensusState RPC method.

Field Type Label Description
upgraded_consensus_state google.protobuf.Any Consensus state associated with the request identifier

Query

Query provides defines the gRPC querier service

Method Name Request Type Response Type Description HTTP Verb Endpoint
ClientState QueryClientStateRequest QueryClientStateResponse ClientState queries an IBC light client. GET /ibc/core/client/v1/client_states/{client_id}
ClientStates QueryClientStatesRequest QueryClientStatesResponse ClientStates queries all the IBC light clients of a chain. GET /ibc/core/client/v1/client_states
ConsensusState QueryConsensusStateRequest QueryConsensusStateResponse ConsensusState queries a consensus state associated with a client state at a given height. GET /ibc/core/client/v1/consensus_states/{client_id}/revision/{revision_number}/height/{revision_height}
ConsensusStates QueryConsensusStatesRequest QueryConsensusStatesResponse ConsensusStates queries all the consensus state associated with a given client. GET /ibc/core/client/v1/consensus_states/{client_id}
ConsensusStateHeights QueryConsensusStateHeightsRequest QueryConsensusStateHeightsResponse ConsensusStateHeights queries the height of every consensus states associated with a given client. GET /ibc/core/client/v1/consensus_states/{client_id}/heights
ClientStatus QueryClientStatusRequest QueryClientStatusResponse Status queries the status of an IBC client. GET /ibc/core/client/v1/client_status/{client_id}
ClientParams QueryClientParamsRequest QueryClientParamsResponse ClientParams queries all parameters of the ibc client. GET /ibc/client/v1/params
UpgradedClientState QueryUpgradedClientStateRequest QueryUpgradedClientStateResponse UpgradedClientState queries an Upgraded IBC light client. GET /ibc/core/client/v1/upgraded_client_states
UpgradedConsensusState QueryUpgradedConsensusStateRequest QueryUpgradedConsensusStateResponse UpgradedConsensusState queries an Upgraded IBC consensus state. GET /ibc/core/client/v1/upgraded_consensus_states

Top

ibc/core/client/v1/tx.proto

MsgCreateClient

MsgCreateClient defines a message to create an IBC client

Field Type Label Description
client_state google.protobuf.Any light client state
consensus_state google.protobuf.Any consensus state associated with the client that corresponds to a given height.
signer string signer address

MsgCreateClientResponse

MsgCreateClientResponse defines the Msg/CreateClient response type.

MsgSubmitMisbehaviour

MsgSubmitMisbehaviour defines an sdk.Msg type that submits Evidence for light client misbehaviour.

Field Type Label Description
client_id string client unique identifier
misbehaviour google.protobuf.Any misbehaviour used for freezing the light client
signer string signer address

MsgSubmitMisbehaviourResponse

MsgSubmitMisbehaviourResponse defines the Msg/SubmitMisbehaviour response type.

MsgUpdateClient

MsgUpdateClient defines an sdk.Msg to update a IBC client state using the given header.

Field Type Label Description
client_id string client unique identifier
header google.protobuf.Any header to update the light client
signer string signer address

MsgUpdateClientResponse

MsgUpdateClientResponse defines the Msg/UpdateClient response type.

MsgUpgradeClient

MsgUpgradeClient defines an sdk.Msg to upgrade an IBC client to a new client state

Field Type Label Description
client_id string client unique identifier
client_state google.protobuf.Any upgraded client state
consensus_state google.protobuf.Any upgraded consensus state, only contains enough information to serve as a basis of trust in update logic
proof_upgrade_client bytes proof that old chain committed to new client
proof_upgrade_consensus_state bytes proof that old chain committed to new consensus state
signer string signer address

MsgUpgradeClientResponse

MsgUpgradeClientResponse defines the Msg/UpgradeClient response type.

Msg

Msg defines the ibc/client Msg service.

Method Name Request Type Response Type Description HTTP Verb Endpoint
CreateClient MsgCreateClient MsgCreateClientResponse CreateClient defines a rpc handler method for MsgCreateClient.
UpdateClient MsgUpdateClient MsgUpdateClientResponse UpdateClient defines a rpc handler method for MsgUpdateClient.
UpgradeClient MsgUpgradeClient MsgUpgradeClientResponse UpgradeClient defines a rpc handler method for MsgUpgradeClient.
SubmitMisbehaviour MsgSubmitMisbehaviour MsgSubmitMisbehaviourResponse SubmitMisbehaviour defines a rpc handler method for MsgSubmitMisbehaviour.

Top

ibc/core/commitment/v1/commitment.proto

MerklePath

MerklePath is the path used to verify commitment proofs, which can be an arbitrary structured object (defined by a commitment type). MerklePath is represented from root-to-leaf

Field Type Label Description
key_path string repeated

MerklePrefix

MerklePrefix is merkle path prefixed to the key. The constructed key from the Path and the key will be append(Path.KeyPath, append(Path.KeyPrefix, key...))

Field Type Label Description
key_prefix bytes

MerkleProof

MerkleProof is a wrapper type over a chain of CommitmentProofs. It demonstrates membership or non-membership for an element or set of elements, verifiable in conjunction with a known commitment root. Proofs should be succinct. MerkleProofs are ordered from leaf-to-root

Field Type Label Description
proofs ics23.CommitmentProof repeated

MerkleRoot

MerkleRoot defines a merkle root hash. In the Cosmos SDK, the AppHash of a block header becomes the root.

Field Type Label Description
hash bytes

Top

ibc/core/connection/v1/connection.proto

ClientPaths

ClientPaths define all the connection paths for a client state.

Field Type Label Description
paths string repeated list of connection paths

ConnectionEnd

ConnectionEnd defines a stateful object on a chain connected to another separate one. NOTE: there must only be 2 defined ConnectionEnds to establish a connection between two chains.

Field Type Label Description
client_id string client associated with this connection.
versions Version repeated IBC version which can be utilised to determine encodings or protocols for channels or packets utilising this connection.
state State current state of the connection end.
counterparty Counterparty counterparty chain associated with this connection.
delay_period uint64 delay period that must pass before a consensus state can be used for packet-verification NOTE: delay period logic is only implemented by some clients.

ConnectionPaths

ConnectionPaths define all the connection paths for a given client state.

Field Type Label Description
client_id string client state unique identifier
paths string repeated list of connection paths

Counterparty

Counterparty defines the counterparty chain associated with a connection end.

Field Type Label Description
client_id string identifies the client on the counterparty chain associated with a given connection.
connection_id string identifies the connection end on the counterparty chain associated with a given connection.
prefix ibc.core.commitment.v1.MerklePrefix commitment merkle prefix of the counterparty chain.

IdentifiedConnection

IdentifiedConnection defines a connection with additional connection identifier field.

Field Type Label Description
id string connection identifier.
client_id string client associated with this connection.
versions Version repeated IBC version which can be utilised to determine encodings or protocols for channels or packets utilising this connection
state State current state of the connection end.
counterparty Counterparty counterparty chain associated with this connection.
delay_period uint64 delay period associated with this connection.

Params

Params defines the set of Connection parameters.

Field Type Label Description
max_expected_time_per_block uint64 maximum expected time per block (in nanoseconds), used to enforce block delay. This parameter should reflect the largest amount of time that the chain might reasonably take to produce the next block under normal operating conditions. A safe choice is 3-5x the expected time per block.

Version

Version defines the versioning scheme used to negotiate the IBC verison in the connection handshake.

Field Type Label Description
identifier string unique version identifier
features string repeated list of features compatible with the specified identifier

State

State defines if a connection is in one of the following states: INIT, TRYOPEN, OPEN or UNINITIALIZED.

Name Number Description
STATE_UNINITIALIZED_UNSPECIFIED 0 Default State
STATE_INIT 1 A connection end has just started the opening handshake.
STATE_TRYOPEN 2 A connection end has acknowledged the handshake step on the counterparty chain.
STATE_OPEN 3 A connection end has completed the handshake.

Top

ibc/core/connection/v1/genesis.proto

GenesisState

GenesisState defines the ibc connection submodule's genesis state.

Field Type Label Description
connections IdentifiedConnection repeated
client_connection_paths ConnectionPaths repeated
next_connection_sequence uint64 the sequence for the next generated connection identifier
params Params

Top

ibc/core/connection/v1/query.proto

QueryClientConnectionsRequest

QueryClientConnectionsRequest is the request type for the Query/ClientConnections RPC method

Field Type Label Description
client_id string client identifier associated with a connection

QueryClientConnectionsResponse

QueryClientConnectionsResponse is the response type for the Query/ClientConnections RPC method

Field Type Label Description
connection_paths string repeated slice of all the connection paths associated with a client.
proof bytes merkle proof of existence
proof_height ibc.core.client.v1.Height height at which the proof was generated

QueryConnectionClientStateRequest

QueryConnectionClientStateRequest is the request type for the Query/ConnectionClientState RPC method

Field Type Label Description
connection_id string connection identifier

QueryConnectionClientStateResponse

QueryConnectionClientStateResponse is the response type for the Query/ConnectionClientState RPC method

Field Type Label Description
identified_client_state ibc.core.client.v1.IdentifiedClientState client state associated with the channel
proof bytes merkle proof of existence
proof_height ibc.core.client.v1.Height height at which the proof was retrieved

QueryConnectionConsensusStateRequest

QueryConnectionConsensusStateRequest is the request type for the Query/ConnectionConsensusState RPC method

Field Type Label Description
connection_id string connection identifier
revision_number uint64
revision_height uint64

QueryConnectionConsensusStateResponse

QueryConnectionConsensusStateResponse is the response type for the Query/ConnectionConsensusState RPC method

Field Type Label Description
consensus_state google.protobuf.Any consensus state associated with the channel
client_id string client ID associated with the consensus state
proof bytes merkle proof of existence
proof_height ibc.core.client.v1.Height height at which the proof was retrieved

QueryConnectionRequest

QueryConnectionRequest is the request type for the Query/Connection RPC method

Field Type Label Description
connection_id string connection unique identifier

QueryConnectionResponse

QueryConnectionResponse is the response type for the Query/Connection RPC method. Besides the connection end, it includes a proof and the height from which the proof was retrieved.

Field Type Label Description
connection ConnectionEnd connection associated with the request identifier
proof bytes merkle proof of existence
proof_height ibc.core.client.v1.Height height at which the proof was retrieved

QueryConnectionsRequest

QueryConnectionsRequest is the request type for the Query/Connections RPC method

Field Type Label Description
pagination cosmos.base.query.v1beta1.PageRequest

QueryConnectionsResponse

QueryConnectionsResponse is the response type for the Query/Connections RPC method.

Field Type Label Description
connections IdentifiedConnection repeated list of stored connections of the chain.
pagination cosmos.base.query.v1beta1.PageResponse pagination response
height ibc.core.client.v1.Height query block height

Query

Query provides defines the gRPC querier service

Method Name Request Type Response Type Description HTTP Verb Endpoint
Connection QueryConnectionRequest QueryConnectionResponse Connection queries an IBC connection end. GET /ibc/core/connection/v1/connections/{connection_id}
Connections QueryConnectionsRequest QueryConnectionsResponse Connections queries all the IBC connections of a chain. GET /ibc/core/connection/v1/connections
ClientConnections QueryClientConnectionsRequest QueryClientConnectionsResponse ClientConnections queries the connection paths associated with a client state. GET /ibc/core/connection/v1/client_connections/{client_id}
ConnectionClientState QueryConnectionClientStateRequest QueryConnectionClientStateResponse ConnectionClientState queries the client state associated with the connection. GET /ibc/core/connection/v1/connections/{connection_id}/client_state
ConnectionConsensusState QueryConnectionConsensusStateRequest QueryConnectionConsensusStateResponse ConnectionConsensusState queries the consensus state associated with the connection. GET /ibc/core/connection/v1/connections/{connection_id}/consensus_state/revision/{revision_number}/height/{revision_height}

Top

ibc/core/connection/v1/tx.proto

MsgConnectionOpenAck

MsgConnectionOpenAck defines a msg sent by a Relayer to Chain A to acknowledge the change of connection state to TRYOPEN on Chain B.

Field Type Label Description
connection_id string
counterparty_connection_id string
version Version
client_state google.protobuf.Any
proof_height ibc.core.client.v1.Height
proof_try bytes proof of the initialization the connection on Chain B: UNITIALIZED -> TRYOPEN
proof_client bytes proof of client state included in message
proof_consensus bytes proof of client consensus state
consensus_height ibc.core.client.v1.Height
signer string

MsgConnectionOpenAckResponse

MsgConnectionOpenAckResponse defines the Msg/ConnectionOpenAck response type.

MsgConnectionOpenConfirm

MsgConnectionOpenConfirm defines a msg sent by a Relayer to Chain B to acknowledge the change of connection state to OPEN on Chain A.

Field Type Label Description
connection_id string
proof_ack bytes proof for the change of the connection state on Chain A: INIT -> OPEN
proof_height ibc.core.client.v1.Height
signer string

MsgConnectionOpenConfirmResponse

MsgConnectionOpenConfirmResponse defines the Msg/ConnectionOpenConfirm response type.

MsgConnectionOpenInit

MsgConnectionOpenInit defines the msg sent by an account on Chain A to initialize a connection with Chain B.

Field Type Label Description
client_id string
counterparty Counterparty
version Version
delay_period uint64
signer string

MsgConnectionOpenInitResponse

MsgConnectionOpenInitResponse defines the Msg/ConnectionOpenInit response type.

MsgConnectionOpenTry

MsgConnectionOpenTry defines a msg sent by a Relayer to try to open a connection on Chain B.

Field Type Label Description
client_id string
previous_connection_id string Deprecated. Deprecated: this field is unused. Crossing hellos are no longer supported in core IBC.
client_state google.protobuf.Any
counterparty Counterparty
delay_period uint64
counterparty_versions Version repeated
proof_height ibc.core.client.v1.Height
proof_init bytes proof of the initialization the connection on Chain A: UNITIALIZED -> INIT
proof_client bytes proof of client state included in message
proof_consensus bytes proof of client consensus state
consensus_height ibc.core.client.v1.Height
signer string

MsgConnectionOpenTryResponse

MsgConnectionOpenTryResponse defines the Msg/ConnectionOpenTry response type.

Msg

Msg defines the ibc/connection Msg service.

Method Name Request Type Response Type Description HTTP Verb Endpoint
ConnectionOpenInit MsgConnectionOpenInit MsgConnectionOpenInitResponse ConnectionOpenInit defines a rpc handler method for MsgConnectionOpenInit.
ConnectionOpenTry MsgConnectionOpenTry MsgConnectionOpenTryResponse ConnectionOpenTry defines a rpc handler method for MsgConnectionOpenTry.
ConnectionOpenAck MsgConnectionOpenAck MsgConnectionOpenAckResponse ConnectionOpenAck defines a rpc handler method for MsgConnectionOpenAck.
ConnectionOpenConfirm MsgConnectionOpenConfirm MsgConnectionOpenConfirmResponse ConnectionOpenConfirm defines a rpc handler method for MsgConnectionOpenConfirm.

Top

ibc/core/types/v1/genesis.proto

GenesisState

GenesisState defines the ibc module's genesis state.

Field Type Label Description
client_genesis ibc.core.client.v1.GenesisState ICS002 - Clients genesis state
connection_genesis ibc.core.connection.v1.GenesisState ICS003 - Connections genesis state
channel_genesis ibc.core.channel.v1.GenesisState ICS004 - Channel genesis state

Top

ibc/lightclients/localhost/v1/localhost.proto

ClientState

ClientState defines a loopback (localhost) client. It requires (read-only) access to keys outside the client prefix.

Field Type Label Description
chain_id string self chain ID
height ibc.core.client.v1.Height self latest block height

Top

ibc/lightclients/solomachine/v1/solomachine.proto

ChannelStateData

ChannelStateData returns the SignBytes data for channel state verification.

Field Type Label Description
path bytes
channel ibc.core.channel.v1.Channel

ClientState

ClientState defines a solo machine client that tracks the current consensus state and if the client is frozen.

Field Type Label Description
sequence uint64 latest sequence of the client state
frozen_sequence uint64 frozen sequence of the solo machine
consensus_state ConsensusState
allow_update_after_proposal bool when set to true, will allow governance to update a solo machine client. The client will be unfrozen if it is frozen.

ClientStateData

ClientStateData returns the SignBytes data for client state verification.

Field Type Label Description
path bytes
client_state google.protobuf.Any

ConnectionStateData

ConnectionStateData returns the SignBytes data for connection state verification.

Field Type Label Description
path bytes
connection ibc.core.connection.v1.ConnectionEnd

ConsensusState

ConsensusState defines a solo machine consensus state. The sequence of a consensus state is contained in the "height" key used in storing the consensus state.

Field Type Label Description
public_key google.protobuf.Any public key of the solo machine
diversifier string diversifier allows the same public key to be re-used across different solo machine clients (potentially on different chains) without being considered misbehaviour.
timestamp uint64

ConsensusStateData

ConsensusStateData returns the SignBytes data for consensus state verification.

Field Type Label Description
path bytes
consensus_state google.protobuf.Any

Header

Header defines a solo machine consensus header

Field Type Label Description
sequence uint64 sequence to update solo machine public key at
timestamp uint64
signature bytes
new_public_key google.protobuf.Any
new_diversifier string

HeaderData

HeaderData returns the SignBytes data for update verification.

Field Type Label Description
new_pub_key google.protobuf.Any header public key
new_diversifier string header diversifier

Misbehaviour

Misbehaviour defines misbehaviour for a solo machine which consists of a sequence and two signatures over different messages at that sequence.

Field Type Label Description
client_id string
sequence uint64
signature_one SignatureAndData
signature_two SignatureAndData

NextSequenceRecvData

NextSequenceRecvData returns the SignBytes data for verification of the next sequence to be received.

Field Type Label Description
path bytes
next_seq_recv uint64

PacketAcknowledgementData

PacketAcknowledgementData returns the SignBytes data for acknowledgement verification.

Field Type Label Description
path bytes
acknowledgement bytes

PacketCommitmentData

PacketCommitmentData returns the SignBytes data for packet commitment verification.

Field Type Label Description
path bytes
commitment bytes

PacketReceiptAbsenceData

PacketReceiptAbsenceData returns the SignBytes data for packet receipt absence verification.

Field Type Label Description
path bytes

SignBytes

SignBytes defines the signed bytes used for signature verification.

Field Type Label Description
sequence uint64
timestamp uint64
diversifier string
data_type DataType type of the data used
data bytes marshaled data

SignatureAndData

SignatureAndData contains a signature and the data signed over to create that signature.

Field Type Label Description
signature bytes
data_type DataType
data bytes
timestamp uint64

TimestampedSignatureData

TimestampedSignatureData contains the signature data and the timestamp of the signature.

Field Type Label Description
signature_data bytes
timestamp uint64

DataType

DataType defines the type of solo machine proof being created. This is done to preserve uniqueness of different data sign byte encodings.

Name Number Description
DATA_TYPE_UNINITIALIZED_UNSPECIFIED 0 Default State
DATA_TYPE_CLIENT_STATE 1 Data type for client state verification
DATA_TYPE_CONSENSUS_STATE 2 Data type for consensus state verification
DATA_TYPE_CONNECTION_STATE 3 Data type for connection state verification
DATA_TYPE_CHANNEL_STATE 4 Data type for channel state verification
DATA_TYPE_PACKET_COMMITMENT 5 Data type for packet commitment verification
DATA_TYPE_PACKET_ACKNOWLEDGEMENT 6 Data type for packet acknowledgement verification
DATA_TYPE_PACKET_RECEIPT_ABSENCE 7 Data type for packet receipt absence verification
DATA_TYPE_NEXT_SEQUENCE_RECV 8 Data type for next sequence recv verification
DATA_TYPE_HEADER 9 Data type for header verification

Top

ibc/lightclients/solomachine/v2/solomachine.proto

ChannelStateData

ChannelStateData returns the SignBytes data for channel state verification.

Field Type Label Description
path bytes
channel ibc.core.channel.v1.Channel

ClientState

ClientState defines a solo machine client that tracks the current consensus state and if the client is frozen.

Field Type Label Description
sequence uint64 latest sequence of the client state
is_frozen bool frozen sequence of the solo machine
consensus_state ConsensusState
allow_update_after_proposal bool when set to true, will allow governance to update a solo machine client. The client will be unfrozen if it is frozen.

ClientStateData

ClientStateData returns the SignBytes data for client state verification.

Field Type Label Description
path bytes
client_state google.protobuf.Any

ConnectionStateData

ConnectionStateData returns the SignBytes data for connection state verification.

Field Type Label Description
path bytes
connection ibc.core.connection.v1.ConnectionEnd

ConsensusState

ConsensusState defines a solo machine consensus state. The sequence of a consensus state is contained in the "height" key used in storing the consensus state.

Field Type Label Description
public_key google.protobuf.Any public key of the solo machine
diversifier string diversifier allows the same public key to be re-used across different solo machine clients (potentially on different chains) without being considered misbehaviour.
timestamp uint64

ConsensusStateData

ConsensusStateData returns the SignBytes data for consensus state verification.

Field Type Label Description
path bytes
consensus_state google.protobuf.Any

Header

Header defines a solo machine consensus header

Field Type Label Description
sequence uint64 sequence to update solo machine public key at
timestamp uint64
signature bytes
new_public_key google.protobuf.Any
new_diversifier string

HeaderData

HeaderData returns the SignBytes data for update verification.

Field Type Label Description
new_pub_key google.protobuf.Any header public key
new_diversifier string header diversifier

Misbehaviour

Misbehaviour defines misbehaviour for a solo machine which consists of a sequence and two signatures over different messages at that sequence.

Field Type Label Description
client_id string
sequence uint64
signature_one SignatureAndData
signature_two SignatureAndData

NextSequenceRecvData

NextSequenceRecvData returns the SignBytes data for verification of the next sequence to be received.

Field Type Label Description
path bytes
next_seq_recv uint64

PacketAcknowledgementData

PacketAcknowledgementData returns the SignBytes data for acknowledgement verification.

Field Type Label Description
path bytes
acknowledgement bytes

PacketCommitmentData

PacketCommitmentData returns the SignBytes data for packet commitment verification.

Field Type Label Description
path bytes
commitment bytes

PacketReceiptAbsenceData

PacketReceiptAbsenceData returns the SignBytes data for packet receipt absence verification.

Field Type Label Description
path bytes

SignBytes

SignBytes defines the signed bytes used for signature verification.

Field Type Label Description
sequence uint64
timestamp uint64
diversifier string
data_type DataType type of the data used
data bytes marshaled data

SignatureAndData

SignatureAndData contains a signature and the data signed over to create that signature.

Field Type Label Description
signature bytes
data_type DataType
data bytes
timestamp uint64

TimestampedSignatureData

TimestampedSignatureData contains the signature data and the timestamp of the signature.

Field Type Label Description
signature_data bytes
timestamp uint64

DataType

DataType defines the type of solo machine proof being created. This is done to preserve uniqueness of different data sign byte encodings.

Name Number Description
DATA_TYPE_UNINITIALIZED_UNSPECIFIED 0 Default State
DATA_TYPE_CLIENT_STATE 1 Data type for client state verification
DATA_TYPE_CONSENSUS_STATE 2 Data type for consensus state verification
DATA_TYPE_CONNECTION_STATE 3 Data type for connection state verification
DATA_TYPE_CHANNEL_STATE 4 Data type for channel state verification
DATA_TYPE_PACKET_COMMITMENT 5 Data type for packet commitment verification
DATA_TYPE_PACKET_ACKNOWLEDGEMENT 6 Data type for packet acknowledgement verification
DATA_TYPE_PACKET_RECEIPT_ABSENCE 7 Data type for packet receipt absence verification
DATA_TYPE_NEXT_SEQUENCE_RECV 8 Data type for next sequence recv verification
DATA_TYPE_HEADER 9 Data type for header verification

Top

ibc/lightclients/tendermint/v1/tendermint.proto

ClientState

ClientState from Tendermint tracks the current validator set, latest height, and a possible frozen height.

Field Type Label Description
chain_id string
trust_level Fraction
trusting_period google.protobuf.Duration duration of the period since the LastestTimestamp during which the submitted headers are valid for upgrade
unbonding_period google.protobuf.Duration duration of the staking unbonding period
max_clock_drift google.protobuf.Duration defines how much new (untrusted) header's Time can drift into the future.
frozen_height ibc.core.client.v1.Height Block height when the client was frozen due to a misbehaviour
latest_height ibc.core.client.v1.Height Latest height the client was updated to
proof_specs ics23.ProofSpec repeated Proof specifications used in verifying counterparty state
upgrade_path string repeated Path at which next upgraded client will be committed. Each element corresponds to the key for a single CommitmentProof in the chained proof. NOTE: ClientState must stored under {upgradePath}/{upgradeHeight}/clientState ConsensusState must be stored under {upgradepath}/{upgradeHeight}/consensusState For SDK chains using the default upgrade module, upgrade_path should be []string{"upgrade", "upgradedIBCState"}`
allow_update_after_expiry bool Deprecated. allow_update_after_expiry is deprecated
allow_update_after_misbehaviour bool Deprecated. allow_update_after_misbehaviour is deprecated

ConsensusState

ConsensusState defines the consensus state from Tendermint.

Field Type Label Description
timestamp google.protobuf.Timestamp timestamp that corresponds to the block height in which the ConsensusState was stored.
root ibc.core.commitment.v1.MerkleRoot commitment root (i.e app hash)
next_validators_hash bytes

Fraction

Fraction defines the protobuf message type for tmmath.Fraction that only supports positive values.

Field Type Label Description
numerator uint64
denominator uint64

Header

Header defines the Tendermint client consensus Header. It encapsulates all the information necessary to update from a trusted Tendermint ConsensusState. The inclusion of TrustedHeight and TrustedValidators allows this update to process correctly, so long as the ConsensusState for the TrustedHeight exists, this removes race conditions among relayers The SignedHeader and ValidatorSet are the new untrusted update fields for the client. The TrustedHeight is the height of a stored ConsensusState on the client that will be used to verify the new untrusted header. The Trusted ConsensusState must be within the unbonding period of current time in order to correctly verify, and the TrustedValidators must hash to TrustedConsensusState.NextValidatorsHash since that is the last trusted validator set at the TrustedHeight.

Field Type Label Description
signed_header tendermint.types.SignedHeader
validator_set tendermint.types.ValidatorSet
trusted_height ibc.core.client.v1.Height
trusted_validators tendermint.types.ValidatorSet

Misbehaviour

Misbehaviour is a wrapper over two conflicting Headers that implements Misbehaviour interface expected by ICS-02

Field Type Label Description
client_id string
header_1 Header
header_2 Header

Scalar Value Types

.proto Type Notes C++ Java Python Go C# PHP Ruby
double double double float float64 double float Float
float float float float float32 float float Float
int32 Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead. int32 int int int32 int integer Bignum or Fixnum (as required)
int64 Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead. int64 long int/long int64 long integer/string Bignum
uint32 Uses variable-length encoding. uint32 int int/long uint32 uint integer Bignum or Fixnum (as required)
uint64 Uses variable-length encoding. uint64 long int/long uint64 ulong integer/string Bignum or Fixnum (as required)
sint32 Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s. int32 int int int32 int integer Bignum or Fixnum (as required)
sint64 Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s. int64 long int/long int64 long integer/string Bignum
fixed32 Always four bytes. More efficient than uint32 if values are often greater than 2^28. uint32 int int uint32 uint integer Bignum or Fixnum (as required)
fixed64 Always eight bytes. More efficient than uint64 if values are often greater than 2^56. uint64 long int/long uint64 ulong integer/string Bignum
sfixed32 Always four bytes. int32 int int int32 int integer Bignum or Fixnum (as required)
sfixed64 Always eight bytes. int64 long int/long int64 long integer/string Bignum
bool bool boolean boolean bool bool boolean TrueClass/FalseClass
string A string must always contain UTF-8 encoded or 7-bit ASCII text. string String str/unicode string string string String (UTF-8)
bytes May contain any arbitrary sequence of bytes. string ByteString str []byte ByteString string String (ASCII-8BIT)