Devnet Testing Guide
This document describes how to test IBC Eureka on Devnet
Background
IBC Eureka is the official native implementation of IBC v2. It leverages the Cosmos Hub and Interchain Labs contracts, relayers, and infrastructure to enable seamless cross-chain user and liquidity mobility.
The following guide explains how to test IBC Eureka’s Devnet deployment via a CLI tool developed to interact with IBC Eureka, enabling trust-minimized token transfers between Ethereum and Cosmos chains. This guide currently shows the steps for transactions between Ethereum Sepolia Testnet and a Cosmos Hub Devnet we spun up for the purpose.
Prerequisites
- Go 1.19 or later
- Access to Ethereum and Cosmos endpoints
- Private keys for both chains
- Sepolia ETH for gas fees on the Ethereum Sepolia Testnet
- An ERC20 token on Ethereum Sepolia Testnet
Installation
Clone the repository
Checkout the devnet branch
Change to the cmd folder
Build the CLI tool
Keys
Once the CLI is built, the next steps are to set up the Ethereum Sepolia and Cosmos devnet keys and addresses to use. Currently, you’ll need to store your private keys for both Cosmos and Ethereum as environment variables.
There are three accounts required:
ETH_PRIVATE_KEY
- You can retrieve an Ethereum private key from within Metamask by creating a new account > navigating to “Account details” > and pressing “Show private key”- To test a transfer from Ethereum Sepolia to the Cosmos Devnet, you’ll need to have testnet ETH on this account. You can use any Ethereum Sepolia faucet for this, an example is: Google Cloud Ethereum Sepolia Faucet
- You’ll also be transferring an ERC20 token. You can use Token Tool to create a new ERC20 token on Ethereum Sepolia Testnet and use that in your command to do a Eureka transfer from Sepolia Testnet to Cosmos Devnet.
COSMOS_PRIVATE_KEY
- This will be used as the initiator of a transfer in the other direction. You can retrieve a Cosmosunarmored-hex
private key by following the following steps:- Installing a node daemon CLI:
simd
orgaiad
. - Adding keys to the daemon CLI:
gaiad keys add <account-name> --recover
- Entering the BIP-39 mnemonic for the account you want to add. (Remove
--recover
to generate new) - Exporting the unarmored hex:
gaiad keys export <account-name> --unarmored-hex --unsafe
- Installing a node daemon CLI:
RELAYER_WALLET
- For devnet, we are providing relayer keys manually. Reach out to the Interchain Labs team, and we will provide the private key for your use.
Once all the necessary private keys are obtained, run the following command to set them as environment variables:
Note: All three of the above are hexadecimal private keys, each 64 characters long.
Commands
Coming Soon
- Deployment of CosmWasm forwarding contracts to test Ethereum → Cosmos Chain A → Cosmos Chain B.
Contact Us
Please reach out to the Interchain Labs team if you have any issues using the Telegram handles below, reaching out to us on any established communication channels, or by opening up a support ticket in our Discord via the Support button in the left side menu!
Telegram handles: @OllieGilbey, @NotJeremyLiu