Skip to main content

Channels

Mainnet IBC channels open at launch (Q3 2026)

Channels listed below are planned counterparties. Concrete channel-id values, port handshakes, and IBC denoms will be filled in once the channel handshake completes on-chain. Until then this page is a registry of intent.

Mainnet: safro-mainnet-1

ICS-20 transfer channels (planned)

CounterpartyPortChannel (Safrochain side)Channel (counterparty)Foundation relayerNotes
Cosmos Hub (cosmoshub-4)transferTBDTBDyespriority 1, gateway to ATOM
Osmosis (osmosis-1)transferTBDTBDyespriority 1, DEX liquidity
Noble (noble-1)transferTBDTBDyesUSDC on-ramp
Stride (stride-1)transferTBDTBDyesliquid staking for SAF
Neutron (neutron-1)transferTBDTBDtbdsmart-contract reach
Axelar (axelar-dojo-1)transferTBDTBDtbdEVM/USDC bridge
Celestia (celestia)transferTBDTBDtbdoptional DA

ICS-27 (interchain accounts)

Controller chainHost portStatus
Cosmos Hubicahostenabled at genesis
Osmosisicahostenabled at genesis
Neutronicahostenabled at genesis

ICS-721 (NFT transfers)

ICS-721 will be enabled in a post-launch upgrade once a counterparty wires in the matching nft-transfer module. Track progress in Governance.

Testnet: safro-testnet-1

The testnet runs the same ibc-go module set as mainnet but does not participate in cross-chain testnet relays today. If you want to test IBC end-to-end, connect two of your own local chains using Hermes setup and a second safrochaind home directory.

How to read this page once channels open

Each row will resolve into:

  • Channel id: e.g. channel-0 on the Safrochain side, channel-152 on the counterparty side.
  • Connection id: the underlying connection (connection-0, connection-1, …).
  • Client id: the 07-tendermint-N light client tracking the counterparty.

Compute the IBC denom Safrochain receives from each counterparty:

echo -n "transfer/<channel-id>/<denom>" | shasum -a 256
# IBC denom = "ibc/" + that hex (uppercased)

For example, an Osmosis OSMO arriving on Safrochain over channel-1 would be:

echo -n "transfer/channel-1/uosmo" | shasum -a 256
# 6BB47A66E27D… → ibc/6BB47A66E27D…

Operator coordination

If you want to relay one of the rows above, please coordinate via Discord #ibc-relayers. We track:

  • Which operator is running which channel pair (avoid duplicate work, but redundancy is healthy)
  • ICS-29 fee escrow funding (so you get paid)
  • Trusting period vs unbonding period drift (avoids client expired)
  • Joint upgrade windows so a chain upgrade doesn't trip your relayer

Updating this page

This file is canonical. When a channel opens or moves, submit a PR to Docs/docs/ibc/channels.md along with the chain registry update.