Skip to main content

Using the AMB

Submitting AMB Confirmations Manually

Between Ethereum and Gnosis Chain

The Arbitrary Message Bridge between the Ethereum Mainnet and Gnosis Chain requires a request-and-claim scheme to transfer data from Gnosis Chain, and some users and applications may want to use a manual process to gather the oracles confirmations and send them to the AMB contracts on the Ethereum side.


This approach is the equivalent of the set of actions performed by the OmniBridge UI after pressing the "Claim" button, or by the AMB Live Monitoring app after pressing the "Execute" button.

Below is the list of actions that can be executed in BlockScout and Etherscan, or, if you are familiar with the contract interaction through Web3 provider, it can be done by importing the contract's ABI to your application.

  1. Find the first transaction which initiated message passing through the AMB bridge and go to the logs generated during the transaction execution. The encodedData argument emitted with the UserRequestForSignature event will be used in the next steps.
  2. Go to the AMB helper contract and call getSignatures() there with the encoded data from the UserRequestForSignature event. It will produce a blob with signatures.
  3. Pass the encoded data and the signatures to the Arbitrary Message Bridge contract's executeSignatures() function on the Ethereum Mainnet and press the "Write" button to send the transaction.

MetaMask will show a high gas estimate for this transaction. In most cases the final gas consumption will be significantly lower.

Goerli and Chiado

At the moment, the only way to use AMB between Goerli and Chiado is through a smart contract call.

The process of claiming the message from Chiado to Goerli works similarly to the mainnet, but with a different contract address.

AMB Helper Contract (Chiado)0xEd0dC0AA8A61c3Ac912072f50c4c5bd830d79E36
AMB bridge contract (Chiado)0x99ca51a3534785ed619f46a79c7ad65fa8d85e7a
AMB bridge contract (Goerli)0x87A19d769D875964E9Cd41dDBfc397B2543764E6

Deploying custom ERC-20 Bridge