Client

On this page

Learn about all the available services for clients {synopsis}

The ICTech supports different clients in order to support ICTech and Ethereum transactions and queries:

Description
Default Port

ICTech gRPC

Query or send ICTech transactions using gRPC

9090

ICTech REST (gRPC-Gateway)

Query or send ICTech transactions using an HTTP RESTful API

9091

Ethereum JSON-RPC

Query Ethereum-formatted transactions and blocks or send Ethereum txs using JSON-RPC

8545

Ethereum Websocket

Subscribe to Ethereum logs and events emitted in smart contracts.

8586

Tendermint RPC

Subscribe to Ethereum logs and events emitted in smart contracts.

26657

Tendermint Websocket

Query transactions, blocks, consensus state, broadcast transactions, etc.

26657

Command Line Interface ( CLI )

Query or send ICTech transactions using your Terminal or Console.

N/A

ICTech gRPC #

ICTech exposes gRPC endpoints for all the integrated ICTech SDK modules. This makes it easier for wallets and block explorers to interact with the Proof-of-Stake logic and native ICTech transactions and queries.

ICTech gRPC-Gateway (HTTP REST) #

gRPC-Gateway reads a gRPC service definition and generates a reverse-proxy server which translates RESTful JSON API into gRPC. With gRPC-Gateway, users can use REST to interact the ICTech gRPC service.

See the list of supported gRPC-Gateway API endpoints for the ICTech testnet here.

Ethereum JSON-RPC #

ICTech supports most of the standard JSON-RPC APIs to connect with existing Ethereum-compatible web3 tooling.

::: tip Check out the list of supported JSON-RPC API [endpoints] and namespaces. :::

Ethereum Websocket #

Then, start a websocket subscription with ws

Tendermint Websocket #

Tendermint Core provides a Websocket connection to subscribe or unsubscribe to Tendermint ABCI events.

::: tip For more info about the how to subscribe to events, please refer to the official Tendermint documentation. :::

List of Tendermint Events #

The main events you can subscribe to are:

  • NewBlock: Contains events triggered during BeginBlock and EndBlock.

  • Tx: Contains events triggered during DeliverTx (i.e. transaction processing).

  • ValidatorSetUpdates: Contains validator set updates for the block.

::: tip

👉 The list of events types and values for each ICTech SDK module can be found in the [Modules Specification]section. Check the Events page to obtain the event list of each supported module on ICTech. :::

List of all Tendermint event keys:

Event Type
Categories

Subscribe to a specific event

"tm.event"

block

Subscribe to a specific transaction

"tx.hash"

block

Subscribe to transactions at a specific block height

"tx.height"

block

Index BeginBlock and Endblock events

"block.height"

block

Subscribe to ABCI BeginBlock events

"begin_block"

block

Subscribe to ABCI EndBlock events

"end_block"

consensus

Below is a list of values that you can use to subscribe for the tm.event type:

Event Value
Categories

New block

"NewBlock"

block

New block header

"NewBlockHeader"

block

New Byzantine Evidence

"NewEvidence"

block

New transaction

"Tx"

block

Validator set updated

"ValidatorSetUpdates"

block

Block sync status

"BlockSyncStatus"

consensus

lock

"Lock"

consensus

New consensus round

"NewRound"

consensus

Polka

"Polka"

consensus

Relock

"Relock"

consensus

State sync status

"StateSyncStatus"

consensus

Timeout propose

"TimeoutPropose"

consensus

Timeout wait

"TimeoutWait"

consensus

Unlock

"Unlock"

consensus

Block is valid

"ValidBlock"

consensus

Consensus vote

"Vote"

consensus

Example #

Example response:

CLI #

Users can use the ICTech binary to interact directly with an ICTech node though the CLI.

::: tip 👉 To use the CLI, you will need to provide a Tendermint RPC address for the --node flag. Look for a publicly available addresses for testnet and mainnet in the Quick Connect page. :::

  • Transactions: ICTech tx

    The list of available commands, as of v3.0.0, are:

  • Queries: ICTech query

    The list of available commands, as of v3.0.0, are:

::: tip Note: When querying Ethereum transactions versus ICTech transactions, the transaction hashes are different. When querying Ethereum transactions, users need to use event query. Here’s an example with the CLI:

:::

← Quick Connect

Guides →

Last updated