ETH Price: $1,967.73 (-0.66%)
 

Overview

ETH Balance

0.021 ETH

Eth Value

$41.32 (@ $1,967.73/ETH)

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Certify144148492022-03-19 5:01:371436 days ago1647666097IN
0x9ae98746...3a986f103
0 ETH0.0010953245.75492091
Set Owner144148282022-03-19 4:57:071436 days ago1647665827IN
0x9ae98746...3a986f103
0 ETH0.001255152.47752163
Drain115622852020-12-31 13:45:071878 days ago1609422307IN
0x9ae98746...3a986f103
0 ETH0.00243767109
Transfer113566122020-11-29 23:41:151910 days ago1606693275IN
0x9ae98746...3a986f103
0 ETH0.00302414
Drain113516482020-11-29 5:11:051911 days ago1606626665IN
0x9ae98746...3a986f103
0 ETH0.0002683612
Drain113515572020-11-29 4:50:341911 days ago1606625434IN
0x9ae98746...3a986f103
0 ETH0.000270612.1
Drain112298722020-11-10 12:42:151930 days ago1605012135IN
0x9ae98746...3a986f103
0 ETH0.000805136
Set Owner77085012019-05-06 17:04:212483 days ago1557162261IN
0x9ae98746...3a986f103
0 ETH0.000116325
Request73678712019-03-14 15:22:092536 days ago1552576929IN
0x9ae98746...3a986f103
0.007 ETH0.000191128.8
Request57127252018-06-01 7:43:002823 days ago1527838980IN
0x9ae98746...3a986f103
0.007 ETH0.0004343820
Request57093072018-05-31 16:56:172823 days ago1527785777IN
0x9ae98746...3a986f103
0.007 ETH0.0004343820
Set Fee56699302018-05-24 17:49:462830 days ago1527184186IN
0x9ae98746...3a986f103
0 ETH0.0003311412
Drain56698472018-05-24 17:29:282830 days ago1527182968IN
0x9ae98746...3a986f103
0 ETH0.0004190214
Set Fee56698372018-05-24 17:27:172830 days ago1527182837IN
0x9ae98746...3a986f103
0 ETH0.0003854314
Set Fee56698202018-05-24 17:23:542830 days ago1527182634IN
0x9ae98746...3a986f103
0 ETH0.0003785314
Drain56698112018-05-24 17:22:062830 days ago1527182526IN
0x9ae98746...3a986f103
0 ETH0.0003785314
Set Fee56698052018-05-24 17:20:352830 days ago1527182435IN
0x9ae98746...3a986f103
0 ETH0.0003785314
Confirm56553702018-05-22 3:27:382833 days ago1526959658IN
0x9ae98746...3a986f103
0 ETH0.000251649
Puzzle56553042018-05-22 3:09:332833 days ago1526958573IN
0x9ae98746...3a986f103
0 ETH0.0004710210
Request56553022018-05-22 3:08:532833 days ago1526958533IN
0x9ae98746...3a986f103
0.007 ETH0.00020979
Request56176532018-05-15 11:34:322840 days ago1526384072IN
0x9ae98746...3a986f103
0.007 ETH0.0002796112
Request56173282018-05-15 10:10:312840 days ago1526379031IN
0x9ae98746...3a986f103
0.007 ETH0.0002330110
Puzzle56074812018-05-13 16:42:182841 days ago1526229738IN
0x9ae98746...3a986f103
0 ETH0.0004703810
Request56074562018-05-13 16:35:552841 days ago1526229355IN
0x9ae98746...3a986f103
0.007 ETH0.0002330110
Request56063872018-05-13 12:07:342842 days ago1526213254IN
0x9ae98746...3a986f103
0.007 ETH0.000188738.1
View all transactions

Latest 2 internal transactions

Advanced mode:
Parent Transaction Hash Method Block
From
To
Transfer56698472018-05-24 17:29:282830 days ago1527182968
0x9ae98746...3a986f103
11.16 ETH
Transfer54302552018-04-13 0:49:242872 days ago1523580564
0x9ae98746...3a986f103
0 ETH
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
ProofOfSMS

Compiler Version
v0.4.8+commit.60cc1668

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
/**
 *Submitted for verification at Etherscan.io on 2017-01-17
*/

//! SMS verification contract
//! By Gav Wood, 2016.

pragma solidity ^0.4.0;

contract Owned {
	modifier only_owner { if (msg.sender != owner) return; _; }

	event NewOwner(address indexed old, address indexed current);

	function setOwner(address _new) only_owner { NewOwner(owner, _new); owner = _new; }

	address public owner = msg.sender;
}

contract Certifier {
	event Confirmed(address indexed who);
	event Revoked(address indexed who);
	function certified(address _who) constant returns (bool);
	function get(address _who, string _field) constant returns (bytes32) {}
	function getAddress(address _who, string _field) constant returns (address) {}
	function getUint(address _who, string _field) constant returns (uint) {}
}

contract SimpleCertifier is Owned, Certifier {
	modifier only_delegate { if (msg.sender != delegate) return; _; }
	modifier only_certified(address _who) { if (!certs[_who].active) return; _; }

	struct Certification {
		bool active;
		mapping (string => bytes32) meta;
	}

	function certify(address _who) only_delegate {
		certs[_who].active = true;
		Confirmed(_who);
	}
	function revoke(address _who) only_delegate only_certified(_who) {
		certs[_who].active = false;
		Revoked(_who);
	}
	function certified(address _who) constant returns (bool) { return certs[_who].active; }
	function get(address _who, string _field) constant returns (bytes32) { return certs[_who].meta[_field]; }
	function getAddress(address _who, string _field) constant returns (address) { return address(certs[_who].meta[_field]); }
	function getUint(address _who, string _field) constant returns (uint) { return uint(certs[_who].meta[_field]); }
	function setDelegate(address _new) only_owner { delegate = _new; }

	mapping (address => Certification) certs;
	// So that the server posting puzzles doesn't have access to the ETH.
	address public delegate = msg.sender;
}



contract ProofOfSMS is SimpleCertifier {

	modifier when_fee_paid { if (msg.value < fee) return; _; }

	event Requested(address indexed who);
	event Puzzled(address indexed who, bytes32 puzzle);

	function request() payable when_fee_paid {
		if (certs[msg.sender].active)
			return;
		Requested(msg.sender);
	}

	function puzzle(address _who, bytes32 _puzzle) only_delegate {
		puzzles[_who] = _puzzle;
		Puzzled(_who, _puzzle);
	}

	function confirm(bytes32 _code) returns (bool) {
		if (puzzles[msg.sender] != sha3(_code))
			return;
		delete puzzles[msg.sender];
		certs[msg.sender].active = true;
		Confirmed(msg.sender);
		return true;
	}

	function setFee(uint _new) only_owner {
		fee = _new;
	}

	function drain() only_owner {
		if (!msg.sender.send(this.balance))
			throw;
	}

	function certified(address _who) constant returns (bool) {
		return certs[_who].active;
	}

	mapping (address => bytes32) puzzles;

	uint public fee = 30 finney;
}

Contract Security Audit

Contract ABI

API
[{"constant":false,"inputs":[{"name":"_new","type":"address"}],"name":"setOwner","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_who","type":"address"}],"name":"certify","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"request","outputs":[],"payable":true,"type":"function"},{"constant":false,"inputs":[{"name":"_who","type":"address"},{"name":"_puzzle","type":"bytes32"}],"name":"puzzle","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_who","type":"address"},{"name":"_field","type":"string"}],"name":"getAddress","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_new","type":"uint256"}],"name":"setFee","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_who","type":"address"}],"name":"revoke","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_code","type":"bytes32"}],"name":"confirm","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"drain","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"delegate","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_who","type":"address"},{"name":"_field","type":"string"}],"name":"getUint","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_new","type":"address"}],"name":"setDelegate","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_who","type":"address"}],"name":"certified","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"fee","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_who","type":"address"},{"name":"_field","type":"string"}],"name":"get","outputs":[{"name":"","type":"bytes32"}],"payable":false,"type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"who","type":"address"}],"name":"Requested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"who","type":"address"},{"indexed":false,"name":"puzzle","type":"bytes32"}],"name":"Puzzled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"who","type":"address"}],"name":"Confirmed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"who","type":"address"}],"name":"Revoked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"old","type":"address"},{"indexed":true,"name":"current","type":"address"}],"name":"NewOwner","type":"event"}]

606060405260008054600160a060020a033316600160a060020a03199182168117909255600280549091169091179055666a94d74f43000060045534610000575b6109768061004f6000396000f300606060405236156100ca5763ffffffff60e060020a60003504166313af403581146100cf57806314253887146100ea578063338cdca1146101055780633da5c3ce1461010f5780635283f3391461012d57806369fe0e2d146101a657806374a8f103146101b8578063797af627146101d35780638da5cb5b146101f75780639890220b14610220578063c89e43611461022f578063ca4cbf6714610258578063ca5eb5e1146102c7578063cc1d4c02146102e2578063ddca3f431461030f578063fc2525ab14610258575b610000565b34610000576100e8600160a060020a036004351661039d565b005b34610000576100e8600160a060020a036004351661041e565b005b6100e861048a565b005b34610000576100e8600160a060020a03600435166024356104f7565b005b346100005760408051602060046024803582810135601f810185900485028601850190965285855261018a958335600160a060020a0316959394604494939290920191819084018382808284375094965061056895505050505050565b60408051600160a060020a039092168252519081900360200190f35b34610000576100e86004356105f9565b005b34610000576100e8600160a060020a036004351661061e565b005b34610000576101e36004356106af565b604080519115158252519081900360200190f35b346100005761018a610747565b60408051600160a060020a039092168252519081900360200190f35b34610000576100e8610756565b005b346100005761018a6107a9565b60408051600160a060020a039092168252519081900360200190f35b346100005760408051602060046024803582810135601f81018590048502860185019096528585526102b5958335600160a060020a0316959394604494939290920191819084018382808284375094965061056895505050505050565b60408051918252519081900360200190f35b34610000576100e8600160a060020a0360043516610849565b005b34610000576101e3600160a060020a0360043516610891565b604080519115158252519081900360200190f35b34610000576102b56108b3565b60408051918252519081900360200190f35b346100005760408051602060046024803582810135601f81018590048502860185019096528585526102b5958335600160a060020a0316959394604494939290920191819084018382808284375094965061056895505050505050565b60408051918252519081900360200190f35b60005433600160a060020a039081169116146103b85761041a565b60008054604051600160a060020a03808516939216917f70aea8d848e8a90fb7661b227dc522eb6395c3dac71b63cb59edd5c9899b236491a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b50565b60025433600160a060020a039081169116146104395761041a565b600160a060020a0381166000818152600160208190526040808320805460ff1916909217909155517fd415b905d4dd806bfba99a7a0e6351bd0c9db3a9912add21c0e6bef4479f673f9190a25b5b50565b600454341015610499576104f4565b600160a060020a03331660009081526001602052604090205460ff16156104bf576104f4565b604051600160a060020a033316907f039f711c9c18dd815b225b1424855e6118e746c6b5d688907f10c4dd29ebe92a90600090a25b5b565b60025433600160a060020a0390811691161461051257610563565b600160a060020a038216600081815260036020908152604091829020849055815184815291517fa9a343b39eac85ffb326e93ecd46785b814e72dc9f2b33bb0b4a315ba2859f439281900390910190a25b5b5050565b60006001600084600160a060020a0316600160a060020a03168152602001908152602001600020600101826040518082805190602001908083835b602083106105c25780518252601f1990920191602091820191016105a3565b51815160209384036101000a6000190180199092169116179052920194855250604051938490030190922054925050505b92915050565b60005433600160a060020a039081169116146106145761041a565b60048190555b5b50565b60025433600160a060020a039081169116146106395761041a565b600160a060020a038116600090815260016020526040902054819060ff16151561066257610563565b600160a060020a038216600081815260016020526040808220805460ff19169055517fb6fa8b8bd5eab60f292eca876e3ef90722275b785309d84b1de113ce0b8c4e749190a25b5b505b50565b6040805182815281516020918190038201902033600160a060020a031660009081526003909252918120549091146106e657610742565b600160a060020a0333166000818152600360209081526040808320839055600191829052808320805460ff1916909217909155517fd415b905d4dd806bfba99a7a0e6351bd0c9db3a9912add21c0e6bef4479f673f9190a25060015b919050565b600054600160a060020a031681565b60005433600160a060020a03908116911614610771576104f4565b604051600160a060020a0333811691309091163180156108fc02916000818181858888f1935050505015156104f457610000565b5b5b565b600254600160a060020a031681565b60006001600084600160a060020a0316600160a060020a03168152602001908152602001600020600101826040518082805190602001908083835b602083106105c25780518252601f1990920191602091820191016105a3565b51815160209384036101000a6000190180199092169116179052920194855250604051938490030190922054925050505b92915050565b60005433600160a060020a039081169116146108645761041a565b6002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b50565b600160a060020a03811660009081526001602052604090205460ff165b919050565b60045481565b60006001600084600160a060020a0316600160a060020a03168152602001908152602001600020600101826040518082805190602001908083835b602083106105c25780518252601f1990920191602091820191016105a3565b51815160209384036101000a6000190180199092169116179052920194855250604051938490030190922054925050505b929150505600a165627a7a72305820339527156d5572116e7dd32f5fb4da3bcb5db73a66696682141d73ac075114660029

Deployed Bytecode

0x606060405236156100ca5763ffffffff60e060020a60003504166313af403581146100cf57806314253887146100ea578063338cdca1146101055780633da5c3ce1461010f5780635283f3391461012d57806369fe0e2d146101a657806374a8f103146101b8578063797af627146101d35780638da5cb5b146101f75780639890220b14610220578063c89e43611461022f578063ca4cbf6714610258578063ca5eb5e1146102c7578063cc1d4c02146102e2578063ddca3f431461030f578063fc2525ab14610258575b610000565b34610000576100e8600160a060020a036004351661039d565b005b34610000576100e8600160a060020a036004351661041e565b005b6100e861048a565b005b34610000576100e8600160a060020a03600435166024356104f7565b005b346100005760408051602060046024803582810135601f810185900485028601850190965285855261018a958335600160a060020a0316959394604494939290920191819084018382808284375094965061056895505050505050565b60408051600160a060020a039092168252519081900360200190f35b34610000576100e86004356105f9565b005b34610000576100e8600160a060020a036004351661061e565b005b34610000576101e36004356106af565b604080519115158252519081900360200190f35b346100005761018a610747565b60408051600160a060020a039092168252519081900360200190f35b34610000576100e8610756565b005b346100005761018a6107a9565b60408051600160a060020a039092168252519081900360200190f35b346100005760408051602060046024803582810135601f81018590048502860185019096528585526102b5958335600160a060020a0316959394604494939290920191819084018382808284375094965061056895505050505050565b60408051918252519081900360200190f35b34610000576100e8600160a060020a0360043516610849565b005b34610000576101e3600160a060020a0360043516610891565b604080519115158252519081900360200190f35b34610000576102b56108b3565b60408051918252519081900360200190f35b346100005760408051602060046024803582810135601f81018590048502860185019096528585526102b5958335600160a060020a0316959394604494939290920191819084018382808284375094965061056895505050505050565b60408051918252519081900360200190f35b60005433600160a060020a039081169116146103b85761041a565b60008054604051600160a060020a03808516939216917f70aea8d848e8a90fb7661b227dc522eb6395c3dac71b63cb59edd5c9899b236491a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b50565b60025433600160a060020a039081169116146104395761041a565b600160a060020a0381166000818152600160208190526040808320805460ff1916909217909155517fd415b905d4dd806bfba99a7a0e6351bd0c9db3a9912add21c0e6bef4479f673f9190a25b5b50565b600454341015610499576104f4565b600160a060020a03331660009081526001602052604090205460ff16156104bf576104f4565b604051600160a060020a033316907f039f711c9c18dd815b225b1424855e6118e746c6b5d688907f10c4dd29ebe92a90600090a25b5b565b60025433600160a060020a0390811691161461051257610563565b600160a060020a038216600081815260036020908152604091829020849055815184815291517fa9a343b39eac85ffb326e93ecd46785b814e72dc9f2b33bb0b4a315ba2859f439281900390910190a25b5b5050565b60006001600084600160a060020a0316600160a060020a03168152602001908152602001600020600101826040518082805190602001908083835b602083106105c25780518252601f1990920191602091820191016105a3565b51815160209384036101000a6000190180199092169116179052920194855250604051938490030190922054925050505b92915050565b60005433600160a060020a039081169116146106145761041a565b60048190555b5b50565b60025433600160a060020a039081169116146106395761041a565b600160a060020a038116600090815260016020526040902054819060ff16151561066257610563565b600160a060020a038216600081815260016020526040808220805460ff19169055517fb6fa8b8bd5eab60f292eca876e3ef90722275b785309d84b1de113ce0b8c4e749190a25b5b505b50565b6040805182815281516020918190038201902033600160a060020a031660009081526003909252918120549091146106e657610742565b600160a060020a0333166000818152600360209081526040808320839055600191829052808320805460ff1916909217909155517fd415b905d4dd806bfba99a7a0e6351bd0c9db3a9912add21c0e6bef4479f673f9190a25060015b919050565b600054600160a060020a031681565b60005433600160a060020a03908116911614610771576104f4565b604051600160a060020a0333811691309091163180156108fc02916000818181858888f1935050505015156104f457610000565b5b5b565b600254600160a060020a031681565b60006001600084600160a060020a0316600160a060020a03168152602001908152602001600020600101826040518082805190602001908083835b602083106105c25780518252601f1990920191602091820191016105a3565b51815160209384036101000a6000190180199092169116179052920194855250604051938490030190922054925050505b92915050565b60005433600160a060020a039081169116146108645761041a565b6002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b50565b600160a060020a03811660009081526001602052604090205460ff165b919050565b60045481565b60006001600084600160a060020a0316600160a060020a03168152602001908152602001600020600101826040518082805190602001908083835b602083106105c25780518252601f1990920191602091820191016105a3565b51815160209384036101000a6000190180199092169116179052920194855250604051938490030190922054925050505b929150505600a165627a7a72305820339527156d5572116e7dd32f5fb4da3bcb5db73a66696682141d73ac075114660029

Swarm Source

bzzr://339527156d5572116e7dd32f5fb4da3bcb5db73a66696682141d73ac07511466

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.