Base Sepolia Testnet

Contract

0x9379A94B476BFB9a849954016866cF87e37Ee6A1
Source Code Source Code

Overview

ETH Balance

0.000215850208383879 ETH

Token Holdings

More Info

Multichain Info

N/A
Transaction Hash
Method
Block
From
To
Amount
Execute363695732026-01-15 20:03:5491 days ago1768507434IN
0x9379A94B...7e37Ee6A1
0 ETH0.000000070.0012
Execute363695712026-01-15 20:03:5091 days ago1768507430IN
0x9379A94B...7e37Ee6A1
0 ETH0.000000080.0012
Execute363695682026-01-15 20:03:4491 days ago1768507424IN
0x9379A94B...7e37Ee6A1
0 ETH0.000000080.0012
Execute363314712026-01-14 22:53:5092 days ago1768431230IN
0x9379A94B...7e37Ee6A1
0 ETH0.000000620.0012
Execute363314682026-01-14 22:53:4492 days ago1768431224IN
0x9379A94B...7e37Ee6A1
0 ETH0.000000720.0012
Execute363313802026-01-14 22:50:4892 days ago1768431048IN
0x9379A94B...7e37Ee6A1
0 ETH0.000000070.0012
Execute363313772026-01-14 22:50:4292 days ago1768431042IN
0x9379A94B...7e37Ee6A1
0 ETH0.000000080.0012
Execute363313752026-01-14 22:50:3892 days ago1768431038IN
0x9379A94B...7e37Ee6A1
0 ETH0.000000080.0012
Execute363310402026-01-14 22:39:2892 days ago1768430368IN
0x9379A94B...7e37Ee6A1
0 ETH0.000000070.0012
Execute363310372026-01-14 22:39:2292 days ago1768430362IN
0x9379A94B...7e37Ee6A1
0 ETH0.000000080.0012
Execute363310352026-01-14 22:39:1892 days ago1768430358IN
0x9379A94B...7e37Ee6A1
0 ETH0.000000080.0012
Execute363307332026-01-14 22:29:1492 days ago1768429754IN
0x9379A94B...7e37Ee6A1
0 ETH0.000000070.0012
Execute363307312026-01-14 22:29:1092 days ago1768429750IN
0x9379A94B...7e37Ee6A1
0 ETH0.000000420.0012
Execute363307292026-01-14 22:29:0692 days ago1768429746IN
0x9379A94B...7e37Ee6A1
0 ETH0.000000370.0012
Execute363307272026-01-14 22:29:0292 days ago1768429742IN
0x9379A94B...7e37Ee6A1
0 ETH0.000000360.0012
Execute363307242026-01-14 22:28:5692 days ago1768429736IN
0x9379A94B...7e37Ee6A1
0 ETH0.000000080.0012
Execute363307222026-01-14 22:28:5292 days ago1768429732IN
0x9379A94B...7e37Ee6A1
0 ETH0.000000080.0012
Execute363304152026-01-14 22:18:3892 days ago1768429118IN
0x9379A94B...7e37Ee6A1
0 ETH0.000000070.0012
Execute363304122026-01-14 22:18:3292 days ago1768429112IN
0x9379A94B...7e37Ee6A1
0 ETH0.000000420.0012
Execute363304082026-01-14 22:18:2492 days ago1768429104IN
0x9379A94B...7e37Ee6A1
0 ETH0.000000370.0012
Execute363304052026-01-14 22:18:1892 days ago1768429098IN
0x9379A94B...7e37Ee6A1
0 ETH0.000000390.0012
Execute363304032026-01-14 22:18:1492 days ago1768429094IN
0x9379A94B...7e37Ee6A1
0 ETH0.000000290.0012
Execute363303992026-01-14 22:18:0692 days ago1768429086IN
0x9379A94B...7e37Ee6A1
0 ETH0.00000010.0012
Execute363303952026-01-14 22:17:5892 days ago1768429078IN
0x9379A94B...7e37Ee6A1
0 ETH0.00000010.0012
Execute363298752026-01-14 22:00:3892 days ago1768428038IN
0x9379A94B...7e37Ee6A1
0 ETH0.000000070.0012
View all transactions

Latest 8 internal transactions

Parent Transaction Hash Block From To Amount
360656942026-01-08 19:14:3698 days ago1767899676
0x9379A94B...7e37Ee6A1
0.00002076 ETH
360655872026-01-08 19:11:0298 days ago1767899462
0x9379A94B...7e37Ee6A1
0.00000303 ETH
360653792026-01-08 19:04:0698 days ago1767899046
0x9379A94B...7e37Ee6A1
0.00000303 ETH
360651942026-01-08 18:57:5698 days ago1767898676
0x9379A94B...7e37Ee6A1
0.00000303 ETH
360651652026-01-08 18:56:5898 days ago1767898618
0x9379A94B...7e37Ee6A1
0.00000591 ETH
360451512026-01-08 7:49:5099 days ago1767858590
0x9379A94B...7e37Ee6A1
0.00002057 ETH
360451382026-01-08 7:49:2499 days ago1767858564
0x9379A94B...7e37Ee6A1
0.00002777 ETH
360447552026-01-08 7:36:3899 days ago1767857798  Contract Creation0 ETH

AA Transactions (ERC-4337)
Loading...
Loading

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

Contract Name:
Diamond

Compiler Version
v0.8.30+commit.73712a01

Optimization Enabled:
Yes with 200 runs

Other Settings:
prague EvmVersion

Contract Source Code (Solidity Standard Json-Input format)

// SPDX-License-Identifier: BUSL-1.1
pragma solidity ^0.8.30;

// solhint-disable ordering

import {IDiamondCut} from "../interfaces/IDiamondCut.sol";
import {Constants} from "./Constants.sol";
import {DiamondStorage} from "./DiamondStorage.sol";

/**
 * @title Diamond
 * @notice Core diamond proxy contract following EIP-2535
 * @dev This is the only contract in the system that uses a constructor
 *      Storage is shared via DiamondStorage abstract contract
 *      The diamond delegates all function calls to registered facets
 * @author CapSign Protocol Team
 */
contract Diamond is DiamondStorage {
    // ============ Constructor ============

    /**
     * @notice Deploy a new diamond with initial facets
     * @param _diamondCut Initial facet cuts to add
     * @param _init Address of initialization contract (optional)
     * @param _calldata Initialization call data (optional)
     */
    constructor(
        IDiamondCut.FacetCut[] memory _diamondCut,
        address _init,
        bytes memory _calldata
    ) payable {
        // Perform diamond cut
        diamondCut(_diamondCut);

        // Emit DiamondCut event as per ERC-2535
        emit IDiamondCut.DiamondCut(_diamondCut, _init, _calldata);

        // Call initialization if provided
        if (_init != address(0)) {
            // Handle multi-init pattern
            if (_init == Constants.MULTI_INIT_ADDRESS) {
                IDiamondCut.MultiInit[] memory multiInitData = abi.decode(_calldata, (IDiamondCut.MultiInit[]));
                uint256 length = multiInitData.length;
                for (uint256 i = 0; i < length; i++) {
                    address initAddress = multiInitData[i].init;

                    // Check that init address has code
                    if (initAddress.code.length == 0) {
                        revert IDiamondCut.Diamond_InitializationFailed("");
                    }

                    (bool multiSuccess, bytes memory multiError) = initAddress.delegatecall(multiInitData[i].initData);
                    if (!multiSuccess) {
                        if (multiError.length > 0) {
                            // Bubble up the error from the initialization contract
                            assembly {
                                let returndata_size := mload(multiError)
                                revert(add(32, multiError), returndata_size)
                            }
                        } else {
                            revert IDiamondCut.Diamond_InitializationFailed(multiError);
                        }
                    }
                }
            } else {
                // Handle single init
                // Check that init address has code
                if (_init.code.length == 0) {
                    revert IDiamondCut.Diamond_InitializationFailed("");
                }

                (bool success, bytes memory error) = _init.delegatecall(_calldata);
                if (!success) {
                    if (error.length > 0) {
                        // Bubble up the error from the initialization contract
                        assembly {
                            let returndata_size := mload(error)
                            revert(add(32, error), returndata_size)
                        }
                    } else {
                        revert IDiamondCut.Diamond_InitializationFailed(error);
                    }
                }
            }
        }
    }

    // ============ Fallback ============

    /**
     * @notice Fallback function that delegates calls to facets
     * @dev Looks up the facet address for msg.sig and delegates via delegatecall
     *      Reverts if no facet is registered for the function selector
     *      All state modifications affect the diamond's storage, not the facet's
     */
    fallback() external payable {
        DiamondStorageLayout storage ds = getDiamondStorage();
        address facet = ds.selectorInfo[msg.sig].facetAddress;

        if (facet == address(0)) {
            revert IDiamondCut.Diamond_FunctionDoesNotExist(msg.sig);
        }

        assembly {
            calldatacopy(0, 0, calldatasize())
            let result := delegatecall(gas(), facet, 0, calldatasize(), 0, 0)
            returndatacopy(0, 0, returndatasize())
            switch result
            case 0 { revert(0, returndatasize()) }
            default { return(0, returndatasize()) }
        }
    }

    /**
     * @notice Receive function to accept ETH transfers
     * @dev Allows the diamond to receive ETH without calldata
     */
    receive() external payable {}

    // ============ Internal Diamond Cut ============

    /**
     * @notice Internal function to perform diamond cut during construction
     * @dev Simplified version that only handles Add action during deployment
     *      Full diamond cut logic (Add/Replace/Remove) is in DiamondCutFacet
     * @param _diamondCut Array of facet cuts to add during deployment
     */
    function diamondCut(
        IDiamondCut.FacetCut[] memory _diamondCut
    ) internal {
        DiamondStorageLayout storage ds = getDiamondStorage();
        uint256 length = _diamondCut.length;

        for (uint256 facetIndex; facetIndex < length; facetIndex++) {
            IDiamondCut.FacetCutAction action = _diamondCut[facetIndex].action;
            bytes4[] memory functionSelectors = _diamondCut[facetIndex].functionSelectors;
            address facetAddress = _diamondCut[facetIndex].facetAddress;

            if (action == IDiamondCut.FacetCutAction.Add) {
                uint16 selectorCount = uint16(ds.selectors.length);
                for (uint256 selectorIndex; selectorIndex < functionSelectors.length; selectorIndex++) {
                    bytes4 selector = functionSelectors[selectorIndex];
                    ds.selectorInfo[selector] =
                        SelectorInfo({facetAddress: facetAddress, selectorPosition: selectorCount});
                    ds.selectors.push(selector);
                    selectorCount++;
                }
            }
        }
    }
}

File 2 of 4 : IDiamondCut.sol
// SPDX-License-Identifier: BUSL-1.1
pragma solidity ^0.8.30;

/**
 * @title IDiamondCut
 * @notice Interface for diamond modification operations
 * @dev Implements ERC-2535 Diamond Standard for adding, replacing, and removing facets
 * @author CapSign Protocol Team
 */
interface IDiamondCut {
    // ============ Enums & Structs ============

    /**
     * @notice Types of facet modification operations
     * @dev Add = 0: Add new function selectors to a facet
     *      Replace = 1: Replace existing function selectors with new facet
     *      Remove = 2: Remove function selectors from diamond
     */
    enum FacetCutAction {
        Add,
        Replace,
        Remove
    }

    /**
     * @notice Represents a facet modification operation
     * @dev Used to specify which functions to add, replace, or remove
     * @param facetAddress Address of the facet contract (zero address for Remove action)
     * @param action Type of operation to perform (Add, Replace, or Remove)
     * @param functionSelectors Array of function selectors to modify
     */
    struct FacetCut {
        address facetAddress;
        FacetCutAction action;
        bytes4[] functionSelectors;
    }

    /**
     * @notice Represents a multi-initialization call for diamond setup
     * @dev Used to batch multiple initialization calls into a single transaction
     *      Each init contract will be delegatecalled with its corresponding initData
     * @param init Address of the initialization contract
     * @param initData Calldata for the initialization function
     */
    struct MultiInit {
        address init;
        bytes initData;
    }

    // ============ Events ============

    /**
     * @notice Emitted when facets are added, replaced, or removed
     * @dev This event enables off-chain tracking of all diamond modifications
     * @param diamondCut Array of facet cuts that were performed
     * @param init Address of initialization contract used (or address(0))
     * @param data Initialization call data used (or empty bytes)
     */
    event DiamondCut(FacetCut[] diamondCut, address init, bytes data);

    // ============ Errors ============

    /**
     * @notice Thrown when no selectors provided for Add action
     */
    error DiamondCut_NoSelectorsGivenToAdd();

    /**
     * @notice Thrown when facet cut has no selectors
     * @param facet The facet address that was provided
     */
    error DiamondCut_NoSelectorsProvidedForFacet(address facet);

    /**
     * @notice Thrown when trying to add selectors to zero address
     * @param selectors The selectors that cannot be added
     */
    error DiamondCut_CannotAddSelectorsToZeroAddress(bytes4[] selectors);

    /**
     * @notice Thrown when facet address has no bytecode
     * @param facet The facet address with no code
     * @param message Additional context message
     */
    error DiamondCut_NoBytecodeAtAddress(address facet, string message);

    /**
     * @notice Thrown when trying to add a function that already exists
     * @param selector The function selector that already exists
     */
    error DiamondCut_FunctionAlreadyExists(bytes4 selector);

    /**
     * @notice Thrown when trying to replace functions from zero address
     * @param selectors The selectors that cannot be replaced
     */
    error DiamondCut_CannotReplaceFunctionsFromZeroAddress(bytes4[] selectors);

    /**
     * @notice Thrown when trying to replace function with same facet
     * @param selector The function selector
     */
    error DiamondCut_CannotReplaceFunctionWithSameFunctionFromSameFacet(bytes4 selector);

    /**
     * @notice Thrown when trying to replace a function that doesn't exist
     * @param selector The function selector that doesn't exist
     */
    error DiamondCut_CannotReplaceFunctionThatDoesNotExist(bytes4 selector);

    /**
     * @notice Thrown when remove action doesn't use zero address
     * @param facet The non-zero facet address provided
     */
    error DiamondCut_RemoveFacetAddressMustBeZeroAddress(address facet);

    /**
     * @notice Thrown when trying to remove a function that doesn't exist
     * @param selector The function selector that doesn't exist
     */
    error DiamondCut_CannotRemoveFunctionThatDoesNotExist(bytes4 selector);

    /**
     * @notice Thrown when initialization function reverts
     * @param initAddress The initialization contract address
     * @param data The calldata that caused the revert
     */
    error DiamondCut_InitializationFunctionReverted(address initAddress, bytes data);

    /**
     * @notice Thrown when a function selector doesn't exist in the diamond
     * @param selector The function selector that was called
     */
    error Diamond_FunctionDoesNotExist(bytes4 selector);

    /**
     * @notice Thrown when diamond initialization fails
     * @param error The error data from the failed initialization
     */
    error Diamond_InitializationFailed(bytes error);

    // ============ Functions ============

    /**
     * @notice Add/replace/remove facet functions from the diamond
     * @dev Executes all cuts in sequence, then optionally calls initialization contract
     *      Emits DiamondCut event after successful execution
     *      Reverts if any cut fails or initialization fails
     * @param _diamondCut Array of facet cuts to perform
     * @param _init Address of initialization contract (or address(0) to skip initialization)
     * @param _calldata Initialization call data (or empty bytes if no initialization)
     * @custom:requires-auth Caller must have appropriate access control permissions
     * @custom:security Initialization is executed via delegatecall, ensure init contract is trusted
     * @custom:emits DiamondCut
     */
    function diamondCut(
        FacetCut[] calldata _diamondCut,
        address _init,
        bytes calldata _calldata
    ) external;
}

File 3 of 4 : Constants.sol
// SPDX-License-Identifier: BUSL-1.1
// License details at https://github.com/capsign/protocol/blob/main/LICENSE
// Change Date: 2030-01-01
// Change License: MIT

pragma solidity ^0.8.30;

/**
 * @title Constants
 * @notice Global constants for the diamond system
 * @author CapSign Inc.
 */
library Constants {
    /**
     * @notice Magic address to signal multi-initialization during diamond cut
     * @dev When _init parameter equals this address, _calldata is decoded as MultiInit[]
     *      This allows multiple facet initializations in a single transaction
     *      This is a magic constant value, not a deployed contract address
     */
    address internal constant MULTI_INIT_ADDRESS = 0xD1a302d1A302d1A302d1A302d1A302D1A302D1a3;
}

File 4 of 4 : DiamondStorage.sol
// SPDX-License-Identifier: BUSL-1.1
pragma solidity ^0.8.30;

/**
 * @title DiamondStorage
 * @notice Shared storage base for diamond and diamond facets
 * @dev Abstract contract providing storage access helpers for diamond operations
 * @author CapSign Inc.
 */
abstract contract DiamondStorage {
    // ============ DIAMOND STORAGE (ERC-8042 Diamond Storage) ============

    struct SelectorInfo {
        address facetAddress;
        uint16 selectorPosition;
    }

    struct DiamondStorageLayout {
        mapping(bytes4 => SelectorInfo) selectorInfo;
        bytes4[] selectors;
        mapping(bytes4 => bool) supportedInterfaces;
    }

    /// @dev Format: capsign.<package>.<functionality>.storage
    bytes32 internal constant DIAMOND_STORAGE_POSITION = keccak256("capsign.diamonds.core.storage");

    /**
     * @notice Get diamond storage using ERC-8042 Diamond Storage pattern
     * @dev Uses assembly to set storage pointer to namespaced position
     * @return ds Storage pointer to DiamondStorageLayout struct
     */
    function getDiamondStorage() internal pure returns (DiamondStorageLayout storage ds) {
        bytes32 position = DIAMOND_STORAGE_POSITION;
        assembly {
            ds.slot := position
        }
    }
}

Settings
{
  "remappings": [
    "@account-abstraction/contracts/=lib/account-abstraction/contracts/",
    "@escrows/=packages/escrows/",
    "@diamonds/=packages/diamonds/",
    "@offerings/=packages/offerings/",
    "@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/",
    "@paymaster/=packages/paymaster/",
    "@tokens/=packages/tokens/",
    "@wallets/=packages/wallets/",
    "FreshCryptoLib/=lib/FreshCryptoLib/solidity/src/",
    "escrows-src/=packages/escrows/src/",
    "escrows/=packages/escrows/interfaces/",
    "diamonds-src/=packages/diamonds/src/",
    "diamonds/=packages/diamonds/interfaces/",
    "forge-std/=lib/forge-std/src/",
    "offerings-src/=packages/offerings/src/",
    "offerings/=packages/offerings/interfaces/",
    "paymaster-src/=packages/paymaster/src/",
    "paymaster/=packages/paymaster/interfaces/",
    "solady/=lib/solady/src/",
    "tokens-src/=packages/tokens/src/",
    "tokens/=packages/tokens/interfaces/",
    "wallets-src/=packages/wallets/src/",
    "wallets/=packages/wallets/interfaces/",
    "webauthn-sol/=lib/webauthn-sol/src/",
    "@diamonds/interfaces/=packages/diamonds/interfaces/",
    "@diamonds/src/=packages/diamonds/src/",
    "@tokens/interfaces/=packages/tokens/interfaces/",
    "@tokens/src/=packages/tokens/src/",
    "@offerings/interfaces/=packages/offerings/interfaces/",
    "@offerings/src/=packages/offerings/src/",
    "@wallets/interfaces/=packages/wallets/interfaces/",
    "@wallets/src/=packages/wallets/src/",
    "v4-core/=lib/v4-core/src/",
    "v4-periphery/=lib/v4-periphery/src/",
    "permit2/=lib/v4-periphery/lib/permit2/",
    "@ensdomains/=lib/v4-core/node_modules/@ensdomains/",
    "@uniswap/v4-core/=lib/v4-periphery/lib/v4-core/",
    "account-abstraction/=lib/account-abstraction/contracts/",
    "ds-test/=lib/v4-core/lib/forge-std/lib/ds-test/src/",
    "eas-contracts/=lib/eas-contracts/contracts/",
    "erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/",
    "forge-gas-snapshot/=lib/v4-periphery/lib/permit2/lib/forge-gas-snapshot/src/",
    "halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/",
    "hardhat/=lib/v4-core/node_modules/hardhat/",
    "openzeppelin-contracts/=lib/openzeppelin-contracts/",
    "solmate/=lib/v4-core/lib/solmate/"
  ],
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "metadata": {
    "useLiteralContent": false,
    "bytecodeHash": "ipfs",
    "appendCBOR": true
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "evmVersion": "prague",
  "viaIR": true
}

Contract ABI

API
[{"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[]"},{"internalType":"address","name":"_init","type":"address"},{"internalType":"bytes","name":"_calldata","type":"bytes"}],"stateMutability":"payable","type":"constructor"},{"inputs":[{"internalType":"bytes4","name":"selector","type":"bytes4"}],"name":"Diamond_FunctionDoesNotExist","type":"error"},{"inputs":[{"internalType":"bytes","name":"error","type":"bytes"}],"name":"Diamond_InitializationFailed","type":"error"},{"anonymous":false,"inputs":[{"components":[{"internalType":"address","name":"facetAddress","type":"address"},{"internalType":"enum IDiamondCut.FacetCutAction","name":"action","type":"uint8"},{"internalType":"bytes4[]","name":"functionSelectors","type":"bytes4[]"}],"indexed":false,"internalType":"struct IDiamondCut.FacetCut[]","name":"diamondCut","type":"tuple[]"},{"indexed":false,"internalType":"address","name":"init","type":"address"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"}],"name":"DiamondCut","type":"event"},{"stateMutability":"payable","type":"fallback"},{"stateMutability":"payable","type":"receive"}]

0x608060405261092e80380380610014816101f5565b9283398101906060818303126100c45780516001600160401b0381116100c45781019082601f830112156100c4578151916100566100518461021a565b6101f5565b9260208085838152019160051b830101918583116100c45760208101915b8383106100c8575050505061008b60208201610231565b6040820151939091906001600160401b0385116100c4576100b6946100b09201610260565b91610501565b60405160b890816108568239f35b5f80fd5b82516001600160401b0381116100c45782016060818903601f1901126100c4576100f06101b2565b906100fd60208201610231565b8252604081015160038110156100c457602083015260608101516001600160401b0381116100c457602091010188601f820112156100c45780516101436100518261021a565b9160208084848152019260051b820101908b82116100c457602001915b81831061017d575050506040820152815260209283019201610074565b82516001600160e01b0319811681036100c457815260209283019201610160565b634e487b7160e01b5f52604160045260245ffd5b60405190606082016001600160401b038111838210176101d157604052565b61019e565b60408051919082016001600160401b038111838210176101d157604052565b6040519190601f01601f191682016001600160401b038111838210176101d157604052565b6001600160401b0381116101d15760051b60200190565b51906001600160a01b03821682036100c457565b6001600160401b0381116101d157601f01601f191660200190565b81601f820112156100c45780519061027a61005183610245565b92828452602083830101116100c457815f9260208093018386015e8301015290565b600311156102a657565b634e487b7160e01b5f52602160045260245ffd5b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b9392909193606081016060825283518091526080820190602060808260051b8501019501915f905b828210610337575050506001600160a01b0390951660208201529293506103349260408184039101526102ba565b90565b848703607f19018152835180516001600160a01b0316885260208101519497939492939192606083019160038210156102a657604060809160209384870152015193606060408201528451809452019201905f905b8082106103aa57505050602080600192980192019201909291610306565b82516001600160e01b03191684526020938401939092019160019091019061038c565b3d156103ed573d906103e161005183610245565b9182523d5f602084013e565b606090565b9060206103349281815201906102ba565b6020818303126100c4578051906001600160401b0382116100c457019080601f830112156100c45781519161043a6100518461021a565b9260208085838152019160051b830101918383116100c45760208101915b83831061046757505050505090565b82516001600160401b0381116100c4578201906040828703601f1901126100c4576104906101d6565b9061049d60208401610231565b82526040830151916001600160401b0383116100c4576104c588602080969581960101610260565b83820152815201920191610458565b634e487b7160e01b5f52603260045260245ffd5b80518210156104fc5760209160051b010190565b6104d4565b817f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb6739161052d81610704565b61053d85604051938493846102de565b0390a16001600160a01b0381168061055457505050565b73d1a302d1a302d1a302d1a302d1a302d1a302d1a30361063757508060208061058293518301019101610403565b8051905f5b82811061059357505050565b6105ae6105a082846104e8565b51516001600160a01b031690565b803b15610618575f809160206105c485876104e8565b51015190602082519201905af46105d96103cd565b90156105e85750600101610587565b8051156105f757805190602001fd5b604051636e6e000d60e01b815290819061061490600483016103f2565b0390fd5b604051636e6e000d60e01b8152602060048201525f6024820152604490fd5b803b1561061857815f929160208493519201905af46106546103cd565b90156105e85750565b5160038110156102a65790565b5f51602061090e5f395f51905f525490680100000000000000008210156101d15760018201805f51602061090e5f395f51905f52558210156104fc575f51602061090e5f395f51905f525f5260205f208260031c019163ffffffff60e084549260051b169260e01c831b921b1916179055565b61ffff1661ffff81146106f05760010190565b634e487b7160e01b5f52601160045260245ffd5b8051905f5b82811061071557505050565b61072b602061072483856104e8565b510161065d565b604061073783856104e8565b5101516107476105a084866104e8565b916107518161029c565b15610761575b5050600101610709565b9091939461077e5f51602061090e5f395f51905f525461ffff1690565b955f965b83518810156108445761083c6001916108376107af6107a18c896104e8565b516001600160e01b03191690565b6108326107ba6101d6565b6001600160a01b038b8116825261ffff861660208084019182526001600160e01b031986165f9081527f49e5d4b4dffd3ea9dfcc29574ccfe2842c2a5e7f5ff2aa4017ab24c98e9215559091526040902092518354915161ffff60a01b60a09190911b1692166001600160b01b031990911617179055565b61066a565b6106dd565b970196610782565b50949150945060019150905f61075756fe608060405236156080575f80356001600160e01b0319168082527f49e5d4b4dffd3ea9dfcc29574ccfe2842c2a5e7f5ff2aa4017ab24c98e9215556020526040909120546001600160a01b0316908115606e575f8083368280378136915af43d5f803e15606a573d5ff35b3d5ffd5b632cf008a360e21b5f5260045260245ffd5b00fea26469706673582212208b565633b1d70786639677dbf962968f6b9511f0b3146eb8d5a9663830426a8664736f6c634300081e003349e5d4b4dffd3ea9dfcc29574ccfe2842c2a5e7f5ff2aa4017ab24c98e9215560000000000000000000000000000000000000000000000000000000000000060000000000000000000000000d1a302d1a302d1a302d1a302d1a302d1a302d1a300000000000000000000000000000000000000000000000000000000000015e0000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000032000000000000000000000000000000000000000000000000000000000000005c000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000009a00000000000000000000000000000000000000000000000000000000000000c200000000000000000000000000000000000000000000000000000000000000d400000000000000000000000000000000000000000000000000000000000000f4000000000000000000000000000000000000000000000000000000000000010e00000000000000000000000001b2d4da93f89478692dd5e54e26f0e97b14d61900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000011f931c1c0000000000000000000000000000000000000000000000000000000000000000000000000000000005d9723d48e41a09aad637cc9e075da2ef3580d5000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000006feb7ab4f000000000000000000000000000000000000000000000000000000007a0ed62700000000000000000000000000000000000000000000000000000000adfca15e0000000000000000000000000000000000000000000000000000000052ef6b2c00000000000000000000000000000000000000000000000000000000cdffacc60000000000000000000000000000000000000000000000000000000001ffc9a70000000000000000000000000000000000000000000000000000000000000000000000000000000031eddc287dfd8b1a90307d3d397bd92a453ea0da00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000001119c9eb1f00000000000000000000000000000000000000000000000000000000b61d27f60000000000000000000000000000000000000000000000000000000047e1da2a000000000000000000000000000000000000000000000000000000000f0f3f240000000000000000000000000000000000000000000000000000000029565e3b0000000000000000000000000000000000000000000000000000000089625b5700000000000000000000000000000000000000000000000000000000a2e1a8d800000000000000000000000000000000000000000000000000000000066a1eb7000000000000000000000000000000000000000000000000000000001ca5393f000000000000000000000000000000000000000000000000000000008ea6902900000000000000000000000000000000000000000000000000000000d948fd2e000000000000000000000000000000000000000000000000000000000db0262200000000000000000000000000000000000000000000000000000000c352dae200000000000000000000000000000000000000000000000000000000b0d691fe00000000000000000000000000000000000000000000000000000000d00960100000000000000000000000000000000000000000000000000000000099b20eaf0000000000000000000000000000000000000000000000000000000020a194b800000000000000000000000000000000000000000000000000000000000000000000000000000000443c332e58730139a084ef7b174d492cc706c93000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000dbbdc85a700000000000000000000000000000000000000000000000000000000b10d6b4100000000000000000000000000000000000000000000000000000000385dbda400000000000000000000000000000000000000000000000000000000beeb2a5700000000000000000000000000000000000000000000000000000000ce2620950000000000000000000000000000000000000000000000000000000075ca9a3c000000000000000000000000000000000000000000000000000000009fa5f50b00000000000000000000000000000000000000000000000000000000e56bfd1600000000000000000000000000000000000000000000000000000000cfa52c5300000000000000000000000000000000000000000000000000000000a4c96e75000000000000000000000000000000000000000000000000000000004209992700000000000000000000000000000000000000000000000000000000522f1b830000000000000000000000000000000000000000000000000000000050459e2500000000000000000000000000000000000000000000000000000000000000000000000000000000b4be37d3af0bac78fba4c0200fec016d8fbd5d6800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000a1626ba7e00000000000000000000000000000000000000000000000000000000333daf9200000000000000000000000000000000000000000000000000000000ce1506be0000000000000000000000000000000000000000000000000000000084b0196e00000000000000000000000000000000000000000000000000000000f698da250000000000000000000000000000000000000000000000000000000019822f7c000000000000000000000000000000000000000000000000000000003a871cdd00000000000000000000000000000000000000000000000000000000dbc34d0500000000000000000000000000000000000000000000000000000000c0baecc900000000000000000000000000000000000000000000000000000000b0a398d1000000000000000000000000000000000000000000000000000000000000000000000000000000003a264ae41af891d91ca5e1d927e4a9bf38c629390000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000101e9f9c03000000000000000000000000000000000000000000000000000000005b3fb37d0000000000000000000000000000000000000000000000000000000065683b900000000000000000000000000000000000000000000000000000000019f00185000000000000000000000000000000000000000000000000000000008cc6f44c00000000000000000000000000000000000000000000000000000000315b9f95000000000000000000000000000000000000000000000000000000001544caa3000000000000000000000000000000000000000000000000000000009044e55300000000000000000000000000000000000000000000000000000000437375cf000000000000000000000000000000000000000000000000000000007a5ee0ca000000000000000000000000000000000000000000000000000000004e47bbc100000000000000000000000000000000000000000000000000000000f0fb990e000000000000000000000000000000000000000000000000000000007ca548c60000000000000000000000000000000000000000000000000000000011f646a30000000000000000000000000000000000000000000000000000000036cfd5ba00000000000000000000000000000000000000000000000000000000bc182cfa000000000000000000000000000000000000000000000000000000000000000000000000000000001bbd1bd16eb5036e48fc3fd0080495d7b48519170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000055f12013e000000000000000000000000000000000000000000000000000000004d5e1da60000000000000000000000000000000000000000000000000000000035deba3300000000000000000000000000000000000000000000000000000000fa5e13650000000000000000000000000000000000000000000000000000000059a8fea000000000000000000000000000000000000000000000000000000000000000000000000000000000a9b3b9caa1f57a4c035600e338ec89345fa0cf3e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000ca1ad778b0000000000000000000000000000000000000000000000000000000009dd7c24000000000000000000000000000000000000000000000000000000007cfc2db400000000000000000000000000000000000000000000000000000000bebf4e9800000000000000000000000000000000000000000000000000000000632b3b4700000000000000000000000000000000000000000000000000000000781837050000000000000000000000000000000000000000000000000000000034dfbfee00000000000000000000000000000000000000000000000000000000ced4d85100000000000000000000000000000000000000000000000000000000a9ab90720000000000000000000000000000000000000000000000000000000043bf4e8d000000000000000000000000000000000000000000000000000000009b23fb0a00000000000000000000000000000000000000000000000000000000cb9ad44500000000000000000000000000000000000000000000000000000000000000000000000000000000af68fabbc6d598124edcba48fcfaebf0ccf4c8a60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000094c1c1fcd00000000000000000000000000000000000000000000000000000000ef4e95310000000000000000000000000000000000000000000000000000000067aff4840000000000000000000000000000000000000000000000000000000086bed3e00000000000000000000000000000000000000000000000000000000095a8c58d0000000000000000000000000000000000000000000000000000000074d5e100000000000000000000000000000000000000000000000000000000005fcc08b000000000000000000000000000000000000000000000000000000000bf7e214f000000000000000000000000000000000000000000000000000000007a9e5e4b0000000000000000000000000000000000000000000000000000000000000000000000000000000092c5add486e5ee7ee02a9a4e2f0480a0304161e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000205af6435d0000000000000000000000000000000000000000000000000000000017c4905c00000000000000000000000000000000000000000000000000000000d34e090a00000000000000000000000000000000000000000000000000000000b7009613000000000000000000000000000000000000000000000000000000004665096d00000000000000000000000000000000000000000000000000000000cc1b6c8100000000000000000000000000000000000000000000000000000000a166aa89000000000000000000000000000000000000000000000000000000006d5115bd000000000000000000000000000000000000000000000000000000004c1da1e200000000000000000000000000000000000000000000000000000000530dd456000000000000000000000000000000000000000000000000000000000b0a93ba0000000000000000000000000000000000000000000000000000000012be8727000000000000000000000000000000000000000000000000000000003078f11400000000000000000000000000000000000000000000000000000000d1f856ee00000000000000000000000000000000000000000000000000000000853551b80000000000000000000000000000000000000000000000000000000025c471a000000000000000000000000000000000000000000000000000000000b7d2b16200000000000000000000000000000000000000000000000000000000fe0776f50000000000000000000000000000000000000000000000000000000008d6122d00000000000000000000000000000000000000000000000000000000d22b598900000000000000000000000000000000000000000000000000000000167bd3950000000000000000000000000000000000000000000000000000000030cae187000000000000000000000000000000000000000000000000000000005296295200000000000000000000000000000000000000000000000000000000a64d95ce0000000000000000000000000000000000000000000000000000000018ff183c00000000000000000000000000000000000000000000000000000000f801a698000000000000000000000000000000000000000000000000000000001cff79cd00000000000000000000000000000000000000000000000000000000d6bb62c60000000000000000000000000000000000000000000000000000000094c7d7ee00000000000000000000000000000000000000000000000000000000abd9bd2a000000000000000000000000000000000000000000000000000000004136a33c000000000000000000000000000000000000000000000000000000003adc277a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004e0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002a0000000000000000000000000af68fabbc6d598124edcba48fcfaebf0ccf4c8a6000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000244c1c1fcd00000000000000000000000095ce7a06a73a31f1ea2c1be9c4ea6a50784d2b180000000000000000000000000000000000000000000000000000000000000000000000000000000031eddc287dfd8b1a90307d3d397bd92a453ea0da0000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000012419c9eb1f000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000071727de22e5e9d8baf0edac6f37da03200000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000001495ce7a06a73a31f1ea2c1be9c4ea6a50784d2b18000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d4361705369676e57616c6c657400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003a264ae41af891d91ca5e1d927e4a9bf38c62939000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001841e9f9c0300000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000095ce7a06a73a31f1ea2c1be9c4ea6a50784d2b180000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000013456e746974792041646d696e205369676e65720000000000000000000000000000000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x608060405236156080575f80356001600160e01b0319168082527f49e5d4b4dffd3ea9dfcc29574ccfe2842c2a5e7f5ff2aa4017ab24c98e9215556020526040909120546001600160a01b0316908115606e575f8083368280378136915af43d5f803e15606a573d5ff35b3d5ffd5b632cf008a360e21b5f5260045260245ffd5b00fea26469706673582212208b565633b1d70786639677dbf962968f6b9511f0b3146eb8d5a9663830426a8664736f6c634300081e0033

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
0x9379A94B476BFB9a849954016866cF87e37Ee6A1
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.