# Common IBC Commands

Nodes can use the Inter-Blockchain Communication Protocol (IBC) command with cronosd. Here are the commonly used IBC commands on Cronos Chain:

**#1 Querying commands for the IBC module on Cronos**

```
./cronosd q ibc
```

Subcommands:

* channel: IBC channel query subcommands
* client: IBC client query subcommands
* connection: IBC connection query subcommands

```
./cronosd query ibc channel
```

**#2 Querying command to see all channels with the node on Cronos**

```
./cronosd q ibc channel channels 
```

Example:

```
./cronosd q ibc channel channels --node  https://rpc-t3.cronos.org:443/
```

Expected output:

```
Channels:
- channel_id: channel-0
  connection_hops:
  - connection-0
  counterparty:
    channel_id: channel-131
    port_id: transfer
  ordering: ORDER_UNORDERED
  port_id: transfer
  state: STATE_OPEN
  version: ics20-1
```

**#3 Querying command to find the specific blockchain channel**

```
./cronosd q ibc channel client-state transfer channel-number
```

Example:

```
./cronosd q ibc channel client-state transfer channel-207 
```

\
\
\&#xNAN;**#4 Query the trace info for all token denominations**

```
./cronosd q ibc-transfer denom-traces --node https://rpc-t3.cronos.org:443/
```

\
\&#xNAN;**#5 Query the denom hash info from a given denom trace**

```
./cronosd q ibc-transfer denom-hash "transfer/channel-1/uatom" <hash>
```

**#6 Query the contract addresses connected with the coin denom**

```
./cronosd query cronos contract-by-denom [denom] [flags]
```

**#7 Create a new IBC client with the specified client state and consensus state**

<pre><code><strong>./cronosd tx ibc client create [path/to/client_state.json] [path/to/consensus_state.json] [flags]
</strong></code></pre>

Example:

```
./cronosd tx ibc client create [path/to/client_state.json] [path/to/consensus_state.json] --from node0 --home ../node0/<app>cli --chain-id $CID
```

**#8 Query all channels associated with a connection**

```
./cronosd query ibc channel connections [connection-id] 
```

Example:

```
./cronosd query ibc channel connections [connection-id] --count_total
```

**#9 Query a channel end**

```
./cronosd query ibc channel end [port-id] [channel-id] [flags]
```

**#10 Query a next receive sequence**

```
./cronosd query ibc channel next-sequence-receive [port-id] [channel-id] [flags]
```

**#11 Query a packet acknowledgment**

```
./cronosd query ibc channel packet-ack [port-id] [channel-id] [sequence] [flags]
```

**#12 Query a packet commitment**

```
./cronosd query ibc channel packet-commitment [port-id] [channel-id] [sequence] [flags]
```

**#13 Query all packet commitments associated with a channel**

```
./cronosd query ibc channel packet-commitments [port-id] [channel-id] [flags]
```

**#14 Query a packet receipt**

```
./cronosd query ibc channel packet-receipt [port-id] [channel-id] [sequence] [flags]
```

**#15 Query all the unreceived acks associated with a channel**

```
./cronosd query ibc channel unreceived-acks [port-id] [channel-id] [flags]
```

**#16 Query all the unreceived packets associated with a channel**

```
./cronosd query ibc channel unreceived-packets [port-id] [channel-id] [flags]
```

**#17 Query the consensus state of a client at a given height**

```
./cronosd query ibc client consensus-state [client-id] [height] [flags]
```

**#18 Query the heights of all consensus states of a client**

```
./cronosd query ibc client consensus-state-heights [client-id] [flags]
```

**#19 Query all the consensus states of a client**

```
./cronosd query ibc client consensus-states [client-id] [flags]
```

**#20 Query the latest header of the running chain**

```
 ./cronosd query ibc client header
```

**#21 Query the current ibc client parameters**

```
./cronosd query ibc client params
```

**#22 Query the self-consensus state for this chain**

```
./cronosd query ibc client self-consensus-state
```

**#23 Query all available light clients**

```
./cronosd query ibc client states
```

**#24 Query client status**

```
./cronosd query ibc client statue [client-id] [flags]
```

**#25 Query all connections**

```
 ./cronosd query ibc connection connections
```

**#26 Query stored connection end**

```
./cronosd query ibc connection end [connection-id] [flags]
```

**#27 Query the current IBC connection parameters**

```
./cronosd query ibc connection params
```

**#28 Query stored client connection paths**

```
./cronosd query ibc connection path [client-id] [flags]
```

**#29 Query the denom trace info from a given trace hash or IBC denom**

```
./cronosd query ibc-transfer denom-trace [hash/denom] [flags]
```

Example:

```
./cronosd query ibc-transfer denom-trace 27A6394C3F9FF9C9DCF5DFFADF9BB5FE9A37C7E92B006199894CF1824DF9AC7C
```

**#30 Get the escrow address for a channel**

```
 ./cronosd query ibc-transfer escrow-address [port] [channel-id] [flags]
```

**#31 Query the current IBC-transfer parameters**

```
./cronosd query ibc-transfer params
```

**#32 Query the total amount of tokens in escrow for a denom**

```
./cronosd query ibc-transfer total-escrow [denom] [flags]
```

**#33 Query the IBC-fee enabled status of a channel**

```
./cronosd query ibc-fee channel [port-id] [channel-id] [flags]
```

**#34 Query the IBC-fee enabled channels**

```
./cronosd query ibc-fee channels
```

**#35 Query the relayer counterparty payee on a given channel**

```
./cronosd query ibc-fee counterparty-payee [channel-id] [relayer] [flags]
```

Example:

```
./cronosd query ibc-fee counterparty-payee channel-5 cosmos1layxcsmyye0dc0har9sdfzwckaz8sjwlfsj8zs
```

**#36 Query for an unrelayed incentivized packet by port-id, channel-id and packet sequence**

```
./cronosd query ibc-fee packet [port-id] [channel-id] [sequence] [flags]
```

**#37 Query for all of the unrelayed incentivized packets and associated fees across all channels**

```
./cronosd query ibc-fee packets
```

**#38 Query for all of the unrelayed incentivized packets on a given channel**

```
 ./cronosd query ibc-fee packets-for-channel [port-id] [channel-id] [flags]
```

**#39 Query the relayer payee address on a given channel**

```
./cronosd query ibc-fee payee [channel-id] [relayer] [flags]
```

Example:

```
./cronosd query ibc-fee payee channel-5 cosmos1layxcsmyye0dc0har9sdfzwckaz8sjwlfsj8zs
```

**#40 Query the total acknowledgment fees for a packet**

```
./cronosd query ibc-fee total-ack-fees [port-id] [channel-id] [sequence] [flags]
```

Example:

```
./cronosd query ibc-fee total-ack-fees transfer channel-5 100
```

**#41 Query the total receive fees for a packet**

```
./cronosd query ibc-fee total-recv-fees [port-id] [channel-id] [sequence] [flags]
```

**#42 Query the total timeout fees for a packet**

```
./cronosd query ibc-fee total-timeout-fees [port-id] [channel-id] [sequence] [flags]
```

\
\\


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.cronos.org/cronos-chain-protocol/common-ibc-commands.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
