Base Sepolia Testnet

Contract

0x24984FF72AA6bB298Ea7F369E36116F054642697

Overview

ETH Balance

0 ETH

More Info

Multichain Info

N/A
Transaction Hash
Method
Block
From
To
Amount
Create New Pool304890672025-09-01 17:07:0299 days ago1756746422IN
0x24984FF7...054642697
0 ETH0.00000020.00200012

Parent Transaction Hash Block From To Amount
View All Internal Transactions

Loading...
Loading

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

Contract Name:
UniswapV4PoolCreator

Compiler Version
v0.8.28+commit.7893614a

Optimization Enabled:
Yes with 200 runs

Other Settings:
paris EvmVersion

Contract Source Code (Solidity Standard Json-Input format)

// SPDX-License-Identifier: GPL-2.0-or-later
pragma solidity ^0.8.0;

interface IPoolManager {
    struct PoolKey {
        Currency2 currency0;
        Currency2 currency1;
        uint24 fee;
        int24 tickSpacing;
        address hooks;
    }

    /// @notice Initialize a new pool
    /// @param key The pool key defining the pool parameters
    /// @param sqrtPriceX96 The initial sqrt price of the pool as a Q64.96
    function initialize(PoolKey calldata key, uint160 sqrtPriceX96) external;
}

interface IERC20 {
    function decimals() external view returns (uint8);
}

// Currency type definition
type Currency2 is address;

/**
 * @title UniswapV4PoolCreator
 * @notice Creates Uniswap V4 pools with specific B0x token pricing
 * @dev Sets initial price ratio of 20 B0x = 1 other token
 */
contract UniswapV4PoolCreator {
   /// @notice The Uniswap V4 pool manager contract interface
   IPoolManager public immutable poolManager;
   /// @notice The address of the B0x token contract
   address public immutable b0xToken;
   
   // Events
   /// @notice Event emitted when a new pool is created
   event PoolCreated(
        address indexed token0,
        address indexed token1,
        address indexed hookContract,
        uint160 sqrtPriceX96
    );
    
    // Errors
    error InvalidTokenAddress();
    error InvalidHookContract();
    error IdenticalTokens();
    error ZeroAddress();


    /// @notice Initializes the B0x token for properlly setting up the 0xBTC/B0x pool
    /// @dev Sets B0x Token address for creating pool
    /// @param _b0x Address of the B0x token contract to be mined
    constructor(address _b0x) {
        if (_b0x == address(0)) revert ZeroAddress();
        
        b0xToken = _b0x;
        // Note: Verify this address for your target network
        poolManager = IPoolManager(0x05E73354cFDd6745C338b50BcFDfA3Aa6fA03408);
    }

    /**
     * @notice Creates a new Uniswap V4 pool for b0x & 0xBTC
     * @param tokenA First token address
     * @param tokenB Second token address  
     * @param hookContract Hook contract address (use address(0) for no hooks)
     */
    function createNewPool(
        address tokenA,
        address tokenB,
        address hookContract
    ) public {
        // Input validation
        if (tokenA == address(0) || tokenB == address(0)) revert ZeroAddress();
        if (tokenA == tokenB) revert IdenticalTokens();
        
        // Sort tokens (required by Uniswap)
        (address token0, address token1) = tokenA < tokenB 
            ? (tokenA, tokenB) 
            : (tokenB, tokenA);

        // Get token decimals
        uint8 decimals0 = IERC20(token0).decimals();
        uint8 decimals1 = IERC20(token1).decimals();
        
        // Calculate decimal-adjusted price ratio
        uint256 priceRatio = calculateDecimalAdjustedPrice(
            token0, 
            token1, 
            decimals0, 
            decimals1
        );
        
        uint160 sqrtPriceX96 = sqrtPriceX96FromCalculatedRatio(
            priceRatio, 
            token0, 
            token1
        );

        // Create PoolKey
        IPoolManager.PoolKey memory key = IPoolManager.PoolKey({
            currency0: Currency2.wrap(token0),
            currency1: Currency2.wrap(token1),
            fee: encodeDynamicFee(),
            tickSpacing: 60,
            hooks: hookContract
        });
        
        // Initialize the pool
        poolManager.initialize(key, sqrtPriceX96);
        
        emit PoolCreated(token0, token1, hookContract, sqrtPriceX96);
    }

    /**
     * @notice Calculates decimal-adjusted price ratio
     * @dev Economic ratio: 20 B0x = 1 other token (price = 1/20 = 0.05)
     * @param token0 Sorted token0 address
     * @param token1 Sorted token1 address
     * @param decimals0 Token0 decimals
     * @param decimals1 Token1 decimals
     * @return priceRatio Price ratio in 18-decimal format
     */
    function calculateDecimalAdjustedPrice(
        address token0,
        address token1, 
        uint8 decimals0,
        uint8 decimals1
    ) internal view returns (uint256 priceRatio) {
        if (token0 == b0xToken) {
            // token0 is B0x, token1 is other token
            // Uniswap price = token1/token0 = other/B0x = 0.05
            uint256 numerator = 10**decimals1 * 1e18;
            uint256 denominator = 20 * 10**decimals0;
            priceRatio = numerator / denominator;
        } else {
            // token1 is B0x, token0 is other token  
            // Uniswap price = token1/token0 = B0x/other = 20
            uint256 numerator = 20 * 10**decimals1 * 1e18;
            uint256 denominator = 1 * 10**decimals0;
            priceRatio = numerator / denominator;
        }
        
        return priceRatio;
    }

    /**
     * @notice Converts price ratio to sqrtPriceX96 format
     * @param priceRatio18Decimal Price ratio in 18-decimal format
     * @return sqrtPriceX96 Square root price in X96 format
     */
    function sqrtPriceX96FromPriceRatio(
        uint256 priceRatio18Decimal
    ) public pure returns (uint160) {
        if (priceRatio18Decimal == 0) return 0;
        
        // Calculate sqrt(priceRatio) * 2^96
        uint256 sqrtPrice = sqrt(priceRatio18Decimal);
        
        // Convert to X96 format
        return uint160((sqrtPrice * (2 ** 96)) / 1e9);
    }

    /**
     * @notice Wrapper function for calculated ratio conversion
     * @param priceRatio Price ratio from calculateDecimalAdjustedPrice
     * @param token0 Token0 address (unused but kept for interface consistency)
     * @param token1 Token1 address (unused but kept for interface consistency) 
     * @return sqrtPriceX96 Square root price in X96 format
     */
    function sqrtPriceX96FromCalculatedRatio(
        uint256 priceRatio,
        address token0,
        address token1
    ) public pure returns (uint160) {
        return sqrtPriceX96FromPriceRatio(priceRatio);
    }

    /**
     * @notice Debug function to understand decimal-adjusted prices
     * @param tokenA First token address
     * @param tokenB Second token address
     * @return token0 Sorted token0 address
     * @return token1 Sorted token1 address
     * @return decimals0 Token0 decimals
     * @return decimals1 Token1 decimals
     * @return calculatedPriceRatio Calculated price ratio
     * @return explanation Price calculation explanation
     */
    function debugDecimalAdjustedPrice(
        address tokenA,
        address tokenB
    ) external view returns (
        address token0,
        address token1,
        uint8 decimals0,
        uint8 decimals1,
        uint256 calculatedPriceRatio,
        string memory explanation
    ) {
        (token0, token1) = tokenA < tokenB 
            ? (tokenA, tokenB) 
            : (tokenB, tokenA);
        
        decimals0 = IERC20(token0).decimals();
        decimals1 = IERC20(token1).decimals();
        
        calculatedPriceRatio = calculateDecimalAdjustedPrice(
            token0, 
            token1, 
            decimals0, 
            decimals1
        );
        
        if (token0 == b0xToken) {
            explanation = "token0=B0x, price=other/B0x=0.05, 18-decimal format";
        } else {
            explanation = "token1=B0x, price=B0x/other=20, 18-decimal format";
        }
        
        return (
            token0, 
            token1, 
            decimals0, 
            decimals1, 
            calculatedPriceRatio, 
            explanation
        );
    }

    /**
     * @notice Debug function to verify price calculations
     * @param tokenA First token address
     * @param tokenB Second token address
     * @return scenario Price calculation scenario
     * @return numerator Calculation numerator
     * @return denominator Calculation denominator
     * @return priceRatio Final price ratio
     * @return expectedSqrtPriceX96 Expected sqrt price in X96 format
     */
    function debugPriceCalculation(
        address tokenA,
        address tokenB
    ) external view returns (
        string memory scenario,
        uint256 numerator,
        uint256 denominator,
        uint256 priceRatio,
        uint256 expectedSqrtPriceX96
    ) {
        (address token0, address token1) = tokenA < tokenB 
            ? (tokenA, tokenB) 
            : (tokenB, tokenA);
            
        uint8 decimals0 = IERC20(token0).decimals();
        uint8 decimals1 = IERC20(token1).decimals();
        
        if (token0 == b0xToken) {
            scenario = "B0x is token0, other is token1, price = other/B0x = 0.05";
            numerator = 10**decimals1 * 1e18;
            denominator = 20 * 10**decimals0;
        } else {
            scenario = "Other is token0, B0x is token1, price = B0x/other = 20";
            numerator = 20 * 10**decimals1 * 1e18;
            denominator = 1 * 10**decimals0;
        }
        
        priceRatio = numerator / denominator;
        expectedSqrtPriceX96 = uint256(sqrtPriceX96FromPriceRatio(priceRatio));
        
        return (
            scenario, 
            numerator, 
            denominator, 
            priceRatio, 
            expectedSqrtPriceX96
        );
    }

    /**
     * @notice Encodes dynamic fee flag
     * @return Dynamic fee flag (0x800000)
     */
    function encodeDynamicFee() public pure returns (uint24) {
        return 0x800000; // DYNAMIC_FEE_FLAG
    }

    /**
     * @notice Babylonian square root implementation
     * @param x Input value
     * @return Square root of x
     */
    function sqrt(uint256 x) internal pure returns (uint256) {
        if (x == 0) return 0;
        
        uint256 z = (x + 1) / 2;
        uint256 y = x;
        
        while (z < y) {
            y = z;
            z = (x / z + z) / 2;
        }
        
        return y;
    }
}

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

Contract ABI

API
[{"inputs":[{"internalType":"address","name":"_b0x","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"IdenticalTokens","type":"error"},{"inputs":[],"name":"InvalidHookContract","type":"error"},{"inputs":[],"name":"InvalidTokenAddress","type":"error"},{"inputs":[],"name":"ZeroAddress","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"token0","type":"address"},{"indexed":true,"internalType":"address","name":"token1","type":"address"},{"indexed":true,"internalType":"address","name":"hookContract","type":"address"},{"indexed":false,"internalType":"uint160","name":"sqrtPriceX96","type":"uint160"}],"name":"PoolCreated","type":"event"},{"inputs":[],"name":"b0xToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"},{"internalType":"address","name":"hookContract","type":"address"}],"name":"createNewPool","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"}],"name":"debugDecimalAdjustedPrice","outputs":[{"internalType":"address","name":"token0","type":"address"},{"internalType":"address","name":"token1","type":"address"},{"internalType":"uint8","name":"decimals0","type":"uint8"},{"internalType":"uint8","name":"decimals1","type":"uint8"},{"internalType":"uint256","name":"calculatedPriceRatio","type":"uint256"},{"internalType":"string","name":"explanation","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"}],"name":"debugPriceCalculation","outputs":[{"internalType":"string","name":"scenario","type":"string"},{"internalType":"uint256","name":"numerator","type":"uint256"},{"internalType":"uint256","name":"denominator","type":"uint256"},{"internalType":"uint256","name":"priceRatio","type":"uint256"},{"internalType":"uint256","name":"expectedSqrtPriceX96","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"encodeDynamicFee","outputs":[{"internalType":"uint24","name":"","type":"uint24"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"poolManager","outputs":[{"internalType":"contract IPoolManager","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"priceRatio","type":"uint256"},{"internalType":"address","name":"token0","type":"address"},{"internalType":"address","name":"token1","type":"address"}],"name":"sqrtPriceX96FromCalculatedRatio","outputs":[{"internalType":"uint160","name":"","type":"uint160"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"priceRatio18Decimal","type":"uint256"}],"name":"sqrtPriceX96FromPriceRatio","outputs":[{"internalType":"uint160","name":"","type":"uint160"}],"stateMutability":"pure","type":"function"}]

0x60c0346100bc57601f610cf038819003918201601f19168301916001600160401b038311848410176100c1578084926020946040528339810103126100bc57516001600160a01b0381168082036100bc57156100ab5760a0527305e73354cfdd6745c338b50bcfdfa3aa6fa03408608052604051610c1890816100d8823960805181818160d601526107bf015260a051818181608e015281816101fb0152818161043d0152610ac10152f35b63d92e233d60e01b60005260046000fd5b600080fd5b634e487b7160e01b600052604160045260246000fdfe608080604052600436101561001357600080fd5b600090813560e01c9081632325951e1461069a57508063367de4591461067b5780634cd5b93f146103a057806380c7f951146103825780638bd1304414610148578063a45195df14610105578063dc4c90d3146100c05763ea0175dd1461007957600080fd5b346100bd57806003193601126100bd576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b80fd5b50346100bd57806003193601126100bd576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b50346100bd5760603660031901126100bd5761011f61096c565b50610128610982565b506020610136600435610a4a565b6040516001600160a01b039091168152f35b50346100bd5760403660031901126100bd57610162610951565b61016a61096c565b906001600160a01b03808316908216101561037d57905b60405163313ce56760e01b81526001600160a01b03831691602082600481865afa918215610372578592610351575b5060405163313ce56760e01b81526001600160a01b039190911693602082600481885afa918215610346579083916102af9596979361030c575b508260ff926101f892610aaf565b917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031686036102b357816040516102386060826109d9565b603381527f746f6b656e303d4230782c2070726963653d6f746865722f4230783d302e30356020820152720b080c4e0b591958da5b585b08199bdc9b585d606a1b6040820152945b60405198899889526020890152166040870152166060850152608084015260c060a084015260c0830190610998565b0390f35b816040516102c26060826109d9565b603181527f746f6b656e313d4230782c2070726963653d4230782f6f746865723d32302c206020820152700c4e0b591958da5b585b08199bdc9b585d607a1b604082015294610280565b60ff929350906103366101f89260203d60201161033f575b61032e81836109d9565b810190610a11565b939250906101ea565b503d610324565b6040513d88823e3d90fd5b61036b91925060203d60201161033f5761032e81836109d9565b90386101b0565b6040513d87823e3d90fd5b610181565b50346100bd57806003193601126100bd576020604051628000008152f35b50346100bd5760403660031901126100bd576103ba610951565b6103c261096c565b906001600160a01b038083169082161015610675575b60405163313ce56760e01b815291906001600160a01b0316602083600481845afa918215610648576004938593610653575b5060405163313ce56760e01b81529360209185919082906001600160a01b03165afa928315610648578493610627575b507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03160361056e576104d160405161047b6060826109d9565b603881527f42307820697320746f6b656e302c206f7468657220697320746f6b656e312c2060208201527f7072696365203d206f746865722f423078203d20302e30350000000000000000604082015292610a9e565b670de0b6b3a7640000810290808204670de0b6b3a7640000149015171561055a576104fc9091610a9e565b8060140290601482040361055a5761054193505b61051a8183610a2a565b6001600160a01b0361052b82610a4a565b169160405195869560a0875260a0870190610998565b9360208601526040850152606084015260808301520390f35b634e487b7160e01b84526011600452602484fd5b6105ce60405161057f6060826109d9565b603681527f4f7468657220697320746f6b656e302c2042307820697320746f6b656e312c2060208201527507072696365203d204230782f6f74686572203d2032360541b604082015292610a9e565b8060140290601482048103610613576801158e460913d000000290808204670de0b6b3a7640000149015171561055a579261060c6105419492610a9e565b9050610510565b634e487b7160e01b85526011600452602485fd5b61064191935060203d60201161033f5761032e81836109d9565b913861043a565b6040513d86823e3d90fd5b602091935061066e90823d841161033f5761032e81836109d9565b929061040a565b906103d8565b50346100bd5760203660031901126100bd576020610136600435610a4a565b90503461094d57606036600319011261094d576106b5610951565b906106be61096c565b6106c6610982565b926001600160a01b0381168015801561093c575b61092d576001600160a01b0383169080821461091e571015610918575b63313ce56760e01b83526001600160a01b03811691602084600481865afa9384156103465786946108f7575b5060405163313ce56760e01b81526001600160a01b039190911693602082600481885afa9081156108ec57610768936107639389936108cb575b50610aaf565b610a4a565b6040519360a0850185811067ffffffffffffffff8211176108b757604052828552856020860185815260408701926280000084526060880197603c8952608081019160018060a01b03169889835260018060a01b037f00000000000000000000000000000000000000000000000000000000000000001696873b156108b35760405163313b65df60e11b815292516001600160a01b039081166004850152945185166024840152955162ffffff1660448301525160020b6064820152905182166084820152921660a4830181905292829060c490829084905af180156103465761087c575b5060207f02d9b4a7992571001f4240d512b2b18180c5caf7eea0bec5dcaea29973857e6a91604051908152a480f35b856108ab7f02d9b4a7992571001f4240d512b2b18180c5caf7eea0bec5dcaea29973857e6a93976020936109d9565b95915061084d565b8580fd5b634e487b7160e01b87526041600452602487fd5b6108e591935060203d60201161033f5761032e81836109d9565b913861075d565b6040513d89823e3d90fd5b61091191945060203d60201161033f5761032e81836109d9565b9238610723565b906106f7565b635c6d7b7360e01b8752600487fd5b63d92e233d60e01b8652600486fd5b506001600160a01b038316156106da565b5080fd5b600435906001600160a01b038216820361096757565b600080fd5b602435906001600160a01b038216820361096757565b604435906001600160a01b038216820361096757565b919082519283825260005b8481106109c4575050826000602080949584010152601f8019910116010190565b806020809284010151828286010152016109a3565b90601f8019910116810190811067ffffffffffffffff8211176109fb57604052565b634e487b7160e01b600052604160045260246000fd5b90816020910312610967575160ff811681036109675790565b8115610a34570490565b634e487b7160e01b600052601260045260246000fd5b8015610a9857610a5990610b9f565b8060601b90808204600160601b1490151715610a8257633b9aca0090046001600160a01b031690565b634e487b7160e01b600052601160045260246000fd5b50600090565b60ff16604d8111610a8257600a0a90565b60009392906001600160a01b039081167f000000000000000000000000000000000000000000000000000000000000000090911603610b3957610af190610a9e565b90670de0b6b3a7640000820291808304670de0b6b3a7640000149015171561055a57610b1c90610a9e565b908160140291601483040361055a57610b36929350610a2a565b90565b610b4590939293610a9e565b90816014029160148304810361055a576801158e460913d000000291808304670de0b6b3a76400001490151715610b8b5790610b84610b369392610a9e565b9150610a2a565b634e487b7160e01b83526011600452602483fd5b8015610a985760018101808211610a825760011c815b828210610bc157505090565b90915081610bcf8183610a2a565b908101809111610a825760011c90610bb556fea26469706673582212202aef9b8cde815dbe34da3c2b3d7274a4546dc0899bb691b779a6c046413146e264736f6c634300081c0033000000000000000000000000b379a851ac41bcdf0c2564b88916b10e5a08daae

Deployed Bytecode

0x608080604052600436101561001357600080fd5b600090813560e01c9081632325951e1461069a57508063367de4591461067b5780634cd5b93f146103a057806380c7f951146103825780638bd1304414610148578063a45195df14610105578063dc4c90d3146100c05763ea0175dd1461007957600080fd5b346100bd57806003193601126100bd576040517f000000000000000000000000b379a851ac41bcdf0c2564b88916b10e5a08daae6001600160a01b03168152602090f35b80fd5b50346100bd57806003193601126100bd576040517f00000000000000000000000005e73354cfdd6745c338b50bcfdfa3aa6fa034086001600160a01b03168152602090f35b50346100bd5760603660031901126100bd5761011f61096c565b50610128610982565b506020610136600435610a4a565b6040516001600160a01b039091168152f35b50346100bd5760403660031901126100bd57610162610951565b61016a61096c565b906001600160a01b03808316908216101561037d57905b60405163313ce56760e01b81526001600160a01b03831691602082600481865afa918215610372578592610351575b5060405163313ce56760e01b81526001600160a01b039190911693602082600481885afa918215610346579083916102af9596979361030c575b508260ff926101f892610aaf565b917f000000000000000000000000b379a851ac41bcdf0c2564b88916b10e5a08daae6001600160a01b031686036102b357816040516102386060826109d9565b603381527f746f6b656e303d4230782c2070726963653d6f746865722f4230783d302e30356020820152720b080c4e0b591958da5b585b08199bdc9b585d606a1b6040820152945b60405198899889526020890152166040870152166060850152608084015260c060a084015260c0830190610998565b0390f35b816040516102c26060826109d9565b603181527f746f6b656e313d4230782c2070726963653d4230782f6f746865723d32302c206020820152700c4e0b591958da5b585b08199bdc9b585d607a1b604082015294610280565b60ff929350906103366101f89260203d60201161033f575b61032e81836109d9565b810190610a11565b939250906101ea565b503d610324565b6040513d88823e3d90fd5b61036b91925060203d60201161033f5761032e81836109d9565b90386101b0565b6040513d87823e3d90fd5b610181565b50346100bd57806003193601126100bd576020604051628000008152f35b50346100bd5760403660031901126100bd576103ba610951565b6103c261096c565b906001600160a01b038083169082161015610675575b60405163313ce56760e01b815291906001600160a01b0316602083600481845afa918215610648576004938593610653575b5060405163313ce56760e01b81529360209185919082906001600160a01b03165afa928315610648578493610627575b507f000000000000000000000000b379a851ac41bcdf0c2564b88916b10e5a08daae6001600160a01b03160361056e576104d160405161047b6060826109d9565b603881527f42307820697320746f6b656e302c206f7468657220697320746f6b656e312c2060208201527f7072696365203d206f746865722f423078203d20302e30350000000000000000604082015292610a9e565b670de0b6b3a7640000810290808204670de0b6b3a7640000149015171561055a576104fc9091610a9e565b8060140290601482040361055a5761054193505b61051a8183610a2a565b6001600160a01b0361052b82610a4a565b169160405195869560a0875260a0870190610998565b9360208601526040850152606084015260808301520390f35b634e487b7160e01b84526011600452602484fd5b6105ce60405161057f6060826109d9565b603681527f4f7468657220697320746f6b656e302c2042307820697320746f6b656e312c2060208201527507072696365203d204230782f6f74686572203d2032360541b604082015292610a9e565b8060140290601482048103610613576801158e460913d000000290808204670de0b6b3a7640000149015171561055a579261060c6105419492610a9e565b9050610510565b634e487b7160e01b85526011600452602485fd5b61064191935060203d60201161033f5761032e81836109d9565b913861043a565b6040513d86823e3d90fd5b602091935061066e90823d841161033f5761032e81836109d9565b929061040a565b906103d8565b50346100bd5760203660031901126100bd576020610136600435610a4a565b90503461094d57606036600319011261094d576106b5610951565b906106be61096c565b6106c6610982565b926001600160a01b0381168015801561093c575b61092d576001600160a01b0383169080821461091e571015610918575b63313ce56760e01b83526001600160a01b03811691602084600481865afa9384156103465786946108f7575b5060405163313ce56760e01b81526001600160a01b039190911693602082600481885afa9081156108ec57610768936107639389936108cb575b50610aaf565b610a4a565b6040519360a0850185811067ffffffffffffffff8211176108b757604052828552856020860185815260408701926280000084526060880197603c8952608081019160018060a01b03169889835260018060a01b037f00000000000000000000000005e73354cfdd6745c338b50bcfdfa3aa6fa034081696873b156108b35760405163313b65df60e11b815292516001600160a01b039081166004850152945185166024840152955162ffffff1660448301525160020b6064820152905182166084820152921660a4830181905292829060c490829084905af180156103465761087c575b5060207f02d9b4a7992571001f4240d512b2b18180c5caf7eea0bec5dcaea29973857e6a91604051908152a480f35b856108ab7f02d9b4a7992571001f4240d512b2b18180c5caf7eea0bec5dcaea29973857e6a93976020936109d9565b95915061084d565b8580fd5b634e487b7160e01b87526041600452602487fd5b6108e591935060203d60201161033f5761032e81836109d9565b913861075d565b6040513d89823e3d90fd5b61091191945060203d60201161033f5761032e81836109d9565b9238610723565b906106f7565b635c6d7b7360e01b8752600487fd5b63d92e233d60e01b8652600486fd5b506001600160a01b038316156106da565b5080fd5b600435906001600160a01b038216820361096757565b600080fd5b602435906001600160a01b038216820361096757565b604435906001600160a01b038216820361096757565b919082519283825260005b8481106109c4575050826000602080949584010152601f8019910116010190565b806020809284010151828286010152016109a3565b90601f8019910116810190811067ffffffffffffffff8211176109fb57604052565b634e487b7160e01b600052604160045260246000fd5b90816020910312610967575160ff811681036109675790565b8115610a34570490565b634e487b7160e01b600052601260045260246000fd5b8015610a9857610a5990610b9f565b8060601b90808204600160601b1490151715610a8257633b9aca0090046001600160a01b031690565b634e487b7160e01b600052601160045260246000fd5b50600090565b60ff16604d8111610a8257600a0a90565b60009392906001600160a01b039081167f000000000000000000000000b379a851ac41bcdf0c2564b88916b10e5a08daae90911603610b3957610af190610a9e565b90670de0b6b3a7640000820291808304670de0b6b3a7640000149015171561055a57610b1c90610a9e565b908160140291601483040361055a57610b36929350610a2a565b90565b610b4590939293610a9e565b90816014029160148304810361055a576801158e460913d000000291808304670de0b6b3a76400001490151715610b8b5790610b84610b369392610a9e565b9150610a2a565b634e487b7160e01b83526011600452602483fd5b8015610a985760018101808211610a825760011c815b828210610bc157505090565b90915081610bcf8183610a2a565b908101809111610a825760011c90610bb556fea26469706673582212202aef9b8cde815dbe34da3c2b3d7274a4546dc0899bb691b779a6c046413146e264736f6c634300081c0033

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
0x24984FF72AA6bB298Ea7F369E36116F054642697
Loading...
Loading
Loading...
Loading
[ 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.