# Bootstrap an Interchain Accounts Testnet using Starport
Interchain Accounts currently experimentally supports Starport v0.13.1 (opens new window). However, it should be noted that stability is not guaranteed as the module import functionality is an experimental feature.
# Testing ICA with Starport
# 1. Start two chains with Starport
Open two Gitpod (opens new window) workspaces (Create fresh workspace → create) to start two instances of Starport chains: foo
and bar
.
Workspace 1
Workspace 2
# 2. Import the IBC Account module to the two chains
Workspace 1/2
# 3. Start the two chains
Workspace 1/2
# 4. Check the relayer information
After bootstrapping each chain, each workspace terminal will display the relayer information as follows. Note that the value displayed will be different from the example.
Workspace 1/2 Console
# 5. Add Chain Foo
Head over to Workspace 2 and open a new terminal window. Input the following code to add the IBC connected chain. Make sure to use the relayer information shown in step 4 instead of the value provided in the example.
Workspace 2
# 6. Modify the configuration
At this stage, IBC transfers connections are open. However, as Starport currently only natively supports IBC transfers we need to change the relayer configuration.
Refer to the bar-foo IBC path by checking the config.yaml
file as follows:
Workspace 2
Manually add a new path by appending the following example path information underneath the existing bar-foo
path (Note that the client-id
and connection-id
doesn't have to be changed from the example below, but you must change the channel-id
name):
Link the paths:
Once the linking is successful, you can use the mock
module to run some test transactions that use interchain accounts.
# 7. Running test transactions
First, you need to register an IBCAccount on chain foo
that chain bar
manages. Use the destination chain's channel-id
as shown in config.yaml
.
Workspace 2
Now you can use the relayer to send over the packet information to the chain that the IBC account will be created on.
Workspace 2
Now let's check if the IBC account has been registered on chain foo
.
Open a new terminal window in workspace 1
Use the src.channel-id
in the relayer's config.yaml
for the next command.
Workspace 1
Send a small amount of tokens to the IBC account address.
Workspace 1
Check the balance of the IBC account.
Workspace 1
Now move to workspace 2 to use the bar
chain to send a token from the interchain account on foo
chain.
Workspace 2
Relay the packet through the relayer.
Workspace 2
Check the balance of the interchain account on chain foo
.
Workspace 1
Congratulations! You have now successfully sent a local transaction from an interchain account on chain bar
through the interchain accounts IBC message.