ETH Price: $1,973.29 (+0.24%)
 

Overview

ETH Balance

3.507688219485678672 ETH

Eth Value

$6,921.70 (@ $1,973.29/ETH)

Token Holdings

More Info

Private Name Tags

Multichain Info

Transaction Hash
Method
Block
From
To
Execute244912212026-02-19 13:33:592 days ago1771508039IN
ENS Name kalimera.eth
0 ETH0.000006570.12548608
Execute244912172026-02-19 13:33:112 days ago1771507991IN
ENS Name kalimera.eth
0 ETH0.000006750.12972159
Execute244912172026-02-19 13:33:112 days ago1771507991IN
ENS Name kalimera.eth
0 ETH0.00001640.18995909
Execute244845492026-02-18 15:14:473 days ago1771427687IN
ENS Name kalimera.eth
0 ETH0.00000810.15547148
Execute244845472026-02-18 15:14:233 days ago1771427663IN
ENS Name kalimera.eth
0 ETH0.000016490.23003704
Execute244844082026-02-18 14:46:233 days ago1771425983IN
ENS Name kalimera.eth
0 ETH0.000007830.15793877
Transfer244759872026-02-17 10:34:594 days ago1771324499IN
ENS Name kalimera.eth
0 ETH0.000001040.04978566
Execute244759822026-02-17 10:33:594 days ago1771324439IN
ENS Name kalimera.eth
0 ETH0.000002930.04008274
Execute244480092026-02-13 12:57:598 days ago1770987479IN
ENS Name kalimera.eth
0 ETH0.000003480.04600536
Execute244469232026-02-13 9:20:118 days ago1770974411IN
ENS Name kalimera.eth
0 ETH0.000003530.03917988
Execute244410302026-02-12 13:35:119 days ago1770903311IN
ENS Name kalimera.eth
0 ETH0.000359241.01251735
Execute244395662026-02-12 8:41:1110 days ago1770885671IN
ENS Name kalimera.eth
0 ETH0.000004640.06335577
Execute244324082026-02-11 8:42:5911 days ago1770799379IN
ENS Name kalimera.eth
0 ETH0.000005450.06726922
Execute244324012026-02-11 8:41:3511 days ago1770799295IN
ENS Name kalimera.eth
0 ETH0.000007570.08164078
Execute243989962026-02-06 16:31:4715 days ago1770395507IN
ENS Name kalimera.eth
0 ETH0.000207461.07762248
Execute243988042026-02-06 15:53:2315 days ago1770393203IN
ENS Name kalimera.eth
0 ETH0.000649140.70963443
Execute243987522026-02-06 15:42:5915 days ago1770392579IN
ENS Name kalimera.eth
0 ETH0.000026290.57272926
Execute243899742026-02-05 10:16:2316 days ago1770286583IN
ENS Name kalimera.eth
0 ETH0.000045630.13495001
Execute243697222026-02-02 14:18:3519 days ago1770041915IN
ENS Name kalimera.eth
0 ETH0.000055970.76394441
Execute243469072026-01-30 9:52:3522 days ago1769766755IN
ENS Name kalimera.eth
0 ETH0.000019040.20511414
Execute243468482026-01-30 9:40:4722 days ago1769766047IN
ENS Name kalimera.eth
0 ETH0.000008670.13549456
Execute243201512026-01-26 16:18:5926 days ago1769444339IN
ENS Name kalimera.eth
0 ETH0.000049480.25703606
Execute243194052026-01-26 13:48:4726 days ago1769435327IN
ENS Name kalimera.eth
0 ETH0.000033430.17189986
Execute242927242026-01-22 20:30:1130 days ago1769113811IN
ENS Name kalimera.eth
0 ETH0.000021720.05297454
Execute242900232026-01-22 11:27:5930 days ago1769081279IN
ENS Name kalimera.eth
0 ETH0.000005180.07075396
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Method Block
From
To
Transfer242336662026-01-14 14:54:1138 days ago1768402451
ENS Name kalimera.eth
0.00090494 ETH
Transfer242192012026-01-12 14:22:4740 days ago1768227767
ENS Name kalimera.eth
0.00016177 ETH
Renew242192012026-01-12 14:22:4740 days ago1768227767
ENS Name kalimera.eth
0.00825059 ETH
Transfer241963372026-01-09 9:50:2343 days ago1767952223
ENS Name kalimera.eth
0.01618798 ETH
Swap Tokens Sing...241247212025-12-30 10:01:3553 days ago1767088895
ENS Name kalimera.eth
0.26 ETH
Execute Controll...241108822025-12-28 11:38:4755 days ago1766921927
ENS Name kalimera.eth
0.5 ETH
Swap Tokens Mult...240744792025-12-23 9:40:2360 days ago1766482823
ENS Name kalimera.eth
0.01 ETH
Swap Tokens Mult...240744642025-12-23 9:37:2360 days ago1766482643
ENS Name kalimera.eth
0.5 ETH
Transfer240177172025-12-15 11:31:1168 days ago1765798271
ENS Name kalimera.eth
0.1 ETH
Transfer239964292025-12-12 12:04:3571 days ago1765541075
ENS Name kalimera.eth
0.00494157 ETH
Renew239964292025-12-12 12:04:3571 days ago1765541075
ENS Name kalimera.eth
0.2520204 ETH
0x00000000239951362025-12-12 7:42:2372 days ago1765525343
ENS Name kalimera.eth
2.5 ETH
Transfer239951352025-12-12 7:42:1172 days ago1765525331
ENS Name kalimera.eth
0.61089196 ETH
Deposit To239879232025-12-11 7:22:5973 days ago1765437779
ENS Name kalimera.eth
0.2 ETH
Transfer238201332025-11-17 16:39:5996 days ago1763397599
ENS Name kalimera.eth
0.02 ETH
Transfer237962952025-11-14 8:40:11100 days ago1763109611
ENS Name kalimera.eth
0.15 ETH
Execute Controll...237917182025-11-13 17:17:47100 days ago1763054267
ENS Name kalimera.eth
0.7 ETH
Transfer237820772025-11-12 8:52:59102 days ago1762937579
ENS Name kalimera.eth
0.19667604 ETH
Swap Tokens Sing...237257482025-11-04 11:45:35109 days ago1762256735
ENS Name kalimera.eth
0.5 ETH
0x000001b9236752392025-10-28 10:10:35116 days ago1761646235
ENS Name kalimera.eth
0.1467193 ETH
Swap Tokens Mult...236414182025-10-23 16:34:11121 days ago1761237251
ENS Name kalimera.eth
0.1 ETH
Start Bridge Tok...236342332025-10-22 16:24:59122 days ago1761150299
ENS Name kalimera.eth
0.04 ETH
Transfer236330732025-10-22 12:29:47122 days ago1761136187
ENS Name kalimera.eth
0.2 ETH
Swap And Start B...235474092025-10-10 12:43:35134 days ago1760100215
ENS Name kalimera.eth
4 ETH
Transfer235390472025-10-09 8:40:47136 days ago1759999247
ENS Name kalimera.eth
0.02 ETH
View All Internal Transactions
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

Minimal Proxy Contract for 0x2a2b85eb1054d6f0c6c2e37da05ed3e5fea684ef

Contract Name:
Identity

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-11-14
*/

pragma solidity 0.8.7;

// @TODO: Formatting
library LibBytes {
  // @TODO: see if we can just set .length = 
  function trimToSize(bytes memory b, uint newLen)
    internal
    pure
  {
    require(b.length > newLen, "BytesLib: only shrinking");
    assembly {
      mstore(b, newLen)
    }
  }


  /***********************************|
  |        Read Bytes Functions       |
  |__________________________________*/

  /**
   * @dev Reads a bytes32 value from a position in a byte array.
   * @param b Byte array containing a bytes32 value.
   * @param index Index in byte array of bytes32 value.
   * @return result bytes32 value from byte array.
   */
  function readBytes32(
    bytes memory b,
    uint256 index
  )
    internal
    pure
    returns (bytes32 result)
  {
    // Arrays are prefixed by a 256 bit length parameter
    index += 32;

    require(b.length >= index, "BytesLib: length");

    // Read the bytes32 from array memory
    assembly {
      result := mload(add(b, index))
    }
    return result;
  }
}



interface IERC1271Wallet {
	function isValidSignature(bytes32 hash, bytes calldata signature) external view returns (bytes4 magicValue);
}

library SignatureValidator {
	using LibBytes for bytes;

	enum SignatureMode {
		EIP712,
		EthSign,
		SmartWallet,
		Spoof
	}

	// bytes4(keccak256("isValidSignature(bytes32,bytes)"))
	bytes4 constant internal ERC1271_MAGICVALUE_BYTES32 = 0x1626ba7e;

	function recoverAddr(bytes32 hash, bytes memory sig) internal view returns (address) {
		return recoverAddrImpl(hash, sig, false);
	}

	function recoverAddrImpl(bytes32 hash, bytes memory sig, bool allowSpoofing) internal view returns (address) {
		require(sig.length >= 1, "SV_SIGLEN");
		uint8 modeRaw;
		unchecked { modeRaw = uint8(sig[sig.length - 1]); }
		SignatureMode mode = SignatureMode(modeRaw);

		// {r}{s}{v}{mode}
		if (mode == SignatureMode.EIP712 || mode == SignatureMode.EthSign) {
			require(sig.length == 66, "SV_LEN");
			bytes32 r = sig.readBytes32(0);
			bytes32 s = sig.readBytes32(32);
			uint8 v = uint8(sig[64]);
			// Hesitant about this check: seems like this is something that has no business being checked on-chain
			require(v == 27 || v == 28, "SV_INVALID_V");
			if (mode == SignatureMode.EthSign) hash = keccak256(abi.encodePacked("\x19Ethereum Signed Message:\n32", hash));
			address signer = ecrecover(hash, v, r, s);
			require(signer != address(0), "SV_ZERO_SIG");
			return signer;
		// {sig}{verifier}{mode}
		} else if (mode == SignatureMode.SmartWallet) {
			// 32 bytes for the addr, 1 byte for the type = 33
			require(sig.length > 33, "SV_LEN_WALLET");
			uint newLen;
			unchecked {
				newLen = sig.length - 33;
			}
			IERC1271Wallet wallet = IERC1271Wallet(address(uint160(uint256(sig.readBytes32(newLen)))));
			sig.trimToSize(newLen);
			require(ERC1271_MAGICVALUE_BYTES32 == wallet.isValidSignature(hash, sig), "SV_WALLET_INVALID");
			return address(wallet);
		// {address}{mode}; the spoof mode is used when simulating calls
		} else if (mode == SignatureMode.Spoof && allowSpoofing) {
			require(tx.origin == address(1), "SV_SPOOF_ORIGIN");
			require(sig.length == 33, "SV_SPOOF_LEN");
			sig.trimToSize(32);
			return abi.decode(sig, (address));
		} else revert("SV_SIGMODE");
	}
}


contract Identity {
	mapping (address => bytes32) public privileges;
	// The next allowed nonce
	uint public nonce;

	// Events
	event LogPrivilegeChanged(address indexed addr, bytes32 priv);
	event LogErr(address indexed to, uint value, bytes data, bytes returnData); // only used in tryCatch

	// Transaction structure
	// we handle replay protection separately by requiring (address(this), chainID, nonce) as part of the sig
	struct Transaction {
		address to;
		uint value;
		bytes data;
	}

	constructor(address[] memory addrs) {
		uint len = addrs.length;
		for (uint i=0; i<len; i++) {
			// @TODO should we allow setting to any arb value here?
			privileges[addrs[i]] = bytes32(uint(1));
			emit LogPrivilegeChanged(addrs[i], bytes32(uint(1)));
		}
	}

	// This contract can accept ETH without calldata
	receive() external payable {}

	// This contract can accept ETH with calldata
	// However, to support EIP 721 and EIP 1155, we need to respond to those methods with their own method signature
	fallback() external payable {
		bytes4 method = msg.sig;
		if (
			method == 0x150b7a02 // bytes4(keccak256("onERC721Received(address,address,uint256,bytes)"))
				|| method == 0xf23a6e61 // bytes4(keccak256("onERC1155Received(address,address,uint256,uint256,bytes)"))
				|| method == 0xbc197c81 // bytes4(keccak256("onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)"))
		) {
			// Copy back the method
			// solhint-disable-next-line no-inline-assembly
			assembly {
				calldatacopy(0, 0, 0x04)
				return (0, 0x20)
			}
		}
	}

	function setAddrPrivilege(address addr, bytes32 priv)
		external
	{
		require(msg.sender == address(this), 'ONLY_IDENTITY_CAN_CALL');
		// Anti-bricking measure: if the privileges slot is used for special data (not 0x01),
		// don't allow to set it to true
		if (uint(privileges[addr]) > 1) require(priv != bytes32(uint(1)), 'UNSETTING_SPECIAL_DATA');
		privileges[addr] = priv;
		emit LogPrivilegeChanged(addr, priv);
	}

	function tipMiner(uint amount)
		external
	{
		require(msg.sender == address(this), 'ONLY_IDENTITY_CAN_CALL');
		// See https://docs.flashbots.net/flashbots-auction/searchers/advanced/coinbase-payment/#managing-payments-to-coinbaseaddress-when-it-is-a-contract
		// generally this contract is reentrancy proof cause of the nonce
		executeCall(block.coinbase, amount, new bytes(0));
	}

	function tryCatch(address to, uint value, bytes calldata data)
		external
	{
		require(msg.sender == address(this), 'ONLY_IDENTITY_CAN_CALL');
		(bool success, bytes memory returnData) = to.call{value: value, gas: gasleft()}(data);
		if (!success) emit LogErr(to, value, data, returnData);
	}


	// WARNING: if the signature of this is changed, we have to change IdentityFactory
	function execute(Transaction[] calldata txns, bytes calldata signature)
		external
	{
		require(txns.length > 0, 'MUST_PASS_TX');
		uint currentNonce = nonce;
		// NOTE: abi.encode is safer than abi.encodePacked in terms of collision safety
		bytes32 hash = keccak256(abi.encode(address(this), block.chainid, currentNonce, txns));
		// We have to increment before execution cause it protects from reentrancies
		nonce = currentNonce + 1;

		address signer = SignatureValidator.recoverAddrImpl(hash, signature, true);
		require(privileges[signer] != bytes32(0), 'INSUFFICIENT_PRIVILEGE');
		uint len = txns.length;
		for (uint i=0; i<len; i++) {
			Transaction memory txn = txns[i];
			executeCall(txn.to, txn.value, txn.data);
		}
		// The actual anti-bricking mechanism - do not allow a signer to drop their own priviledges
		require(privileges[signer] != bytes32(0), 'PRIVILEGE_NOT_DOWNGRADED');
	}

	// no need for nonce management here cause we're not dealing with sigs
	function executeBySender(Transaction[] calldata txns) external {
		require(txns.length > 0, 'MUST_PASS_TX');
		require(privileges[msg.sender] != bytes32(0), 'INSUFFICIENT_PRIVILEGE');
		uint len = txns.length;
		for (uint i=0; i<len; i++) {
			Transaction memory txn = txns[i];
			executeCall(txn.to, txn.value, txn.data);
		}
		// again, anti-bricking
		require(privileges[msg.sender] != bytes32(0), 'PRIVILEGE_NOT_DOWNGRADED');
	}

	function executeBySelf(Transaction[] calldata txns) external {
		require(msg.sender == address(this), 'ONLY_IDENTITY_CAN_CALL');
		require(txns.length > 0, 'MUST_PASS_TX');
		uint len = txns.length;
		for (uint i=0; i<len; i++) {
			Transaction memory txn = txns[i];
			executeCall(txn.to, txn.value, txn.data);
		}
	}

	// we shouldn't use address.call(), cause: https://github.com/ethereum/solidity/issues/2884
	// copied from https://github.com/uport-project/uport-identity/blob/develop/contracts/Proxy.sol
	// there's also
	// https://github.com/gnosis/MultiSigWallet/commit/e1b25e8632ca28e9e9e09c81bd20bf33fdb405ce
	// https://github.com/austintgriffith/bouncer-proxy/blob/master/BouncerProxy/BouncerProxy.sol
	// https://github.com/gnosis/safe-contracts/blob/7e2eeb3328bb2ae85c36bc11ea6afc14baeb663c/contracts/base/Executor.sol
	function executeCall(address to, uint256 value, bytes memory data)
		internal
	{
		assembly {
			let result := call(gas(), to, value, add(data, 0x20), mload(data), 0, 0)

			switch result case 0 {
				let size := returndatasize()
				let ptr := mload(0x40)
				returndatacopy(ptr, 0, size)
				revert(ptr, size)
			}
			default {}
		}
		// A single call consumes around 477 more gas with the pure solidity version, for whatever reason
		// WARNING: do not use this, it corrupts the returnData string (returns it in a slightly different format)
		//(bool success, bytes memory returnData) = to.call{value: value, gas: gasleft()}(data);
		//if (!success) revert(string(data));
	}

	// EIP 1271 implementation
	// see https://eips.ethereum.org/EIPS/eip-1271
	function isValidSignature(bytes32 hash, bytes calldata signature) external view returns (bytes4) {
		if (privileges[SignatureValidator.recoverAddr(hash, signature)] != bytes32(0)) {
			// bytes4(keccak256("isValidSignature(bytes32,bytes)")
			return 0x1626ba7e;
		} else {
			return 0xffffffff;
		}
	}

	// EIP 1155 implementation
	// we pretty much only need to signal that we support the interface for 165, but for 1155 we also need the fallback function
	function supportsInterface(bytes4 interfaceID) external pure returns (bool) {
		return
			interfaceID == 0x01ffc9a7 ||    // ERC-165 support (i.e. `bytes4(keccak256('supportsInterface(bytes4)'))`).
			interfaceID == 0x4e2312e0;      // ERC-1155 `ERC1155TokenReceiver` support (i.e. `bytes4(keccak256("onERC1155Received(address,address,uint256,uint256,bytes)")) ^ bytes4(keccak256("onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)"))`).
	}
}

Contract ABI

API
[{"inputs":[{"internalType":"address[]","name":"addrs","type":"address[]"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"},{"indexed":false,"internalType":"bytes","name":"returnData","type":"bytes"}],"name":"LogErr","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"addr","type":"address"},{"indexed":false,"internalType":"bytes32","name":"priv","type":"bytes32"}],"name":"LogPrivilegeChanged","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[{"components":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"internalType":"struct Identity.Transaction[]","name":"txns","type":"tuple[]"},{"internalType":"bytes","name":"signature","type":"bytes"}],"name":"execute","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"internalType":"struct Identity.Transaction[]","name":"txns","type":"tuple[]"}],"name":"executeBySelf","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"internalType":"struct Identity.Transaction[]","name":"txns","type":"tuple[]"}],"name":"executeBySender","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"hash","type":"bytes32"},{"internalType":"bytes","name":"signature","type":"bytes"}],"name":"isValidSignature","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nonce","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"privileges","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes32","name":"priv","type":"bytes32"}],"name":"setAddrPrivilege","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceID","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"tipMiner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"tryCatch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
0xa07D75aacEFd11b425AF7181958F0F85c312f143
Net Worth in USD
$111,736.18

Net Worth in ETH
56.624174

Token Allocations
ADX 65.82%
WALLET 24.97%
ETH 6.84%
Others 2.38%
Chain Token Portfolio % Price Amount Value
ETH65.82%$0.075893969,000.8688$73,540.38
ETH17.36%$0.0076172,547,131.5929$19,402.39
ETH
Ether (ETH)
6.19%$1,973.293.5077$6,921.7
ETH1.35%$0.9996971,507.001$1,506.54
ETH0.01%$0.0065472,000$13.09
ETH0.01%$112.7695$12.77
ETH<0.01%$0.9996790.3504$0.3503
ETH<0.01%$0.000.01$0.00
BASE7.60%$0.0076241,114,159.3258$8,494.82
BASE0.57%$1,973.390.3213$633.99
BASE0.55%$1613.0301$613.03
BASE0.11%$2,263.380.054$122.28
BASE<0.01%$0.019895160$3.18
BASE<0.01%$0.9983341.7474$1.74
BSC0.18%$0.99971197.952$197.89
BSC<0.01%$1.312.1078$2.76
BSC<0.01%$0.5143241.9303$0.9928
BSC<0.01%$621.850.000000000000000001<$0.000001
POL0.07%$65,5830.00122547$80.37
POL0.03%$0.99829530.4662$30.41
POL<0.01%$0.99745710.6267$10.6
POL<0.01%$0.9985515.528$5.52
POL<0.01%$0.00189120$0.2267
POL<0.01%$0.000.1145$0.00
SCROLL0.07%$1,973.290.04$78.89
OP0.02%$0.99996719.9385$19.94
OP0.01%$0.99975716.1298$16.13
OP<0.01%$0.12500350.4471$6.31
OP<0.01%$0.999934.1215$4.12
OP<0.01%$1,973.390.00123637$2.44
GNO<0.01%$0.9998215.9999$6
AVAX<0.01%$8.980.4595$4.13
ARB<0.01%$1,973.30.00067561$1.33
ARB<0.01%$0.9984381.2357$1.23
ARB<0.01%$0.03839610$0.3839
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.