ETH Sent to Wrong Address. How? 1 ETH Reward

I was trying to send ETH from my wallet to my Bittrex account. I sent 1 ETH as a test yesterday, and it worked fine. The Bittrex deposit address is 0x7efd7bafbad1817f6c7a2017bd6acbcb634ad058. My wallet address is 0x20703ee0ad292415f10c844c90dfa4fd23a47471. Today I tried to send 14 ETH to the same Bittrex deposit address, but somehow the ETH was sent to 0x26ab0917ab1b8dc990bafecb6d2b5f45ae851a1a according to The ETH is not showing up in my Bittrex account. This is the code I used to send the 14 ETH.
eth.sendTransaction({from:eth.coinbase, to:eth.accounts[0x7efd7bafbad1817f6c7a2017bd6acbcb634ad058], value: web3.toWei(14, "ether")})

Here is a screenshot of the wallet console showing the transaction.

How did the ETH get sent to the unknown address? Is there a way to get it back? Anyone who can successfully help me will get a 1 ETH reward. Thanks!


  • jay8291jay8291 Member Posts: 3
    i wish i could help, But there is no Way of getting back the Ether Sent to Someone Else. Only Until you try to Find that Person or the Person is generous enough to give back the Etherum.

    Hope This Helped.

  • orangegatororangegator Member Posts: 3
    edited March 2016
    Yeah. I know once you send coins to an address, they are gone. But how the hell does a wallet just generate a random address, and send the coins there? That is f'd up. Is it a bug with the ETH wallet? Or is this some weird internal wallet thing where I could somehow access the coins? When I run web3.fromWei(eth.getBalance(eth.coinbase), "ether") I get the wallet balance, which shows the transactions deducted. Also, eth.accounts shows just my one account.

    I did a couple of other tests yesterday. I did a 0.2ETH test with:
    eth.sendTransaction({from:eth.coinbase, to:eth.accounts[0x7efd7bafbad1817f6c7a2017bd6acbcb634ad058], value: web3.toWei(0.2, "ether")})

    This generated yet another random ETH address and sent the coins to limbo :(

    I then tried:

    eth.sendTransaction({from: '0x20703ee0ad292415f10c844c90dfa4fd23a47471', to: '0x7efd7bafbad1817f6c7a2017bd6acbcb634ad058', value: web3.toWei(0.2, "ether")})

    That transaction worked. Coins sent to 0x7efd7bafbad1817f6c7a2017bd6acbcb634ad058

    So, WTH? Even if my coins are gone, I would like to know what the hell happened? Is this a wallet bug, or what?

    Thanks in advance for any help.
  • jeremyjeremy LondonMember Posts: 6
    edited March 2016
    The problem is this part: "to:eth.accounts[0x7efd7bafbad1817f6c7a2017bd6acbcb634ad058]"

    eth.accounts is like a list of addresses, the part in the square brackets is the POSITION in the list of the address you want to use (starting at zero), NOT the address itself. So it would sort of look like this

    [0] -> 0x10023.... (the first address in the list)
    [1] -> 0x239dea.. (the second address in the list)

    (you can read it like "eth.accounts[0] points to address 0x10023")

    It could be that when you put the address in the square brackets, the console treated this like a position in the list instead of the address itself, and tried to access the 7.249857e+47 th address in the list. This should throw an error, but if they're is no bounds checking then it'll give some random address like you got. I'm not an expert on how Go accesses arrays or if it even accesses an array, but if it's anything like C/++ this may explain why:

    The second example worked because you gave it an address in quotes, which it knows how to parse to an address.

    If you wanted to fix the first example you would have to use "to: eth.accounts[0]" replacing zero with whatever postion the address is in the eth.accounts list.

    tips: 0x4493c5119b92c2e26164f62dac8cf1be56211d71
    Post edited by jeremy on
  • orangegatororangegator Member Posts: 3
    Thanks for the explanation jeremy. So, essentially it is a wallet bug that lets you mistakenly send coins to a random address you did not specify. That is bad. Is there a better wallet that you would recommend using? I've never had an issue like this with BTC, LTC, etc.

    Sent you a 0.2ETH tip.
  • jeremyjeremy LondonMember Posts: 6
    edited March 2016
    @orangegator Thanks very much.

    I'm actually confused as to why it didn't warn you about the out of bounds thing. Just testing on my geth console tells me that eth.accounts[some big number] is 'undefined', not some random address it got from memory. It may be worth updating geth if possible to check it wasn't a bug that has been fixed.

    From the screenshot it looks like you're using the geth command line, correct? That isn't so much a wallet, but rather a 'low level' console interface. I would recommend Mist as a simpler & safer way to send transactions. It's part of the cpp ethereum bundle (or the web3 umbrella) you can get here: Sorry, my mistake, it's actually installed separately from web3umbrella. See here:

    You'll need to have geth running as well whist using it as mist uses geth to get the block chain data and do all the transactions in the background.

    Mist allows you to create wallets (which are smart-contracts in themselves) or just use regular accounts (like I assume you're using now) to send transactions and should warn you if you're about to do something that isn't expected. It also has a nice clean UI. I think that is more similar to wallet software like those found for bitcoin.
    Post edited by jeremy on
  • moonlightmoonlight Member Posts: 33
    if it does not been claimed by the recipient will be returned to the sender ...
  • jcnstudiosjcnstudios Member Posts: 1
    moonlight said:

    if it does not been claimed by the recipient will be returned to the sender ...

    Can you expand further on this comment? The suggestion that ETH sent to an unused wallet address being returned if "unclaimed" seems contrary to any other findings on the subject of lost ETH.

    If others can shed some light on this topic, please feel free to do so. Cheers.
Sign In or Register to comment.