Ecoer Logo
VOTING POWER100.00%
DOWNVOTE POWER100.00%
RESOURCE CREDITS100.00%
REPUTATION PROGRESS0.00%
Net Worth
0.435USD
STEEM
0.000STEEM
SBD
0.000SBD
Own SP
7.498SP

Detailed Balance

STEEM
balance
0.000STEEM
market_balance
0.000STEEM
savings_balance
0.000STEEM
reward_steem_balance
0.000STEEM
STEEM POWER
Own SP
7.498SP
Delegated Out
0.000SP
Delegation In
0.000SP
Effective Power
7.498SP
Reward SP (pending)
0.000SP
SBD
sbd_balance
0.000SBD
sbd_conversions
0.000SBD
sbd_market_balance
0.000SBD
savings_sbd_balance
0.000SBD
reward_sbd_balance
0.000SBD
{
  "balance": "0.000 STEEM",
  "savings_balance": "0.000 STEEM",
  "reward_steem_balance": "0.000 STEEM",
  "vesting_shares": "12193.009832 VESTS",
  "delegated_vesting_shares": "0.000000 VESTS",
  "received_vesting_shares": "0.000000 VESTS",
  "sbd_balance": "0.000 SBD",
  "savings_sbd_balance": "0.000 SBD",
  "reward_sbd_balance": "0.000 SBD",
  "conversions": []
}

Account Info

nameamustafa
id39609
rank159,149
reputation23921018
created2016-07-28T08:06:03
recovery_accountsteem
proxyNone
post_count6
comment_count0
lifetime_vote_count0
witnesses_voted_for0
last_post2016-08-11T21:37:51
last_root_post2016-08-06T00:30:15
last_vote_time2016-08-06T00:30:15
proxied_vsf_votes0, 0, 0, 0
can_vote1
voting_power9,949
delayed_votes0
balance0.000 STEEM
savings_balance0.000 STEEM
sbd_balance0.000 SBD
savings_sbd_balance0.000 SBD
vesting_shares12193.009832 VESTS
delegated_vesting_shares0.000000 VESTS
received_vesting_shares0.000000 VESTS
reward_vesting_balance0.000000 VESTS
vesting_balance0.000 STEEM
vesting_withdraw_rate0.000000 VESTS
next_vesting_withdrawal1969-12-31T23:59:59
withdrawn0
to_withdraw0
withdraw_routes0
savings_withdraw_requests0
last_account_recovery1970-01-01T00:00:00
reset_accountnull
last_owner_update1970-01-01T00:00:00
last_account_update2017-03-21T19:22:12
minedNo
sbd_seconds0
sbd_last_interest_payment1970-01-01T00:00:00
savings_sbd_last_interest_payment1970-01-01T00:00:00
{
  "id": 39609,
  "name": "amustafa",
  "owner": {
    "weight_threshold": 1,
    "account_auths": [],
    "key_auths": [
      [
        "STM79pH8TSANyHw5LGD5e1J6SyfMwa7jCdzWrSQWky42jDKFTTgDj",
        1
      ]
    ]
  },
  "active": {
    "weight_threshold": 1,
    "account_auths": [],
    "key_auths": [
      [
        "STM6ZVDq2F2k99UD2xQGNZMkdonSGcEZnm7tUmvsytqemQxENsWY4",
        1
      ]
    ]
  },
  "posting": {
    "weight_threshold": 1,
    "account_auths": [],
    "key_auths": [
      [
        "STM4zqokNA9DsHS4WJnBQ6kLFavKrkiMHSCG9J8mySKobjAUfBL73",
        1
      ]
    ]
  },
  "memo_key": "STM6JzuUTiStKLMRRENCvoVvbeVdAMoinSb2efQ9AeTxsZEdfBRWF",
  "json_metadata": "{\"profile\":{\"website\":\"https://twitter.com/amustafa11\"}}",
  "posting_json_metadata": "{\"profile\":{\"website\":\"https://twitter.com/amustafa11\"}}",
  "proxy": "",
  "last_owner_update": "1970-01-01T00:00:00",
  "last_account_update": "2017-03-21T19:22:12",
  "created": "2016-07-28T08:06:03",
  "mined": false,
  "recovery_account": "steem",
  "last_account_recovery": "1970-01-01T00:00:00",
  "reset_account": "null",
  "comment_count": 0,
  "lifetime_vote_count": 0,
  "post_count": 6,
  "can_vote": true,
  "voting_manabar": {
    "current_mana": 9949,
    "last_update_time": 1470443415
  },
  "downvote_manabar": {
    "current_mana": 0,
    "last_update_time": 1469693163
  },
  "voting_power": 9949,
  "balance": "0.000 STEEM",
  "savings_balance": "0.000 STEEM",
  "sbd_balance": "0.000 SBD",
  "sbd_seconds": "0",
  "sbd_seconds_last_update": "1970-01-01T00:00:00",
  "sbd_last_interest_payment": "1970-01-01T00:00:00",
  "savings_sbd_balance": "0.000 SBD",
  "savings_sbd_seconds": "0",
  "savings_sbd_seconds_last_update": "1970-01-01T00:00:00",
  "savings_sbd_last_interest_payment": "1970-01-01T00:00:00",
  "savings_withdraw_requests": 0,
  "reward_sbd_balance": "0.000 SBD",
  "reward_steem_balance": "0.000 STEEM",
  "reward_vesting_balance": "0.000000 VESTS",
  "reward_vesting_steem": "0.000 STEEM",
  "vesting_shares": "12193.009832 VESTS",
  "delegated_vesting_shares": "0.000000 VESTS",
  "received_vesting_shares": "0.000000 VESTS",
  "vesting_withdraw_rate": "0.000000 VESTS",
  "next_vesting_withdrawal": "1969-12-31T23:59:59",
  "withdrawn": 0,
  "to_withdraw": 0,
  "withdraw_routes": 0,
  "curation_rewards": 0,
  "posting_rewards": 0,
  "proxied_vsf_votes": [
    0,
    0,
    0,
    0
  ],
  "witnesses_voted_for": 0,
  "last_post": "2016-08-11T21:37:51",
  "last_root_post": "2016-08-06T00:30:15",
  "last_vote_time": "2016-08-06T00:30:15",
  "post_bandwidth": 10000,
  "pending_claimed_accounts": 0,
  "vesting_balance": "0.000 STEEM",
  "reputation": 23921018,
  "transfer_history": [],
  "market_history": [],
  "post_history": [],
  "vote_history": [],
  "other_history": [],
  "witness_votes": [],
  "tags_usage": [],
  "guest_bloggers": [],
  "rank": 159149
}

Withdraw Routes

IncomingOutgoing
Empty
Empty
{
  "incoming": [],
  "outgoing": []
}
From Date
To Date
2019/07/28 09:34:45
parent authoramustafa
parent permlinkrecovering-an-incomplete-monero-mnemonic-wallet
authorsteemitboard
permlinksteemitboard-notify-amustafa-20190728t093444000z
title
bodyCongratulations @amustafa! You received a personal award! <table><tr><td>https://steemitimages.com/70x70/http://steemitboard.com/@amustafa/birthday3.png</td><td>Happy Birthday! - You are on the Steem blockchain for 3 years!</td></tr></table> <sub>_You can view [your badges on your Steem Board](https://steemitboard.com/@amustafa) and compare to others on the [Steem Ranking](https://steemitboard.com/ranking/index.php?name=amustafa)_</sub> ###### [Vote for @Steemitboard as a witness](https://v2.steemconnect.com/sign/account-witness-vote?witness=steemitboard&approve=1) to get one more award and increased upvotes!
json metadata{"image":["https://steemitboard.com/img/notify.png"]}
Transaction InfoBlock #35053687/Trx 1686648355e76a71bd771011677f01c7008813d3
View Raw JSON Data
{
  "trx_id": "1686648355e76a71bd771011677f01c7008813d3",
  "block": 35053687,
  "trx_in_block": 16,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2019-07-28T09:34:45",
  "op": [
    "comment",
    {
      "parent_author": "amustafa",
      "parent_permlink": "recovering-an-incomplete-monero-mnemonic-wallet",
      "author": "steemitboard",
      "permlink": "steemitboard-notify-amustafa-20190728t093444000z",
      "title": "",
      "body": "Congratulations @amustafa! You received a personal award!\n\n<table><tr><td>https://steemitimages.com/70x70/http://steemitboard.com/@amustafa/birthday3.png</td><td>Happy Birthday! - You are on the Steem blockchain for 3 years!</td></tr></table>\n\n<sub>_You can view [your badges on your Steem Board](https://steemitboard.com/@amustafa) and compare to others on the [Steem Ranking](https://steemitboard.com/ranking/index.php?name=amustafa)_</sub>\n\n\n###### [Vote for @Steemitboard as a witness](https://v2.steemconnect.com/sign/account-witness-vote?witness=steemitboard&approve=1) to get one more award and increased upvotes!",
      "json_metadata": "{\"image\":[\"https://steemitboard.com/img/notify.png\"]}"
    }
  ]
}
smitopblockchain operation: transfer from savings
2018/08/02 00:19:45
fromsmitop
request id15173
toamustafa
amount0.001 SBD
memoHi, it looks like you're not voting for any witnesses. Witnesses help secure the Steem network. You should vote for some, at https://steemit.com/~witnesses, or by pressing 'Vote for witnesses' in the Steemit sidebar (top right corner). I'm a bot.
Transaction InfoBlock #24700244/Trx 7454471dd93804ba4b8e4824be386297d4b19333
View Raw JSON Data
{
  "trx_id": "7454471dd93804ba4b8e4824be386297d4b19333",
  "block": 24700244,
  "trx_in_block": 1,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-08-02T00:19:45",
  "op": [
    "transfer_from_savings",
    {
      "from": "smitop",
      "request_id": 15173,
      "to": "amustafa",
      "amount": "0.001 SBD",
      "memo": "Hi, it looks like you're not voting for any witnesses. Witnesses help secure the Steem network. You should vote for some, at https://steemit.com/~witnesses, or by pressing 'Vote for witnesses' in the Steemit sidebar (top right corner). I'm a bot."
    }
  ]
}
2018/07/28 08:46:27
parent authoramustafa
parent permlinkrecovering-an-incomplete-monero-mnemonic-wallet
authorsteemitboard
permlinksteemitboard-notify-amustafa-20180728t084629000z
title
bodyCongratulations @amustafa! You have received a personal award! [![](https://steemitimages.com/70x70/http://steemitboard.com/@amustafa/birthday2.png)](http://steemitboard.com/@amustafa) 2 Years on Steemit <sub>_Click on the badge to view your Board of Honor._</sub> > Do you like [SteemitBoard's project](https://steemit.com/@steemitboard)? Then **[Vote for its witness](https://v2.steemconnect.com/sign/account-witness-vote?witness=steemitboard&approve=1)** and **get one more award**!
json metadata{"image":["https://steemitboard.com/img/notify.png"]}
Transaction InfoBlock #24566867/Trx 905f28d96731b642235cb7ec72be56e63520f76f
View Raw JSON Data
{
  "trx_id": "905f28d96731b642235cb7ec72be56e63520f76f",
  "block": 24566867,
  "trx_in_block": 20,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-07-28T08:46:27",
  "op": [
    "comment",
    {
      "parent_author": "amustafa",
      "parent_permlink": "recovering-an-incomplete-monero-mnemonic-wallet",
      "author": "steemitboard",
      "permlink": "steemitboard-notify-amustafa-20180728t084629000z",
      "title": "",
      "body": "Congratulations @amustafa! You have received a personal award!\n\n[![](https://steemitimages.com/70x70/http://steemitboard.com/@amustafa/birthday2.png)](http://steemitboard.com/@amustafa)  2 Years on Steemit\n<sub>_Click on the badge to view your Board of Honor._</sub>\n\n\n> Do you like [SteemitBoard's project](https://steemit.com/@steemitboard)? Then **[Vote for its witness](https://v2.steemconnect.com/sign/account-witness-vote?witness=steemitboard&approve=1)** and **get one more award**!",
      "json_metadata": "{\"image\":[\"https://steemitboard.com/img/notify.png\"]}"
    }
  ]
}
2018/06/03 21:50:51
voterfreeman5
authoramustafa
permlinkre-generalizethis-free-monero-20160805t005141212z
weight10000 (100.00%)
Transaction InfoBlock #23009636/Trx 58bb410907f6f8cca2f6c672452ba020f95f2703
View Raw JSON Data
{
  "trx_id": "58bb410907f6f8cca2f6c672452ba020f95f2703",
  "block": 23009636,
  "trx_in_block": 29,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-06-03T21:50:51",
  "op": [
    "vote",
    {
      "voter": "freeman5",
      "author": "amustafa",
      "permlink": "re-generalizethis-free-monero-20160805t005141212z",
      "weight": 10000
    }
  ]
}
2018/02/28 21:56:21
parent authoramustafa
parent permlinkrecovering-an-incomplete-monero-mnemonic-wallet
authorsmartxrp
permlinkre-amustafa-recovering-an-incomplete-monero-mnemonic-wallet-20180228t215619689z
title
bodyif you add fish, you will see a new account that 0 XMR value
json metadata{"tags":["monero"],"app":"steemit/0.1"}
Transaction InfoBlock #20276559/Trx ee4ad7c770d51a7d74896c6e9ff584f25f0540c1
View Raw JSON Data
{
  "trx_id": "ee4ad7c770d51a7d74896c6e9ff584f25f0540c1",
  "block": 20276559,
  "trx_in_block": 15,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-02-28T21:56:21",
  "op": [
    "comment",
    {
      "parent_author": "amustafa",
      "parent_permlink": "recovering-an-incomplete-monero-mnemonic-wallet",
      "author": "smartxrp",
      "permlink": "re-amustafa-recovering-an-incomplete-monero-mnemonic-wallet-20180228t215619689z",
      "title": "",
      "body": "if you add fish, you will see a new account that 0 XMR value",
      "json_metadata": "{\"tags\":[\"monero\"],\"app\":\"steemit/0.1\"}"
    }
  ]
}
2017/04/22 02:22:03
votersandwich
authoramustafa
permlinkre-generalizethis-free-monero-20160805t005141212z
weight10000 (100.00%)
Transaction InfoBlock #11276068/Trx 2f6d21472f4c1a6bdf1f4e59e348c827d253263f
View Raw JSON Data
{
  "trx_id": "2f6d21472f4c1a6bdf1f4e59e348c827d253263f",
  "block": 11276068,
  "trx_in_block": 2,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2017-04-22T02:22:03",
  "op": [
    "vote",
    {
      "voter": "sandwich",
      "author": "amustafa",
      "permlink": "re-generalizethis-free-monero-20160805t005141212z",
      "weight": 10000
    }
  ]
}
amustafaupdated their account properties
2017/03/21 19:22:12
accountamustafa
memo keySTM6JzuUTiStKLMRRENCvoVvbeVdAMoinSb2efQ9AeTxsZEdfBRWF
json metadata{"profile":{"website":"https://twitter.com/amustafa11"}}
Transaction InfoBlock #10376110/Trx b35be1aca67cf62414f5093ea43e92c9140cfac8
View Raw JSON Data
{
  "trx_id": "b35be1aca67cf62414f5093ea43e92c9140cfac8",
  "block": 10376110,
  "trx_in_block": 6,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2017-03-21T19:22:12",
  "op": [
    "account_update",
    {
      "account": "amustafa",
      "memo_key": "STM6JzuUTiStKLMRRENCvoVvbeVdAMoinSb2efQ9AeTxsZEdfBRWF",
      "json_metadata": "{\"profile\":{\"website\":\"https://twitter.com/amustafa11\"}}"
    }
  ]
}
2017/03/21 19:20:51
required auths[]
required posting auths["amustafa"]
idfollow
json["follow",{"follower":"amustafa","following":"bluejoni","what":["blog"]}]
Transaction InfoBlock #10376086/Trx 8a39de7c4da97bdeed9a91ef918e21e91d2b95e5
View Raw JSON Data
{
  "trx_id": "8a39de7c4da97bdeed9a91ef918e21e91d2b95e5",
  "block": 10376086,
  "trx_in_block": 3,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2017-03-21T19:20:51",
  "op": [
    "custom_json",
    {
      "required_auths": [],
      "required_posting_auths": [
        "amustafa"
      ],
      "id": "follow",
      "json": "[\"follow\",{\"follower\":\"amustafa\",\"following\":\"bluejoni\",\"what\":[\"blog\"]}]"
    }
  ]
}
2017/03/21 19:04:57
voteramustafa
authorbluejoni
permlinkre-amustafa-recovering-an-incomplete-monero-mnemonic-wallet-20160831t224720155z
weight10000 (100.00%)
Transaction InfoBlock #10375800/Trx 9c2fa797e92977e6328fac7eb5e47ec31bb273e6
View Raw JSON Data
{
  "trx_id": "9c2fa797e92977e6328fac7eb5e47ec31bb273e6",
  "block": 10375800,
  "trx_in_block": 3,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2017-03-21T19:04:57",
  "op": [
    "vote",
    {
      "voter": "amustafa",
      "author": "bluejoni",
      "permlink": "re-amustafa-recovering-an-incomplete-monero-mnemonic-wallet-20160831t224720155z",
      "weight": 10000
    }
  ]
}
2017/01/06 02:23:45
voterstimz
authoramustafa
permlinkrecovering-an-incomplete-monero-mnemonic-wallet
weight10000 (100.00%)
Transaction InfoBlock #8226948/Trx dfa9d8100bfaf18fae880234b1302367bc9e16c9
View Raw JSON Data
{
  "trx_id": "dfa9d8100bfaf18fae880234b1302367bc9e16c9",
  "block": 8226948,
  "trx_in_block": 2,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2017-01-06T02:23:45",
  "op": [
    "vote",
    {
      "voter": "stimz",
      "author": "amustafa",
      "permlink": "recovering-an-incomplete-monero-mnemonic-wallet",
      "weight": 10000
    }
  ]
}
2016/08/31 22:47:09
parent authoramustafa
parent permlinkrecovering-an-incomplete-monero-mnemonic-wallet
authorbluejoni
permlinkre-amustafa-recovering-an-incomplete-monero-mnemonic-wallet-20160831t224720155z
title
bodyHi, I have the same problem. I found 12 out of 13 of of my monero code. Could you help me retrieve the last one please? I'd really appreciate it!
json metadata{"tags":["monero"]}
Transaction InfoBlock #4573232/Trx 66e2f55945fb7098f742360f237578d1e5b6bc38
View Raw JSON Data
{
  "trx_id": "66e2f55945fb7098f742360f237578d1e5b6bc38",
  "block": 4573232,
  "trx_in_block": 4,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2016-08-31T22:47:09",
  "op": [
    "comment",
    {
      "parent_author": "amustafa",
      "parent_permlink": "recovering-an-incomplete-monero-mnemonic-wallet",
      "author": "bluejoni",
      "permlink": "re-amustafa-recovering-an-incomplete-monero-mnemonic-wallet-20160831t224720155z",
      "title": "",
      "body": "Hi, I have the same problem. I found 12 out of 13 of of my monero code. Could you help me retrieve the last one please? I'd really appreciate it!",
      "json_metadata": "{\"tags\":[\"monero\"]}"
    }
  ]
}
2016/08/11 21:37:51
parent authorashaman
parent permlinkre-amustafa-re-generalizethis-free-monero-20160808t202716961z
authoramustafa
permlinkre-ashaman-re-amustafa-re-generalizethis-free-monero-20160811t213750885z
title
bodyDecided to go and check. They use the browser's "window.crypto.getRandomValues" to generate the random number. Which supposedly uses the system random number generator.
json metadata{"tags":["giveaway"]}
Transaction InfoBlock #3999557/Trx c9c88efc5d18f9ab8312e86ae6b12bf2f314af95
View Raw JSON Data
{
  "trx_id": "c9c88efc5d18f9ab8312e86ae6b12bf2f314af95",
  "block": 3999557,
  "trx_in_block": 0,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2016-08-11T21:37:51",
  "op": [
    "comment",
    {
      "parent_author": "ashaman",
      "parent_permlink": "re-amustafa-re-generalizethis-free-monero-20160808t202716961z",
      "author": "amustafa",
      "permlink": "re-ashaman-re-amustafa-re-generalizethis-free-monero-20160811t213750885z",
      "title": "",
      "body": "Decided to go and check. They use the browser's \"window.crypto.getRandomValues\" to generate the random number. Which supposedly uses the system random number generator.",
      "json_metadata": "{\"tags\":[\"giveaway\"]}"
    }
  ]
}
2016/08/10 02:51:21
parent authorashaman
parent permlinkre-amustafa-re-generalizethis-free-monero-20160808t202716961z
authoramustafa
permlinkre-ashaman-re-amustafa-re-generalizethis-free-monero-20160810t025121369z
title
bodyWhat was the other account? I only found 1 that had an received coins? I only looked at that parameter, I didn't look at the transaction history.
json metadata{"tags":["giveaway"]}
Transaction InfoBlock #3948469/Trx 55050f56633e1fdb504302bc3576dfd74c8d8b21
View Raw JSON Data
{
  "trx_id": "55050f56633e1fdb504302bc3576dfd74c8d8b21",
  "block": 3948469,
  "trx_in_block": 2,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2016-08-10T02:51:21",
  "op": [
    "comment",
    {
      "parent_author": "ashaman",
      "parent_permlink": "re-amustafa-re-generalizethis-free-monero-20160808t202716961z",
      "author": "amustafa",
      "permlink": "re-ashaman-re-amustafa-re-generalizethis-free-monero-20160810t025121369z",
      "title": "",
      "body": "What was the other account? I only found 1 that had an received coins? I only looked at that parameter, I didn't look at the transaction history.",
      "json_metadata": "{\"tags\":[\"giveaway\"]}"
    }
  ]
}
2016/08/10 02:48:42
parent authoralexandros
parent permlinkre-amustafa-recovering-an-incomplete-monero-mnemonic-wallet-20160809t083700374z
authoramustafa
permlinkre-alexandros-re-amustafa-recovering-an-incomplete-monero-mnemonic-wallet-20160810t024841779z
title
bodyYes. You can recover a single missing word rather quickly. Though after that, I don't think THIS particular method is effective. The main issue is that I didn't want to sync a full monero node. So instead I made network calls, which is REALLY slow. If instead of making network calls, I synced a full node and checked each account locally, then two or three missing words isn't unreasonable. After that you're really going to have to optimize and parallellize and wait a really long time. I estimate that there would be on the order of millions of valid 2 missing words, and billions with 3.
json metadata{"tags":["monero"]}
Transaction InfoBlock #3948416/Trx 62b3bf6814fffa9d5e9176a82cfa702a42eddc17
View Raw JSON Data
{
  "trx_id": "62b3bf6814fffa9d5e9176a82cfa702a42eddc17",
  "block": 3948416,
  "trx_in_block": 1,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2016-08-10T02:48:42",
  "op": [
    "comment",
    {
      "parent_author": "alexandros",
      "parent_permlink": "re-amustafa-recovering-an-incomplete-monero-mnemonic-wallet-20160809t083700374z",
      "author": "amustafa",
      "permlink": "re-alexandros-re-amustafa-recovering-an-incomplete-monero-mnemonic-wallet-20160810t024841779z",
      "title": "",
      "body": "Yes. You can recover a single missing word rather quickly. Though after that, I don't think THIS particular method is effective. The main issue is that I didn't want to sync a full monero node. So instead I made network calls, which is REALLY slow. If instead of making network calls, I synced a full node and checked each account locally, then two or three missing words isn't unreasonable. After that you're really going to have to optimize and parallellize and wait a really long time. I estimate that there would be on the order of millions of valid 2 missing words, and billions with 3.",
      "json_metadata": "{\"tags\":[\"monero\"]}"
    }
  ]
}
2016/08/09 08:48:21
parent authoramustafa
parent permlinkrecovering-an-incomplete-monero-mnemonic-wallet
authoralexandros
permlinkre-amustafa-recovering-an-incomplete-monero-mnemonic-wallet-20160809t083700374z
title
body@@ -12,17 +12,17 @@ s mean i -s +f it happ
json metadata{"tags":["monero"]}
Transaction InfoBlock #3926906/Trx 48951726223eae05c8cac7553f95799514815209
View Raw JSON Data
{
  "trx_id": "48951726223eae05c8cac7553f95799514815209",
  "block": 3926906,
  "trx_in_block": 1,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2016-08-09T08:48:21",
  "op": [
    "comment",
    {
      "parent_author": "amustafa",
      "parent_permlink": "recovering-an-incomplete-monero-mnemonic-wallet",
      "author": "alexandros",
      "permlink": "re-amustafa-recovering-an-incomplete-monero-mnemonic-wallet-20160809t083700374z",
      "title": "",
      "body": "@@ -12,17 +12,17 @@\n s mean i\n-s\n+f\n  it happ\n",
      "json_metadata": "{\"tags\":[\"monero\"]}"
    }
  ]
}
2016/08/09 08:37:00
parent authoramustafa
parent permlinkrecovering-an-incomplete-monero-mnemonic-wallet
authoralexandros
permlinkre-amustafa-recovering-an-incomplete-monero-mnemonic-wallet-20160809t083700374z
title
bodySo does this mean is it happens again it is possible to recover a seed of mymonero that is missing a single word?
json metadata{"tags":["monero"]}
Transaction InfoBlock #3926679/Trx 45a054de4b5ae12c2625d8359f5695eebe403533
View Raw JSON Data
{
  "trx_id": "45a054de4b5ae12c2625d8359f5695eebe403533",
  "block": 3926679,
  "trx_in_block": 0,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2016-08-09T08:37:00",
  "op": [
    "comment",
    {
      "parent_author": "amustafa",
      "parent_permlink": "recovering-an-incomplete-monero-mnemonic-wallet",
      "author": "alexandros",
      "permlink": "re-amustafa-recovering-an-incomplete-monero-mnemonic-wallet-20160809t083700374z",
      "title": "",
      "body": "So does this mean is it happens again it is possible to recover a seed of mymonero that is missing a single word?",
      "json_metadata": "{\"tags\":[\"monero\"]}"
    }
  ]
}
2016/08/09 08:36:18
voteralexandros
authoramustafa
permlinkrecovering-an-incomplete-monero-mnemonic-wallet
weight10000 (100.00%)
Transaction InfoBlock #3926665/Trx 261b405fafd7fb0d27e68a75cc96a7b4bc3ece16
View Raw JSON Data
{
  "trx_id": "261b405fafd7fb0d27e68a75cc96a7b4bc3ece16",
  "block": 3926665,
  "trx_in_block": 3,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2016-08-09T08:36:18",
  "op": [
    "vote",
    {
      "voter": "alexandros",
      "author": "amustafa",
      "permlink": "recovering-an-incomplete-monero-mnemonic-wallet",
      "weight": 10000
    }
  ]
}
2016/08/09 08:32:15
voteralexandros
authoramustafa
permlinkre-mcbowler-re-amustafa-recovering-an-incomplete-monero-mnemonic-wallet-20160807t004918021z
weight10000 (100.00%)
Transaction InfoBlock #3926584/Trx 6530739ad959dc6d4cff71cab7e0d7693574e45d
View Raw JSON Data
{
  "trx_id": "6530739ad959dc6d4cff71cab7e0d7693574e45d",
  "block": 3926584,
  "trx_in_block": 0,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2016-08-09T08:32:15",
  "op": [
    "vote",
    {
      "voter": "alexandros",
      "author": "amustafa",
      "permlink": "re-mcbowler-re-amustafa-recovering-an-incomplete-monero-mnemonic-wallet-20160807t004918021z",
      "weight": 10000
    }
  ]
}
2016/08/08 20:27:15
parent authoramustafa
parent permlinkre-generalizethis-free-monero-20160805t005141212z
authorashaman
permlinkre-amustafa-re-generalizethis-free-monero-20160808t202716961z
title
bodyInteresting, and somewhat alarming. When I was looking for it, I also stumbled across not one, but two wallets that had a transaction history (but 0 balance). This tells me one of two things: a) I should go buy a lottery ticket right now, or b) Weak/flawed prng is being used to generate wallets.
json metadata{"tags":["giveaway"]}
Transaction InfoBlock #3912209/Trx da218cadd81594b5903a44285a9d4f25de472b53
View Raw JSON Data
{
  "trx_id": "da218cadd81594b5903a44285a9d4f25de472b53",
  "block": 3912209,
  "trx_in_block": 5,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2016-08-08T20:27:15",
  "op": [
    "comment",
    {
      "parent_author": "amustafa",
      "parent_permlink": "re-generalizethis-free-monero-20160805t005141212z",
      "author": "ashaman",
      "permlink": "re-amustafa-re-generalizethis-free-monero-20160808t202716961z",
      "title": "",
      "body": "Interesting, and somewhat alarming. When I was looking for it, I also stumbled across not one, but two wallets that had a transaction history (but 0 balance). This tells me one of two things: a) I should go buy a lottery ticket right now, or b) Weak/flawed prng is being used to generate wallets.",
      "json_metadata": "{\"tags\":[\"giveaway\"]}"
    }
  ]
}
2016/08/08 16:15:00
votersuhz
authoramustafa
permlinkre-mcbowler-re-amustafa-recovering-an-incomplete-monero-mnemonic-wallet-20160807t004918021z
weight10000 (100.00%)
Transaction InfoBlock #3907176/Trx bbd4ac302a9fa37884569a1b3667c6bb89677869
View Raw JSON Data
{
  "trx_id": "bbd4ac302a9fa37884569a1b3667c6bb89677869",
  "block": 3907176,
  "trx_in_block": 2,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2016-08-08T16:15:00",
  "op": [
    "vote",
    {
      "voter": "suhz",
      "author": "amustafa",
      "permlink": "re-mcbowler-re-amustafa-recovering-an-incomplete-monero-mnemonic-wallet-20160807t004918021z",
      "weight": 10000
    }
  ]
}
2016/08/07 00:49:18
parent authormcbowler
parent permlinkre-amustafa-recovering-an-incomplete-monero-mnemonic-wallet-20160806t043759420z
authoramustafa
permlinkre-mcbowler-re-amustafa-recovering-an-incomplete-monero-mnemonic-wallet-20160807t004918021z
title
bodyNo super computer that exists today could ever find a specific mnemonic using the brute force method I used. I say a "specific" mnemonic because you can find plenty of addresses, they'll just be unused. If you click "Create An Account" on MyMonero, that is the computer, running an algorithm, and spitting out an address. Even I found over 1600 legitimate addresses. The idea here is that there are so many possible addresses that it's unlikely that you would randomly get the same one twice or that it would be completely unreasonable for anyone to search through even the smallest fraction. Just to give you some math on this, a mnemonic here has 13 words chosen from a collection of 1627 words. That means that without understanding the details on how the algorithm works, there are 1627<sup>13</sup> , or 5.6 x 10<sup>54</sup>, possibilities. That's a 5 with 54 digits after it. The likelihood of guessing the mnemonic from a number that large is so small it's basically zero. Exponential growth is really crazy. For example, 1 million (10<sup>6</sup>) seconds is 11.6 days and 1 billion (10<sup>9</sup>) seconds is 31.7 years. That being said, the algorithm has constraints in it so not EVERY combination of words is valid. Without even knowing the details, since the mnemonic is turned into a 32 digit hexadecimal seed that means there are 16<sup>32</sup> possible seeds so it would be easier to just search seeds instead of mnemonic possibilities. So the real search space for the mnemonic is 3.4x10<sup>38</sup>. The chances of finding the right one on any given attempt are 1/(16<sup>32</sup>) == **2.9x10<sup>-39</sup>**. How many attempts would it take you say? Well, if you try half of the numbers, you have a 50% chance of finding the particular address you're looking for. So theoretically you might have to search them all. But in order to have a 50% chance of finding the right one you would have to run the algorithm 1.7x10<sup>38</sup> times. Just to illustrate how hard much work this is, let's pretend that the algorithm to generate an address takes the same amount of time that it takes to run a single hash in the bitcoin mining operation. Right now, the entire bitcoin network runs on the order of 10<sup>18</sup> hashes per second. Let's pretend we could shrink that into a box and give one of those boxes to every single human on earth (say 10<sup>10</sup> people). That means earth could run 10<sup>28</sup> hashes/second. Even in these conditions, it would still take us 540 years to have a 50% chance of finding the right one. [Relevant XKCD](https://xkcd.com/936/) What about if you weren't looking for any particular one and just wanted to find ANY address that had a non-zero value in it. In Monero we can't know for sure what any account has (go XMR!), so let's use bitcoin to compare. At the moment there are about [5.5 million addresses with more than $1 USD](https://bitinfocharts.com/top-100-richest-bitcoin-addresses.html). If the same were true for Monero (and it's not), that means that finding any of them would be "profitable" and make you at least a dollar. At any given trial, the probability is the number of "hits" over the total number of possibilities. In this case, (5.5x10<sup>6</sup>)/(16<sup>32</sup>) = 1.6 x 10<sup>-32</sup>. How long would the super computing earth I described above take to find any account? 1 hour and 42 minutes. If the current existing bitcoin network dedicated all its resources to this task right now it would take 1.98 million years to find an address. That being said, there is another reason a super computer couldn't do it. Super computers are actually not the best way to go about this. Their CPU speed is incredibly fast, but because they are designed as general purpose computers, specialized hardware can outperform them in very limited domains. Big bitcoin mining operations use asic miners, not general computers. A collection of similarly priced bitcoin asic miners would mine bitcoins more effectively than a supercomputer. As long as you keep your keys private, your coins are safe.
json metadata{"tags":["monero"],"links":["https://xkcd.com/936/"]}
Transaction InfoBlock #3860131/Trx 025f9fa9ca82eaed483475490e1b3abe91d827d3
View Raw JSON Data
{
  "trx_id": "025f9fa9ca82eaed483475490e1b3abe91d827d3",
  "block": 3860131,
  "trx_in_block": 0,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2016-08-07T00:49:18",
  "op": [
    "comment",
    {
      "parent_author": "mcbowler",
      "parent_permlink": "re-amustafa-recovering-an-incomplete-monero-mnemonic-wallet-20160806t043759420z",
      "author": "amustafa",
      "permlink": "re-mcbowler-re-amustafa-recovering-an-incomplete-monero-mnemonic-wallet-20160807t004918021z",
      "title": "",
      "body": "No super computer that exists today could ever find a specific mnemonic using the brute force method I used.  I say a \"specific\" mnemonic because you can find plenty of addresses, they'll just be unused. If you click \"Create An Account\" on MyMonero, that is the computer, running an algorithm, and spitting out an address. Even I found over 1600 legitimate addresses. The idea here is that there are so many possible addresses that it's unlikely that you would randomly get the same one twice or that it would be completely unreasonable for anyone to search through even the smallest fraction.\n\nJust to give you some math on this, a mnemonic here has 13 words chosen from a collection of 1627  words. That means that without understanding the details on how the algorithm works, there are 1627<sup>13</sup> , or 5.6 x 10<sup>54</sup>, possibilities. That's a 5 with 54 digits after it. The likelihood of guessing the mnemonic from a number that large is so small it's basically zero.  Exponential growth is really crazy. For example, 1 million  (10<sup>6</sup>) seconds is 11.6 days and 1 billion (10<sup>9</sup>) seconds is 31.7 years.\n\nThat being said, the algorithm has constraints in it so not EVERY combination of words is valid. Without even knowing the details, since the mnemonic is turned into a 32 digit hexadecimal seed that means there are 16<sup>32</sup> possible seeds so it would be easier to just search seeds instead of mnemonic possibilities. So the real search space for the mnemonic is 3.4x10<sup>38</sup>.  The chances of finding the right one on any given attempt are 1/(16<sup>32</sup>) == **2.9x10<sup>-39</sup>**.\n\nHow many attempts would it take you say? Well, if you try half of the numbers, you have a 50% chance of finding the particular address you're looking for. So theoretically you might have to search them all. But in order to have a 50% chance of finding the right one you would have to run the algorithm 1.7x10<sup>38</sup> times. Just to illustrate how hard much work this is, let's pretend that the algorithm to generate an address takes the same amount of time that it takes to run a single hash in the bitcoin mining operation. Right now, the entire bitcoin network runs on the order of 10<sup>18</sup> hashes per second. Let's pretend we could shrink that into a box and give one of those boxes to every single human on earth (say 10<sup>10</sup> people). That means earth could run 10<sup>28</sup> hashes/second. Even in these conditions, it would still take us 540 years to have a 50% chance of finding the right one.\n\n[Relevant XKCD](https://xkcd.com/936/)\n\nWhat about if you weren't looking for any particular one and just wanted to find ANY address that had a non-zero value in it. In Monero we can't know for sure what any account has (go XMR!), so let's use bitcoin to compare.  At the moment there are about [5.5 million addresses with more than $1 USD](https://bitinfocharts.com/top-100-richest-bitcoin-addresses.html). If the same were true for Monero (and it's not), that means that finding any of them would be \"profitable\" and make you at least a dollar.  At any given trial, the probability is the number of \"hits\" over the total number of possibilities. In this case, (5.5x10<sup>6</sup>)/(16<sup>32</sup>) = 1.6 x 10<sup>-32</sup>. How long would the super computing earth I described above take to find any account? 1 hour and 42 minutes. If the current existing bitcoin network dedicated all its resources to this task right now it would take 1.98 million years to find an address.\n\nThat being said, there is another reason a super computer couldn't do it. Super computers are actually not the best way to go about this. Their CPU speed is incredibly fast, but because they are designed as general purpose computers, specialized hardware can outperform them in very limited domains. Big bitcoin mining operations use asic miners, not general computers. A collection of similarly priced bitcoin asic miners would mine bitcoins more effectively than a supercomputer.  \n\nAs long as you keep your keys private, your coins are safe.",
      "json_metadata": "{\"tags\":[\"monero\"],\"links\":[\"https://xkcd.com/936/\"]}"
    }
  ]
}
2016/08/06 20:44:45
votervaleriy-maksymiv
authoramustafa
permlinkrecovering-an-incomplete-monero-mnemonic-wallet
weight10000 (100.00%)
Transaction InfoBlock #3855253/Trx 81c360da1ad9616a673fb8ef41d2686818d7a7f7
View Raw JSON Data
{
  "trx_id": "81c360da1ad9616a673fb8ef41d2686818d7a7f7",
  "block": 3855253,
  "trx_in_block": 2,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2016-08-06T20:44:45",
  "op": [
    "vote",
    {
      "voter": "valeriy-maksymiv",
      "author": "amustafa",
      "permlink": "recovering-an-incomplete-monero-mnemonic-wallet",
      "weight": 10000
    }
  ]
}
2016/08/06 13:42:03
votergeneralizethis
authoramustafa
permlinkrecovering-an-incomplete-monero-mnemonic-wallet
weight0 (0.00%)
Transaction InfoBlock #3846820/Trx a5cd41cdc8126d99999b9db11d814db401531940
View Raw JSON Data
{
  "trx_id": "a5cd41cdc8126d99999b9db11d814db401531940",
  "block": 3846820,
  "trx_in_block": 1,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2016-08-06T13:42:03",
  "op": [
    "vote",
    {
      "voter": "generalizethis",
      "author": "amustafa",
      "permlink": "recovering-an-incomplete-monero-mnemonic-wallet",
      "weight": 0
    }
  ]
}
2016/08/06 13:41:54
votergeneralizethis
authoramustafa
permlinkrecovering-an-incomplete-monero-mnemonic-wallet
weight10000 (100.00%)
Transaction InfoBlock #3846817/Trx 7d6265f3ed55d16311d9d5d8e0d4a4bd2f87f321
View Raw JSON Data
{
  "trx_id": "7d6265f3ed55d16311d9d5d8e0d4a4bd2f87f321",
  "block": 3846817,
  "trx_in_block": 0,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2016-08-06T13:41:54",
  "op": [
    "vote",
    {
      "voter": "generalizethis",
      "author": "amustafa",
      "permlink": "recovering-an-incomplete-monero-mnemonic-wallet",
      "weight": 10000
    }
  ]
}
2016/08/06 04:38:00
parent authoramustafa
parent permlinkrecovering-an-incomplete-monero-mnemonic-wallet
authormcbowler
permlinkre-amustafa-recovering-an-incomplete-monero-mnemonic-wallet-20160806t043759420z
title
bodyHow fast can this process run? Could someone with a super computer find a way to check a percentage of valid addresses in a given time frame without a starting point of 12 words?
json metadata{"tags":["monero"]}
Transaction InfoBlock #3835980/Trx d6508c3b0bae7dc42f37cf43119c919f34a334ba
View Raw JSON Data
{
  "trx_id": "d6508c3b0bae7dc42f37cf43119c919f34a334ba",
  "block": 3835980,
  "trx_in_block": 1,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2016-08-06T04:38:00",
  "op": [
    "comment",
    {
      "parent_author": "amustafa",
      "parent_permlink": "recovering-an-incomplete-monero-mnemonic-wallet",
      "author": "mcbowler",
      "permlink": "re-amustafa-recovering-an-incomplete-monero-mnemonic-wallet-20160806t043759420z",
      "title": "",
      "body": "How fast can this process run?  Could someone with a super computer find a way to check a percentage of valid addresses in a given time frame without a starting point of 12 words?",
      "json_metadata": "{\"tags\":[\"monero\"]}"
    }
  ]
}
2016/08/06 04:37:48
votermcbowler
authoramustafa
permlinkrecovering-an-incomplete-monero-mnemonic-wallet
weight10000 (100.00%)
Transaction InfoBlock #3835976/Trx 3164f758ec16ef4a714a99469a391b582c528baf
View Raw JSON Data
{
  "trx_id": "3164f758ec16ef4a714a99469a391b582c528baf",
  "block": 3835976,
  "trx_in_block": 1,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2016-08-06T04:37:48",
  "op": [
    "vote",
    {
      "voter": "mcbowler",
      "author": "amustafa",
      "permlink": "recovering-an-incomplete-monero-mnemonic-wallet",
      "weight": 10000
    }
  ]
}
2016/08/06 03:15:12
parent author
parent permlinkmonero
authoramustafa
permlinkrecovering-an-incomplete-monero-mnemonic-wallet
titleRecovering an Incomplete Monero Mnemonic Wallet
body@@ -5010,16 +5010,23 @@ Monero%5D( +http:// mymonero
json metadata{"tags":["monero","cryptocurrency","mnemonic","wallet","xmr"],"users":["generalizethis"],"links":["https://steemit.com/giveaway/@generalizethis/free-monero"]}
Transaction InfoBlock #3834331/Trx 82e4abd84319cc68fbf36c44d90fee46f7cf9be7
View Raw JSON Data
{
  "trx_id": "82e4abd84319cc68fbf36c44d90fee46f7cf9be7",
  "block": 3834331,
  "trx_in_block": 0,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2016-08-06T03:15:12",
  "op": [
    "comment",
    {
      "parent_author": "",
      "parent_permlink": "monero",
      "author": "amustafa",
      "permlink": "recovering-an-incomplete-monero-mnemonic-wallet",
      "title": "Recovering an Incomplete Monero Mnemonic Wallet",
      "body": "@@ -5010,16 +5010,23 @@\n Monero%5D(\n+http://\n mymonero\n",
      "json_metadata": "{\"tags\":[\"monero\",\"cryptocurrency\",\"mnemonic\",\"wallet\",\"xmr\"],\"users\":[\"generalizethis\"],\"links\":[\"https://steemit.com/giveaway/@generalizethis/free-monero\"]}"
    }
  ]
}
2016/08/06 00:30:15
voteramustafa
authoramustafa
permlinkrecovering-an-incomplete-monero-mnemonic-wallet
weight10000 (100.00%)
Transaction InfoBlock #3831048/Trx 9dfa5b56ec43bb2b87dcbe121bf99a68b5781c16
View Raw JSON Data
{
  "trx_id": "9dfa5b56ec43bb2b87dcbe121bf99a68b5781c16",
  "block": 3831048,
  "trx_in_block": 0,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2016-08-06T00:30:15",
  "op": [
    "vote",
    {
      "voter": "amustafa",
      "author": "amustafa",
      "permlink": "recovering-an-incomplete-monero-mnemonic-wallet",
      "weight": 10000
    }
  ]
}
2016/08/06 00:30:15
parent author
parent permlinkmonero
authoramustafa
permlinkrecovering-an-incomplete-monero-mnemonic-wallet
titleRecovering an Incomplete Monero Mnemonic Wallet
bodyA few days ago, a fellow steemit member, @generalizethis, posted a challenge to recover some [free Monero](https://steemit.com/giveaway/@generalizethis/free-monero) from a mnemonic wallet that he incorrectly copied. From that post: > During Christmas in 2014, I made Monero wallets as stocking stuffers. Each wallet had a 100 monero in it ($25 at the time, now about $180). I'm not the most detailed orientated person, so needless to say, I forgot a word on one of the wallets. I never gave it away--figuring it would make a nice prize for someone with free time and a dictionary hack. While I wouldn't say I had free time, this seemed like a lot of fun. I wound up finding the mnemonic with the prize intact. I had so much fun I figured I'd share. ## TLDR [Github](https://github.com/amustafa/recovering-incomplete-monero-mnemonic) ## The Challenge The post included an incomplete mnemonic that omitted a single word, probably accidentally skipped over when being copied to paper: >mailed large soothe doctor onward odds zodiac avidly addicted fishing shyness avidly We were also told that the mnemonic was usable on [MyMonero.com]( https://mymonero.com) Given that MyMonero returns 13 word mnemonic wallets, we were looking for one word. One word worth 100XMR. ## Finding the Seeds At this point I wasn't really sure where to start. I figured that I would need to iterate through the entire dictionary of words before finding a potential match but even then I would need to decode the mnemonic into an address. Since I only had a rough idea of how that string of words would be converted into a wallet address, I went to MyMonero and opened up the developer console. Searching through the source files, looking for any place to start, I struck gold when I happened upon a promising file named [mnemonic.js](https://mymonero.com/js/mnemonic.js?1) that included a function called "mn_decode". The decode function required a list of words with a matching list of truncated words. Without the exact list of words, decoding this mnemonic would have been impossible. I chose to work in python so I translated the function over, omitting unnecessary features, and copied the necessary lists to file. Now that I had the list of words, I iterated through each word, appending the new word to the end of the incomplete mnemonic. The result, a single valid mnemonic! >mailed large soothe doctor onward odds zodiac avidly addicted fishing shyness avidly **fishing** Excited, I hurried to MyMonero lest the fund get extracted before I get there. What do I find: >Your Balance 0 XMR ## Rediscovering Hope Dismayed, I returned to the blog post to let everyone know the funds were gone, leaving a comment to this effect. While reading through the other comments, searching for the person who actually found the address, I noticed a comment asking about WHERE the missing word was. Realizing there was still a possibility, I rushed back to my terminal, added a for loop to my code, and found many more hits. There were now 1627 potential mnemonics to test. ## "Finding" an API I was not going to sit there, entering in 1627 login codes. So I searched for a way to automate this. MyMonero does not have an official api and I didn't have a synced blockchain. However, if you know the correct keys, you can make a request to > https://api.mymonero.com:8443/get_address_info A valid request yields: { "locked_funds": "0", "total_received": "0", "total_sent": "0", "scanned_height": XXXX, "scanned_block_height": XXX, "start_height": XXXXXX, "transaction_height": XXXXX, "blockchain_height": XXXX, "spent_outputs": [ ] } Any account with "total_received" greater than zero should have the reward. ## Seeds to Address Only problem here is the REST call above needed keys, not the mnemonic. I had a list of seeds (generated from the mnemonic), but not a list of addresses to use. Back to the source code. In the [cn_utils.js](https://mymonero.com/js/cn_util.js?2) file, there is a function called "create_address" that returns the addresses we need given the seeds we have. I got a little lazy at this point and got lucky that the cn_utils object was globally accessible in the web console of MyMonero. I output my list of seeds to a JSON object, generated the addresses in the web console, output the results to another JSON object, and saved it to file. ## Addresses to Reward Using the list of addresses, a copy of a API call, and the [requests](http://docs.python-requests.org/en/master/) library in python, I iterated through the 1627 addresses to see if any had value in them. Only one address had any value. There was 100XMR, added December in 2014. Here was the whole mnemonic: > mailed large soothe doctor onward odds zodiac avidly addicted fishing **waking** shyness avidly ## Appreciation I want to thank @generalizethis again for offering this challenge and reward. I had a lot of fun and learned a lot. Also, thanks to [MyMonero](mymonero.com) for the really nice website, well written code, and thousands of http requests. The code is posted on [Github](https://github.com/amustafa/recovering-incomplete-monero-mnemonic)
json metadata{"tags":["monero","cryptocurrency","mnemonic","wallet","xmr"],"users":["generalizethis"],"links":["https://steemit.com/giveaway/@generalizethis/free-monero"]}
Transaction InfoBlock #3831048/Trx 9dfa5b56ec43bb2b87dcbe121bf99a68b5781c16
View Raw JSON Data
{
  "trx_id": "9dfa5b56ec43bb2b87dcbe121bf99a68b5781c16",
  "block": 3831048,
  "trx_in_block": 0,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2016-08-06T00:30:15",
  "op": [
    "comment",
    {
      "parent_author": "",
      "parent_permlink": "monero",
      "author": "amustafa",
      "permlink": "recovering-an-incomplete-monero-mnemonic-wallet",
      "title": "Recovering an Incomplete Monero Mnemonic Wallet",
      "body": "A few days ago, a fellow steemit member, @generalizethis, posted a challenge to recover some [free Monero](https://steemit.com/giveaway/@generalizethis/free-monero) from a mnemonic wallet that he incorrectly copied.\n\nFrom that post:\n> During Christmas in 2014, I made Monero wallets as stocking stuffers. Each wallet had a 100 monero in it ($25 at the time, now about $180). I'm not the most detailed orientated person, so needless to say, I forgot a word on one of the wallets. I never gave it away--figuring it would make a nice prize for someone with free time and a dictionary hack.\n\nWhile I wouldn't say I had free time, this seemed like a lot of fun.  I wound up finding the mnemonic with the prize intact. I had so much fun I figured I'd share. \n\n## TLDR\n[Github](https://github.com/amustafa/recovering-incomplete-monero-mnemonic)\n## The Challenge\nThe post included an incomplete mnemonic that omitted a single word, probably accidentally skipped over when being copied to paper:\n>mailed large soothe doctor onward odds zodiac avidly addicted fishing shyness avidly\n\nWe were also told that the mnemonic was usable on [MyMonero.com]( https://mymonero.com)\nGiven that MyMonero returns 13 word mnemonic wallets, we were looking for one word. One word worth 100XMR.\n\n## Finding the Seeds\nAt this point I wasn't really sure where to start. I figured that I would need to iterate through the entire dictionary of words before finding a potential match but even then I would need to decode the mnemonic into an address.  Since I only had a rough idea of how that string of words would be converted into a wallet address, I went to MyMonero and opened up the developer console.  \n\nSearching through the source files, looking for any place to start, I struck gold when I happened upon a promising file named [mnemonic.js](https://mymonero.com/js/mnemonic.js?1) that included a function called \"mn_decode\". The decode function required a list of words with a matching list of truncated words. Without the exact list of words, decoding this mnemonic would have been impossible. I chose to work in python so I translated  the function over, omitting unnecessary features, and copied the necessary lists to file.\n\nNow that I had the list of words, I iterated through each word, appending the new word to the end of the incomplete mnemonic.  The result, a single valid mnemonic!\n\n>mailed large soothe doctor onward odds zodiac avidly addicted fishing shyness avidly **fishing**\n\nExcited, I hurried to MyMonero lest the fund get extracted before I get there. What do I find:\n>Your Balance\n0 XMR\n\n## Rediscovering Hope\n\nDismayed, I returned to the blog post to let everyone know the funds were gone, leaving a comment to this effect.  While reading through the other comments, searching for the person who actually found the address, I noticed a comment asking about WHERE the missing word was. Realizing there was still a possibility, I rushed back to my terminal, added a for loop to my code, and found many more hits. There were now 1627 potential mnemonics to test. \n\n## \"Finding\" an API\nI was not going to sit there, entering in 1627 login codes. So I searched for a way to automate this. MyMonero does not have an official api and I didn't have a synced blockchain. However, if you know the correct keys, you can make a request to \n> https://api.mymonero.com:8443/get_address_info\n\nA valid request yields:\n\n    {\n      \"locked_funds\": \"0\",\n      \"total_received\": \"0\",\n      \"total_sent\": \"0\",\n      \"scanned_height\": XXXX,\n      \"scanned_block_height\": XXX,\n      \"start_height\": XXXXXX,\n      \"transaction_height\": XXXXX,\n      \"blockchain_height\": XXXX,\n      \"spent_outputs\": [ ]\n    }\n\nAny account with \"total_received\" greater than zero should have the reward.\n\n## Seeds to Address\nOnly problem here is the REST call above needed keys, not the mnemonic. I had a list of seeds (generated from the mnemonic), but not a list of addresses to use. Back to the source code. \n\nIn the [cn_utils.js](https://mymonero.com/js/cn_util.js?2) file, there is a function called \"create_address\" that returns the addresses we need given the seeds we have. I got a little lazy at this point and got lucky that the cn_utils object was globally accessible in the web console of MyMonero. I output my list of seeds to a JSON object, generated the addresses in the web console,  output the results to another JSON object, and saved it to file.\n\n## Addresses to Reward\nUsing the list of addresses, a copy of a API call, and the [requests](http://docs.python-requests.org/en/master/) library in python, I iterated through the 1627 addresses to see if any had value in them. Only one address had any value. There was 100XMR, added December in 2014. Here was the whole mnemonic:\n\n> mailed large soothe doctor onward odds zodiac avidly addicted fishing **waking** shyness avidly\n\n## Appreciation\nI want to thank @generalizethis again for offering this challenge and reward. I had a lot of fun and learned a lot. \n\nAlso, thanks to [MyMonero](mymonero.com) for the really nice website, well written code, and thousands of http requests.\n\nThe code is posted on [Github](https://github.com/amustafa/recovering-incomplete-monero-mnemonic)",
      "json_metadata": "{\"tags\":[\"monero\",\"cryptocurrency\",\"mnemonic\",\"wallet\",\"xmr\"],\"users\":[\"generalizethis\"],\"links\":[\"https://steemit.com/giveaway/@generalizethis/free-monero\"]}"
    }
  ]
}
2016/08/05 07:35:48
parent authoramustafa
parent permlinkre-generalizethis-free-monero-20160805t005141212z
authorgeneralizethis
permlinkre-amustafa-re-generalizethis-free-monero-20160805t073546829z
title
bodyYou're welcome! ; )
json metadata{"tags":["giveaway"]}
Transaction InfoBlock #3810858/Trx e59b504bb4a1b845a8209f3875add360d2cd1029
View Raw JSON Data
{
  "trx_id": "e59b504bb4a1b845a8209f3875add360d2cd1029",
  "block": 3810858,
  "trx_in_block": 4,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2016-08-05T07:35:48",
  "op": [
    "comment",
    {
      "parent_author": "amustafa",
      "parent_permlink": "re-generalizethis-free-monero-20160805t005141212z",
      "author": "generalizethis",
      "permlink": "re-amustafa-re-generalizethis-free-monero-20160805t073546829z",
      "title": "",
      "body": "You're welcome! ; )",
      "json_metadata": "{\"tags\":[\"giveaway\"]}"
    }
  ]
}
2016/08/05 03:20:51
parent authorgeneralizethis
parent permlinkfree-monero
authoramustafa
permlinkre-generalizethis-free-monero-20160805t005141212z
title
body@@ -272,8 +272,19 @@ xciting. + Thank you!
json metadata{"tags":["giveaway"]}
Transaction InfoBlock #3805788/Trx c1d0025f5d02b5a9fb7eba9a76f11705fd429277
View Raw JSON Data
{
  "trx_id": "c1d0025f5d02b5a9fb7eba9a76f11705fd429277",
  "block": 3805788,
  "trx_in_block": 2,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2016-08-05T03:20:51",
  "op": [
    "comment",
    {
      "parent_author": "generalizethis",
      "parent_permlink": "free-monero",
      "author": "amustafa",
      "permlink": "re-generalizethis-free-monero-20160805t005141212z",
      "title": "",
      "body": "@@ -272,8 +272,19 @@\n xciting.\n+ Thank you!\n",
      "json_metadata": "{\"tags\":[\"giveaway\"]}"
    }
  ]
}
2016/08/05 03:20:42
parent authorgeneralizethis
parent permlinkfree-monero
authoramustafa
permlinkre-generalizethis-free-monero-20160805t005141212z
title
body@@ -228,8 +228,52 @@ der. brb +%0A%0AUpdate: I found it!! This was so exciting.
json metadata{"tags":["giveaway"]}
Transaction InfoBlock #3805785/Trx 3538aa37edfa613b7f43a23ce0b0c869e4cfb1f3
View Raw JSON Data
{
  "trx_id": "3538aa37edfa613b7f43a23ce0b0c869e4cfb1f3",
  "block": 3805785,
  "trx_in_block": 0,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2016-08-05T03:20:42",
  "op": [
    "comment",
    {
      "parent_author": "generalizethis",
      "parent_permlink": "free-monero",
      "author": "amustafa",
      "permlink": "re-generalizethis-free-monero-20160805t005141212z",
      "title": "",
      "body": "@@ -228,8 +228,52 @@\n der. brb\n+%0A%0AUpdate: I found it!! This was so exciting.\n",
      "json_metadata": "{\"tags\":[\"giveaway\"]}"
    }
  ]
}
2016/08/05 02:44:57
parent authorgeneralizethis
parent permlinkfree-monero
authoramustafa
permlinkre-generalizethis-free-monero-20160805t005141212z
title
body@@ -172,18 +172,16 @@ T: Well, - I maybe n
json metadata{"tags":["giveaway"]}
Transaction InfoBlock #3805071/Trx f031f76981ae9d7271c8210ba99d4e430286a228
View Raw JSON Data
{
  "trx_id": "f031f76981ae9d7271c8210ba99d4e430286a228",
  "block": 3805071,
  "trx_in_block": 5,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2016-08-05T02:44:57",
  "op": [
    "comment",
    {
      "parent_author": "generalizethis",
      "parent_permlink": "free-monero",
      "author": "amustafa",
      "permlink": "re-generalizethis-free-monero-20160805t005141212z",
      "title": "",
      "body": "@@ -172,18 +172,16 @@\n T: Well,\n- I\n  maybe n\n",
      "json_metadata": "{\"tags\":[\"giveaway\"]}"
    }
  ]
}
2016/08/05 01:01:06
parent authorgeneralizethis
parent permlinkfree-monero
authoramustafa
permlinkre-generalizethis-free-monero-20160805t005141212z
title
body@@ -159,8 +159,79 @@ true :( +%0A%0AEDIT: Well, I maybe not. I found more possibilities out of order. brb
json metadata{"tags":["giveaway"]}
Transaction InfoBlock #3802999/Trx e3d0b2c4949383b90fd35f0ca0dd7908f1a743a0
View Raw JSON Data
{
  "trx_id": "e3d0b2c4949383b90fd35f0ca0dd7908f1a743a0",
  "block": 3802999,
  "trx_in_block": 3,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2016-08-05T01:01:06",
  "op": [
    "comment",
    {
      "parent_author": "generalizethis",
      "parent_permlink": "free-monero",
      "author": "amustafa",
      "permlink": "re-generalizethis-free-monero-20160805t005141212z",
      "title": "",
      "body": "@@ -159,8 +159,79 @@\n  true :(\n+%0A%0AEDIT: Well, I maybe not. I found more possibilities out of order. brb\n",
      "json_metadata": "{\"tags\":[\"giveaway\"]}"
    }
  ]
}
2016/08/05 00:51:39
parent authorgeneralizethis
parent permlinkfree-monero
authoramustafa
permlinkre-generalizethis-free-monero-20160805t005141212z
title
bodyI think I found the address but there was nothing in there when I got in. Seems someone else forgot to post that they found it. I knew it was too good to be true :(
json metadata{"tags":["giveaway"]}
Transaction InfoBlock #3802812/Trx 73509d1a16c821cf381b1cd3b53cbdba6d54271e
View Raw JSON Data
{
  "trx_id": "73509d1a16c821cf381b1cd3b53cbdba6d54271e",
  "block": 3802812,
  "trx_in_block": 4,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2016-08-05T00:51:39",
  "op": [
    "comment",
    {
      "parent_author": "generalizethis",
      "parent_permlink": "free-monero",
      "author": "amustafa",
      "permlink": "re-generalizethis-free-monero-20160805t005141212z",
      "title": "",
      "body": "I think I found the address but there was nothing in there when I got in.  Seems someone else forgot to post that they found it.  I knew it was too good to be true :(",
      "json_metadata": "{\"tags\":[\"giveaway\"]}"
    }
  ]
}
steemcreated a new account: @amustafa
2016/07/28 08:06:03
fee3.000 STEEM
creatorsteem
new account nameamustafa
owner{"weight_threshold":1,"account_auths":[],"key_auths":[["STM79pH8TSANyHw5LGD5e1J6SyfMwa7jCdzWrSQWky42jDKFTTgDj",1]]}
active{"weight_threshold":1,"account_auths":[],"key_auths":[["STM6ZVDq2F2k99UD2xQGNZMkdonSGcEZnm7tUmvsytqemQxENsWY4",1]]}
posting{"weight_threshold":1,"account_auths":[],"key_auths":[["STM4zqokNA9DsHS4WJnBQ6kLFavKrkiMHSCG9J8mySKobjAUfBL73",1]]}
memo keySTM6JzuUTiStKLMRRENCvoVvbeVdAMoinSb2efQ9AeTxsZEdfBRWF
json metadata
Transaction InfoBlock #3582419/Trx 5203c150f4bb696da4680a1ea94cd6e3025d1446
View Raw JSON Data
{
  "trx_id": "5203c150f4bb696da4680a1ea94cd6e3025d1446",
  "block": 3582419,
  "trx_in_block": 4,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2016-07-28T08:06:03",
  "op": [
    "account_create",
    {
      "fee": "3.000 STEEM",
      "creator": "steem",
      "new_account_name": "amustafa",
      "owner": {
        "weight_threshold": 1,
        "account_auths": [],
        "key_auths": [
          [
            "STM79pH8TSANyHw5LGD5e1J6SyfMwa7jCdzWrSQWky42jDKFTTgDj",
            1
          ]
        ]
      },
      "active": {
        "weight_threshold": 1,
        "account_auths": [],
        "key_auths": [
          [
            "STM6ZVDq2F2k99UD2xQGNZMkdonSGcEZnm7tUmvsytqemQxENsWY4",
            1
          ]
        ]
      },
      "posting": {
        "weight_threshold": 1,
        "account_auths": [],
        "key_auths": [
          [
            "STM4zqokNA9DsHS4WJnBQ6kLFavKrkiMHSCG9J8mySKobjAUfBL73",
            1
          ]
        ]
      },
      "memo_key": "STM6JzuUTiStKLMRRENCvoVvbeVdAMoinSb2efQ9AeTxsZEdfBRWF",
      "json_metadata": ""
    }
  ]
}

Account Metadata

POSTING JSON METADATA
profile{"website":"https://twitter.com/amustafa11"}
JSON METADATA
profile{"website":"https://twitter.com/amustafa11"}
{
  "posting_json_metadata": {
    "profile": {
      "website": "https://twitter.com/amustafa11"
    }
  },
  "json_metadata": {
    "profile": {
      "website": "https://twitter.com/amustafa11"
    }
  }
}

Auth Keys

Owner
Single Signature
Public Keys
STM79pH8TSANyHw5LGD5e1J6SyfMwa7jCdzWrSQWky42jDKFTTgDj1/1
Active
Single Signature
Public Keys
STM6ZVDq2F2k99UD2xQGNZMkdonSGcEZnm7tUmvsytqemQxENsWY41/1
Posting
Single Signature
Public Keys
STM4zqokNA9DsHS4WJnBQ6kLFavKrkiMHSCG9J8mySKobjAUfBL731/1
Memo
STM6JzuUTiStKLMRRENCvoVvbeVdAMoinSb2efQ9AeTxsZEdfBRWF
{
  "owner": {
    "weight_threshold": 1,
    "account_auths": [],
    "key_auths": [
      [
        "STM79pH8TSANyHw5LGD5e1J6SyfMwa7jCdzWrSQWky42jDKFTTgDj",
        1
      ]
    ]
  },
  "active": {
    "weight_threshold": 1,
    "account_auths": [],
    "key_auths": [
      [
        "STM6ZVDq2F2k99UD2xQGNZMkdonSGcEZnm7tUmvsytqemQxENsWY4",
        1
      ]
    ]
  },
  "posting": {
    "weight_threshold": 1,
    "account_auths": [],
    "key_auths": [
      [
        "STM4zqokNA9DsHS4WJnBQ6kLFavKrkiMHSCG9J8mySKobjAUfBL73",
        1
      ]
    ]
  },
  "memo": "STM6JzuUTiStKLMRRENCvoVvbeVdAMoinSb2efQ9AeTxsZEdfBRWF"
}

Witness Votes

0 / 30
No active witness votes.
[]