I have successfully setup Bifrost and Geth server on AWS EC2 c5.xlarge running Ubuntu. I am sending ETH Ropsten to the generated address but bifrost is not listening to any incoming transactions. I've tried figuring out the problem but cannot find solution to it.

P.S I've read through 'Bifrost is not detecting incoming transaction' thread but it did not help.

Things that working perfectly:

1, Bifrost shows the address thats generated (I am referring to step1 Waiting for a transaction...)

2, Generated address does receive the Ropsten ETH

Things NOT working:

1, Bifrost does not detect any transaction.

2, Bifrost does not exchange 'HUG' with 'ETH'

3, Bifrost does not present with the Stellar public and secret key

Bifrost Configuration (bifrost.cfg):

 port = 8000
 using_proxy = false
 access_control_allow_origin_header = "*"

 master_public_key = "[BIP32 Extended Public Key]"
  rpc_server = "localhost:8545"
  network_id = "3"
  minimum_value_eth = "0.00001"
  token_price = "0.001"

  issuer_public_key = "[ISSUER PUCLIC KEY]"
   distribution_public_key = "[DISTRIBUTION PUBLIC KEY]"
   signer_secret_key = "[ISSUER SECRET KEY]"
  token_asset_code = "HUG"
  needs_authorize = true
  horizon = "https://horizon-testnet.stellar.org"
  network_passphrase = "Test SDF Network ; September 2015"
  starting_balance = "4"

  dsn="postgres://[POSTGRES ADDRESS]"

Bifrost Configuration (bifrost.cfg):

 var params = {
      network: 'test',
      horizonURL: 'https://horizon-testnet.stellar.org',
      bifrostURL: '',
      recoveryPublicKey: '[DISTRIBUTION PUBLIC KEY]'
  var session = new Bifrost.Session(params);
    var keypair;
    session.startEthereum(onEvent).then(params => {
    setStatus("Waiting for a transaction...", 10);
    document.getElementById("address").innerText = params.address;
    keypair = params.keypair;
  }).catch(err => {
    setStatus("Error", 0);

  function onEvent(event, data) {
    if (event == Bifrost.TransactionReceivedEvent) {
      setStatus("Transaction received, creating account...", 20)
    } else if (event == Bifrost.AccountCreatedEvent) {
     setStatus("Account created, configuring account...", 40)
    } else if (event == Bifrost.AccountConfiguredEvent) {
     setStatus("Account configured, waiting for tokens...", 60)
    } else if (event == Bifrost.ExchangedEvent) {
      setStatus("Congrats! TOKE purchased. Your Stellar keys: <pre>Public key: "+keypair.publicKey()+"\nSecret key: "+keypair.secret()+"</pre>", 100);
     } else if (event == Bifrost.ExchangedTimelockedEvent) {
      setStatus("Congrats! TOKE purchased but will be locked. Your Stellar keys: <pre>Public key: "+keypair.publicKey()+"\nSecret key: "+keypair.secret()+"</pre>\nUnlock transaction: <pre>"+data.transaction+"</pre>", 100);
     } else if (event == Bifrost.ErrorEvent) {
     setStatus("Error!", 0);

  function setStatus(text, progress) {
   var progressbar = document.getElementById("progressbar")
   progressbar.style.width = progress+"%";
   if (progress == 100) {
     progressbar.className = "progress-bar progress-bar-success";
   document.getElementById("status").innerHTML = text;
  • Please publish Bifrost log. May 29, 2018 at 13:47
  • No errors are being outputted on the webpage. Which log are you referring to? Where can I find it?
    – Shar
    May 29, 2018 at 14:25
  • Server log, sent to standard output. May 29, 2018 at 15:19
  • It's hard to tell anything without the log. Can you stop the server, start it and send a payment, then publish this part of the log (since the server was started)? May 29, 2018 at 19:24
  • Yes i did that. By the time payment goes through it reaches block#81695. I can send you the log.txt file on slack right now.
    – Shar
    May 29, 2018 at 19:40

1 Answer 1


Thanks for the log. The last two log entries in your log are:

time="2018-05-29T14:15:40-04:00" level=info msg="Processing block" blockNumber=81695 blockTime=2016-12-02 12:27:53 -0500 EST pid=60671 service=EthereumListener transactions=40 
time="2018-05-29T14:15:40-04:00" level=info msg="Processed block" blockNumber=81695 blockTime=2016-12-02 12:27:53 -0500 EST pid=60671 service=EthereumListener transactions=40 

What means Bifrost is processing block #81695 in Ropsten. If you check Ropsten Etherscan you will notice that the latest block (as of now) is block #3335701.

So this is exactly one of the points in my answer you said you had read:

There's a long queue of blocks Bifrost needs to process. During the first start of Bifrost, it starts processing blocks from the latest block available. If Bifrost was turned off for a longer time or geth is still catchup up it may cause delays. To solve this, recreate Bifrost DB so it resets data or (if you don't want to delete data in a DB) set ethereum_last_block value in key_value_store table to 0.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.