Skip to content

Instantly share code, notes, and snippets.

@rootulp
Last active July 29, 2025 04:07
Show Gist options
  • Save rootulp/aa4fe8e8d799f414b413e3a40fc328c3 to your computer and use it in GitHub Desktop.
Save rootulp/aa4fe8e8d799f414b413e3a40fc328c3 to your computer and use it in GitHub Desktop.
IBC test celestia with Gaia locally

Test IBC

Prerequisites

  1. https://hermes.informal.systems/tutorials/local-chains

Steps

In one terminal, start celestia-app:

./scripts/single-node.sh

In another terminal:

// Copy the output into wallet.json
$ celestia-appd keys add wallet --output json | ~/Downloads/wallet.json


// Import it into Hermes
$ hermes keys add --chain test --key-file ~/Downloads/wallet.json --overwrite

export VALIDATOR=$(celestia-appd keys show validator --address)
echo $VALIDATOR

export WALLET=$(celestia-appd keys show wallet --address)
echo $WALLET

// Fund that new address
$ celestia-appd tx bank send $VALIDATOR $WALLET 10000000utia --fees 1000000utia --yes

// Create a new connection
$ hermes create channel --a-chain ibc-0 --b-chain test --a-port transfer --b-port transfer --new-client-connection
[global]
log_level = 'info'
[mode]
[mode.clients]
enabled = true
refresh = true
misbehaviour = true
[mode.connections]
enabled = true
[mode.channels]
enabled = true
[mode.packets]
enabled = true
clear_interval = 100
clear_on_start = true
tx_confirmation = true
[telemetry]
enabled = true
host = '127.0.0.1'
port = 3001
[[chains]]
id = 'ibc-0'
type = 'CosmosSdk'
rpc_addr = 'http://localhost:27030'
grpc_addr = 'http://localhost:27032'
event_source = { mode = 'push', url = 'ws://localhost:27030/websocket', batch_delay = '200ms' }
rpc_timeout = '15s'
trusted_node = true
account_prefix = 'cosmos'
key_name = 'wallet'
store_prefix = 'ibc'
gas_price = { price = 0.001, denom = 'stake' }
gas_multiplier = 1.2
default_gas = 1000000
max_gas = 10000000
max_msg_num = 30
max_tx_size = 2097152
clock_drift = '5s'
max_block_time = '30s'
trusting_period = '14days'
trust_threshold = { numerator = '2', denominator = '3' }
# [chains.packet_filter]
# policy = 'allow'
# list = [
# ['ica*', '*'],
# ['transfer', 'channel-0'],
# ]
[[chains]]
id = 'ibc-1'
type = 'CosmosSdk'
rpc_addr = 'http://localhost:27040'
grpc_addr = 'http://localhost:27042'
event_source = { mode = 'push', url = 'ws://localhost:27040/websocket', batch_delay = '200ms' }
rpc_timeout = '15s'
trusted_node = true
account_prefix = 'cosmos'
key_name = 'wallet'
store_prefix = 'ibc'
gas_price = { price = 0.001, denom = 'stake' }
gas_multiplier = 1.2
default_gas = 1000000
max_gas = 10000000
max_msg_num = 30
max_tx_size = 2097152
clock_drift = '5s'
max_block_time = '30s'
trusting_period = '14days'
trust_threshold = { numerator = '2', denominator = '3' }
# [chains.packet_filter]
# policy = 'allow'
# list = [
# ['ica*', '*'],
# ['transfer', 'channel-0'],
# ]
[[chains]]
id = 'test'
type = 'CosmosSdk'
rpc_addr = 'http://localhost:26657'
grpc_addr = 'http://localhost:9090'
event_source = { mode = 'push', url = 'ws://localhost:26657/websocket', batch_delay = '200ms' }
rpc_timeout = '15s'
trusted_node = true
account_prefix = 'celestia'
key_name = 'wallet'
store_prefix = 'ibc'
gas_price = { price = 0.1, denom = 'utia' }
gas_multiplier = 1.2
default_gas = 1000000
max_gas = 10000000
max_msg_num = 30
max_tx_size = 2097152
clock_drift = '5s'
max_block_time = '30s'
trusting_period = '14days'
trust_threshold = { numerator = '2', denominator = '3' }
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment