Holesky Testnet

Contract

0x3F1c547b21f65e10480dE3ad8E19fAAC46C95034
Transaction Hash
Method
Block
From
To
Approve31390712025-01-13 20:22:487 mins ago1736799768IN
0x3F1c547b...C46C95034
0 ETH0.000000060.00094091
Submit31390642025-01-13 20:21:248 mins ago1736799684IN
0x3F1c547b...C46C95034
0.00001 ETH0.000000080.00087001
Transfer31385642025-01-13 18:35:361 hr ago1736793336IN
0x3F1c547b...C46C95034
0.55 ETH0.000000070.00097003
Transfer31385572025-01-13 18:34:001 hr ago1736793240IN
0x3F1c547b...C46C95034
0.01 ETH0.000000070.00097002
Submit31384662025-01-13 18:15:122 hrs ago1736792112IN
0x3F1c547b...C46C95034
0.1 ETH0.000000090.00099416
Submit31384522025-01-13 18:12:242 hrs ago1736791944IN
0x3F1c547b...C46C95034
0.1 ETH0.000080431.00000015
Submit31383752025-01-13 17:55:242 hrs ago1736790924IN
0x3F1c547b...C46C95034
0.2 ETH0.000000090.00120045
Submit31382552025-01-13 17:30:362 hrs ago1736789436IN
0x3F1c547b...C46C95034
0.25 ETH0.000000080.00101494
Approve31379792025-01-13 16:30:003 hrs ago1736785800IN
0x3F1c547b...C46C95034
0 ETH0.000098571.50000142
Submit31379612025-01-13 16:26:244 hrs ago1736785584IN
0x3F1c547b...C46C95034
1 ETH0.000000850.01062212
Approve31379182025-01-13 16:17:004 hrs ago1736785020IN
0x3F1c547b...C46C95034
0 ETH0.000012190.25081545
Approve31379122025-01-13 16:15:484 hrs ago1736784948IN
0x3F1c547b...C46C95034
0 ETH0.000000060.0010655
Approve31379042025-01-13 16:14:004 hrs ago1736784840IN
0x3F1c547b...C46C95034
0 ETH0.000000060.00099565
Approve31379002025-01-13 16:13:124 hrs ago1736784792IN
0x3F1c547b...C46C95034
0 ETH0.000032750.50075235
Approve31377962025-01-13 15:50:124 hrs ago1736783412IN
0x3F1c547b...C46C95034
0 ETH0.000010890.25077501
Approve31377932025-01-13 15:49:364 hrs ago1736783376IN
0x3F1c547b...C46C95034
0 ETH0.000024340.50077471
Approve31377862025-01-13 15:48:124 hrs ago1736783292IN
0x3F1c547b...C46C95034
0 ETH0.000016410.25101773
Approve31377702025-01-13 15:44:244 hrs ago1736783064IN
0x3F1c547b...C46C95034
0 ETH0.00001090.25106601
Approve31377502025-01-13 15:39:484 hrs ago1736782788IN
0x3F1c547b...C46C95034
0 ETH0.00003290.50074495
Approve31377262025-01-13 15:34:364 hrs ago1736782476IN
0x3F1c547b...C46C95034
0 ETH0.000000060.00105787
Approve31377232025-01-13 15:34:004 hrs ago1736782440IN
0x3F1c547b...C46C95034
0 ETH0.000000040.00101948
Approve31377182025-01-13 15:33:004 hrs ago1736782380IN
0x3F1c547b...C46C95034
0 ETH0.000032750.50075171
Approve31377142025-01-13 15:32:124 hrs ago1736782332IN
0x3F1c547b...C46C95034
0 ETH0.000017090.3757526
Approve31377052025-01-13 15:30:124 hrs ago1736782212IN
0x3F1c547b...C46C95034
0 ETH0.000000040.00102696
Approve31377002025-01-13 15:29:125 hrs ago1736782152IN
0x3F1c547b...C46C95034
0 ETH0.000000060.0009948
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block
From
To
31389792025-01-13 20:02:4827 mins ago1736798568
0x3F1c547b...C46C95034
0.00573971 ETH
31388372025-01-13 19:33:3656 mins ago1736796816
0x3F1c547b...C46C95034
0.4 ETH
31388172025-01-13 19:29:241 hr ago1736796564
0x3F1c547b...C46C95034
7.04036278 ETH
31386242025-01-13 18:48:241 hr ago1736794104
0x3F1c547b...C46C95034
0.02528834 ETH
31384222025-01-13 18:06:122 hrs ago1736791572
0x3F1c547b...C46C95034
32 ETH
31384012025-01-13 18:01:242 hrs ago1736791284
0x3F1c547b...C46C95034
3.9 ETH
31383432025-01-13 17:49:002 hrs ago1736790540
0x3F1c547b...C46C95034
2 ETH
31382932025-01-13 17:38:362 hrs ago1736789916
0x3F1c547b...C46C95034
0.001 ETH
31382812025-01-13 17:36:122 hrs ago1736789772
0x3F1c547b...C46C95034
0.00099953 ETH
31382432025-01-13 17:28:003 hrs ago1736789280
0x3F1c547b...C46C95034
0.00161701 ETH
31382432025-01-13 17:28:003 hrs ago1736789280
0x3F1c547b...C46C95034
0.01182971 ETH
31378902025-01-13 16:11:124 hrs ago1736784672
0x3F1c547b...C46C95034
0.00071486 ETH
31378902025-01-13 16:11:124 hrs ago1736784672
0x3F1c547b...C46C95034
0.01985794 ETH
31377542025-01-13 15:40:364 hrs ago1736782836
0x3F1c547b...C46C95034
0.0003 ETH
31377482025-01-13 15:39:244 hrs ago1736782764
0x3F1c547b...C46C95034
0.0003 ETH
31377222025-01-13 15:33:484 hrs ago1736782428
0x3F1c547b...C46C95034
1.79527516 ETH
31376892025-01-13 15:27:005 hrs ago1736782020
0x3F1c547b...C46C95034
0.0003 ETH
31376852025-01-13 15:26:125 hrs ago1736781972
0x3F1c547b...C46C95034
0.0003 ETH
31376832025-01-13 15:25:485 hrs ago1736781948
0x3F1c547b...C46C95034
0.0003 ETH
31375402025-01-13 14:54:365 hrs ago1736780076
0x3F1c547b...C46C95034
0.2 ETH
31375402025-01-13 14:54:365 hrs ago1736780076
0x3F1c547b...C46C95034
0.02696805 ETH
31374922025-01-13 14:44:245 hrs ago1736779464
0x3F1c547b...C46C95034
2 ETH
31371852025-01-13 13:38:006 hrs ago1736775480
0x3F1c547b...C46C95034
0.70140877 ETH
31371852025-01-13 13:38:006 hrs ago1736775480
0x3F1c547b...C46C95034
0.01631304 ETH
31368422025-01-13 12:23:008 hrs ago1736770980
0x3F1c547b...C46C95034
0.025082 ETH
View All Internal Transactions
Loading...
Loading

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0x5e176c26...159C7547f
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
AppProxyUpgradeable

Compiler Version
v0.4.24+commit.e67f0147

Optimization Enabled:
Yes with 200 runs

Other Settings:
constantinople EvmVersion
File 1 of 13 : AppProxyUpgradeable.sol
pragma solidity 0.4.24;

import "./AppProxyBase.sol";


contract AppProxyUpgradeable is AppProxyBase {
    /**
    * @dev Initialize AppProxyUpgradeable (makes it an upgradeable Aragon app)
    * @param _kernel Reference to organization kernel for the app
    * @param _appId Identifier for app
    * @param _initializePayload Payload for call to be made after setup to initialize
    */
    constructor(IKernel _kernel, bytes32 _appId, bytes _initializePayload)
        AppProxyBase(_kernel, _appId, _initializePayload)
        public // solium-disable-line visibility-first
    {
        // solium-disable-previous-line no-empty-blocks
    }

    /**
     * @dev ERC897, the address the proxy would delegate calls to
     */
    function implementation() public view returns (address) {
        return getAppBase(appId());
    }

    /**
     * @dev ERC897, whether it is a forwarding (1) or an upgradeable (2) proxy
     */
    function proxyType() public pure returns (uint256 proxyTypeId) {
        return UPGRADEABLE;
    }
}

File 2 of 13 : IACL.sol
/*
 * SPDX-License-Identifier:    MIT
 */

pragma solidity ^0.4.24;


interface IACL {
    function initialize(address permissionsCreator) external;

    // TODO: this should be external
    // See https://github.com/ethereum/solidity/issues/4832
    function hasPermission(address who, address where, bytes32 what, bytes how) public view returns (bool);
}

File 3 of 13 : AppProxyBase.sol
pragma solidity 0.4.24;

import "./AppStorage.sol";
import "../common/DepositableDelegateProxy.sol";
import "../kernel/KernelConstants.sol";
import "../kernel/IKernel.sol";


contract AppProxyBase is AppStorage, DepositableDelegateProxy, KernelNamespaceConstants {
    /**
    * @dev Initialize AppProxy
    * @param _kernel Reference to organization kernel for the app
    * @param _appId Identifier for app
    * @param _initializePayload Payload for call to be made after setup to initialize
    */
    constructor(IKernel _kernel, bytes32 _appId, bytes _initializePayload) public {
        setKernel(_kernel);
        setAppId(_appId);

        // Implicit check that kernel is actually a Kernel
        // The EVM doesn't actually provide a way for us to make sure, but we can force a revert to
        // occur if the kernel is set to 0x0 or a non-code address when we try to call a method on
        // it.
        address appCode = getAppBase(_appId);

        // If initialize payload is provided, it will be executed
        if (_initializePayload.length > 0) {
            require(isContract(appCode));
            // Cannot make delegatecall as a delegateproxy.delegatedFwd as it
            // returns ending execution context and halts contract deployment
            require(appCode.delegatecall(_initializePayload));
        }
    }

    function getAppBase(bytes32 _appId) internal view returns (address) {
        return kernel().getApp(KERNEL_APP_BASES_NAMESPACE, _appId);
    }
}

File 4 of 13 : AppStorage.sol
/*
 * SPDX-License-Identifier:    MIT
 */

pragma solidity ^0.4.24;

import "../common/UnstructuredStorage.sol";
import "../kernel/IKernel.sol";


contract AppStorage {
    using UnstructuredStorage for bytes32;

    /* Hardcoded constants to save gas
    bytes32 internal constant KERNEL_POSITION = keccak256("aragonOS.appStorage.kernel");
    bytes32 internal constant APP_ID_POSITION = keccak256("aragonOS.appStorage.appId");
    */
    bytes32 internal constant KERNEL_POSITION = 0x4172f0f7d2289153072b0a6ca36959e0cbe2efc3afe50fc81636caa96338137b;
    bytes32 internal constant APP_ID_POSITION = 0xd625496217aa6a3453eecb9c3489dc5a53e6c67b444329ea2b2cbc9ff547639b;

    function kernel() public view returns (IKernel) {
        return IKernel(KERNEL_POSITION.getStorageAddress());
    }

    function appId() public view returns (bytes32) {
        return APP_ID_POSITION.getStorageBytes32();
    }

    function setKernel(IKernel _kernel) internal {
        KERNEL_POSITION.setStorageAddress(address(_kernel));
    }

    function setAppId(bytes32 _appId) internal {
        APP_ID_POSITION.setStorageBytes32(_appId);
    }
}

File 5 of 13 : DelegateProxy.sol
pragma solidity 0.4.24;

import "../common/IsContract.sol";
import "../lib/misc/ERCProxy.sol";


contract DelegateProxy is ERCProxy, IsContract {
    uint256 internal constant FWD_GAS_LIMIT = 10000;

    /**
    * @dev Performs a delegatecall and returns whatever the delegatecall returned (entire context execution will return!)
    * @param _dst Destination address to perform the delegatecall
    * @param _calldata Calldata for the delegatecall
    */
    function delegatedFwd(address _dst, bytes _calldata) internal {
        require(isContract(_dst));
        uint256 fwdGasLimit = FWD_GAS_LIMIT;

        assembly {
            let result := delegatecall(sub(gas, fwdGasLimit), _dst, add(_calldata, 0x20), mload(_calldata), 0, 0)
            let size := returndatasize
            let ptr := mload(0x40)
            returndatacopy(ptr, 0, size)

            // revert instead of invalid() bc if the underlying call failed with invalid() it already wasted gas.
            // if the call returned error data, forward it
            switch result case 0 { revert(ptr, size) }
            default { return(ptr, size) }
        }
    }
}

File 6 of 13 : DepositableDelegateProxy.sol
pragma solidity 0.4.24;

import "./DelegateProxy.sol";
import "./DepositableStorage.sol";


contract DepositableDelegateProxy is DepositableStorage, DelegateProxy {
    event ProxyDeposit(address sender, uint256 value);

    function () external payable {
        uint256 forwardGasThreshold = FWD_GAS_LIMIT;
        bytes32 isDepositablePosition = DEPOSITABLE_POSITION;

        // Optimized assembly implementation to prevent EIP-1884 from breaking deposits, reference code in Solidity:
        // https://github.com/aragon/aragonOS/blob/v4.2.1/contracts/common/DepositableDelegateProxy.sol#L10-L20
        assembly {
            // Continue only if the gas left is lower than the threshold for forwarding to the implementation code,
            // otherwise continue outside of the assembly block.
            if lt(gas, forwardGasThreshold) {
                // Only accept the deposit and emit an event if all of the following are true:
                // the proxy accepts deposits (isDepositable), msg.data.length == 0, and msg.value > 0
                if and(and(sload(isDepositablePosition), iszero(calldatasize)), gt(callvalue, 0)) {
                    // Equivalent Solidity code for emitting the event:
                    // emit ProxyDeposit(msg.sender, msg.value);

                    let logData := mload(0x40) // free memory pointer
                    mstore(logData, caller) // add 'msg.sender' to the log data (first event param)
                    mstore(add(logData, 0x20), callvalue) // add 'msg.value' to the log data (second event param)

                    // Emit an event with one topic to identify the event: keccak256('ProxyDeposit(address,uint256)') = 0x15ee...dee1
                    log1(logData, 0x40, 0x15eeaa57c7bd188c1388020bcadc2c436ec60d647d36ef5b9eb3c742217ddee1)

                    stop() // Stop. Exits execution context
                }

                // If any of above checks failed, revert the execution (if ETH was sent, it is returned to the sender)
                revert(0, 0)
            }
        }

        address target = implementation();
        delegatedFwd(target, msg.data);
    }
}

File 7 of 13 : DepositableStorage.sol
pragma solidity 0.4.24;

import "./UnstructuredStorage.sol";


contract DepositableStorage {
    using UnstructuredStorage for bytes32;

    // keccak256("aragonOS.depositableStorage.depositable")
    bytes32 internal constant DEPOSITABLE_POSITION = 0x665fd576fbbe6f247aff98f5c94a561e3f71ec2d3c988d56f12d342396c50cea;

    function isDepositable() public view returns (bool) {
        return DEPOSITABLE_POSITION.getStorageBool();
    }

    function setDepositable(bool _depositable) internal {
        DEPOSITABLE_POSITION.setStorageBool(_depositable);
    }
}

File 8 of 13 : IsContract.sol
/*
 * SPDX-License-Identifier:    MIT
 */

pragma solidity ^0.4.24;


contract IsContract {
    /*
    * NOTE: this should NEVER be used for authentication
    * (see pitfalls: https://github.com/fergarrui/ethereum-security/tree/master/contracts/extcodesize).
    *
    * This is only intended to be used as a sanity check that an address is actually a contract,
    * RATHER THAN an address not being a contract.
    */
    function isContract(address _target) internal view returns (bool) {
        if (_target == address(0)) {
            return false;
        }

        uint256 size;
        assembly { size := extcodesize(_target) }
        return size > 0;
    }
}

File 9 of 13 : IVaultRecoverable.sol
/*
 * SPDX-License-Identifier:    MIT
 */

pragma solidity ^0.4.24;


interface IVaultRecoverable {
    event RecoverToVault(address indexed vault, address indexed token, uint256 amount);

    function transferToVault(address token) external;

    function allowRecoverability(address token) external view returns (bool);
    function getRecoveryVault() external view returns (address);
}

File 10 of 13 : UnstructuredStorage.sol
/*
 * SPDX-License-Identifier:    MIT
 */

pragma solidity ^0.4.24;


library UnstructuredStorage {
    function getStorageBool(bytes32 position) internal view returns (bool data) {
        assembly { data := sload(position) }
    }

    function getStorageAddress(bytes32 position) internal view returns (address data) {
        assembly { data := sload(position) }
    }

    function getStorageBytes32(bytes32 position) internal view returns (bytes32 data) {
        assembly { data := sload(position) }
    }

    function getStorageUint256(bytes32 position) internal view returns (uint256 data) {
        assembly { data := sload(position) }
    }

    function setStorageBool(bytes32 position, bool data) internal {
        assembly { sstore(position, data) }
    }

    function setStorageAddress(bytes32 position, address data) internal {
        assembly { sstore(position, data) }
    }

    function setStorageBytes32(bytes32 position, bytes32 data) internal {
        assembly { sstore(position, data) }
    }

    function setStorageUint256(bytes32 position, uint256 data) internal {
        assembly { sstore(position, data) }
    }
}

File 11 of 13 : IKernel.sol
/*
 * SPDX-License-Identifier:    MIT
 */

pragma solidity ^0.4.24;

import "../acl/IACL.sol";
import "../common/IVaultRecoverable.sol";


interface IKernelEvents {
    event SetApp(bytes32 indexed namespace, bytes32 indexed appId, address app);
}


// This should be an interface, but interfaces can't inherit yet :(
contract IKernel is IKernelEvents, IVaultRecoverable {
    function acl() public view returns (IACL);
    function hasPermission(address who, address where, bytes32 what, bytes how) public view returns (bool);

    function setApp(bytes32 namespace, bytes32 appId, address app) public;
    function getApp(bytes32 namespace, bytes32 appId) public view returns (address);
}

File 12 of 13 : KernelConstants.sol
/*
 * SPDX-License-Identifier:    MIT
 */

pragma solidity ^0.4.24;


contract KernelAppIds {
    /* Hardcoded constants to save gas
    bytes32 internal constant KERNEL_CORE_APP_ID = apmNamehash("kernel");
    bytes32 internal constant KERNEL_DEFAULT_ACL_APP_ID = apmNamehash("acl");
    bytes32 internal constant KERNEL_DEFAULT_VAULT_APP_ID = apmNamehash("vault");
    */
    bytes32 internal constant KERNEL_CORE_APP_ID = 0x3b4bf6bf3ad5000ecf0f989d5befde585c6860fea3e574a4fab4c49d1c177d9c;
    bytes32 internal constant KERNEL_DEFAULT_ACL_APP_ID = 0xe3262375f45a6e2026b7e7b18c2b807434f2508fe1a2a3dfb493c7df8f4aad6a;
    bytes32 internal constant KERNEL_DEFAULT_VAULT_APP_ID = 0x7e852e0fcfce6551c13800f1e7476f982525c2b5277ba14b24339c68416336d1;
}


contract KernelNamespaceConstants {
    /* Hardcoded constants to save gas
    bytes32 internal constant KERNEL_CORE_NAMESPACE = keccak256("core");
    bytes32 internal constant KERNEL_APP_BASES_NAMESPACE = keccak256("base");
    bytes32 internal constant KERNEL_APP_ADDR_NAMESPACE = keccak256("app");
    */
    bytes32 internal constant KERNEL_CORE_NAMESPACE = 0xc681a85306374a5ab27f0bbc385296a54bcd314a1948b6cf61c4ea1bc44bb9f8;
    bytes32 internal constant KERNEL_APP_BASES_NAMESPACE = 0xf1f3eb40f5bc1ad1344716ced8b8a0431d840b5783aea1fd01786bc26f35ac0f;
    bytes32 internal constant KERNEL_APP_ADDR_NAMESPACE = 0xd6f028ca0e8edb4a8c9757ca4fdccab25fa1e0317da1188108f7d2dee14902fb;
}

File 13 of 13 : ERCProxy.sol
/*
 * SPDX-License-Identifier:    MIT
 */

pragma solidity ^0.4.24;


contract ERCProxy {
    uint256 internal constant FORWARDING = 1;
    uint256 internal constant UPGRADEABLE = 2;

    function proxyType() public pure returns (uint256 proxyTypeId);
    function implementation() public view returns (address codeAddr);
}

Settings
{
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "evmVersion": "constantinople",
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "libraries": {}
}

Contract ABI

[{"constant":true,"inputs":[],"name":"proxyType","outputs":[{"name":"proxyTypeId","type":"uint256"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[],"name":"isDepositable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"implementation","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_kernel","type":"address"},{"name":"_appId","type":"bytes32"},{"name":"_initializePayload","type":"bytes"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"sender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"ProxyDeposit","type":"event"}]

Deployed Bytecode

0x6080604052600436106100505760003560e01c63ffffffff1680634555d5c91461010f57806348a0c8dd146101365780635c60da1b1461015f57806380afdea81461019d578063d4aae0c4146101b2575b6127107f665fd576fbbe6f247aff98f5c94a561e3f71ec2d3c988d56f12d342396c50cea6000825a10156100c55760003411361583541616156100c0576040513381523460208201527f15eeaa57c7bd188c1388020bcadc2c436ec60d647d36ef5b9eb3c742217ddee1604082a1005b600080fd5b6100cd6101c7565b905061010a816000368080601f016020809104026020016040519081016040528093929190818152602001838380828437506101de945050505050565b505050005b34801561011b57600080fd5b5061012461021f565b60408051918252519081900360200190f35b34801561014257600080fd5b5061014b610224565b604080519115158252519081900360200190f35b34801561016b57600080fd5b506101746101c7565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b3480156101a957600080fd5b5061012461024f565b3480156101be57600080fd5b5061017461027a565b60006101d96101d461024f565b6102a5565b905090565b60006101e983610379565b15156101f457600080fd5b612710905060008083516020850186855a03f43d604051816000823e82801561021b578282f35b8282fd5b600290565b60006101d97f665fd576fbbe6f247aff98f5c94a561e3f71ec2d3c988d56f12d342396c50cea6103b3565b60006101d97fd625496217aa6a3453eecb9c3489dc5a53e6c67b444329ea2b2cbc9ff547639b6103b3565b60006101d97f4172f0f7d2289153072b0a6ca36959e0cbe2efc3afe50fc81636caa96338137b6103b3565b60006102af61027a565b604080517fbe00bbd80000000000000000000000000000000000000000000000000000000081527ff1f3eb40f5bc1ad1344716ced8b8a0431d840b5783aea1fd01786bc26f35ac0f600482015260248101859052905173ffffffffffffffffffffffffffffffffffffffff929092169163be00bbd8916044808201926020929091908290030181600087803b15801561034757600080fd5b505af115801561035b573d6000803e3d6000fd5b505050506040513d602081101561037157600080fd5b505192915050565b60008073ffffffffffffffffffffffffffffffffffffffff831615156103a257600091506103ad565b823b90506000811191505b50919050565b5490565b5490565b9055565b90555600a165627a7a723058201f7172bafbfd668d51a2f5278c487bd0c3ae1b874a501ce6d1eb7aa8dbccb1860029

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
[ 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.