Ecoer Logo
VOTING POWER100.00%
DOWNVOTE POWER100.00%
RESOURCE CREDITS100.00%
REPUTATION PROGRESS47.79%
Net Worth
0.020USD
STEEM
0.032STEEM
SBD
0.022SBD
Effective Power
5.008SP
├── Own SP
0.125SP
└── Incoming Deleg
+4.883SP

Detailed Balance

STEEM
balance
0.000STEEM
market_balance
0.000STEEM
savings_balance
0.000STEEM
reward_steem_balance
0.032STEEM
STEEM POWER
Own SP
0.125SP
Delegated Out
0.000SP
Delegation In
4.883SP
Effective Power
5.008SP
Reward SP (pending)
0.043SP
SBD
sbd_balance
0.001SBD
sbd_conversions
0.000SBD
sbd_market_balance
0.000SBD
savings_sbd_balance
0.000SBD
reward_sbd_balance
0.021SBD
{
  "balance": "0.000 STEEM",
  "savings_balance": "0.000 STEEM",
  "reward_steem_balance": "0.032 STEEM",
  "vesting_shares": "203.512806 VESTS",
  "delegated_vesting_shares": "0.000000 VESTS",
  "received_vesting_shares": "7940.147000 VESTS",
  "sbd_balance": "0.001 SBD",
  "savings_sbd_balance": "0.000 SBD",
  "reward_sbd_balance": "0.021 SBD",
  "conversions": []
}

Account Info

namemadhavanmalolan
id995706
rank353,458
reputation1130053542
created2018-05-14T02:48:33
recovery_accountsteem
proxyNone
post_count4
comment_count0
lifetime_vote_count0
witnesses_voted_for0
last_post2018-08-29T07:29:03
last_root_post2018-08-29T07:29:03
last_vote_time2018-08-29T07:29:18
proxied_vsf_votes0, 0, 0, 0
can_vote1
voting_power0
delayed_votes0
balance0.000 STEEM
savings_balance0.000 STEEM
sbd_balance0.001 SBD
savings_sbd_balance0.000 SBD
vesting_shares203.512806 VESTS
delegated_vesting_shares0.000000 VESTS
received_vesting_shares7940.147000 VESTS
reward_vesting_balance87.101152 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_update1970-01-01T00:00:00
minedNo
sbd_seconds0
sbd_last_interest_payment2018-08-29T07:30:21
savings_sbd_last_interest_payment1970-01-01T00:00:00
{
  "active": {
    "account_auths": [],
    "key_auths": [
      [
        "STM5wKJU3yEuSxXqgZFdz1vwruqtC6S1TMcM7fKnwnyL3LSYEH1Mo",
        1
      ]
    ],
    "weight_threshold": 1
  },
  "balance": "0.000 STEEM",
  "can_vote": true,
  "comment_count": 0,
  "created": "2018-05-14T02:48:33",
  "curation_rewards": 0,
  "delegated_vesting_shares": "0.000000 VESTS",
  "downvote_manabar": {
    "current_mana": 2035914951,
    "last_update_time": 1779074067
  },
  "guest_bloggers": [],
  "id": 995706,
  "json_metadata": "{}",
  "last_account_recovery": "1970-01-01T00:00:00",
  "last_account_update": "1970-01-01T00:00:00",
  "last_owner_update": "1970-01-01T00:00:00",
  "last_post": "2018-08-29T07:29:03",
  "last_root_post": "2018-08-29T07:29:03",
  "last_vote_time": "2018-08-29T07:29:18",
  "lifetime_vote_count": 0,
  "market_history": [],
  "memo_key": "STM55wzzh1bCJKUqn7cxh379Wg3K4fa7pXheSutQaJuUws1Q1BMP7",
  "mined": false,
  "name": "madhavanmalolan",
  "next_vesting_withdrawal": "1969-12-31T23:59:59",
  "other_history": [],
  "owner": {
    "account_auths": [],
    "key_auths": [
      [
        "STM6h5N8xby7azdW6xSUyZQK2NenTZdXvsQKzky4yb5JMvJixrEvo",
        1
      ]
    ],
    "weight_threshold": 1
  },
  "pending_claimed_accounts": 0,
  "post_bandwidth": 0,
  "post_count": 4,
  "post_history": [],
  "posting": {
    "account_auths": [],
    "key_auths": [
      [
        "STM5DNtEJVX1kEmaf7qHJyUZoTbNV2xyTpE6eiYCWsJWX6xRQjq8D",
        1
      ]
    ],
    "weight_threshold": 1
  },
  "posting_json_metadata": "",
  "posting_rewards": 84,
  "proxied_vsf_votes": [
    0,
    0,
    0,
    0
  ],
  "proxy": "",
  "received_vesting_shares": "7940.147000 VESTS",
  "recovery_account": "steem",
  "reputation": 1130053542,
  "reset_account": "null",
  "reward_sbd_balance": "0.021 SBD",
  "reward_steem_balance": "0.032 STEEM",
  "reward_vesting_balance": "87.101152 VESTS",
  "reward_vesting_steem": "0.043 STEEM",
  "savings_balance": "0.000 STEEM",
  "savings_sbd_balance": "0.000 SBD",
  "savings_sbd_last_interest_payment": "1970-01-01T00:00:00",
  "savings_sbd_seconds": "0",
  "savings_sbd_seconds_last_update": "1970-01-01T00:00:00",
  "savings_withdraw_requests": 0,
  "sbd_balance": "0.001 SBD",
  "sbd_last_interest_payment": "2018-08-29T07:30:21",
  "sbd_seconds": "0",
  "sbd_seconds_last_update": "2018-08-29T07:32:09",
  "tags_usage": [],
  "to_withdraw": 0,
  "transfer_history": [],
  "vesting_balance": "0.000 STEEM",
  "vesting_shares": "203.512806 VESTS",
  "vesting_withdraw_rate": "0.000000 VESTS",
  "vote_history": [],
  "voting_manabar": {
    "current_mana": "8143659806",
    "last_update_time": 1779074067
  },
  "voting_power": 0,
  "withdraw_routes": 0,
  "withdrawn": 0,
  "witness_votes": [],
  "witnesses_voted_for": 0,
  "rank": 353458
}

Withdraw Routes

IncomingOutgoing
Empty
Empty
{
  "incoming": [],
  "outgoing": []
}
From Date
To Date
steemdelegated 4.883 SP to @madhavanmalolan
2026/05/18 03:14:27
delegateemadhavanmalolan
delegatorsteem
vesting shares7940.147000 VESTS
Transaction InfoBlock #106147015/Trx 5a43610ecac2e9f472c5df4876a158683ab2bf05
View Raw JSON Data
{
  "block": 106147015,
  "op": [
    "delegate_vesting_shares",
    {
      "delegatee": "madhavanmalolan",
      "delegator": "steem",
      "vesting_shares": "7940.147000 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2026-05-18T03:14:27",
  "trx_id": "5a43610ecac2e9f472c5df4876a158683ab2bf05",
  "trx_in_block": 1,
  "virtual_op": 0
}
steemdelegated 3.215 SP to @madhavanmalolan
2026/05/12 15:55:54
delegateemadhavanmalolan
delegatorsteem
vesting shares5227.936595 VESTS
Transaction InfoBlock #105990188/Trx 6334e07b1aab216ecf96f4347d34471c2075841a
View Raw JSON Data
{
  "block": 105990188,
  "op": [
    "delegate_vesting_shares",
    {
      "delegatee": "madhavanmalolan",
      "delegator": "steem",
      "vesting_shares": "5227.936595 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2026-05-12T15:55:54",
  "trx_id": "6334e07b1aab216ecf96f4347d34471c2075841a",
  "trx_in_block": 0,
  "virtual_op": 0
}
steemdelegated 4.890 SP to @madhavanmalolan
2026/04/26 02:30:48
delegateemadhavanmalolan
delegatorsteem
vesting shares7952.662756 VESTS
Transaction InfoBlock #105514584/Trx 66d723be083c9fa7befc0dbe0deb5dc0cf435144
View Raw JSON Data
{
  "block": 105514584,
  "op": [
    "delegate_vesting_shares",
    {
      "delegatee": "madhavanmalolan",
      "delegator": "steem",
      "vesting_shares": "7952.662756 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2026-04-26T02:30:48",
  "trx_id": "66d723be083c9fa7befc0dbe0deb5dc0cf435144",
  "trx_in_block": 3,
  "virtual_op": 0
}
steemdelegated 3.240 SP to @madhavanmalolan
2026/01/23 15:47:48
delegateemadhavanmalolan
delegatorsteem
vesting shares5269.483414 VESTS
Transaction InfoBlock #102861391/Trx f3598189a4cc19bcf7c1d0118b8f901e87f6ddd2
View Raw JSON Data
{
  "block": 102861391,
  "op": [
    "delegate_vesting_shares",
    {
      "delegatee": "madhavanmalolan",
      "delegator": "steem",
      "vesting_shares": "5269.483414 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2026-01-23T15:47:48",
  "trx_id": "f3598189a4cc19bcf7c1d0118b8f901e87f6ddd2",
  "trx_in_block": 3,
  "virtual_op": 0
}
steemdelegated 3.341 SP to @madhavanmalolan
2024/12/17 11:01:33
delegateemadhavanmalolan
delegatorsteem
vesting shares5433.702611 VESTS
Transaction InfoBlock #91307679/Trx 5f203d5cab3940afe8581b40da42aca8f0588fe0
View Raw JSON Data
{
  "block": 91307679,
  "op": [
    "delegate_vesting_shares",
    {
      "delegatee": "madhavanmalolan",
      "delegator": "steem",
      "vesting_shares": "5433.702611 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2024-12-17T11:01:33",
  "trx_id": "5f203d5cab3940afe8581b40da42aca8f0588fe0",
  "trx_in_block": 5,
  "virtual_op": 0
}
steemdelegated 3.445 SP to @madhavanmalolan
2023/11/14 02:43:33
delegateemadhavanmalolan
delegatorsteem
vesting shares5602.836143 VESTS
Transaction InfoBlock #79861857/Trx ca098c13c24cb866924c6b7a7b982525a4ad7a95
View Raw JSON Data
{
  "block": 79861857,
  "op": [
    "delegate_vesting_shares",
    {
      "delegatee": "madhavanmalolan",
      "delegator": "steem",
      "vesting_shares": "5602.836143 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2023-11-14T02:43:33",
  "trx_id": "ca098c13c24cb866924c6b7a7b982525a4ad7a95",
  "trx_in_block": 3,
  "virtual_op": 0
}
steemdelegated 5.251 SP to @madhavanmalolan
2023/09/22 01:20:12
delegateemadhavanmalolan
delegatorsteem
vesting shares8540.114929 VESTS
Transaction InfoBlock #78352027/Trx 18010e338c10d8b7f9735ad33d0a3f740ed733c2
View Raw JSON Data
{
  "block": 78352027,
  "op": [
    "delegate_vesting_shares",
    {
      "delegatee": "madhavanmalolan",
      "delegator": "steem",
      "vesting_shares": "8540.114929 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2023-09-22T01:20:12",
  "trx_id": "18010e338c10d8b7f9735ad33d0a3f740ed733c2",
  "trx_in_block": 0,
  "virtual_op": 0
}
steemdelegated 5.388 SP to @madhavanmalolan
2022/11/03 14:42:06
delegateemadhavanmalolan
delegatorsteem
vesting shares8761.796367 VESTS
Transaction InfoBlock #69116840/Trx f8be1d151ed46696d4c03a0c7b9178206db229ea
View Raw JSON Data
{
  "block": 69116840,
  "op": [
    "delegate_vesting_shares",
    {
      "delegatee": "madhavanmalolan",
      "delegator": "steem",
      "vesting_shares": "8761.796367 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2022-11-03T14:42:06",
  "trx_id": "f8be1d151ed46696d4c03a0c7b9178206db229ea",
  "trx_in_block": 37,
  "virtual_op": 0
}
steemdelegated 5.523 SP to @madhavanmalolan
2022/01/17 17:58:45
delegateemadhavanmalolan
delegatorsteem
vesting shares8982.031503 VESTS
Transaction InfoBlock #60817800/Trx 795ce75a4d8c8511cb058cafa8ad9f586659e3d5
View Raw JSON Data
{
  "block": 60817800,
  "op": [
    "delegate_vesting_shares",
    {
      "delegatee": "madhavanmalolan",
      "delegator": "steem",
      "vesting_shares": "8982.031503 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2022-01-17T17:58:45",
  "trx_id": "795ce75a4d8c8511cb058cafa8ad9f586659e3d5",
  "trx_in_block": 69,
  "virtual_op": 0
}
steemdelegated 5.636 SP to @madhavanmalolan
2021/06/14 03:30:45
delegateemadhavanmalolan
delegatorsteem
vesting shares9166.098256 VESTS
Transaction InfoBlock #54610941/Trx 7a6cdf646d3426dd480cda34831bdd47102e1353
View Raw JSON Data
{
  "block": 54610941,
  "op": [
    "delegate_vesting_shares",
    {
      "delegatee": "madhavanmalolan",
      "delegator": "steem",
      "vesting_shares": "9166.098256 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2021-06-14T03:30:45",
  "trx_id": "7a6cdf646d3426dd480cda34831bdd47102e1353",
  "trx_in_block": 2,
  "virtual_op": 0
}
steemdelegated 5.752 SP to @madhavanmalolan
2020/12/11 13:46:15
delegateemadhavanmalolan
delegatorsteem
vesting shares9353.520230 VESTS
Transaction InfoBlock #49358299/Trx bd8d39259bd580261fbba668ffaa1a549588b351
View Raw JSON Data
{
  "block": 49358299,
  "op": [
    "delegate_vesting_shares",
    {
      "delegatee": "madhavanmalolan",
      "delegator": "steem",
      "vesting_shares": "9353.520230 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2020-12-11T13:46:15",
  "trx_id": "bd8d39259bd580261fbba668ffaa1a549588b351",
  "trx_in_block": 1,
  "virtual_op": 0
}
steemdelegated 1.176 SP to @madhavanmalolan
2020/12/06 07:22:33
delegateemadhavanmalolan
delegatorsteem
vesting shares1912.543513 VESTS
Transaction InfoBlock #49209842/Trx 09bc4c9630f30ca7202c56334942ecbbb851d478
View Raw JSON Data
{
  "block": 49209842,
  "op": [
    "delegate_vesting_shares",
    {
      "delegatee": "madhavanmalolan",
      "delegator": "steem",
      "vesting_shares": "1912.543513 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2020-12-06T07:22:33",
  "trx_id": "09bc4c9630f30ca7202c56334942ecbbb851d478",
  "trx_in_block": 3,
  "virtual_op": 0
}
steemdelegated 5.755 SP to @madhavanmalolan
2020/12/05 17:24:09
delegateemadhavanmalolan
delegatorsteem
vesting shares9359.728084 VESTS
Transaction InfoBlock #49193389/Trx ef87e29d436a80a7be4815751eee5597099f826e
View Raw JSON Data
{
  "block": 49193389,
  "op": [
    "delegate_vesting_shares",
    {
      "delegatee": "madhavanmalolan",
      "delegator": "steem",
      "vesting_shares": "9359.728084 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2020-12-05T17:24:09",
  "trx_id": "ef87e29d436a80a7be4815751eee5597099f826e",
  "trx_in_block": 10,
  "virtual_op": 0
}
steemdelegated 1.181 SP to @madhavanmalolan
2020/11/02 21:06:18
delegateemadhavanmalolan
delegatorsteem
vesting shares1920.017158 VESTS
Transaction InfoBlock #48264240/Trx 7ec0c93859a54174af87ea872afbe35b261be82f
View Raw JSON Data
{
  "block": 48264240,
  "op": [
    "delegate_vesting_shares",
    {
      "delegatee": "madhavanmalolan",
      "delegator": "steem",
      "vesting_shares": "1920.017158 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2020-11-02T21:06:18",
  "trx_id": "7ec0c93859a54174af87ea872afbe35b261be82f",
  "trx_in_block": 8,
  "virtual_op": 0
}
steemdelegated 5.880 SP to @madhavanmalolan
2020/05/09 08:22:51
delegateemadhavanmalolan
delegatorsteem
vesting shares9562.533443 VESTS
Transaction InfoBlock #43220129/Trx 3e407e335d1aaee6e457b64c63f13171bb40e197
View Raw JSON Data
{
  "block": 43220129,
  "op": [
    "delegate_vesting_shares",
    {
      "delegatee": "madhavanmalolan",
      "delegator": "steem",
      "vesting_shares": "9562.533443 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2020-05-09T08:22:51",
  "trx_id": "3e407e335d1aaee6e457b64c63f13171bb40e197",
  "trx_in_block": 5,
  "virtual_op": 0
}
steemdelegated 1.201 SP to @madhavanmalolan
2020/05/08 12:23:03
delegateemadhavanmalolan
delegatorsteem
vesting shares1953.311140 VESTS
Transaction InfoBlock #43196698/Trx 1c93d50d42e6e73ea7b354fdab4a87b0f924e5c3
View Raw JSON Data
{
  "block": 43196698,
  "op": [
    "delegate_vesting_shares",
    {
      "delegatee": "madhavanmalolan",
      "delegator": "steem",
      "vesting_shares": "1953.311140 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2020-05-08T12:23:03",
  "trx_id": "1c93d50d42e6e73ea7b354fdab4a87b0f924e5c3",
  "trx_in_block": 3,
  "virtual_op": 0
}
steemdelegated 5.945 SP to @madhavanmalolan
2019/11/02 20:08:39
delegateemadhavanmalolan
delegatorsteem
vesting shares9668.013566 VESTS
Transaction InfoBlock #37831677/Trx ac44449ed56cb2d5dcfcf078e0a52710c3bc59e8
View Raw JSON Data
{
  "block": 37831677,
  "op": [
    "delegate_vesting_shares",
    {
      "delegatee": "madhavanmalolan",
      "delegator": "steem",
      "vesting_shares": "9668.013566 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2019-11-02T20:08:39",
  "trx_id": "ac44449ed56cb2d5dcfcf078e0a52710c3bc59e8",
  "trx_in_block": 16,
  "virtual_op": 0
}
2019/05/14 04:08:15
authorsteemitboard
bodyCongratulations @madhavanmalolan! You received a personal award! <table><tr><td>https://steemitimages.com/70x70/http://steemitboard.com/@madhavanmalolan/birthday1.png</td><td>Happy Birthday! - You are on the Steem blockchain for 1 year!</td></tr></table> <sub>_You can view [your badges on your Steem Board](https://steemitboard.com/@madhavanmalolan) and compare to others on the [Steem Ranking](http://steemitboard.com/ranking/index.php?name=madhavanmalolan)_</sub> **Do not miss the last post from @steemitboard:** <table><tr><td><a href="https://steemit.com/japanese/@steemitboard/new-japanese-speaking-community-steem-meetup-badge"><img src="https://steemitimages.com/64x128/https://cdn.steemitimages.com/DQmRWbAjbeETEaqSPLcpwYX1JN5pZhdPffv4q6DaBs6xvZm/image.png"></a></td><td><a href="https://steemit.com/japanese/@steemitboard/new-japanese-speaking-community-steem-meetup-badge">New japanese speaking community Steem Meetup badge</a></td></tr></table> ###### [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"]}
parent authormadhavanmalolan
parent permlinkethpay-apple-pay-for-eth
permlinksteemitboard-notify-madhavanmalolan-20190514t040814000z
title
Transaction InfoBlock #32890144/Trx 2b236f3bac1ee4837fd0743677190433a8b2b03b
View Raw JSON Data
{
  "block": 32890144,
  "op": [
    "comment",
    {
      "author": "steemitboard",
      "body": "Congratulations @madhavanmalolan! You received a personal award!\n\n<table><tr><td>https://steemitimages.com/70x70/http://steemitboard.com/@madhavanmalolan/birthday1.png</td><td>Happy Birthday! - You are on the Steem blockchain for 1 year!</td></tr></table>\n\n<sub>_You can view [your badges on your Steem Board](https://steemitboard.com/@madhavanmalolan) and compare to others on the [Steem Ranking](http://steemitboard.com/ranking/index.php?name=madhavanmalolan)_</sub>\n\n\n**Do not miss the last post from @steemitboard:**\n<table><tr><td><a href=\"https://steemit.com/japanese/@steemitboard/new-japanese-speaking-community-steem-meetup-badge\"><img src=\"https://steemitimages.com/64x128/https://cdn.steemitimages.com/DQmRWbAjbeETEaqSPLcpwYX1JN5pZhdPffv4q6DaBs6xvZm/image.png\"></a></td><td><a href=\"https://steemit.com/japanese/@steemitboard/new-japanese-speaking-community-steem-meetup-badge\">New  japanese speaking community Steem Meetup badge</a></td></tr></table>\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\"]}",
      "parent_author": "madhavanmalolan",
      "parent_permlink": "ethpay-apple-pay-for-eth",
      "permlink": "steemitboard-notify-madhavanmalolan-20190514t040814000z",
      "title": ""
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2019-05-14T04:08:15",
  "trx_id": "2b236f3bac1ee4837fd0743677190433a8b2b03b",
  "trx_in_block": 1,
  "virtual_op": 0
}
steemdelegated 6.066 SP to @madhavanmalolan
2018/11/28 09:39:45
delegateemadhavanmalolan
delegatorsteem
vesting shares9865.445018 VESTS
Transaction InfoBlock #28092117/Trx b5423e12af944f031330a99691193c4862c8e305
View Raw JSON Data
{
  "block": 28092117,
  "op": [
    "delegate_vesting_shares",
    {
      "delegatee": "madhavanmalolan",
      "delegator": "steem",
      "vesting_shares": "9865.445018 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-11-28T09:39:45",
  "trx_id": "b5423e12af944f031330a99691193c4862c8e305",
  "trx_in_block": 0,
  "virtual_op": 0
}
madhavanmalolanreceived 0.031 STEEM, 0.040 SP author reward for @madhavanmalolan / ethpay-apple-pay-for-eth
2018/09/05 07:29:03
authormadhavanmalolan
permlinkethpay-apple-pay-for-eth
sbd payout0.000 SBD
steem payout0.031 STEEM
vesting payout64.733540 VESTS
Transaction InfoBlock #25687589/Virtual Operation #3
View Raw JSON Data
{
  "block": 25687589,
  "op": [
    "author_reward",
    {
      "author": "madhavanmalolan",
      "permlink": "ethpay-apple-pay-for-eth",
      "sbd_payout": "0.000 SBD",
      "steem_payout": "0.031 STEEM",
      "vesting_payout": "64.733540 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-09-05T07:29:03",
  "trx_id": "0000000000000000000000000000000000000000",
  "trx_in_block": 4294967295,
  "virtual_op": 3
}
2018/08/29 11:32:21
authorsteemitboard
bodyCongratulations @madhavanmalolan! You have completed the following achievement on Steemit and have been rewarded with new badge(s) : [![](https://steemitimages.com/70x70/http://steemitboard.com/notifications/firstvote.png)](http://steemitboard.com/@madhavanmalolan) You made your First Vote <sub>_Click on the badge to view your Board of Honor._</sub> <sub>_If you no longer want to receive notifications, reply to this comment with the word_ `STOP`</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"]}
parent authormadhavanmalolan
parent permlinkethpay-apple-pay-for-eth
permlinksteemitboard-notify-madhavanmalolan-20180829t113220000z
title
Transaction InfoBlock #25490985/Trx 267f59dbe9f0336ed10e31a3d7d187ec616cb315
View Raw JSON Data
{
  "block": 25490985,
  "op": [
    "comment",
    {
      "author": "steemitboard",
      "body": "Congratulations @madhavanmalolan! You have completed the following achievement on Steemit and have been rewarded with new badge(s) :\n\n[![](https://steemitimages.com/70x70/http://steemitboard.com/notifications/firstvote.png)](http://steemitboard.com/@madhavanmalolan) You made your First Vote\n\n<sub>_Click on the badge to view your Board of Honor._</sub>\n<sub>_If you no longer want to receive notifications, reply to this comment with the word_ `STOP`</sub>\n\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\"]}",
      "parent_author": "madhavanmalolan",
      "parent_permlink": "ethpay-apple-pay-for-eth",
      "permlink": "steemitboard-notify-madhavanmalolan-20180829t113220000z",
      "title": ""
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-08-29T11:32:21",
  "trx_id": "267f59dbe9f0336ed10e31a3d7d187ec616cb315",
  "trx_in_block": 2,
  "virtual_op": 0
}
steemdelegated 18.541 SP to @madhavanmalolan
2018/08/29 08:57:00
delegateemadhavanmalolan
delegatorsteem
vesting shares30151.283008 VESTS
Transaction InfoBlock #25487880/Trx e72782b40ff42e5816af7245eba10ac9c8bf3f57
View Raw JSON Data
{
  "block": 25487880,
  "op": [
    "delegate_vesting_shares",
    {
      "delegatee": "madhavanmalolan",
      "delegator": "steem",
      "vesting_shares": "30151.283008 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-08-29T08:57:00",
  "trx_id": "e72782b40ff42e5816af7245eba10ac9c8bf3f57",
  "trx_in_block": 60,
  "virtual_op": 0
}
2018/08/29 07:58:57
authormadhavanmalolan
permlinkethpay-apple-pay-for-eth
voterhr1
weight2 (0.02%)
Transaction InfoBlock #25486720/Trx 0c406ffe48d39dfc88a3874f55728e097b6606ab
View Raw JSON Data
{
  "block": 25486720,
  "op": [
    "vote",
    {
      "author": "madhavanmalolan",
      "permlink": "ethpay-apple-pay-for-eth",
      "voter": "hr1",
      "weight": 2
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-08-29T07:58:57",
  "trx_id": "0c406ffe48d39dfc88a3874f55728e097b6606ab",
  "trx_in_block": 63,
  "virtual_op": 0
}
raise-me-upsent 0.001 SBD to @madhavanmalolan- "Don't waste your time, promote your post to more than 26,000+ FOLLOWERS and get Min 150+ upvotes for only 1 SBD or 1.5 STEEM. Feel the difference. Invest in your account to succeed! Find new friends/v..."
2018/08/29 07:32:09
amount0.001 SBD
fromraise-me-up
memoDon't waste your time, promote your post to more than 26,000+ FOLLOWERS and get Min 150+ upvotes for only 1 SBD or 1.5 STEEM. Feel the difference. Invest in your account to succeed! Find new friends/voters who will vote your posts daily. Put post's url in memo and @raise-me-up will resteem your post + 100% upvote. 365 days Active.
tomadhavanmalolan
Transaction InfoBlock #25486184/Trx e21493e6c36805e9ef71d4e2b92575196f3d4368
View Raw JSON Data
{
  "block": 25486184,
  "op": [
    "transfer",
    {
      "amount": "0.001 SBD",
      "from": "raise-me-up",
      "memo": "Don't waste your time, promote your post to more than 26,000+ FOLLOWERS and get Min 150+ upvotes for only 1 SBD or 1.5 STEEM. Feel the difference. Invest in your account to succeed! Find new friends/voters who will vote your posts daily. Put post's url in memo and @raise-me-up will resteem your post + 100% upvote. 365 days Active.",
      "to": "madhavanmalolan"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-08-29T07:32:09",
  "trx_id": "e21493e6c36805e9ef71d4e2b92575196f3d4368",
  "trx_in_block": 22,
  "virtual_op": 0
}
madhavanmalolansent 0.718 SBD to @null- "@madhavanmalolan/ethpay-apple-pay-for-eth"
2018/08/29 07:30:21
amount0.718 SBD
frommadhavanmalolan
memo@madhavanmalolan/ethpay-apple-pay-for-eth
tonull
Transaction InfoBlock #25486148/Trx a3d540715e2dcc3027847cde8ce30a680aa8d49c
View Raw JSON Data
{
  "block": 25486148,
  "op": [
    "transfer",
    {
      "amount": "0.718 SBD",
      "from": "madhavanmalolan",
      "memo": "@madhavanmalolan/ethpay-apple-pay-for-eth",
      "to": "null"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-08-29T07:30:21",
  "trx_id": "a3d540715e2dcc3027847cde8ce30a680aa8d49c",
  "trx_in_block": 30,
  "virtual_op": 0
}
2018/08/29 07:29:18
authormadhavanmalolan
permlinkethpay-apple-pay-for-eth
votermadhavanmalolan
weight10000 (100.00%)
Transaction InfoBlock #25486127/Trx 9b53a26cf5b0095b0ebc6217154b830e8c571517
View Raw JSON Data
{
  "block": 25486127,
  "op": [
    "vote",
    {
      "author": "madhavanmalolan",
      "permlink": "ethpay-apple-pay-for-eth",
      "voter": "madhavanmalolan",
      "weight": 10000
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-08-29T07:29:18",
  "trx_id": "9b53a26cf5b0095b0ebc6217154b830e8c571517",
  "trx_in_block": 34,
  "virtual_op": 0
}
2018/08/29 07:29:12
authormadhavanmalolan
permlinkethpay-apple-pay-for-eth
voterfastresteem
weight100 (1.00%)
Transaction InfoBlock #25486125/Trx 593bb0d0b196de9af003244daf82ee91b3efdf8f
View Raw JSON Data
{
  "block": 25486125,
  "op": [
    "vote",
    {
      "author": "madhavanmalolan",
      "permlink": "ethpay-apple-pay-for-eth",
      "voter": "fastresteem",
      "weight": 100
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-08-29T07:29:12",
  "trx_id": "593bb0d0b196de9af003244daf82ee91b3efdf8f",
  "trx_in_block": 8,
  "virtual_op": 0
}
2018/08/29 07:29:06
authormadhavanmalolan
permlinkethpay-apple-pay-for-eth
votergrammarnazi
weight5000 (50.00%)
Transaction InfoBlock #25486123/Trx 0a5f4c90cfef392e47a1c3b2be96ff47ec0447b1
View Raw JSON Data
{
  "block": 25486123,
  "op": [
    "vote",
    {
      "author": "madhavanmalolan",
      "permlink": "ethpay-apple-pay-for-eth",
      "voter": "grammarnazi",
      "weight": 5000
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-08-29T07:29:06",
  "trx_id": "0a5f4c90cfef392e47a1c3b2be96ff47ec0447b1",
  "trx_in_block": 24,
  "virtual_op": 0
}
2018/08/29 07:29:03
authorgrammarnazi
bodyYou have a minor misspelling in the following sentence: <blockquote> By having a standardised AppLink app developers can leverage the existance of other ethereum wallets on the user's phone to sign and send transactions.</blockquote> It should be <i>existence</i> instead of <i>existance</i>.
json metadata{"app":"steemit"}
parent authormadhavanmalolan
parent permlinkethpay-apple-pay-for-eth
permlinkre-madhavanmalolan-ethpay-apple-pay-for-eth-20180829t072856633z
titleMinor Correction
Transaction InfoBlock #25486122/Trx 0d5e5df9308123c623919f6e9bf39564375130cf
View Raw JSON Data
{
  "block": 25486122,
  "op": [
    "comment",
    {
      "author": "grammarnazi",
      "body": "You have a minor misspelling in the following sentence: <blockquote> By having a standardised AppLink app developers can leverage the existance of other ethereum wallets on the user's phone to sign and send transactions.</blockquote> It should be <i>existence</i> instead of <i>existance</i>.",
      "json_metadata": "{\"app\":\"steemit\"}",
      "parent_author": "madhavanmalolan",
      "parent_permlink": "ethpay-apple-pay-for-eth",
      "permlink": "re-madhavanmalolan-ethpay-apple-pay-for-eth-20180829t072856633z",
      "title": "Minor Correction"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-08-29T07:29:03",
  "trx_id": "0d5e5df9308123c623919f6e9bf39564375130cf",
  "trx_in_block": 31,
  "virtual_op": 0
}
2018/08/29 07:29:03
authormadhavanmalolan
body``` --- eip: <to be assigned> title: Standardized AppLink for signing ETH Transactions using an installed wallet on mobile author: Madhavan Malolan (@madhavanmalolan) status: Draft type: Interface created: 2018-08-29 --- ``` ## Simple Summary Proposing standardizing the `ethpay://` URI (AppLink) so that native app developers can invoke user's wallets to sign transactions. ## Abstract Proposing a simple mechanism that will allow developers to build DApps as native apps without having to maintain the users' wallets/private keys. DApps today are built primarily on the web because of the access to Web3 injections, but the user experience is lacking. Native apps provide a much richer experience. A MetaMask equivalent for native apps will help the developer community a long way. ## Motivation App developers today need to maintain the private keys and keep pace with the changes happening on the Web3 libraries. A large majority of people have some ethereum Wallet installed on their phone which already maintains their keys and accounts. Why should every app developer have to re-invent the wheel by building the entire wallet stack into their app? By having a standardised AppLink app developers can leverage the existance of other ethereum wallets on the user's phone to sign and send transactions. ## Specification The AppLink will be an URI of scheme `ethpay://` ### Possible actions - `sign` : The wallet signs the data sent to it and redirects to a URI also specified in the request with the signature as a query parameter - `sendSignedTransaction` : The wallet signs a transaction and sends it to an Ethereum Node ### Allowed parameters - `action` : may be one of `sign` or `sendSignedTransaction` - `to` : An Ethereum Address to which the transaction is to be sent. Required if action is `sendSignedTransaction` - `value` : Integral value of number of Wei to include in the transaction. Optional. - `data` : Data that needs to be signed. If action is `sendSignedTransaction` this should be hex encoded. Required if type is `sign` - `gas` : Amount of gas to be used in the transaction. Required if action is `sendSignedTransaction` - `gasPrice` : Gas price for the transaction. Optional. If not provided for action `sendSignedTransaction`, current gas price will be used. - `redirectUri` : The URI to which the wallet should redirect with signature after signing. Used only for action `sign`. ## Rationale The URI based AppLinks will allow app developers to request signing of transactions without needing to use any external library. The users will not have to trust the app developer with their private keys, since it is maintained by a separate wallet app they already use. ## Implementation A rough implementation of this protocol has been done using [Web3 1.0.0-beta](https://github.com/ethereum/web3.js) on a [React Native](https://facebook.github.io/react-native/) app. It uses [Infura](https://infura.io) as an Ethereum node. The implementation handles App Links and a basic implementation of an ETH wallet. You can find the [app's implementation here](https://github.com/madhavanmalolan/ethpay) ## Join the discussion Join the discussion on [GitHub](https://github.com/ethereum/EIPs/issues/1361) ## Copyright Copyright and related rights waived via [CC0](https://creativecommons.org/publicdomain/zero/1.0/).
json metadata{"tags":["android","ios","ethereum","wallet","dapp"],"links":["https://github.com/ethereum/web3.js","https://facebook.github.io/react-native/","https://infura.io","https://github.com/madhavanmalolan/ethpay","https://github.com/ethereum/EIPs/issues/1361","https://creativecommons.org/publicdomain/zero/1.0/"],"app":"steemit/0.1","format":"markdown"}
parent author
parent permlinkandroid
permlinkethpay-apple-pay-for-eth
titleETHPay : Apple pay for ETH
Transaction InfoBlock #25486122/Trx 7fae74bf6f745355d0f3cfca69a5f94c1acad4cd
View Raw JSON Data
{
  "block": 25486122,
  "op": [
    "comment",
    {
      "author": "madhavanmalolan",
      "body": "```\n---\neip: <to be assigned>\ntitle: Standardized AppLink for signing ETH Transactions using an installed wallet on mobile\nauthor: Madhavan Malolan (@madhavanmalolan)\nstatus: Draft\ntype: Interface\ncreated: 2018-08-29\n---\n```\n## Simple Summary\nProposing standardizing the `ethpay://` URI (AppLink) so that native app developers can invoke user's wallets to sign transactions.\n\n## Abstract\nProposing a simple mechanism that will allow developers to build DApps as native apps without having to maintain the users' wallets/private keys. DApps today are built primarily on the web because of the access to Web3 injections, but the user experience is lacking. Native apps provide a much richer experience. A MetaMask equivalent for native apps will help the developer community a long way.\n\n## Motivation\nApp developers today need to maintain the private keys and keep pace with the changes happening on the Web3 libraries. A large majority of people have some ethereum Wallet installed on their phone which already maintains their keys and accounts. Why should every app developer have to re-invent the wheel by building the entire wallet stack into their app? By having a standardised AppLink app developers can leverage the existance of other ethereum wallets on the user's phone to sign and send transactions.\n\n## Specification\nThe AppLink will be an URI of scheme `ethpay://`\n\n### Possible actions\n- `sign` : The wallet signs the data sent to it and redirects to a URI also specified in the request with the signature as a query parameter\n- `sendSignedTransaction` : The wallet signs a transaction and sends it to an Ethereum Node\n\n### Allowed parameters\n- `action` : may be one of `sign` or `sendSignedTransaction`\n- `to` : An Ethereum Address to which the transaction is to be sent. Required if action is `sendSignedTransaction`\n- `value` : Integral value of number of Wei to include in the transaction. Optional.\n- `data` : Data that needs to be signed. If action is `sendSignedTransaction` this should be hex encoded. Required if type is `sign`\n- `gas` : Amount of gas to be used in the transaction. Required if action is `sendSignedTransaction`\n- `gasPrice` : Gas price for the transaction. Optional. If not provided for action `sendSignedTransaction`, current gas price will be used.\n- `redirectUri` : The URI to which the wallet should redirect with signature after signing. Used only for action `sign`.\n\n\n## Rationale\nThe URI based AppLinks will allow app developers to request signing of transactions without needing to use any external library.\nThe users will not have to trust the app developer with their private keys, since it is maintained by a separate wallet app they already use.\n\n## Implementation\nA rough implementation of this protocol has been done using [Web3 1.0.0-beta](https://github.com/ethereum/web3.js) on a [React Native](https://facebook.github.io/react-native/) app. It uses [Infura](https://infura.io) as an Ethereum node.\n\nThe implementation handles App Links and a basic implementation of an ETH wallet.\n\nYou can find the [app's implementation here](https://github.com/madhavanmalolan/ethpay)\n\n## Join the discussion\nJoin the discussion on [GitHub](https://github.com/ethereum/EIPs/issues/1361)\n\n## Copyright\nCopyright and related rights waived via [CC0](https://creativecommons.org/publicdomain/zero/1.0/).",
      "json_metadata": "{\"tags\":[\"android\",\"ios\",\"ethereum\",\"wallet\",\"dapp\"],\"links\":[\"https://github.com/ethereum/web3.js\",\"https://facebook.github.io/react-native/\",\"https://infura.io\",\"https://github.com/madhavanmalolan/ethpay\",\"https://github.com/ethereum/EIPs/issues/1361\",\"https://creativecommons.org/publicdomain/zero/1.0/\"],\"app\":\"steemit/0.1\",\"format\":\"markdown\"}",
      "parent_author": "",
      "parent_permlink": "android",
      "permlink": "ethpay-apple-pay-for-eth",
      "title": "ETHPay : Apple pay for ETH"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-08-29T07:29:03",
  "trx_id": "7fae74bf6f745355d0f3cfca69a5f94c1acad4cd",
  "trx_in_block": 7,
  "virtual_op": 0
}
steemdelegated 6.099 SP to @madhavanmalolan
2018/08/22 14:41:03
delegateemadhavanmalolan
delegatorsteem
vesting shares9918.443086 VESTS
Transaction InfoBlock #25293271/Trx e60971ae1520a1f89b62aa70dbd114892fc46125
View Raw JSON Data
{
  "block": 25293271,
  "op": [
    "delegate_vesting_shares",
    {
      "delegatee": "madhavanmalolan",
      "delegator": "steem",
      "vesting_shares": "9918.443086 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-08-22T14:41:03",
  "trx_id": "e60971ae1520a1f89b62aa70dbd114892fc46125",
  "trx_in_block": 5,
  "virtual_op": 0
}
madhavanmalolanreceived 0.001 STEEM, 0.021 SBD, 0.014 SP author reward for @madhavanmalolan / introducing-dauth-a-decentralized-authentication-for-dapps
2018/05/30 09:41:57
authormadhavanmalolan
permlinkintroducing-dauth-a-decentralized-authentication-for-dapps
sbd payout0.021 SBD
steem payout0.001 STEEM
vesting payout22.367612 VESTS
Transaction InfoBlock #22879905/Virtual Operation #20
View Raw JSON Data
{
  "block": 22879905,
  "op": [
    "author_reward",
    {
      "author": "madhavanmalolan",
      "permlink": "introducing-dauth-a-decentralized-authentication-for-dapps",
      "sbd_payout": "0.021 SBD",
      "steem_payout": "0.001 STEEM",
      "vesting_payout": "22.367612 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-05-30T09:41:57",
  "trx_id": "0000000000000000000000000000000000000000",
  "trx_in_block": 4294967295,
  "virtual_op": 20
}
2018/05/29 18:14:18
authormadhavanmalolan
permlinkintroducing-dauth-a-decentralized-authentication-for-dapps
voterharmaa
weight10000 (100.00%)
Transaction InfoBlock #22861354/Trx eb931b47fd74ee74ef32d38c521e704d3ea38550
View Raw JSON Data
{
  "block": 22861354,
  "op": [
    "vote",
    {
      "author": "madhavanmalolan",
      "permlink": "introducing-dauth-a-decentralized-authentication-for-dapps",
      "voter": "harmaa",
      "weight": 10000
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-05-29T18:14:18",
  "trx_id": "eb931b47fd74ee74ef32d38c521e704d3ea38550",
  "trx_in_block": 39,
  "virtual_op": 0
}
2018/05/29 17:14:42
authormadhavanmalolan
permlinkintroducing-dauth-a-decentralized-authentication-for-dapps
votermezmerizer9
weight10000 (100.00%)
Transaction InfoBlock #22860162/Trx 59f3970f4d5ace19e635ea481146ef0a9a9f0e3b
View Raw JSON Data
{
  "block": 22860162,
  "op": [
    "vote",
    {
      "author": "madhavanmalolan",
      "permlink": "introducing-dauth-a-decentralized-authentication-for-dapps",
      "voter": "mezmerizer9",
      "weight": 10000
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-05-29T17:14:42",
  "trx_id": "59f3970f4d5ace19e635ea481146ef0a9a9f0e3b",
  "trx_in_block": 40,
  "virtual_op": 0
}
2018/05/29 16:08:45
authormadhavanmalolan
permlinkintroducing-dauth-a-decentralized-authentication-for-dapps
voterlost-tiger-films
weight10000 (100.00%)
Transaction InfoBlock #22858843/Trx a5b94b820cd09665a3ed5cd3710a9e1eb1f11ccb
View Raw JSON Data
{
  "block": 22858843,
  "op": [
    "vote",
    {
      "author": "madhavanmalolan",
      "permlink": "introducing-dauth-a-decentralized-authentication-for-dapps",
      "voter": "lost-tiger-films",
      "weight": 10000
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-05-29T16:08:45",
  "trx_id": "a5b94b820cd09665a3ed5cd3710a9e1eb1f11ccb",
  "trx_in_block": 25,
  "virtual_op": 0
}
2018/05/29 14:01:21
authormadhavanmalolan
permlinkintroducing-dauth-a-decentralized-authentication-for-dapps
votercryptojolt
weight10000 (100.00%)
Transaction InfoBlock #22856295/Trx ad93d15e574eca553a33fadf9888123ce071a852
View Raw JSON Data
{
  "block": 22856295,
  "op": [
    "vote",
    {
      "author": "madhavanmalolan",
      "permlink": "introducing-dauth-a-decentralized-authentication-for-dapps",
      "voter": "cryptojolt",
      "weight": 10000
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-05-29T14:01:21",
  "trx_id": "ad93d15e574eca553a33fadf9888123ce071a852",
  "trx_in_block": 51,
  "virtual_op": 0
}
2018/05/27 23:01:57
authormadhavanmalolan
permlinkintroducing-dauth-a-decentralized-authentication-for-dapps
votervarvas
weight10000 (100.00%)
Transaction InfoBlock #22809512/Trx 41ff121606919834c842f309e8ec5821bc29717c
View Raw JSON Data
{
  "block": 22809512,
  "op": [
    "vote",
    {
      "author": "madhavanmalolan",
      "permlink": "introducing-dauth-a-decentralized-authentication-for-dapps",
      "voter": "varvas",
      "weight": 10000
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-05-27T23:01:57",
  "trx_id": "41ff121606919834c842f309e8ec5821bc29717c",
  "trx_in_block": 57,
  "virtual_op": 0
}
2018/05/27 19:51:48
authormadhavanmalolan
permlinkintroducing-dauth-a-decentralized-authentication-for-dapps
voterfilbur
weight10000 (100.00%)
Transaction InfoBlock #22805709/Trx 6adf94d314b30d9ba608421f9e3817d819f868a0
View Raw JSON Data
{
  "block": 22805709,
  "op": [
    "vote",
    {
      "author": "madhavanmalolan",
      "permlink": "introducing-dauth-a-decentralized-authentication-for-dapps",
      "voter": "filbur",
      "weight": 10000
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-05-27T19:51:48",
  "trx_id": "6adf94d314b30d9ba608421f9e3817d819f868a0",
  "trx_in_block": 52,
  "virtual_op": 0
}
2018/05/27 15:47:30
authormadhavanmalolan
permlinkintroducing-dauth-a-decentralized-authentication-for-dapps
voternycryptotalk
weight10000 (100.00%)
Transaction InfoBlock #22800824/Trx ba6788d4e3f67537ee6a04597f1a4aaf23dbc5f9
View Raw JSON Data
{
  "block": 22800824,
  "op": [
    "vote",
    {
      "author": "madhavanmalolan",
      "permlink": "introducing-dauth-a-decentralized-authentication-for-dapps",
      "voter": "nycryptotalk",
      "weight": 10000
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-05-27T15:47:30",
  "trx_id": "ba6788d4e3f67537ee6a04597f1a4aaf23dbc5f9",
  "trx_in_block": 35,
  "virtual_op": 0
}
2018/05/26 20:20:48
authormadhavanmalolan
permlinkintroducing-dauth-a-decentralized-authentication-for-dapps
voterkowal115
weight10000 (100.00%)
Transaction InfoBlock #22777494/Trx 0c873f44b583e9d1c4bb6605e2da1d6653a46ea3
View Raw JSON Data
{
  "block": 22777494,
  "op": [
    "vote",
    {
      "author": "madhavanmalolan",
      "permlink": "introducing-dauth-a-decentralized-authentication-for-dapps",
      "voter": "kowal115",
      "weight": 10000
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-05-26T20:20:48",
  "trx_id": "0c873f44b583e9d1c4bb6605e2da1d6653a46ea3",
  "trx_in_block": 88,
  "virtual_op": 0
}
2018/05/26 09:52:06
authormadhavanmalolan
permlinkintroducing-dauth-a-decentralized-authentication-for-dapps
voterrazel
weight10000 (100.00%)
Transaction InfoBlock #22764923/Trx aa65df7467f73d29c45c992394bbb2b71a6b7d46
View Raw JSON Data
{
  "block": 22764923,
  "op": [
    "vote",
    {
      "author": "madhavanmalolan",
      "permlink": "introducing-dauth-a-decentralized-authentication-for-dapps",
      "voter": "razel",
      "weight": 10000
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-05-26T09:52:06",
  "trx_id": "aa65df7467f73d29c45c992394bbb2b71a6b7d46",
  "trx_in_block": 40,
  "virtual_op": 0
}
2018/05/26 08:06:12
authormadhavanmalolan
permlinkintroducing-dauth-a-decentralized-authentication-for-dapps
voterdarkxsein
weight10000 (100.00%)
Transaction InfoBlock #22762805/Trx 6246fd38127c82c36241542d7f6daf3669f08b50
View Raw JSON Data
{
  "block": 22762805,
  "op": [
    "vote",
    {
      "author": "madhavanmalolan",
      "permlink": "introducing-dauth-a-decentralized-authentication-for-dapps",
      "voter": "darkxsein",
      "weight": 10000
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-05-26T08:06:12",
  "trx_id": "6246fd38127c82c36241542d7f6daf3669f08b50",
  "trx_in_block": 17,
  "virtual_op": 0
}
2018/05/25 20:29:09
authormadhavanmalolan
permlinkintroducing-dauth-a-decentralized-authentication-for-dapps
votersadia777
weight10000 (100.00%)
Transaction InfoBlock #22748867/Trx 80520b2c4ba07123ee32a131fe6f9ab41843af23
View Raw JSON Data
{
  "block": 22748867,
  "op": [
    "vote",
    {
      "author": "madhavanmalolan",
      "permlink": "introducing-dauth-a-decentralized-authentication-for-dapps",
      "voter": "sadia777",
      "weight": 10000
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-05-25T20:29:09",
  "trx_id": "80520b2c4ba07123ee32a131fe6f9ab41843af23",
  "trx_in_block": 37,
  "virtual_op": 0
}
2018/05/24 21:06:33
authormadhavanmalolan
permlinkintroducing-dauth-a-decentralized-authentication-for-dapps
voterkuros1700
weight10000 (100.00%)
Transaction InfoBlock #22720821/Trx 521fab18e938c2fd04c8b7e30a70670e304698c0
View Raw JSON Data
{
  "block": 22720821,
  "op": [
    "vote",
    {
      "author": "madhavanmalolan",
      "permlink": "introducing-dauth-a-decentralized-authentication-for-dapps",
      "voter": "kuros1700",
      "weight": 10000
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-05-24T21:06:33",
  "trx_id": "521fab18e938c2fd04c8b7e30a70670e304698c0",
  "trx_in_block": 4,
  "virtual_op": 0
}
2018/05/24 19:10:00
authormadhavanmalolan
permlinkintroducing-dauth-a-decentralized-authentication-for-dapps
voterblessu
weight10000 (100.00%)
Transaction InfoBlock #22718493/Trx ab39d676af67835d9dbe6a9d9d187881dbbbd532
View Raw JSON Data
{
  "block": 22718493,
  "op": [
    "vote",
    {
      "author": "madhavanmalolan",
      "permlink": "introducing-dauth-a-decentralized-authentication-for-dapps",
      "voter": "blessu",
      "weight": 10000
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-05-24T19:10:00",
  "trx_id": "ab39d676af67835d9dbe6a9d9d187881dbbbd532",
  "trx_in_block": 30,
  "virtual_op": 0
}
2018/05/24 18:49:57
authormadhavanmalolan
permlinkintroducing-dauth-a-decentralized-authentication-for-dapps
votersambrishes
weight10000 (100.00%)
Transaction InfoBlock #22718092/Trx 723880df811c516526ebac15d9f8fc0dc1217598
View Raw JSON Data
{
  "block": 22718092,
  "op": [
    "vote",
    {
      "author": "madhavanmalolan",
      "permlink": "introducing-dauth-a-decentralized-authentication-for-dapps",
      "voter": "sambrishes",
      "weight": 10000
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-05-24T18:49:57",
  "trx_id": "723880df811c516526ebac15d9f8fc0dc1217598",
  "trx_in_block": 63,
  "virtual_op": 0
}
2018/05/24 17:43:00
authormadhavanmalolan
permlinkintroducing-dauth-a-decentralized-authentication-for-dapps
votertechzuug0d
weight10000 (100.00%)
Transaction InfoBlock #22716754/Trx 05bd795b60a984442e5c7a235d8e6c4de936b0ee
View Raw JSON Data
{
  "block": 22716754,
  "op": [
    "vote",
    {
      "author": "madhavanmalolan",
      "permlink": "introducing-dauth-a-decentralized-authentication-for-dapps",
      "voter": "techzuug0d",
      "weight": 10000
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-05-24T17:43:00",
  "trx_id": "05bd795b60a984442e5c7a235d8e6c4de936b0ee",
  "trx_in_block": 2,
  "virtual_op": 0
}
2018/05/24 14:08:21
authormadhavanmalolan
permlinkintroducing-dauth-a-decentralized-authentication-for-dapps
voterrayo
weight10000 (100.00%)
Transaction InfoBlock #22712461/Trx 265e725cbcd80c54160331cfeaf394bba05c9dc1
View Raw JSON Data
{
  "block": 22712461,
  "op": [
    "vote",
    {
      "author": "madhavanmalolan",
      "permlink": "introducing-dauth-a-decentralized-authentication-for-dapps",
      "voter": "rayo",
      "weight": 10000
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-05-24T14:08:21",
  "trx_id": "265e725cbcd80c54160331cfeaf394bba05c9dc1",
  "trx_in_block": 7,
  "virtual_op": 0
}
2018/05/24 04:28:21
authorritikagupta
bodyHey great content.. I'm also a blogger on latest upcoming ICOs. If you find interest please do follow me and i will follow you back!!
json metadata{"tags":["ethereum"],"app":"steemit/0.1"}
parent authormadhavanmalolan
parent permlinkintroducing-dauth-a-decentralized-authentication-for-dapps
permlinkre-madhavanmalolan-introducing-dauth-a-decentralized-authentication-for-dapps-20180524t042820789z
title
Transaction InfoBlock #22701220/Trx cb625e293d0299e4ff91d766dafc29e5bb4ec675
View Raw JSON Data
{
  "block": 22701220,
  "op": [
    "comment",
    {
      "author": "ritikagupta",
      "body": "Hey great content..\nI'm also a blogger on latest upcoming ICOs.\nIf you find interest please do follow me and i will follow you back!!",
      "json_metadata": "{\"tags\":[\"ethereum\"],\"app\":\"steemit/0.1\"}",
      "parent_author": "madhavanmalolan",
      "parent_permlink": "introducing-dauth-a-decentralized-authentication-for-dapps",
      "permlink": "re-madhavanmalolan-introducing-dauth-a-decentralized-authentication-for-dapps-20180524t042820789z",
      "title": ""
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-05-24T04:28:21",
  "trx_id": "cb625e293d0299e4ff91d766dafc29e5bb4ec675",
  "trx_in_block": 35,
  "virtual_op": 0
}
2018/05/24 04:26:27
authormadhavanmalolan
permlink6swexy-introducing-dauth-a-decentralized-authentication-mechanism
voterritikagupta
weight10000 (100.00%)
Transaction InfoBlock #22701182/Trx 5126ced1dfd7590f3921fa0d0ceabe61a1098512
View Raw JSON Data
{
  "block": 22701182,
  "op": [
    "vote",
    {
      "author": "madhavanmalolan",
      "permlink": "6swexy-introducing-dauth-a-decentralized-authentication-mechanism",
      "voter": "ritikagupta",
      "weight": 10000
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-05-24T04:26:27",
  "trx_id": "5126ced1dfd7590f3921fa0d0ceabe61a1098512",
  "trx_in_block": 13,
  "virtual_op": 0
}
2018/05/24 04:26:21
authormadhavanmalolan
permlinkintroducing-dauth-a-decentralized-authentication-for-dapps
voterritikagupta
weight10000 (100.00%)
Transaction InfoBlock #22701180/Trx 7bc76c2229f94c42c70db9b86e8f1e1c7f476876
View Raw JSON Data
{
  "block": 22701180,
  "op": [
    "vote",
    {
      "author": "madhavanmalolan",
      "permlink": "introducing-dauth-a-decentralized-authentication-for-dapps",
      "voter": "ritikagupta",
      "weight": 10000
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-05-24T04:26:21",
  "trx_id": "7bc76c2229f94c42c70db9b86e8f1e1c7f476876",
  "trx_in_block": 25,
  "virtual_op": 0
}
2018/05/24 03:14:54
authormadhavanmalolan
permlinkintroducing-dauth-a-decentralized-authentication-for-dapps
votervertigemoon
weight10000 (100.00%)
Transaction InfoBlock #22699751/Trx 65d4be04b9f2185bd24fa2df2c44f8e5f33af146
View Raw JSON Data
{
  "block": 22699751,
  "op": [
    "vote",
    {
      "author": "madhavanmalolan",
      "permlink": "introducing-dauth-a-decentralized-authentication-for-dapps",
      "voter": "vertigemoon",
      "weight": 10000
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-05-24T03:14:54",
  "trx_id": "65d4be04b9f2185bd24fa2df2c44f8e5f33af146",
  "trx_in_block": 49,
  "virtual_op": 0
}
2018/05/23 21:54:30
authormadhavanmalolan
permlinkintroducing-dauth-a-decentralized-authentication-for-dapps
voterjasonmiller2134
weight10000 (100.00%)
Transaction InfoBlock #22693343/Trx 5e0c722db5aa508a4c9221e746ef15e2f7baca72
View Raw JSON Data
{
  "block": 22693343,
  "op": [
    "vote",
    {
      "author": "madhavanmalolan",
      "permlink": "introducing-dauth-a-decentralized-authentication-for-dapps",
      "voter": "jasonmiller2134",
      "weight": 10000
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-05-23T21:54:30",
  "trx_id": "5e0c722db5aa508a4c9221e746ef15e2f7baca72",
  "trx_in_block": 61,
  "virtual_op": 0
}
2018/05/23 18:53:27
authormadhavanmalolan
permlinkintroducing-dauth-a-decentralized-authentication-for-dapps
voterfux
weight10000 (100.00%)
Transaction InfoBlock #22689723/Trx 1b7e443971860c5224177da4698509d78ba7212e
View Raw JSON Data
{
  "block": 22689723,
  "op": [
    "vote",
    {
      "author": "madhavanmalolan",
      "permlink": "introducing-dauth-a-decentralized-authentication-for-dapps",
      "voter": "fux",
      "weight": 10000
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-05-23T18:53:27",
  "trx_id": "1b7e443971860c5224177da4698509d78ba7212e",
  "trx_in_block": 45,
  "virtual_op": 0
}
2018/05/23 13:58:21
authormadhavanmalolan
body``` eip: ERC 1115 title: DAuth - Decentralized authentication mechanism for DApps author: madhavanmalolan discussion-to: [email protected] status: Draft type: Standards Track category: ERC created: 2018-05-23 ``` # Simple Summary This is an authentication mechanism like _"Login with Facebook"_ and _"Sign in with Google"_ that is completely decentralized and helps DApps authenticate users. # Abstract DAuth is a specification for an alternative to OAuth that allows DApps to accept user logins in a completely decentralized way - helping the DApp acertain the Ethereum address owned by the user. This login uses a familiar username-password pair that would allow logins to happen from any device or environment without the need for external libraries and extensions like Web3. # Motivation Many DApps that perform some form of personalization need to identify the user. Consider, for example, the case of a popular DApp - [CryptoKitties](https://cryptokitties.co). CryptoKitties is a web based DApp and allows users to view, buy, sell and _breed_ CryptoKitties. The only way to login into the application is using MetaMask which is a Web3 injector. It is not possible to view _My kitties_ using a device that doesn't have MetaMask installed even if I do not intend to make any transactions. DAuth will enable DApps to allow users to establish their identity by proving the ownership of their Ethereum address. # Design We first describe the _Authentication Game_ which takes place to authenticate a user. ## 0. Registration A user registers by setting up a HTTP server (called the Dauth server). The user generates a password and a public-private key pair and stores the private key and the hash of the password on the server. Then, registers a username on the smart contract by providing the desired username, the public key and the address of the DAuth server. All usernames on the contract are unique. ## 1. DApp Login To login into a DApp, the user provides the following to the endpoint that performs the authentication on the DApp. - **Code** : This is a random string that identifies the current authentication session. The authentication will go through only once for a given code. - **HashCode** : `sha3(sha3(password), code)` - **Username** : The username that was registered and confirmed on the smart contract. In order to verify this request, the DApp will fetch the public key and DAuth server address from the smart contract. The DApp shall then generate a _Secret_ string - which may be a random string. It will then pass the following parameters to the DAuth server's verification endpoint. - **Code** : As provided by the user - **HashCode** : As provided by the user - **Username** : As provided by the user - **Cipher** : The _Secret string_ encrypted using the user's public key ## 2. DAuth server verification The DAuth server on receiving the request from the DApp, fetches the hash of the password and the private key from its database corresponding to the username in the request. It then validates if `HashCode = sha3(hash of password, code)` If the HashCode is valid, and the code has not been used before, it tries to decrypt the Cipher using the private key and sends the decrypted value back to the DApp ## 3. Verification The DApp may authenticate the user if the response from the DAuth server is the same as the Secret it used to generate the Cipher. # Specification ## Smart Contract ### set ``` function set(string username, string dauth_url, string public_key) public returns (bool) event NewUser(address from, string username, bool success); ``` Must insert a mapping between the `msg.sender` and the username, DAuth Server address, and public key. Must emit `NewUser(address, username, true)` if successfully created, `NewUser(address, username, false)` if it fails. ### getUsername ``` function getUsername(address user_address) public view returns (string) ``` Returns the username associated with a given address. Returns a blank string if no username exists for that address. ### getAddress ``` function getAddress(string username) public view returns (address) ``` Returns the address associated with the username. Returns a blank string if the username is not registered. ### getDauthUrl ``` function getDauthUrl(string username) public view returns (string) ``` Returns the DAuth Server address associated with the username. Returns a blank string if the username is not registered. ### getDauthPublicKey ``` function getDauthPublicKey(string username) public view returns (string) ``` Returns the public key associated with the username. Returns a blank string if the username is not registered. ## DAuth Server The DAuth server must expose two endpoints ### Verification Endpoint This is the endpoint using a POST request to the DAuth Server address. This takes as parameters ``` { username : string, cipher : string, code : string, hashcode : string } ``` If verification is successful, returns ``` 200 { data : <decrypted value> } ``` else, ``` 403 { data : <reason for failure> } ``` ### Login Page This is a GET request to the DAuth Server address. This takes as query parameter the verifier url. On the webpage it must accept the username and password, generate the code and hashcode and transmit the username, code and hashcode to the verifier (DApp). ## DApp The Dapp must provide an endpoint called the _verifier URL_ that is a GET request that can be accessed from a web browser. This endpoint gets the following query parameters : code, hashcode, username. This endpoint may respond accordingly based on the success of the login. # Implementation ## Smart Contract The smart contract is hosted on the Rinkeby testnet - [Link](https://rinkeby.etherscan.io/address/0xb19d6bf34cf6cecc50c4a73c38f54defcf9e8f6a) ## DAuth Server A user may run a self hosted DAuth Server by cloning [this](https://github.com/madhavanmalolan/dauth/tree/master/server) repository. For the sake of simplicity and a demo, a DAuth Server has been setup at [dauth.co](https://dauth.co) on which users may choose to host their credentials if they are not able to host a server on their own. ## Verifier The DApps may use a the promise based nodejs implementation, which abstracts out all implementation details. ## Source All the code for the smart contract and the Dauth Server are opensourced at [this repository](https://github.com/madhavanmalolan/dauth). # Demo A demo is available at [dauth.co](https://dauth.co) # More details A white paper is made available that digs deeper into technical details : [dauth.pdf](https://github.com/madhavanmalolan/dauth/blob/master/dauth.pdf) https://www.youtube.com/watch?v=Tgnk3pqNxSw # Participate Please do join in the [discussions on GitHub for ERC 1115](https://github.com/ethereum/EIPs/issues/1115)
json metadata{"tags":["ethereum","smart-contract","cryptocurrency","bitcoin","crypto"],"links":["https://cryptokitties.co","https://rinkeby.etherscan.io/address/0xb19d6bf34cf6cecc50c4a73c38f54defcf9e8f6a","https://github.com/madhavanmalolan/dauth/tree/master/server","https://dauth.co","https://github.com/madhavanmalolan/dauth","https://github.com/madhavanmalolan/dauth/blob/master/dauth.pdf","https://www.youtube.com/watch?v=Tgnk3pqNxSw","https://github.com/ethereum/EIPs/issues/1115"],"app":"steemit/0.1","format":"markdown","image":["https://img.youtube.com/vi/Tgnk3pqNxSw/0.jpg"]}
parent author
parent permlinkethereum
permlinkintroducing-dauth-a-decentralized-authentication-for-dapps
titleIntroducing DAuth - A decentralized authentication for DApps
Transaction InfoBlock #22683821/Trx a5bbbfb45accb02c765663887e8f193c55648c48
View Raw JSON Data
{
  "block": 22683821,
  "op": [
    "comment",
    {
      "author": "madhavanmalolan",
      "body": "```\neip: ERC 1115\ntitle: DAuth - Decentralized authentication mechanism for DApps\nauthor: madhavanmalolan\ndiscussion-to: [email protected]\nstatus: Draft\ntype: Standards Track\ncategory: ERC\ncreated: 2018-05-23\n```\n# Simple Summary\nThis is an authentication mechanism like _\"Login with Facebook\"_ and _\"Sign in with Google\"_ that is completely decentralized and helps DApps authenticate users.\n\n# Abstract\nDAuth is a specification for an alternative to OAuth that allows DApps to accept user logins in a completely decentralized way - helping the DApp acertain the Ethereum address owned by the user. This login uses a familiar username-password pair that would allow logins to happen from any device or environment without the need for external libraries and extensions like Web3.\n\n# Motivation\nMany DApps that perform some form of personalization need to identify the user. Consider, for example, the case of a popular DApp - [CryptoKitties](https://cryptokitties.co). CryptoKitties is a web based DApp and allows users to view, buy, sell and _breed_ CryptoKitties. The only way to login into the application is using MetaMask which is a Web3 injector. It is not possible to view _My kitties_ using a device that doesn't have MetaMask installed even if I do not intend to make any transactions.\n\nDAuth will enable DApps to allow users to establish their identity by proving the ownership of their Ethereum address. \n\n# Design \nWe first describe the _Authentication Game_ which takes place to authenticate a user.\n\n## 0. Registration\nA user registers by setting up a HTTP server (called the Dauth server). The user generates a password and a public-private key pair and stores the private key and the hash of the password on the server. Then, registers a username on the smart contract by providing the desired username, the public key and the address of the DAuth server.\n\nAll usernames on the contract are unique.\n\n## 1. DApp Login\nTo login into a DApp, the user provides the following to the endpoint that performs the authentication on the DApp.\n- **Code** : This is a random string that identifies the current authentication session. The authentication will go through only once for a given code.\n- **HashCode** : `sha3(sha3(password), code)`\n- **Username** : The username that was registered and confirmed on the smart contract.\n\nIn order to verify this request, the DApp will fetch the public key and DAuth server address from the smart contract.\n\nThe DApp shall then generate a _Secret_ string - which may be a random string. It will then pass the following parameters to the DAuth server's verification endpoint.\n- **Code** : As provided by the user\n- **HashCode** : As provided by the user\n- **Username** : As provided by the user\n- **Cipher** : The _Secret string_ encrypted using the user's public key\n\n## 2. DAuth server verification\nThe DAuth server on receiving the request from the DApp, fetches the hash of the password and the private key from its database corresponding to the username in the request.\n\nIt then validates if `HashCode = sha3(hash of password, code)`\n\nIf the HashCode is valid, and the code has not been used before, it tries to decrypt the Cipher using the private key and sends the decrypted value back to the DApp\n\n## 3. Verification\nThe DApp may authenticate the user if the response from the DAuth server is the same as the Secret it used to generate the Cipher.\n\n# Specification\n\n## Smart Contract\n### set\n```\n function set(string username, string dauth_url, string public_key) public returns (bool)\n\n event NewUser(address from, string username, bool success);\n```\nMust insert a mapping between the `msg.sender` and the username, DAuth Server address, and public key.\n\nMust  emit `NewUser(address, username, true)` if successfully created, `NewUser(address, username, false)` if it fails.\n### getUsername\n```\n function getUsername(address user_address) public view returns (string)\n```\nReturns the username associated with a given address. Returns a blank string if no username exists for that address.\n\n### getAddress\n```\n function getAddress(string username) public view returns (address)\n```\nReturns the address associated with the username. Returns a blank string if the username is not registered.\n### getDauthUrl\n```\n function getDauthUrl(string username) public view returns (string)\n```\nReturns the DAuth Server address associated with the username. Returns a blank string if the username is not registered. \n### getDauthPublicKey\n```\n function getDauthPublicKey(string username) public view returns (string)\n```\nReturns the public key associated with the username. Returns a blank string if the username is not registered.\n\n\n## DAuth Server\nThe DAuth server must expose two endpoints\n### Verification Endpoint\nThis is the endpoint using a POST request to the DAuth Server address. This takes as parameters\n```\n{\n    username : string,\n    cipher : string,\n    code : string,\n    hashcode : string\n}\n```\n\nIf verification is successful, returns \n```\n200\n{ data : <decrypted value> }\n```\nelse,\n```\n403\n{ data : <reason for failure> }\n```\n\n### Login Page \nThis is a GET request to the DAuth Server address. This takes as query parameter the verifier url.\nOn the webpage it must accept the username and password, generate the code and hashcode and transmit the username, code and hashcode to the verifier (DApp).\n\n\n## DApp\nThe Dapp must provide an endpoint called the _verifier URL_ that is a GET request that can be accessed from a web browser. This endpoint gets the following query parameters : code, hashcode, username. This endpoint may respond accordingly based on the success of the login.\n\n# Implementation\n## Smart Contract\nThe smart contract is hosted on the Rinkeby testnet - [Link](https://rinkeby.etherscan.io/address/0xb19d6bf34cf6cecc50c4a73c38f54defcf9e8f6a)\n\n## DAuth Server\nA user may run a self hosted DAuth Server by cloning [this](https://github.com/madhavanmalolan/dauth/tree/master/server) repository.\nFor the sake of simplicity and a demo, a DAuth Server has been setup at [dauth.co](https://dauth.co) on which users may choose to host their credentials if they are not able to host a server on their own.\n\n## Verifier\nThe DApps may use a the promise based nodejs implementation, which abstracts out all implementation details.\n\n## Source\nAll the code for the smart contract and the Dauth Server are opensourced at [this repository](https://github.com/madhavanmalolan/dauth).\n\n# Demo \nA demo is available at [dauth.co](https://dauth.co)\n\n# More details\nA white paper is made available that digs deeper into technical details : [dauth.pdf](https://github.com/madhavanmalolan/dauth/blob/master/dauth.pdf)\n\nhttps://www.youtube.com/watch?v=Tgnk3pqNxSw\n\n# Participate\nPlease do join in the [discussions on GitHub for ERC 1115](https://github.com/ethereum/EIPs/issues/1115)",
      "json_metadata": "{\"tags\":[\"ethereum\",\"smart-contract\",\"cryptocurrency\",\"bitcoin\",\"crypto\"],\"links\":[\"https://cryptokitties.co\",\"https://rinkeby.etherscan.io/address/0xb19d6bf34cf6cecc50c4a73c38f54defcf9e8f6a\",\"https://github.com/madhavanmalolan/dauth/tree/master/server\",\"https://dauth.co\",\"https://github.com/madhavanmalolan/dauth\",\"https://github.com/madhavanmalolan/dauth/blob/master/dauth.pdf\",\"https://www.youtube.com/watch?v=Tgnk3pqNxSw\",\"https://github.com/ethereum/EIPs/issues/1115\"],\"app\":\"steemit/0.1\",\"format\":\"markdown\",\"image\":[\"https://img.youtube.com/vi/Tgnk3pqNxSw/0.jpg\"]}",
      "parent_author": "",
      "parent_permlink": "ethereum",
      "permlink": "introducing-dauth-a-decentralized-authentication-for-dapps",
      "title": "Introducing DAuth - A decentralized authentication for DApps"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-05-23T13:58:21",
  "trx_id": "a5bbbfb45accb02c765663887e8f193c55648c48",
  "trx_in_block": 30,
  "virtual_op": 0
}
raise-me-upsent 0.001 SBD to @madhavanmalolan- "✔ Promote your post with more than 21,200 Followers for only 1 SBD or 1.5 STEEM. Invest in your account to succeed! Find new friends/voters who will vote your posts daily. Put post's url in memo and @..."
2018/05/23 12:48:54
amount0.001 SBD
fromraise-me-up
memo✔ Promote your post with more than 21,200 Followers for only 1 SBD or 1.5 STEEM. Invest in your account to succeed! Find new friends/voters who will vote your posts daily. Put post's url in memo and @raise-me-up will resteem your post + 100% upvote. 365 days Active.
tomadhavanmalolan
Transaction InfoBlock #22682432/Trx c64e0a4ff5156e6af84254a383b8c455bea260de
View Raw JSON Data
{
  "block": 22682432,
  "op": [
    "transfer",
    {
      "amount": "0.001 SBD",
      "from": "raise-me-up",
      "memo": "✔ Promote your post with more than 21,200 Followers for only 1 SBD or 1.5 STEEM. Invest in your account to succeed! Find new friends/voters who will vote your posts daily. Put post's url in memo and @raise-me-up will resteem your post + 100% upvote. 365 days Active.",
      "to": "madhavanmalolan"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-05-23T12:48:54",
  "trx_id": "c64e0a4ff5156e6af84254a383b8c455bea260de",
  "trx_in_block": 53,
  "virtual_op": 0
}
madhavanmalolansent 15.000 SBD to @null- "@madhavanmalolan/introducing-dauth-a-decentralized-authentication-for-dapps"
2018/05/23 11:23:06
amount15.000 SBD
frommadhavanmalolan
memo@madhavanmalolan/introducing-dauth-a-decentralized-authentication-for-dapps
tonull
Transaction InfoBlock #22680718/Trx 22f20c213cf38d55bbbb274a6152f594c05b0114
View Raw JSON Data
{
  "block": 22680718,
  "op": [
    "transfer",
    {
      "amount": "15.000 SBD",
      "from": "madhavanmalolan",
      "memo": "@madhavanmalolan/introducing-dauth-a-decentralized-authentication-for-dapps",
      "to": "null"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-05-23T11:23:06",
  "trx_id": "22f20c213cf38d55bbbb274a6152f594c05b0114",
  "trx_in_block": 1,
  "virtual_op": 0
}
2018/05/23 11:22:45
authormadhavanmalolan
body@@ -1254,16 +1254,111 @@ smile:%0A%0A +# Set up%0ASetting it up takes just a few minutes!%0A%0Ahttps://www.youtube.com/watch?v=Tgnk3pqNxSw%0A%0A Looking
json metadata{"tags":["ethereum","smart-contract","cryptocurrency","bitcoin","crypto"],"links":["https://github.com/madhavanmalolan/dauth","https://github.com/madhavanmalolan/dauth/blob/master/dauth.pdf","https://dauth.co","https://www.youtube.com/watch?v=Tgnk3pqNxSw"],"app":"steemit/0.1","format":"markdown","image":["https://img.youtube.com/vi/Tgnk3pqNxSw/0.jpg"]}
parent author
parent permlinkethereum
permlinkintroducing-dauth-a-decentralized-authentication-for-dapps
titleIntroducing DAuth - A decentralized authentication for DApps
Transaction InfoBlock #22680711/Trx 7a2c8e8b0f943dbb5caecebb708e10db29fdf5a3
View Raw JSON Data
{
  "block": 22680711,
  "op": [
    "comment",
    {
      "author": "madhavanmalolan",
      "body": "@@ -1254,16 +1254,111 @@\n smile:%0A%0A\n+# Set up%0ASetting it up takes just a few minutes!%0A%0Ahttps://www.youtube.com/watch?v=Tgnk3pqNxSw%0A%0A\n Looking \n",
      "json_metadata": "{\"tags\":[\"ethereum\",\"smart-contract\",\"cryptocurrency\",\"bitcoin\",\"crypto\"],\"links\":[\"https://github.com/madhavanmalolan/dauth\",\"https://github.com/madhavanmalolan/dauth/blob/master/dauth.pdf\",\"https://dauth.co\",\"https://www.youtube.com/watch?v=Tgnk3pqNxSw\"],\"app\":\"steemit/0.1\",\"format\":\"markdown\",\"image\":[\"https://img.youtube.com/vi/Tgnk3pqNxSw/0.jpg\"]}",
      "parent_author": "",
      "parent_permlink": "ethereum",
      "permlink": "introducing-dauth-a-decentralized-authentication-for-dapps",
      "title": "Introducing DAuth - A decentralized authentication for DApps"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-05-23T11:22:45",
  "trx_id": "7a2c8e8b0f943dbb5caecebb708e10db29fdf5a3",
  "trx_in_block": 9,
  "virtual_op": 0
}
blocktradessent 14.660 SBD to @madhavanmalolan
2018/05/23 11:21:18
amount14.660 SBD
fromblocktrades
memo
tomadhavanmalolan
Transaction InfoBlock #22680682/Trx 051a7d9052a5d72862c6644144b5b48a058c4b3c
View Raw JSON Data
{
  "block": 22680682,
  "op": [
    "transfer",
    {
      "amount": "14.660 SBD",
      "from": "blocktrades",
      "memo": "",
      "to": "madhavanmalolan"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-05-23T11:21:18",
  "trx_id": "051a7d9052a5d72862c6644144b5b48a058c4b3c",
  "trx_in_block": 63,
  "virtual_op": 0
}
madhavanmalolansent 0.300 SBD to @null- "@madhavanmalolan/introducing-dauth-a-decentralized-authentication-for-dapps"
2018/05/23 11:11:00
amount0.300 SBD
frommadhavanmalolan
memo@madhavanmalolan/introducing-dauth-a-decentralized-authentication-for-dapps
tonull
Transaction InfoBlock #22680476/Trx b8b1e3820959eab71dcabccfc3161f8321577b77
View Raw JSON Data
{
  "block": 22680476,
  "op": [
    "transfer",
    {
      "amount": "0.300 SBD",
      "from": "madhavanmalolan",
      "memo": "@madhavanmalolan/introducing-dauth-a-decentralized-authentication-for-dapps",
      "to": "null"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-05-23T11:11:00",
  "trx_id": "b8b1e3820959eab71dcabccfc3161f8321577b77",
  "trx_in_block": 64,
  "virtual_op": 0
}
blocktradessent 1.048 SBD to @madhavanmalolan
2018/05/23 11:10:06
amount1.048 SBD
fromblocktrades
memo
tomadhavanmalolan
Transaction InfoBlock #22680458/Trx 4838bfafb057cf4148470cb3b62d9836f4693e4c
View Raw JSON Data
{
  "block": 22680458,
  "op": [
    "transfer",
    {
      "amount": "1.048 SBD",
      "from": "blocktrades",
      "memo": "",
      "to": "madhavanmalolan"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-05-23T11:10:06",
  "trx_id": "4838bfafb057cf4148470cb3b62d9836f4693e4c",
  "trx_in_block": 13,
  "virtual_op": 0
}
blocktradessent 0.309 SBD to @madhavanmalolan
2018/05/23 11:05:24
amount0.309 SBD
fromblocktrades
memo
tomadhavanmalolan
Transaction InfoBlock #22680364/Trx a95bc95dd48e7a0c7d0cc42d9fbcca8d787492f8
View Raw JSON Data
{
  "block": 22680364,
  "op": [
    "transfer",
    {
      "amount": "0.309 SBD",
      "from": "blocktrades",
      "memo": "",
      "to": "madhavanmalolan"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-05-23T11:05:24",
  "trx_id": "a95bc95dd48e7a0c7d0cc42d9fbcca8d787492f8",
  "trx_in_block": 1,
  "virtual_op": 0
}
2018/05/23 10:17:48
authormadhavanmalolan
permlinkintroducing-dauth-a-decentralized-authentication-for-dapps
voteroriginalworks
weight200 (2.00%)
Transaction InfoBlock #22679414/Trx 90fe3de741f9ce05bd5eab23c287290a672f7685
View Raw JSON Data
{
  "block": 22679414,
  "op": [
    "vote",
    {
      "author": "madhavanmalolan",
      "permlink": "introducing-dauth-a-decentralized-authentication-for-dapps",
      "voter": "originalworks",
      "weight": 200
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-05-23T10:17:48",
  "trx_id": "90fe3de741f9ce05bd5eab23c287290a672f7685",
  "trx_in_block": 20,
  "virtual_op": 0
}
2018/05/23 10:13:24
authormadhavanmalolan
body@@ -1250,15 +1250,8 @@ is : -slight_ smil
json metadata{"tags":["ethereum","smart-contract","cryptocurrency","bitcoin","crypto"],"links":["https://github.com/madhavanmalolan/dauth","https://github.com/madhavanmalolan/dauth/blob/master/dauth.pdf","https://dauth.co"],"app":"steemit/0.1","format":"markdown"}
parent author
parent permlinkethereum
permlinkintroducing-dauth-a-decentralized-authentication-for-dapps
titleIntroducing DAuth - A decentralized authentication for DApps
Transaction InfoBlock #22679326/Trx 43d800dec9df3b1cf94ece689cc0113e2c285402
View Raw JSON Data
{
  "block": 22679326,
  "op": [
    "comment",
    {
      "author": "madhavanmalolan",
      "body": "@@ -1250,15 +1250,8 @@\n is :\n-slight_\n smil\n",
      "json_metadata": "{\"tags\":[\"ethereum\",\"smart-contract\",\"cryptocurrency\",\"bitcoin\",\"crypto\"],\"links\":[\"https://github.com/madhavanmalolan/dauth\",\"https://github.com/madhavanmalolan/dauth/blob/master/dauth.pdf\",\"https://dauth.co\"],\"app\":\"steemit/0.1\",\"format\":\"markdown\"}",
      "parent_author": "",
      "parent_permlink": "ethereum",
      "permlink": "introducing-dauth-a-decentralized-authentication-for-dapps",
      "title": "Introducing DAuth - A decentralized authentication for DApps"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-05-23T10:13:24",
  "trx_id": "43d800dec9df3b1cf94ece689cc0113e2c285402",
  "trx_in_block": 16,
  "virtual_op": 0
}
2018/05/23 09:41:57
authormadhavanmalolan
body# Introduction DAuth is a replacement to OAuth based authentication systems like "Login with Facebook", "Sign in with Google". # Motivation I was building a DApp, and realized there is no way for the user to deterministically say which ethereum address she owns without using MetaMask or other Web3 providers and are instantaneous. Let us take the example of CryptoKitties. Though making any transaction like selling/buying should need MetaMask - just viewing my kitties should be possible on any device that may or may not have Web3, using a simple username password. # Solution I created a simple protocol describing the exchange of messages, in a way similar to OAuth. This uses an authentication server that can be self hosted by the user. The identities and the authentication flow is determined by a smart contract. All logins are instantaneous and free of transaction costs. # More information ## GitHub [https://github.com/madhavanmalolan/dauth](https://github.com/madhavanmalolan/dauth) ## Whitepaper [dauth.pdf](https://github.com/madhavanmalolan/dauth/blob/master/dauth.pdf) # Demo [https://dauth.co](https://dauth.co) # Disclaimer I am relatively new to designing decentralized systems, I would love to hear your feedback on this :slight_smile: Looking forward to help the community.
json metadata{"tags":["ethereum","smart-contract","cryptocurrency","bitcoin","crypto"],"links":["https://github.com/madhavanmalolan/dauth","https://github.com/madhavanmalolan/dauth/blob/master/dauth.pdf","https://dauth.co"],"app":"steemit/0.1","format":"markdown"}
parent author
parent permlinkethereum
permlinkintroducing-dauth-a-decentralized-authentication-for-dapps
titleIntroducing DAuth - A decentralized authentication for DApps
Transaction InfoBlock #22678698/Trx 9f8cc5e123c3779d79291cc46633dac3ad35e27f
View Raw JSON Data
{
  "block": 22678698,
  "op": [
    "comment",
    {
      "author": "madhavanmalolan",
      "body": "# Introduction\nDAuth is a replacement to OAuth based authentication systems like \"Login with Facebook\", \"Sign in with Google\".\n\n# Motivation\nI was building a DApp, and realized there is no way for the user to deterministically say which ethereum address she owns without using MetaMask or other Web3 providers and are instantaneous.\n\nLet us take the example of CryptoKitties. Though making any transaction like selling/buying should need MetaMask - just viewing my kitties should be possible on any device that may or may not have Web3, using a simple username password.\n\n# Solution\nI created a simple protocol describing the exchange of messages, in a way similar to OAuth. This uses an authentication server that can be self hosted by the user. The identities and the authentication flow is determined by a smart contract.\n\nAll logins are instantaneous and free of transaction costs.\n\n# More information\n## GitHub\n[https://github.com/madhavanmalolan/dauth](https://github.com/madhavanmalolan/dauth)\n\n## Whitepaper \n[dauth.pdf](https://github.com/madhavanmalolan/dauth/blob/master/dauth.pdf)\n\n# Demo \n[https://dauth.co](https://dauth.co)\n\n# Disclaimer\nI am relatively new to designing decentralized systems, I would love to hear your feedback on this :slight_smile:\n\nLooking forward to help the community.",
      "json_metadata": "{\"tags\":[\"ethereum\",\"smart-contract\",\"cryptocurrency\",\"bitcoin\",\"crypto\"],\"links\":[\"https://github.com/madhavanmalolan/dauth\",\"https://github.com/madhavanmalolan/dauth/blob/master/dauth.pdf\",\"https://dauth.co\"],\"app\":\"steemit/0.1\",\"format\":\"markdown\"}",
      "parent_author": "",
      "parent_permlink": "ethereum",
      "permlink": "introducing-dauth-a-decentralized-authentication-for-dapps",
      "title": "Introducing DAuth - A decentralized authentication for DApps"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-05-23T09:41:57",
  "trx_id": "9f8cc5e123c3779d79291cc46633dac3ad35e27f",
  "trx_in_block": 49,
  "virtual_op": 0
}
2018/05/14 18:13:24
authorsteemitboard
bodyCongratulations @madhavanmalolan! You have completed some achievement on Steemit and have been rewarded with new badge(s) : [![](https://steemitimages.com/70x80/http://steemitboard.com/notifications/firstpost.png)](http://steemitboard.com/@madhavanmalolan) You published your First Post [![](https://steemitimages.com/70x80/http://steemitboard.com/notifications/firstvoted.png)](http://steemitboard.com/@madhavanmalolan) You got a First Vote Click on any badge to view your own Board of Honor on SteemitBoard. For more information about SteemitBoard, click [here](https://steemit.com/@steemitboard) If you no longer want to receive notifications, reply to this comment with the word `STOP` > Upvote this notification to help all Steemit users. Learn why [here](https://steemit.com/steemitboard/@steemitboard/http-i-cubeupload-com-7ciqeo-png)!
json metadata{"image":["https://steemitboard.com/img/notifications.png"]}
parent authormadhavanmalolan
parent permlink6swexy-introducing-dauth-a-decentralized-authentication-mechanism
permlinksteemitboard-notify-madhavanmalolan-20180514t181326000z
title
Transaction InfoBlock #22429778/Trx 1a6ae98c511636d0c6b7a95d63421e5fd4aceb57
View Raw JSON Data
{
  "block": 22429778,
  "op": [
    "comment",
    {
      "author": "steemitboard",
      "body": "Congratulations @madhavanmalolan! You have completed some achievement on Steemit and have been rewarded with new badge(s) :\n\n[![](https://steemitimages.com/70x80/http://steemitboard.com/notifications/firstpost.png)](http://steemitboard.com/@madhavanmalolan) You published your First Post\n[![](https://steemitimages.com/70x80/http://steemitboard.com/notifications/firstvoted.png)](http://steemitboard.com/@madhavanmalolan) You got a First Vote\n\nClick on any badge to view your own Board of Honor on SteemitBoard.\nFor more information about SteemitBoard, click [here](https://steemit.com/@steemitboard)\n\nIf you no longer want to receive notifications, reply to this comment with the word `STOP`\n\n> Upvote this notification to help all Steemit users. Learn why [here](https://steemit.com/steemitboard/@steemitboard/http-i-cubeupload-com-7ciqeo-png)!",
      "json_metadata": "{\"image\":[\"https://steemitboard.com/img/notifications.png\"]}",
      "parent_author": "madhavanmalolan",
      "parent_permlink": "6swexy-introducing-dauth-a-decentralized-authentication-mechanism",
      "permlink": "steemitboard-notify-madhavanmalolan-20180514t181326000z",
      "title": ""
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-05-14T18:13:24",
  "trx_id": "1a6ae98c511636d0c6b7a95d63421e5fd4aceb57",
  "trx_in_block": 52,
  "virtual_op": 0
}
2018/05/14 03:08:00
authormadhavanmalolan
bodyThis is a non technical overview. For a technical overview [visit this page](https://steemit.com/ethereum/@madhavanmalolan/introducing-dauth-a-decentralized-authentication-mechanism). We have for long been aware of social plugins that allow us to login on various websites. However, I can’t login from a different computer into CryptoKitties. The only way to access my kitties is if i am at my primary laptop. This felt like a major step back. I decided to fix it. # There is no way to authenticate on Ethereum ## No decentralized solution OAuth that Facebook, Google and Twitter use for their service login use OAuth and are highly centralized. This is a major let down for any service that aims to be truely de-centralized. ## No way to authenticate claims As of today there is no good way to map a user to his or her Ethereum address. ## No human readable identifiers The only way to identify some entity on Ethereum is using the address, which is hard to remember and not human friendly at all. ## No way to decouple identity from payment Most authentication procedures i have seen on this use the public-private keys associated with the Ethereum address. So, if the keys are compromised — so are the Ethers. ## No way to authenticate remotely To login using a Ethereum account you usually need to have MetaMask installed on your browser and this browser is the only place where you can use the login. You cannot login from your iPad. ## No way to authenticate without paying Many solutions expect you to make a transaction and pay the transaction fees associated with it to merely login. ## Non trivial to integrate Using existing login mechanisms on Ethereum expect you to setup an Ethereum Node and use Web3 to authenticate. # Welcome DAuth ## DAuth is decentralized Building on the simplicity of OAuth, DAuth is a simple authentication protocol that doesn’t rely on a central authority. Anyone can setup their own DAuth servers ## DAuth verifies address claims DAuth provides a way for users to claim that they own a certain Ethereum address. ## DAuth addresses are human readable DAuth uses usernames instead of addresses. This makes it easy to remember identities. ## DAuth is decoupled from payments DAuth’s keys used for authentication are different from the ones used for Ethereum transaction signatures. This makes sure that the Ethers are never compromised ## DAuth is in the cloud Once registered, you can login using DAuth from any device anywhere in the world ## DAuth is free Users don’t have to make any payment to access the service. ## DAuth is trivial to integrate DAuth integration is very similar to an OAuth integration, no new technologies involved! ## DAuth is open sourced! Check out the [Github Repo](https://github.com/madhavanmalolan/dauth) # Demo [dauth.co](https://dauth.co) I look forward to your comments.
json metadata{"tags":["ethereum","blockchain","authentication","web","login"],"links":["https://steemit.com/ethereum/@madhavanmalolan/introducing-dauth-a-decentralized-authentication-mechanism","https://github.com/madhavanmalolan/dauth","https://dauth.co"],"app":"steemit/0.1","format":"markdown"}
parent author
parent permlinkethereum
permlink6swexy-introducing-dauth-a-decentralized-authentication-mechanism
titleIntroducing DAuth - A decentralized authentication mechanism
Transaction InfoBlock #22411671/Trx 3b5fe3690c08985b0f5302c8904640cd116355b4
View Raw JSON Data
{
  "block": 22411671,
  "op": [
    "comment",
    {
      "author": "madhavanmalolan",
      "body": "This is a non technical overview. \nFor a technical overview [visit this page](https://steemit.com/ethereum/@madhavanmalolan/introducing-dauth-a-decentralized-authentication-mechanism).\n\nWe have for long been aware of social plugins that allow us to login on various websites. \n\nHowever, I can’t login from a different computer into CryptoKitties. The only way to access my kitties is if i am at my primary laptop.\n\nThis felt like a major step back. I decided to fix it.\n\n# There is no way to authenticate on Ethereum\n## No decentralized solution\n\nOAuth that Facebook, Google and Twitter use for their service login use OAuth and are highly centralized. This is a major let down for any service that aims to be truely de-centralized.\n## No way to authenticate claims\n\nAs of today there is no good way to map a user to his or her Ethereum address.\n\n## No human readable identifiers\n\nThe only way to identify some entity on Ethereum is using the address, which is hard to remember and not human friendly at all.\n\n## No way to decouple identity from payment\n\nMost authentication procedures i have seen on this use the public-private keys associated with the Ethereum address. So, if the keys are compromised — so are the Ethers.\n\n## No way to authenticate remotely\n\nTo login using a Ethereum account you usually need to have MetaMask installed on your browser and this browser is the only place where you can use the login. You cannot login from your iPad.\n\n## No way to authenticate without paying\n\nMany solutions expect you to make a transaction and pay the transaction fees associated with it to merely login.\n\n## Non trivial to integrate\n\nUsing existing login mechanisms on Ethereum expect you to setup an Ethereum Node and use Web3 to authenticate.\n\n# Welcome DAuth\n## DAuth is decentralized\n\nBuilding on the simplicity of OAuth, DAuth is a simple authentication protocol that doesn’t rely on a central authority. Anyone can setup their own DAuth servers\n\n## DAuth verifies address claims\n\nDAuth provides a way for users to claim that they own a certain Ethereum address.\n\n## DAuth addresses are human readable\n\nDAuth uses usernames instead of addresses. This makes it easy to remember identities.\n\n## DAuth is decoupled from payments\n\nDAuth’s keys used for authentication are different from the ones used for Ethereum transaction signatures. This makes sure that the Ethers are never compromised\n\n## DAuth is in the cloud\n\nOnce registered, you can login using DAuth from any device anywhere in the world\n\n## DAuth is free\n\nUsers don’t have to make any payment to access the service.\n\n## DAuth is trivial to integrate\n\nDAuth integration is very similar to an OAuth integration, no new technologies involved!\n\n## DAuth is open sourced!\n\nCheck out the [Github Repo](https://github.com/madhavanmalolan/dauth)\n\n# Demo\n[dauth.co](https://dauth.co)\n\nI look forward to your comments.",
      "json_metadata": "{\"tags\":[\"ethereum\",\"blockchain\",\"authentication\",\"web\",\"login\"],\"links\":[\"https://steemit.com/ethereum/@madhavanmalolan/introducing-dauth-a-decentralized-authentication-mechanism\",\"https://github.com/madhavanmalolan/dauth\",\"https://dauth.co\"],\"app\":\"steemit/0.1\",\"format\":\"markdown\"}",
      "parent_author": "",
      "parent_permlink": "ethereum",
      "permlink": "6swexy-introducing-dauth-a-decentralized-authentication-mechanism",
      "title": "Introducing DAuth - A decentralized authentication mechanism"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-05-14T03:08:00",
  "trx_id": "3b5fe3690c08985b0f5302c8904640cd116355b4",
  "trx_in_block": 37,
  "virtual_op": 0
}
2018/05/14 03:07:30
authoremergedinsteem
body@therealwolf 's created platform smartsteem scammed my post this morning (mothersday) that was supposed to be for an Abused Childrens Charity. Dude literally stole from abused children that don't have mothers ... on mothersday. https://steemit.com/steemit/@prometheusrisen/beware-of-smartsteem-scam
json metadata{}
parent authormadhavanmalolan
parent permlinkintroducing-dauth-a-decentralized-authentication-mechanism
permlinkre-madhavanmalolan-introducing-dauth-a-decentralized-authentication-mechanism-20180514t030730121z
titlefossbot voter comment
Transaction InfoBlock #22411661/Trx 5ff9f7b48c9871a3619512a5239d25691e5d5ff0
View Raw JSON Data
{
  "block": 22411661,
  "op": [
    "comment",
    {
      "author": "emergedinsteem",
      "body": "@therealwolf 's created platform smartsteem scammed my post this morning (mothersday) that was supposed to be for an Abused Childrens Charity.  Dude literally stole from abused children that don't have mothers ... on mothersday.  \r\n\r\nhttps://steemit.com/steemit/@prometheusrisen/beware-of-smartsteem-scam",
      "json_metadata": "{}",
      "parent_author": "madhavanmalolan",
      "parent_permlink": "introducing-dauth-a-decentralized-authentication-mechanism",
      "permlink": "re-madhavanmalolan-introducing-dauth-a-decentralized-authentication-mechanism-20180514t030730121z",
      "title": "fossbot voter comment"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-05-14T03:07:30",
  "trx_id": "5ff9f7b48c9871a3619512a5239d25691e5d5ff0",
  "trx_in_block": 20,
  "virtual_op": 0
}
steemdelegated 18.646 SP to @madhavanmalolan
2018/05/14 03:07:21
delegateemadhavanmalolan
delegatorsteem
vesting shares30323.394531 VESTS
Transaction InfoBlock #22411658/Trx 52209b2e4e64750c4360ca1d144ee95497320d38
View Raw JSON Data
{
  "block": 22411658,
  "op": [
    "delegate_vesting_shares",
    {
      "delegatee": "madhavanmalolan",
      "delegator": "steem",
      "vesting_shares": "30323.394531 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-05-14T03:07:21",
  "trx_id": "52209b2e4e64750c4360ca1d144ee95497320d38",
  "trx_in_block": 3,
  "virtual_op": 0
}
2018/05/14 03:02:18
authorintroduce.bot
body✅ @madhavanmalolan, congratulations on making your first post! **I gave you an upvote!**<br><br>**Please give me a follow** and take a moment to read [this post](https://steemit.com/spam/@pleasestop/introducing-pleasestop-here-to-reduce-comment-spam) regarding commenting and spam.<br>(tl;dr - if you spam, you will be flagged!)
json metadata
parent authormadhavanmalolan
parent permlinkintroducing-dauth-a-decentralized-authentication-mechanism
permlinkintroduce-bot-re-madhavanmalolanintroducing-dauth-a-decentralized-authentication-mechanism
title
Transaction InfoBlock #22411557/Trx d389cb5ed9caf9951b3f9956d4937f24d3634b64
View Raw JSON Data
{
  "block": 22411557,
  "op": [
    "comment",
    {
      "author": "introduce.bot",
      "body": "✅  @madhavanmalolan, congratulations on making your first post! **I gave you an upvote!**<br><br>**Please give me a follow** and take a moment to read [this post](https://steemit.com/spam/@pleasestop/introducing-pleasestop-here-to-reduce-comment-spam) regarding commenting and spam.<br>(tl;dr - if you spam, you will be flagged!)",
      "json_metadata": "",
      "parent_author": "madhavanmalolan",
      "parent_permlink": "introducing-dauth-a-decentralized-authentication-mechanism",
      "permlink": "introduce-bot-re-madhavanmalolanintroducing-dauth-a-decentralized-authentication-mechanism",
      "title": ""
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-05-14T03:02:18",
  "trx_id": "d389cb5ed9caf9951b3f9956d4937f24d3634b64",
  "trx_in_block": 27,
  "virtual_op": 0
}
2018/05/14 03:02:03
authormadhavanmalolan
permlinkintroducing-dauth-a-decentralized-authentication-mechanism
voterintroduce.bot
weight69 (0.69%)
Transaction InfoBlock #22411552/Trx eb998399051c6f6677487f5364008807e75b2d6e
View Raw JSON Data
{
  "block": 22411552,
  "op": [
    "vote",
    {
      "author": "madhavanmalolan",
      "permlink": "introducing-dauth-a-decentralized-authentication-mechanism",
      "voter": "introduce.bot",
      "weight": 69
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-05-14T03:02:03",
  "trx_id": "eb998399051c6f6677487f5364008807e75b2d6e",
  "trx_in_block": 10,
  "virtual_op": 0
}
2018/05/14 03:01:51
authormadhavanmalolan
body# Tech Overview : A decentralized authentication mechanism for Ethereum DAuth is to Ethereum what OAuth is to the web. Here, I describe briefly the architecture of how DAuth works. # Participants ## User The person who wants to login using credentials on the Dauth System. ## Client A service that wishes to authenticate a user using the Dauth System. ## Dauth Provider A server that will authenticate a user’s claim of credentials and pass on the verification to the client. This server may be hosted by the user or may use a server setup by a person or an organization she trusts. A Dauth provider exposes 2 endpoints — login page, verification REST API. # Flow of control ## User registration The authentication is controlled by a smart contract. To register on DAuth, a user should bind her ethereum address with the following parameters, all stored on the blockchain : - **Username** : All usernames on the Dauth system are unique, thereby removing the need to remember complicated keys. - **Public Key** : Each Dauth user has a public-private key pair that will be used for authentication. This key is independent of the keys used to sign transactions. This keeps the Ethers decoupled with authentication. - **DAuth Provider address** : Every user may choose a DAuth Provider. This may be self hosted or on a server providing Dauth as a service. This Provider is responsible for maintaining the Private key associated with the above mentioned Public Key. - **Verifiers** : A list of Dauth accounts that have verified this address. Eg. “An email address has been verified by Google”, “A phone number has been verified by True Caller” — This allows clients to use Dauth for services that needs a unique login (fighting sybil). The verifiers can add a new entry to the list of verifiers for any user, and mentioning the type of verification (“email”, “phone”, “facebook”) ## Registration with a Dauth Provider The user must provide the following to the Dauth Provider - **Password** : The user must provide a password that must be used by the Dauth Provider to validate that the authentication claims are indeed arising from the user claimed by the client. - **Private Key** : This is the private key associated with the public key stored on the blockchain associated with the users’ address. ## Authentication - **Presenting login page 1**. The client must redirect the user to a page that accepts the user’s username and redirects the user to the login page on the DAuth Provider. The Dauth provider address must be fetched from the blockchain. It must pass a redirect url to the login page 2. - **Presenting login page 2**. This is the login page on the Dauth Provider. The user must verify that she has been redirected to the correct Dauth Provider (by validating the URL or any other identification like UI or display text), and enter the password. Once the password has been entered, two strings are generated. - **Code** : A random string - **CodeHash** : SHA256(Code, Password) The Code and the CodeHash are passed to redirectURL, which is the endpoint exposed by the client. - **Redirect URL verification** : The client receives the Code and CodeHash on the Redirection URL endpoint as a POST request. This endpoint must pass the following parameters on a POST request to the Dauth Provider’s second endpoint — verification api : - **Code** : The code that this endpoint received from the login page 2 - **CodeHash** : The code hash this endpoint received from the login page 2 - **MessageCipher** : A random string encrypted using the user’s public key. - **Username** : username received from the login page 2 Verification API. The verification api verifies that the CodeHash = SHA256(Code, Password) of the user identified by the username. If true, it decrypts the MessageCipher using the registered private key and sends that back as a response. Final authentication. The client receives the decrypted message as a response to the call to verification api. It may then verify that the random string that was encrypted using the public key is the same as the string that it received in response. If true, it may proceed with a successful authentication for the user. # Demo Try it out at [https://dauth.co](https://dauth.co) # Source Code You may check out the smart contract, Dauth Provider and Client code on [github](https://github.com/madhavanmalolan/dauth).
json metadata{"tags":["ethereum","blockchain","authentication","login","web"],"links":["https://dauth.co","https://github.com/madhavanmalolan/dauth"],"app":"steemit/0.1","format":"markdown"}
parent author
parent permlinkethereum
permlinkintroducing-dauth-a-decentralized-authentication-mechanism
titleIntroducing DAuth - A decentralized authentication mechanism
Transaction InfoBlock #22411548/Trx d57930ba0bac99a39e774ea3a610ddda2de2b0f1
View Raw JSON Data
{
  "block": 22411548,
  "op": [
    "comment",
    {
      "author": "madhavanmalolan",
      "body": "# Tech Overview : A decentralized authentication mechanism for Ethereum\n\nDAuth is to Ethereum what OAuth is to the web.\n\nHere, I describe briefly the architecture of how DAuth works.\n# Participants\n## User\n\nThe person who wants to login using credentials on the Dauth System.\n## Client\n\nA service that wishes to authenticate a user using the Dauth System.\n## Dauth Provider\n\nA server that will authenticate a user’s claim of credentials and pass on the verification to the client. This server may be hosted by the user or may use a server setup by a person or an organization she trusts. A Dauth provider exposes 2 endpoints — login page, verification REST API.\n\n# Flow of control\n## User registration\n\nThe authentication is controlled by a smart contract. To register on DAuth, a user should bind her ethereum address with the following parameters, all stored on the blockchain :\n- **Username** : All usernames on the Dauth system are unique, thereby removing the need to remember complicated keys.\n- **Public Key** : Each Dauth user has a public-private key pair that will be used for authentication. This key is independent of the keys used to sign transactions. This keeps the Ethers decoupled with authentication.\n- **DAuth Provider address** : Every user may choose a DAuth Provider. This may be self hosted or on a server providing Dauth as a service. This Provider is responsible for maintaining the Private key associated with the above mentioned Public Key.\n- **Verifiers** : A list of Dauth accounts that have verified this address. Eg. “An email address has been verified by Google”, “A phone number has been verified by True Caller” — This allows clients to use Dauth for services that needs a unique login (fighting sybil). The verifiers can add a new entry to the list of verifiers for any user, and mentioning the type of verification (“email”, “phone”, “facebook”)\n\n## Registration with a Dauth Provider\n\nThe user must provide the following to the Dauth Provider\n\n- **Password** : The user must provide a password that must be used by the Dauth Provider to validate that the authentication claims are indeed arising from the user claimed by the client.\n- **Private Key** : This is the private key associated with the public key stored on the blockchain associated with the users’ address.\n\n## Authentication\n\n- **Presenting login page 1**. The client must redirect the user to a page that accepts the user’s username and redirects the user to the login page on the DAuth Provider. The Dauth provider address must be fetched from the blockchain. It must pass a redirect url to the login page 2.\n- **Presenting login page 2**. This is the login page on the Dauth Provider. The user must verify that she has been redirected to the correct Dauth Provider (by validating the URL or any other identification like UI or display text), and enter the password. Once the password has been entered, two strings are generated. \n    - **Code** : A random string\n    - **CodeHash** : SHA256(Code, Password)\n    The Code and the CodeHash are passed to redirectURL, which is the endpoint exposed by the client.\n    - **Redirect URL verification** : The client receives the Code and CodeHash on the Redirection URL endpoint as a POST request. This endpoint must pass the following parameters on a POST request to the Dauth Provider’s second endpoint — verification api :\n    - **Code** : The code that this endpoint received from the login page 2\n    - **CodeHash** : The code hash this endpoint received from the login page 2\n    - **MessageCipher** : A random string encrypted using the user’s public key.\n    - **Username** : username received from the login page 2\n    Verification API. The verification api verifies that the CodeHash = SHA256(Code, Password) of the user identified by the username. If true, it decrypts the MessageCipher using the registered private key and sends that back as a response.\n    Final authentication. The client receives the decrypted message as a response to the call to verification api. It may then verify that the random string that was encrypted using the public key is the same as the string that it received in response. If true, it may proceed with a successful authentication for the user.\n\n# Demo\n\nTry it out at [https://dauth.co](https://dauth.co)\n\n# Source Code\n\nYou may check out the smart contract, Dauth Provider and Client code on [github](https://github.com/madhavanmalolan/dauth).",
      "json_metadata": "{\"tags\":[\"ethereum\",\"blockchain\",\"authentication\",\"login\",\"web\"],\"links\":[\"https://dauth.co\",\"https://github.com/madhavanmalolan/dauth\"],\"app\":\"steemit/0.1\",\"format\":\"markdown\"}",
      "parent_author": "",
      "parent_permlink": "ethereum",
      "permlink": "introducing-dauth-a-decentralized-authentication-mechanism",
      "title": "Introducing DAuth - A decentralized authentication mechanism"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-05-14T03:01:51",
  "trx_id": "d57930ba0bac99a39e774ea3a610ddda2de2b0f1",
  "trx_in_block": 37,
  "virtual_op": 0
}
steemcreated a new account: @madhavanmalolan
2018/05/14 02:48:33
active{"account_auths":[],"key_auths":[["STM5wKJU3yEuSxXqgZFdz1vwruqtC6S1TMcM7fKnwnyL3LSYEH1Mo",1]],"weight_threshold":1}
creatorsteem
delegation30690.000000 VESTS
extensions[]
fee0.100 STEEM
json metadata{}
memo keySTM55wzzh1bCJKUqn7cxh379Wg3K4fa7pXheSutQaJuUws1Q1BMP7
new account namemadhavanmalolan
owner{"account_auths":[],"key_auths":[["STM6h5N8xby7azdW6xSUyZQK2NenTZdXvsQKzky4yb5JMvJixrEvo",1]],"weight_threshold":1}
posting{"account_auths":[],"key_auths":[["STM5DNtEJVX1kEmaf7qHJyUZoTbNV2xyTpE6eiYCWsJWX6xRQjq8D",1]],"weight_threshold":1}
Transaction InfoBlock #22411282/Trx b230eb14e5875611fc34f11c66afbf939b10cb52
View Raw JSON Data
{
  "block": 22411282,
  "op": [
    "account_create_with_delegation",
    {
      "active": {
        "account_auths": [],
        "key_auths": [
          [
            "STM5wKJU3yEuSxXqgZFdz1vwruqtC6S1TMcM7fKnwnyL3LSYEH1Mo",
            1
          ]
        ],
        "weight_threshold": 1
      },
      "creator": "steem",
      "delegation": "30690.000000 VESTS",
      "extensions": [],
      "fee": "0.100 STEEM",
      "json_metadata": "{}",
      "memo_key": "STM55wzzh1bCJKUqn7cxh379Wg3K4fa7pXheSutQaJuUws1Q1BMP7",
      "new_account_name": "madhavanmalolan",
      "owner": {
        "account_auths": [],
        "key_auths": [
          [
            "STM6h5N8xby7azdW6xSUyZQK2NenTZdXvsQKzky4yb5JMvJixrEvo",
            1
          ]
        ],
        "weight_threshold": 1
      },
      "posting": {
        "account_auths": [],
        "key_auths": [
          [
            "STM5DNtEJVX1kEmaf7qHJyUZoTbNV2xyTpE6eiYCWsJWX6xRQjq8D",
            1
          ]
        ],
        "weight_threshold": 1
      }
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-05-14T02:48:33",
  "trx_id": "b230eb14e5875611fc34f11c66afbf939b10cb52",
  "trx_in_block": 23,
  "virtual_op": 0
}

Account Metadata

POSTING JSON METADATA
None
JSON METADATA
None
{
  "posting_json_metadata": {},
  "json_metadata": {}
}

Auth Keys

Owner
Single Signature
Public Keys
STM6h5N8xby7azdW6xSUyZQK2NenTZdXvsQKzky4yb5JMvJixrEvo1/1
Active
Single Signature
Public Keys
STM5wKJU3yEuSxXqgZFdz1vwruqtC6S1TMcM7fKnwnyL3LSYEH1Mo1/1
Posting
Single Signature
Public Keys
STM5DNtEJVX1kEmaf7qHJyUZoTbNV2xyTpE6eiYCWsJWX6xRQjq8D1/1
Memo
STM55wzzh1bCJKUqn7cxh379Wg3K4fa7pXheSutQaJuUws1Q1BMP7
{
  "owner": {
    "account_auths": [],
    "key_auths": [
      [
        "STM6h5N8xby7azdW6xSUyZQK2NenTZdXvsQKzky4yb5JMvJixrEvo",
        1
      ]
    ],
    "weight_threshold": 1
  },
  "active": {
    "account_auths": [],
    "key_auths": [
      [
        "STM5wKJU3yEuSxXqgZFdz1vwruqtC6S1TMcM7fKnwnyL3LSYEH1Mo",
        1
      ]
    ],
    "weight_threshold": 1
  },
  "posting": {
    "account_auths": [],
    "key_auths": [
      [
        "STM5DNtEJVX1kEmaf7qHJyUZoTbNV2xyTpE6eiYCWsJWX6xRQjq8D",
        1
      ]
    ],
    "weight_threshold": 1
  },
  "memo": "STM55wzzh1bCJKUqn7cxh379Wg3K4fa7pXheSutQaJuUws1Q1BMP7"
}

Witness Votes

0 / 30
No active witness votes.
[]