ETH Price: $3,078.61 (-6.87%)
 

Overview

ETH Balance

1.662455827223191282 ETH

Eth Value

$5,118.05 (@ $3,078.61/ETH)

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Claim Rewards217150472025-01-27 9:44:3519 mins ago1737971075IN
0xc2f44530...95ac9fD08
0 ETH0.000318595.32133805
Stake217111392025-01-26 20:40:5913 hrs ago1737924059IN
0xc2f44530...95ac9fD08
0 ETH0.000659556.35430147
Stake217093612025-01-26 14:43:2319 hrs ago1737902603IN
0xc2f44530...95ac9fD08
0 ETH0.000716985.42540835
Unstake217088152025-01-26 12:53:4721 hrs ago1737896027IN
0xc2f44530...95ac9fD08
0 ETH0.000453734.2879261
Claim Rewards217084282025-01-26 11:35:4722 hrs ago1737891347IN
0xc2f44530...95ac9fD08
0 ETH0.000189573.16633043
Claim Rewards217084242025-01-26 11:34:5922 hrs ago1737891299IN
0xc2f44530...95ac9fD08
0 ETH0.000202123.37588789
Claim Rewards217076422025-01-26 8:57:1125 hrs ago1737881831IN
0xc2f44530...95ac9fD08
0 ETH0.000161662.70010919
Claim Rewards217035402025-01-25 19:13:3538 hrs ago1737832415IN
0xc2f44530...95ac9fD08
0 ETH0.000419495.98941072
Unstake217028332025-01-25 16:52:1141 hrs ago1737823931IN
0xc2f44530...95ac9fD08
0 ETH0.000662266.25786802
Claim Rewards216971042025-01-24 21:39:112 days ago1737754751IN
0xc2f44530...95ac9fD08
0 ETH0.000480488.02525708
Claim Rewards216967992025-01-24 20:37:592 days ago1737751079IN
0xc2f44530...95ac9fD08
0 ETH0.0006571310.97559567
Stake216908752025-01-24 0:47:593 days ago1737679679IN
0xc2f44530...95ac9fD08
0 ETH0.000570785.78740794
Claim Rewards216908622025-01-24 0:45:233 days ago1737679523IN
0xc2f44530...95ac9fD08
0 ETH0.000402485.74649228
Claim Rewards216901782025-01-23 22:27:233 days ago1737671243IN
0xc2f44530...95ac9fD08
0 ETH0.0007465912.46978882
Transfer216889972025-01-23 18:30:473 days ago1737657047IN
0xc2f44530...95ac9fD08
0.463 ETH0.0006237510.04021153
Claim Rewards216869832025-01-23 11:46:473 days ago1737632807IN
0xc2f44530...95ac9fD08
0 ETH0.000348465.82022724
Withdraw216860042025-01-23 8:29:594 days ago1737620999IN
0xc2f44530...95ac9fD08
0 ETH0.000392095.09698803
Stake216842122025-01-23 2:29:114 days ago1737599351IN
0xc2f44530...95ac9fD08
0 ETH0.00089336.76018339
Stake216836742025-01-23 0:40:594 days ago1737592859IN
0xc2f44530...95ac9fD08
0 ETH0.000900698.67756986
Stake216834612025-01-22 23:57:594 days ago1737590279IN
0xc2f44530...95ac9fD08
0 ETH0.000641885.30939011
Claim Rewards216830562025-01-22 22:36:594 days ago1737585419IN
0xc2f44530...95ac9fD08
0 ETH0.000372176.21616938
Unstake216817462025-01-22 18:13:234 days ago1737569603IN
0xc2f44530...95ac9fD08
0 ETH0.0012473611.78797588
Claim Rewards216806892025-01-22 14:40:474 days ago1737556847IN
0xc2f44530...95ac9fD08
0 ETH0.0010756215.35725877
Stake216806212025-01-22 14:26:594 days ago1737556019IN
0xc2f44530...95ac9fD08
0 ETH0.0015926815.34262289
Claim Rewards216800612025-01-22 12:34:354 days ago1737549275IN
0xc2f44530...95ac9fD08
0 ETH0.0007116410.58372438
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block
From
To
217150472025-01-27 9:44:3519 mins ago1737971075
0xc2f44530...95ac9fD08
0.00039008 ETH
217139022025-01-27 5:55:114 hrs ago1737957311
0xc2f44530...95ac9fD08
0.09708754 ETH
217084282025-01-26 11:35:4722 hrs ago1737891347
0xc2f44530...95ac9fD08
0.01151863 ETH
217084242025-01-26 11:34:5922 hrs ago1737891299
0xc2f44530...95ac9fD08
0.01095285 ETH
217076422025-01-26 8:57:1125 hrs ago1737881831
0xc2f44530...95ac9fD08
0.02304072 ETH
217035402025-01-25 19:13:3538 hrs ago1737832415
0xc2f44530...95ac9fD08
0.01292484 ETH
216971042025-01-24 21:39:112 days ago1737754751
0xc2f44530...95ac9fD08
0.03456108 ETH
216967992025-01-24 20:37:592 days ago1737751079
0xc2f44530...95ac9fD08
0.03425266 ETH
216908622025-01-24 0:45:233 days ago1737679523
0xc2f44530...95ac9fD08
0.00757074 ETH
216901782025-01-23 22:27:233 days ago1737671243
0xc2f44530...95ac9fD08
0.00259676 ETH
216869832025-01-23 11:46:473 days ago1737632807
0xc2f44530...95ac9fD08
0.00233044 ETH
216830562025-01-22 22:36:594 days ago1737585419
0xc2f44530...95ac9fD08
0.00349762 ETH
216806892025-01-22 14:40:474 days ago1737556847
0xc2f44530...95ac9fD08
0.09196134 ETH
216800612025-01-22 12:34:354 days ago1737549275
0xc2f44530...95ac9fD08
0.03210735 ETH
216800312025-01-22 12:28:354 days ago1737548915
0xc2f44530...95ac9fD08
0.03537572 ETH
216796752025-01-22 11:17:114 days ago1737544631
0xc2f44530...95ac9fD08
0.03720307 ETH
216796302025-01-22 11:08:114 days ago1737544091
0xc2f44530...95ac9fD08
0.01035556 ETH
216792522025-01-22 9:52:355 days ago1737539555
0xc2f44530...95ac9fD08
0.0037219 ETH
216771732025-01-22 2:54:235 days ago1737514463
0xc2f44530...95ac9fD08
0.00924698 ETH
216711002025-01-21 6:33:356 days ago1737441215
0xc2f44530...95ac9fD08
0.06414652 ETH
216666742025-01-20 15:43:236 days ago1737387803
0xc2f44530...95ac9fD08
0.04406025 ETH
216586462025-01-19 12:51:237 days ago1737291083
0xc2f44530...95ac9fD08
0.1857002 ETH
216508062025-01-18 10:34:478 days ago1737196487
0xc2f44530...95ac9fD08
0.00868701 ETH
216461352025-01-17 18:54:479 days ago1737140087
0xc2f44530...95ac9fD08
0.02147764 ETH
216441812025-01-17 12:21:599 days ago1737116519
0xc2f44530...95ac9fD08
0.00913871 ETH
View All Internal Transactions
Loading...
Loading

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

Contract Name:
StakingDiamond

Compiler Version
v0.8.23+commit.f704f362

Optimization Enabled:
Yes with 200 runs

Other Settings:
paris EvmVersion
File 1 of 6 : StakingDiamond.sol
// SPDX-License-Identifier: MIT
/*********************************************************************************************\
* Deployyyyer: https://deployyyyer.io
* Twitter: https://x.com/deployyyyer
* Telegram: https://t.me/Deployyyyer
/*********************************************************************************************/
pragma solidity ^0.8.23;

import { LibDiamond } from "../libraries/LibDiamond.sol";
import { IDiamondCut } from "../interfaces/IDiamondCut.sol";

import "../interfaces/IDiamondLoupe.sol";
import "../interfaces/IDiamondCut.sol";
//import "../interfaces/IERC173.sol";
//import "../interfaces/IERC165.sol";
import {AppStorageStaking} from "../libraries/LibAppStorageStaking.sol";
import { IStaking } from "../interfaces/IStaking.sol";
//import "hardhat/console.sol";

/// @title StakingDiamond 
/// @notice Diamond Proxy for a staking pool
/// @dev 
contract StakingDiamond { 
    AppStorageStaking internal s;
    event RewardsReceived(address indexed sender, uint256 amount, uint256 accRewardsPerShare);
    /// @notice Constructor of Diamond Proxy for a staking pool
    constructor(IDiamondCut.FacetCut[] memory _diamondCut, IStaking.StakingParams memory params) {
        require(params.owner != address(0));
        LibDiamond.diamondCut(_diamondCut, address(0), new bytes(0));
        LibDiamond.setContractOwner(params.owner);

        LibDiamond.DiamondStorage storage ds = LibDiamond.diamondStorage();

        // adding ERC165 data
        //ds.supportedInterfaces[type(IERC165).interfaceId] = true;
        ds.supportedInterfaces[type(IDiamondLoupe).interfaceId] = true;
        //ds.supportedInterfaces[type(IERC173).interfaceId] = true;

        //init appStorage 
        s.accRewardsPrecision = 1e18;  
        s.token = msg.sender;
        s.withdrawTimeout = params.withdrawTimeout;

    }  

    /// @notice fallback
    // Find facet for function that is called and execute the
    // function if a facet is found and return any value.
    fallback() external payable {
        LibDiamond.DiamondStorage storage ds;
        bytes32 position = LibDiamond.DIAMOND_STORAGE_POSITION;
        // get diamond storage
        assembly {
            ds.slot := position
        }
        // get facet from function selector
        address facet = address(bytes20(ds.facets[msg.sig]));
        //require(facet != address(0), "sd1");
        require(facet != address(0), "sd1");
        // Execute external function from facet using delegatecall and return any value.
        assembly {
            // copy function selector and any arguments
            calldatacopy(0, 0, calldatasize())
            // execute function call using the facet
            let result := delegatecall(gas(), facet, 0, calldatasize(), 0, 0)
            // get any return value
            returndatacopy(0, 0, returndatasize())
            // return any return value or error back to the caller
            switch result
                case 0 {
                    revert(0, returndatasize())
                }
                default {
                    return(0, returndatasize())
                }
        }
    }
    /// @notice receive
    /// @dev staing rewards in eth, sets accRewardsPerShare
    receive() external payable {
        uint256 amount = msg.value;
        require(amount > 0, "sd2");
        s.totalRewards[msg.sender] += amount;
        s.totalETHCollected += amount;
        if (s.totalStakedAmount == 0) {
            s.unallocatedETH += amount;
        } else {
            s.accRewardsPerShare += ((amount+s.unallocatedETH) * s.accRewardsPrecision) / s.totalStakedAmount;  
            s.unallocatedETH = 0;         
        }
        emit RewardsReceived(msg.sender, amount, s.accRewardsPerShare);
    }
}

File 2 of 6 : IDiamondCut.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.23;

/******************************************************************************\
* Author: Nick Mudge <[email protected]> (https://twitter.com/mudgen)
* EIP-2535 Diamonds: https://eips.ethereum.org/EIPS/eip-2535
/******************************************************************************/

interface IDiamondCut {
    enum FacetCutAction {Add, Replace, Remove}
    // Add=0, Replace=1, Remove=2

    struct FacetCut {
        address facetAddress;
        FacetCutAction action;
        bytes4[] functionSelectors;
    }

    /// @notice Add/replace/remove any number of functions and optionally execute
    ///         a function with delegatecall
    /// @param _diamondCut Contains the facet addresses and function selectors
    /// @param _init The address of the contract or facet to execute _calldata
    /// @param _calldata A function call, including function selector and arguments
    ///                  _calldata is executed with delegatecall on _init
    function diamondCut(
        FacetCut[] calldata _diamondCut,
        address _init,
        bytes calldata _calldata
    ) external;

    event DiamondCut(FacetCut[] _diamondCut, address _init, bytes _calldata);
}

File 3 of 6 : IDiamondLoupe.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.23;

/******************************************************************************\
* Author: Nick Mudge <[email protected]> (https://twitter.com/mudgen)
* EIP-2535 Diamonds: https://eips.ethereum.org/EIPS/eip-2535
/******************************************************************************/

// A loupe is a small magnifying glass used to look at diamonds.
// These functions look at diamonds
interface IDiamondLoupe {
    /// These functions are expected to be called frequently
    /// by tools.

    struct Facet {
        address facetAddress;
        bytes4[] functionSelectors;
    }

    /// @notice Gets all facet addresses and their four byte function selectors.
    /// @return facets_ Facet
    function facets() external view returns (Facet[] memory facets_);

    /// @notice Gets all the function selectors supported by a specific facet.
    /// @param _facet The facet address.
    /// @return facetFunctionSelectors_
    function facetFunctionSelectors(address _facet) external view returns (bytes4[] memory facetFunctionSelectors_);

    /// @notice Get all the facet addresses used by a diamond.
    /// @return facetAddresses_
    function facetAddresses() external view returns (address[] memory facetAddresses_);

    /// @notice Gets the facet that supports the given selector.
    /// @dev If facet is not found return address(0).
    /// @param _functionSelector The function selector.
    /// @return facetAddress_ The facet address.
    function facetAddress(bytes4 _functionSelector) external view returns (address facetAddress_);
}

File 4 of 6 : IStaking.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.23;

interface IStaking {
    struct StakingParams {
            address owner;
            uint256 withdrawTimeout;
        }
    struct StakingDetails {
        uint256 claimable;
        uint256 withdrawable;
        uint256 unstakedAmount;
        uint256 totalRewards;
        uint256 timeToWithdraw;
        uint256 stakedAmount;
    }
    function transferOwnership(address _newOwner) external;
    function owner() external view returns (address);
    function rescueERC20(address _address) external;
    function stake(uint256 _amount) external;
    function unstake(uint256 _amount) external;
    function restake() external;
    function withdraw() external;
    function claimRewards() external;
    //function refreshPool() external;
    function getUserDetails(address) external view returns (StakingDetails memory);
}

File 5 of 6 : LibAppStorageStaking.sol
// SPDX-License-Identifier: MIT
/*********************************************************************************************\
* Deployyyyer: https://deployyyyer.io
* Twitter: https://x.com/deployyyyer
* Telegram: https://t.me/Deployyyyer
/*********************************************************************************************/
pragma solidity ^0.8.23;
import {LibDiamond} from "./LibDiamond.sol";


struct AppStorageStaking {
    address token;
    uint256 accRewardsPrecision;
    uint256 totalStakedAmount;
    uint256 withdrawTimeout;
    uint256 unallocatedETH;
    uint256 accRewardsPerShare;
    uint256 totalETHCollected;
    mapping(address => uint256) totalRewards;
    mapping(address => uint256) rewardDebt;
    mapping(address => uint256) stakedAmount;
    mapping(address => uint256) claimedAmount;
    mapping(address => uint256) claimableRewards;
    mapping(address => uint256) lastUnstakeTime;
    mapping(address => uint256) unstakedAmount;

}



contract Modifiers {
    AppStorageStaking internal s;
}

File 6 of 6 : LibDiamond.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.23;

/*********************************************************************************************\
* Authors: Nick Mudge <[email protected]> (https://twitter.com/mudgen), 
* EIP-2535 Diamonds: https://eips.ethereum.org/EIPS/eip-2535
/*********************************************************************************************/
import { IDiamondCut } from "../interfaces/IDiamondCut.sol";

library LibDiamond {
    bytes32 constant DIAMOND_STORAGE_POSITION = keccak256("diamond.standard.diamond.storage");

    struct DiamondStorage {
        // maps function selectors to the facets that execute the functions.
        // and maps the selectors to their position in the selectorSlots array.
        // func selector => address facet, selector position
        mapping(bytes4 => bytes32) facets;
        // array of slots of function selectors.
        // each slot holds 8 function selectors.
        mapping(uint256 => bytes32) selectorSlots;
        // The number of function selectors in selectorSlots
        uint16 selectorCount;
        // Used to query if a contract implements an interface.
        // Used to implement ERC-165.
        mapping(bytes4 => bool) supportedInterfaces;
        // owner of the contract
        address contractOwner;
    }

    function diamondStorage() internal pure returns (DiamondStorage storage ds) {
        bytes32 position = DIAMOND_STORAGE_POSITION;
        assembly {
            ds.slot := position
        }
    }

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    function setContractOwner(address _newOwner) internal {
        DiamondStorage storage ds = diamondStorage();
        address previousOwner = ds.contractOwner;
        ds.contractOwner = _newOwner;
        emit OwnershipTransferred(previousOwner, _newOwner);
    }

    function contractOwner() internal view returns (address contractOwner_) {
        contractOwner_ = diamondStorage().contractOwner;
    }

    function enforceIsContractOwner() internal view {
        require(msg.sender == diamondStorage().contractOwner, "l0");
    }

    //event DiamondCut(IDiamondCut.FacetCut[] _diamondCut, address _init, bytes _calldata);

    //bytes32 constant CLEAR_ADDRESS_MASK = bytes32(uint256(0xffffffffffffffffffffffff));
    bytes32 constant CLEAR_SELECTOR_MASK = bytes32(uint256(0xffffffff << 224));

    // Internal function version of diamondCut
    // This code is almost the same as the external diamondCut,
    // except it is using 'Facet[] memory _diamondCut' instead of
    // 'Facet[] calldata _diamondCut'.
    // The code is duplicated to prevent copying calldata to memory which
    // causes an error for a two dimensional array.
    // also removed action on _calldata and _init is always address(0)
    // maintained same old signature
    function diamondCut(
        IDiamondCut.FacetCut[] memory _diamondCut,
        address _init,
        bytes memory _calldata
    ) internal {
        DiamondStorage storage ds = diamondStorage();
        uint256 originalSelectorCount = ds.selectorCount;
        uint256 selectorCount = originalSelectorCount;
        bytes32 selectorSlot;
        // Check if last selector slot is not full
        // "selectorCount & 7" is a gas efficient modulo by eight "selectorCount % 8" 
        if (selectorCount & 7 > 0) {
            // get last selectorSlot
            // "selectorSlot >> 3" is a gas efficient division by 8 "selectorSlot / 8"
            selectorSlot = ds.selectorSlots[selectorCount >> 3];
        }
        // loop through diamond cut
        for (uint256 facetIndex; facetIndex < _diamondCut.length; facetIndex++) {
            (selectorCount, selectorSlot) = addReplaceRemoveFacetSelectors(
                selectorCount,
                selectorSlot,
                _diamondCut[facetIndex].facetAddress,
                _diamondCut[facetIndex].action,
                _diamondCut[facetIndex].functionSelectors
            );
        }
        if (selectorCount != originalSelectorCount) {
            ds.selectorCount = uint16(selectorCount);
        }
        // If last selector slot is not full
        // "selectorCount & 7" is a gas efficient modulo by eight "selectorCount % 8" 
        if (selectorCount & 7 > 0) {
            // "selectorSlot >> 3" is a gas efficient division by 8 "selectorSlot / 8"
            ds.selectorSlots[selectorCount >> 3] = selectorSlot;
        }
        //emit DiamondCut(_diamondCut, _init, _calldata);
        //initializeDiamondCut(_init, _calldata);
        require(_init == address(0), "l1");
        require(_calldata.length == 0, "l2");
    }

    //supports only add, maintaining lib fn name
    function addReplaceRemoveFacetSelectors(
        uint256 _selectorCount,
        bytes32 _selectorSlot,
        address _newFacetAddress,
        IDiamondCut.FacetCutAction _action,
        bytes4[] memory _selectors
    ) internal returns (uint256, bytes32) {
        DiamondStorage storage ds = diamondStorage();
        require(_selectors.length > 0, "l3");
        if (_action == IDiamondCut.FacetCutAction.Add) {
            enforceHasContractCode(_newFacetAddress, "l4");
            for (uint256 selectorIndex; selectorIndex < _selectors.length; selectorIndex++) {
                bytes4 selector = _selectors[selectorIndex];
                bytes32 oldFacet = ds.facets[selector];
                require(address(bytes20(oldFacet)) == address(0), "l5");
                // add facet for selector
                ds.facets[selector] = bytes20(_newFacetAddress) | bytes32(_selectorCount);
                // "_selectorCount & 7" is a gas efficient modulo by eight "_selectorCount % 8" 
                uint256 selectorInSlotPosition = (_selectorCount & 7) << 5;
                // clear selector position in slot and add selector
                _selectorSlot = (_selectorSlot & ~(CLEAR_SELECTOR_MASK >> selectorInSlotPosition)) | (bytes32(selector) >> selectorInSlotPosition);
                // if slot is full then write it to storage
                if (selectorInSlotPosition == 224) {
                    // "_selectorSlot >> 3" is a gas efficient division by 8 "_selectorSlot / 8"
                    ds.selectorSlots[_selectorCount >> 3] = _selectorSlot;
                    _selectorSlot = 0;
                }
                _selectorCount++;
            }
        } 
        else {
            revert("l6");
        }
        return (_selectorCount, _selectorSlot);
    }

    function enforceHasContractCode(address _contract, string memory _errorMessage) internal view {
        uint256 contractSize;
        assembly {
            contractSize := extcodesize(_contract)
        }
        require(contractSize > 0, _errorMessage);
    }
}

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

Contract Security Audit

Contract ABI

[{"inputs":[{"components":[{"internalType":"address","name":"facetAddress","type":"address"},{"internalType":"enum IDiamondCut.FacetCutAction","name":"action","type":"uint8"},{"internalType":"bytes4[]","name":"functionSelectors","type":"bytes4[]"}],"internalType":"struct IDiamondCut.FacetCut[]","name":"_diamondCut","type":"tuple[]"},{"components":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"withdrawTimeout","type":"uint256"}],"internalType":"struct IStaking.StakingParams","name":"params","type":"tuple"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"accRewardsPerShare","type":"uint256"}],"name":"RewardsReceived","type":"event"},{"stateMutability":"payable","type":"fallback"},{"stateMutability":"payable","type":"receive"}]

Deployed Bytecode

0x6080604052366101345734806100425760405162461bcd60e51b815260206004820152600360248201526239b21960e91b60448201526064015b60405180910390fd5b33600090815260076020526040812080548392906100619084906101e2565b90915550506006805482919060009061007b9084906101e2565b90915550506002546000036100aa57806000600401600082825461009f91906101e2565b909155506100ee9050565b6002546001546004546100bd90846101e2565b6100c791906101fb565b6100d19190610212565b600580546000906100e39084906101e2565b909155505060006004555b60055460405133917f731185b941ee4773f1c8f1cf0c22be2c6b4eaeb0075fbb4c524ac1f80ad391f39161012a91858252602082015260400190565b60405180910390a2005b600080356001600160e01b03191681527fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c6020819052604090912054819060601c806101a85760405162461bcd60e51b815260206004820152600360248201526273643160e81b6044820152606401610039565b3660008037600080366000845af43d6000803e8080156101c7573d6000f35b3d6000fd5b634e487b7160e01b600052601160045260246000fd5b808201808211156101f5576101f56101cc565b92915050565b80820281158282048414176101f5576101f56101cc565b60008261022f57634e487b7160e01b600052601260045260246000fd5b50049056fea26469706673582212207facf267715ec11a5c5b000e953f60bf12e4fe00e7c6b2dbf6e8b149e543ec7864736f6c63430008170033

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

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