Mapping Keybase identities with Ethereum addresses in a secure, cryptographically verifiable manner.
A project by Aragon to provide Ethereum identity.
Ropsten (deployed Feb 27th, 2017): 0x18feabc5f9437676143df8e925554eb4fdb55a91 Kovan (deployed March 8th, 2017): 0xe22fD893Eb285eA7c336158b54aC38f19E63491a
Read the original article
ENS compliance is being worked on.
For now API for the registry is:
To get data regarding a registry, these three constant functions can be used:
getAddress(string username) returns (address)
: Lookup for an address given a username.getUsername(address ethAddress) returns (string username)
: Reverse lookup of username for a given addressmyUsername() returns (string username)
: Reverse lookup for sender
Both funcions are payable and if registry doesn't have funds, it will need some to pay for Oraclize costs.
register(string username, address ethAddress)
: Starts registration for the provided address and username.registerSender(string username)
: Starts registration for tx sender for the provided username.
Anyone can send ether to the contract to pay for verification costs on behalf of the users of the contract.
There is no suicide call nor any way the contract will send ether to anyone that is not Oraclize. Be sure that if you donate, funds will only be used for verifying records in the registry.
These are the gas costs I'm experiencing:
-
Create register request: 230k gas + $0.01 USD in Ether for Oraclize + 1M gas for callback transaction
-
Successfully verify and create registry (performs ecrecover and bytes black magic): 480k gas
-
Failed verify: Will throw and eat all gas :(
Note: See that we are paying for 1M gas to Oraclize and the transaction is only using 480k gas based on my testing, will keep it on 1M on testnet to see the variance among different users, and will settle to a less wasteful value.