Skip to content
Allow testnet ETH from Rinkeby, Kovan, and Ropsten to be burned for GöETH (Görli Testnet).
Go Solidity JavaScript Shell
Branch: master
Clone or download
Pull request Compare This branch is 20 commits ahead, 6 commits behind ChainSafe:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


This is a go implementation of a generic bridge between blockchains. Made specifically to allow testnet eth from rinkeby, kovan, and ropsten to be burned for Göeth (Görli eth).


  • allow for Göeth to be converted back to the other testnets.


go 1.9.1

go-ethereum go get

solc/solcjs npm i -g solc

to get the bridge

go get

compile abi

cd solidity
mkdir build
solcjs --abi contracts/Bridge.sol -o build

to run

generic instructions for bridge, needs to be updated!

cd $GOPATH/src/
go build && go install

ChainBridge [networks]

the arguments after ChainBridge are the names of the networks you want to listen on as specified in config.json

eg. ChainBridge ropsten kovan

  • 1: mainnet

  • 3: ropsten

  • 4: rinkeby

  • 42: kovan

  • 31: rootstock testnet

    additional flags: ChainBridge -a [networks]

ChainBridge --config ./config.json [networks]

-a read logs from every contract on the network (not really useful, mostly for testing)

-v verbose output

--config specify path to config file

--keystore specify path to keystore file

interacting with the contract

for all the following, you should have another terminal open running the bridge listener with ChainBridge [networks]

ChainBridge fund network this will open up a prompt for you to make a deposit on the specified chain

ChainBridge deposit network this will open up a prompt for you to make a deposit on the specified chain id

ChainBridge pay network pay the bridge contract for a later withdraw on the specified chain

ChainBridge withdraw network this will withdraw ether that was paid to the bridge contract previously

--keystore specify path to keystore directory

--password specify password to account; this assumes that there's the same account for every chain

eg. ChainBridge fund kovan

You can’t perform that action at this time.