Skip to content

Warning

Always start with a small test transaction. Bridge transfers are irreversible, so before moving large amounts, send a small amount first and confirm it arrives as expected.

The dedicated Bridge smart contract, controlled by the Gonka consensus, is active on Ethereum at the address:

0x972a7a92d92796a98801a8818bcf91f1648f2f68

Addresses and keys

This is the single most important page to understand before bridging. Read it before your first transfer.

One key, two addresses

Ethereum and Gonka both use the same kind of cryptographic key (a secp256k1 key pair). A single private key therefore controls an account on both chains. The two chains only differ in how they turn the public key into a human-readable address:

Chain Address format How the address is derived from the public key
Ethereum 0x... (20 bytes, hex) keccak256(uncompressed_public_key) → last 20 bytes
Gonka gonka1... (bech32) ripemd160(sha256(compressed_public_key)) → bech32 with the gonka prefix

So a single private key produces two different-looking addresses — one 0x… and one gonka1… — but both are controlled by that same key.

How the bridge decides where your tokens go

When you bridge tokens from Ethereum to Gonka, you send them to the bridge contract and sign that Ethereum transaction with your Ethereum private key. The Gonka bridge:

  1. Detects the finalized deposit transaction on Ethereum.
  2. Recovers the public key from your transaction's signature.
  3. Computes the Gonka address for that public key (the gonka1… standard derivation above).
  4. Mints/releases the bridged tokens to that gonka1… address.

In other words: the wrapped tokens are delivered to the Gonka address generated from the same public key — and controlled by the same private key — that signed the Ethereum deposit. To spend them, you must use the same key on Gonka.

The reverse direction works the other way around: bridging back to Ethereum, you specify the destination address explicitly in the withdrawal transaction, whereas bridging to Gonka you cannot choose the recipient — it is fixed by your key.

The seed-phrase pitfall (read this!)

Most users never see their raw private key — they only have a seed phrase (mnemonic) and let their wallet derive keys for them. This is convenient, but it creates a trap for bridging. Both 12-word and 24-word phrases can derive many private keys; the phrase length does not determine the bridge recipient.

A seed phrase does not map to a single key. Wallets derive account keys using BIP-44 derivation paths. For example:

  • A common Ethereum account uses coin type 60 → path m/44'/60'/0'/0/0.
  • Gonka uses coin type 1200 → path m/44'/1200'/0'/0/0 (this is the chain's default, used by the inferenced CLI).

When the paths differ, the same seed phrase produces different private keys for Ethereum and Gonka — and therefore unrelated addresses. If you deposit from a seed-derived Ethereum account and then look at a Gonka account derived from the same phrase along another path, they are not the same key. The bridged tokens will land on the gonka1… address controlled by the Ethereum account's key, which your Gonka wallet may not be showing.

Danger

Do not assume "same seed phrase = same account on both chains." For the bridge you need the same private key on both chains, not the same seed phrase. If your wallets derive different keys, the bridge sends your funds to the Gonka address controlled by your Ethereum key, even if your current Gonka wallet does not show it.

How to get the matching Gonka address

You have two options.

The Gonka dashboard solves the derivation for you. Connect the same Ethereum wallet you bridge with, and the dashboard derives and displays the correct gonka1… address that the bridge will use, shows your wrapped balances, and guides the deposit/withdraw flow. This avoids handling raw private keys yourself and removes the seed-phrase confusion described above.

Open the dashboard at:

https://node1.gonka.ai:8443/dashboard/

Option B — Import the same private key into the Gonka keyring

If you work from the CLI, import the exact same secp256k1 private key (hex) that controls your Ethereum account into the Gonka keyring. The resulting gonka1… address is the one the bridge mints to:

inferenced keys import-hex <key_name> <YOUR_PRIVATE_KEY_HEX>

# Show the derived Gonka address
inferenced keys show <key_name> -a

The address printed here is exactly the gonka1… address that will receive your bridged tokens, and the key can sign Gonka transactions (transfers, withdrawals) for them.

Warning

Importing a raw private key exposes it to the machine and keyring you import it on. Prefer a file-based keyring (--keyring-backend file) on a secure machine, and never paste a private key that also guards significant Ethereum funds onto an untrusted host. When in doubt, use the dashboard.

Already bridged, but cannot see the assets?

If the bridge transfer is complete but the assets are not in your usual Gonka wallet, and you have the 12-word or 24-word recovery phrase for the Ethereum wallet (but not its account private key), you can use MetaMask to derive and export that key. The original Ethereum wallet does not need to be MetaMask; this method works only if MetaMask shows the same sending 0x… address.

  1. Find the Ethereum transaction's From address. In the Gonka bridge transaction record, confirm BRIDGE_COMPLETED and note the full ownerAddress (gonka1…). If it matches your usual Gonka address, check the balance or token display. If the record is still pending, this procedure will not complete the transfer.
  2. Import the recovery phrase into MetaMask. MetaMask may show several Ethereum accounts from the same phrase. Find the account whose full 0x… address matches From; if it is not listed, follow MetaMask's missing-account guide. If no account matches, the phrase imported into MetaMask has not recovered the sending account, so do not export a key from a different account.
  3. From the matching MetaMask account, export its private key. The recovery phrase itself is not the account's private key.
  4. Import that private key into Keplr, add or select Gonka, and compare the full Gonka address with ownerAddress. When they match, this is the account that can access the bridged assets.

Quick checklist

  • Decide which key you will bridge with before you start.
  • If you have USDT/ETH on an Ethereum address already: derive the matching gonka1… address from that key (dashboard, or import-hex).
  • If you want to use an existing Gonka address: derive the matching 0x… Ethereum address from that key, fund it with the token and enough ETH for gas.
  • Always send a small test amount first and confirm it arrives on the expected gonka1… address.