ETH Price: $2,001.60 (+0.46%)

Contract

0xa8F7e7A361De6A2172fcb2accE68bd21597599F7

Overview

ETH Balance

0 ETH

ETH Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Deploy204978282025-03-07 18:21:0215 days ago1741371662IN
Dolomite : CREATE3 Factory
0 ETH0.000055360.03
Deploy204978202025-03-07 18:20:3415 days ago1741371634IN
Dolomite : CREATE3 Factory
0 ETH0.000128420.03
Deploy204978122025-03-07 18:20:0615 days ago1741371606IN
Dolomite : CREATE3 Factory
0 ETH0.000155080.03
Deploy204977462025-03-07 18:16:3015 days ago1741371390IN
Dolomite : CREATE3 Factory
0 ETH0.000025820.03
Deploy204977382025-03-07 18:16:0315 days ago1741371363IN
Dolomite : CREATE3 Factory
0 ETH0.00007130.03
Deploy204977292025-03-07 18:15:3215 days ago1741371332IN
Dolomite : CREATE3 Factory
0 ETH0.000150840.03
Deploy204977212025-03-07 18:15:0615 days ago1741371306IN
Dolomite : CREATE3 Factory
0 ETH0.00014840.03
Deploy204977122025-03-07 18:14:3415 days ago1741371274IN
Dolomite : CREATE3 Factory
0 ETH0.000089140.03
Deploy204317802025-03-05 5:00:5818 days ago1741150858IN
Dolomite : CREATE3 Factory
0 ETH0.000005580.01
Deploy204317732025-03-05 5:00:3418 days ago1741150834IN
Dolomite : CREATE3 Factory
0 ETH0.000005580.01
Deploy204317632025-03-05 5:00:0118 days ago1741150801IN
Dolomite : CREATE3 Factory
0 ETH0.000008780.0105
Deploy204317552025-03-05 4:59:3418 days ago1741150774IN
Dolomite : CREATE3 Factory
0 ETH0.00002840.01
Deploy200887952025-02-19 21:12:1031 days ago1739999530IN
Dolomite : CREATE3 Factory
0 ETH0.00000860.01
Deploy200887892025-02-19 21:11:4931 days ago1739999509IN
Dolomite : CREATE3 Factory
0 ETH0.000016540.01
Deploy200887542025-02-19 21:09:5231 days ago1739999392IN
Dolomite : CREATE3 Factory
0 ETH0.000009120.0106
Deploy200887472025-02-19 21:09:2931 days ago1739999369IN
Dolomite : CREATE3 Factory
0 ETH0.000038730.0108
Deploy200863732025-02-19 18:59:5131 days ago1739991591IN
Dolomite : CREATE3 Factory
0 ETH0.000019020.0115
Deploy200863632025-02-19 18:59:1931 days ago1739991559IN
Dolomite : CREATE3 Factory
0 ETH0.00004190.012
Deploy200863552025-02-19 18:58:5231 days ago1739991532IN
Dolomite : CREATE3 Factory
0 ETH0.00002450.0119
Deploy200863462025-02-19 18:58:2231 days ago1739991502IN
Dolomite : CREATE3 Factory
0 ETH0.000017240.0117
Deploy194552022025-01-26 6:34:2456 days ago1737873264IN
Dolomite : CREATE3 Factory
0 ETH0.0000420.0341
Deploy194551962025-01-26 6:34:0456 days ago1737873244IN
Dolomite : CREATE3 Factory
0 ETH0.000046080.036
Deploy177073202024-11-19 1:56:28124 days ago1731981388IN
Dolomite : CREATE3 Factory
0 ETH0.002956731

Latest 23 internal transactions

Parent Transaction Hash Block From To
204978282025-03-07 18:21:0215 days ago1741371662
Dolomite : CREATE3 Factory
 Contract Creation0 ETH
204978202025-03-07 18:20:3415 days ago1741371634
Dolomite : CREATE3 Factory
 Contract Creation0 ETH
204978122025-03-07 18:20:0615 days ago1741371606
Dolomite : CREATE3 Factory
 Contract Creation0 ETH
204977462025-03-07 18:16:3015 days ago1741371390
Dolomite : CREATE3 Factory
 Contract Creation0 ETH
204977382025-03-07 18:16:0315 days ago1741371363
Dolomite : CREATE3 Factory
 Contract Creation0 ETH
204977292025-03-07 18:15:3215 days ago1741371332
Dolomite : CREATE3 Factory
 Contract Creation0 ETH
204977212025-03-07 18:15:0615 days ago1741371306
Dolomite : CREATE3 Factory
 Contract Creation0 ETH
204977122025-03-07 18:14:3415 days ago1741371274
Dolomite : CREATE3 Factory
 Contract Creation0 ETH
204317802025-03-05 5:00:5818 days ago1741150858
Dolomite : CREATE3 Factory
 Contract Creation0 ETH
204317732025-03-05 5:00:3418 days ago1741150834
Dolomite : CREATE3 Factory
 Contract Creation0 ETH
204317632025-03-05 5:00:0118 days ago1741150801
Dolomite : CREATE3 Factory
 Contract Creation0 ETH
204317552025-03-05 4:59:3418 days ago1741150774
Dolomite : CREATE3 Factory
 Contract Creation0 ETH
200887952025-02-19 21:12:1031 days ago1739999530
Dolomite : CREATE3 Factory
 Contract Creation0 ETH
200887892025-02-19 21:11:4931 days ago1739999509
Dolomite : CREATE3 Factory
 Contract Creation0 ETH
200887542025-02-19 21:09:5231 days ago1739999392
Dolomite : CREATE3 Factory
 Contract Creation0 ETH
200887472025-02-19 21:09:2931 days ago1739999369
Dolomite : CREATE3 Factory
 Contract Creation0 ETH
200863732025-02-19 18:59:5131 days ago1739991591
Dolomite : CREATE3 Factory
 Contract Creation0 ETH
200863632025-02-19 18:59:1931 days ago1739991559
Dolomite : CREATE3 Factory
 Contract Creation0 ETH
200863552025-02-19 18:58:5231 days ago1739991532
Dolomite : CREATE3 Factory
 Contract Creation0 ETH
200863462025-02-19 18:58:2231 days ago1739991502
Dolomite : CREATE3 Factory
 Contract Creation0 ETH
194552022025-01-26 6:34:2456 days ago1737873264
Dolomite : CREATE3 Factory
 Contract Creation0 ETH
194551962025-01-26 6:34:0456 days ago1737873244
Dolomite : CREATE3 Factory
 Contract Creation0 ETH
177073202024-11-19 1:56:28124 days ago1731981388
Dolomite : CREATE3 Factory
 Contract Creation0 ETH
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
CREATE3Factory

Compiler Version
v0.8.9+commit.e5eed63a

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
File 1 of 3 : CREATE3Factory.sol
// SPDX-License-Identifier: AGPL-3.0
pragma solidity ^0.8.7;

import { CREATE3 } from "./CREATE3.sol";
import { ICREATE3Factory } from "./ICREATE3Factory.sol";


/// @title Factory for deploying contracts to deterministic addresses via CREATE3
/// @author zefram.eth
/// @notice Enables deploying contracts using CREATE3. Each deployer (msg.sender) has
/// its own namespace for deployed addresses.
contract CREATE3Factory is ICREATE3Factory {
    /// @inheritdoc	ICREATE3Factory
    function deploy(bytes32 salt, bytes memory creationCode)
    external
    payable
    override
    returns (address deployed)
    {
        // hash salt with the deployer address to give each deployer its own namespace
        salt = keccak256(abi.encodePacked(msg.sender, salt));
        return CREATE3.deployDeterministic(msg.value, creationCode, salt);
    }

    /// @inheritdoc	ICREATE3Factory
    function getDeployed(address deployer, bytes32 salt)
    external
    view
    override
    returns (address deployed)
    {
        // hash salt with the deployer address to give each deployer its own namespace
        salt = keccak256(abi.encodePacked(deployer, salt));
        return CREATE3.predictDeterministicAddress(salt);
    }
}

File 2 of 3 : CREATE3.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.4;

/// @notice Deterministic deployments agnostic to the initialization code.
/// @author Solady (https://github.com/vectorized/solady/blob/main/src/utils/CREATE3.sol)
/// @author Modified from Solmate (https://github.com/transmissions11/solmate/blob/main/src/utils/CREATE3.sol)
/// @author Modified from 0xSequence (https://github.com/0xSequence/create3/blob/master/contracts/Create3.sol)
library CREATE3 {
    /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/
    /*                        CUSTOM ERRORS                       */
    /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/

    /// @dev Unable to deploy the contract.
    error DeploymentFailed();

    /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/
    /*                      BYTECODE CONSTANTS                    */
    /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/

    /**
     * -------------------------------------------------------------------+
     * Opcode      | Mnemonic         | Stack        | Memory             |
     * -------------------------------------------------------------------|
     * 36          | CALLDATASIZE     | cds          |                    |
     * 3d          | RETURNDATASIZE   | 0 cds        |                    |
     * 3d          | RETURNDATASIZE   | 0 0 cds      |                    |
     * 37          | CALLDATACOPY     |              | [0..cds): calldata |
     * 36          | CALLDATASIZE     | cds          | [0..cds): calldata |
     * 3d          | RETURNDATASIZE   | 0 cds        | [0..cds): calldata |
     * 34          | CALLVALUE        | value 0 cds  | [0..cds): calldata |
     * f0          | CREATE           | newContract  | [0..cds): calldata |
     * -------------------------------------------------------------------|
     * Opcode      | Mnemonic         | Stack        | Memory             |
     * -------------------------------------------------------------------|
     * 67 bytecode | PUSH8 bytecode   | bytecode     |                    |
     * 3d          | RETURNDATASIZE   | 0 bytecode   |                    |
     * 52          | MSTORE           |              | [0..8): bytecode   |
     * 60 0x08     | PUSH1 0x08       | 0x08         | [0..8): bytecode   |
     * 60 0x18     | PUSH1 0x18       | 0x18 0x08    | [0..8): bytecode   |
     * f3          | RETURN           |              | [0..8): bytecode   |
     * -------------------------------------------------------------------+
     */

    /// @dev The proxy initialization code.
    uint256 private constant _PROXY_INITCODE = 0x67363d3d37363d34f03d5260086018f3;

    /// @dev Hash of the `_PROXY_INITCODE`.
    /// Equivalent to `keccak256(abi.encodePacked(hex"67363d3d37363d34f03d5260086018f3"))`.
    bytes32 internal constant PROXY_INITCODE_HASH =
    0x21c35dbe1b344a2488cf3321d6ce542f8e9f305544ff09e4993a62319a497c1f;

    /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/
    /*                      CREATE3 OPERATIONS                    */
    /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/

    /// @dev Deploys `initCode` deterministically with a `salt`.
    /// Returns the deterministic address of the deployed contract,
    /// which solely depends on `salt`.
    function deployDeterministic(bytes memory initCode, bytes32 salt)
    internal
    returns (address deployed)
    {
        deployed = deployDeterministic(0, initCode, salt);
    }

    /// @dev Deploys `initCode` deterministically with a `salt`.
    /// The deployed contract is funded with `value` (in wei) ETH.
    /// Returns the deterministic address of the deployed contract,
    /// which solely depends on `salt`.
    function deployDeterministic(uint256 value, bytes memory initCode, bytes32 salt)
    internal
    returns (address deployed)
    {
        /// @solidity memory-safe-assembly
        assembly {
            mstore(0x00, _PROXY_INITCODE) // Store the `_PROXY_INITCODE`.
            let proxy := create2(0, 0x10, 0x10, salt)
            if iszero(proxy) {
                mstore(0x00, 0x30116425) // `DeploymentFailed()`.
                revert(0x1c, 0x04)
            }
            mstore(0x14, proxy) // Store the proxy's address.
            // 0xd6 = 0xc0 (short RLP prefix) + 0x16 (length of: 0x94 ++ proxy ++ 0x01).
            // 0x94 = 0x80 + 0x14 (0x14 = the length of an address, 20 bytes, in hex).
            mstore(0x00, 0xd694)
            mstore8(0x34, 0x01) // Nonce of the proxy contract (1).
            deployed := keccak256(0x1e, 0x17)
            if iszero(
                mul( // The arguments of `mul` are evaluated last to first.
                    extcodesize(deployed),
                    call(gas(), proxy, value, add(initCode, 0x20), mload(initCode), 0x00, 0x00)
                )
            ) {
                mstore(0x00, 0x30116425) // `DeploymentFailed()`.
                revert(0x1c, 0x04)
            }
        }
    }

    /// @dev Returns the deterministic address for `salt`.
    function predictDeterministicAddress(bytes32 salt) internal view returns (address deployed) {
        deployed = predictDeterministicAddress(salt, address(this));
    }

    /// @dev Returns the deterministic address for `salt` with `deployer`.
    function predictDeterministicAddress(bytes32 salt, address deployer)
    internal
    pure
    returns (address deployed)
    {
        /// @solidity memory-safe-assembly
        assembly {
            let m := mload(0x40) // Cache the free memory pointer.
            mstore(0x00, deployer) // Store `deployer`.
            mstore8(0x0b, 0xff) // Store the prefix.
            mstore(0x20, salt) // Store the salt.
            mstore(0x40, PROXY_INITCODE_HASH) // Store the bytecode hash.

            mstore(0x14, keccak256(0x0b, 0x55)) // Store the proxy's address.
            mstore(0x40, m) // Restore the free memory pointer.
        // 0xd6 = 0xc0 (short RLP prefix) + 0x16 (length of: 0x94 ++ proxy ++ 0x01).
        // 0x94 = 0x80 + 0x14 (0x14 = the length of an address, 20 bytes, in hex).
            mstore(0x00, 0xd694)
            mstore8(0x34, 0x01) // Nonce of the proxy contract (1).
            deployed := keccak256(0x1e, 0x17)
        }
    }
}

File 3 of 3 : ICREATE3Factory.sol
// SPDX-License-Identifier: AGPL-3.0
pragma solidity >=0.6.0;


/// @title Factory for deploying contracts to deterministic addresses via CREATE3
/// @author zefram.eth
/// @notice Enables deploying contracts using CREATE3. Each deployer (msg.sender) has
/// its own namespace for deployed addresses.
interface ICREATE3Factory {
    /// @notice Deploys a contract using CREATE3
    /// @dev The provided salt is hashed together with msg.sender to generate the final salt
    /// @param salt The deployer-specific salt for determining the deployed contract's address
    /// @param creationCode The creation code of the contract to deploy
    /// @return deployed The address of the deployed contract
    function deploy(bytes32 salt, bytes memory creationCode)
    external
    payable
    returns (address deployed);

    /// @notice Predicts the address of a deployed contract
    /// @dev The provided salt is hashed together with the deployer address to generate the final salt
    /// @param deployer The deployer account that will call deploy()
    /// @param salt The deployer-specific salt for determining the deployed contract's address
    /// @return deployed The address of the contract that will be deployed
    function getDeployed(address deployer, bytes32 salt)
    external
    view
    returns (address deployed);
}

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

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"bytes","name":"creationCode","type":"bytes"}],"name":"deploy","outputs":[{"internalType":"address","name":"deployed","type":"address"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"deployer","type":"address"},{"internalType":"bytes32","name":"salt","type":"bytes32"}],"name":"getDeployed","outputs":[{"internalType":"address","name":"deployed","type":"address"}],"stateMutability":"view","type":"function"}]

608060405234801561001057600080fd5b50610435806100206000396000f3fe6080604052600436106100295760003560e01c806350f1c4641461002e578063cdcb760a14610064575b600080fd5b34801561003a57600080fd5b5061004e610049366004610208565b610077565b60405161005b9190610254565b60405180910390f35b61004e61007236600461035d565b6100b6565b6000828260405160200161008c9291906103d9565b6040516020818303038152906040528051906020012091506100ad826100ee565b90505b92915050565b600033836040516020016100cb9291906103d9565b6040516020818303038152906040528051906020012092506100ad3483856100fa565b60006100b0823061016a565b60006f67363d3d37363d34f03d5260086018f3600052816010806000f58061012a5763301164256000526004601cfd5b8060145261d69460005260016034536017601e20915060008085516020870188855af1823b026101625763301164256000526004601cfd5b509392505050565b60006040518260005260ff600b53836020527f21c35dbe1b344a2488cf3321d6ce542f8e9f305544ff09e4993a62319a497c1f6040526055600b206014528060405261d694600052600160345350506017601e2092915050565b60006001600160a01b0382166100b0565b6101de816101c4565b81146101e957600080fd5b50565b80356100b0816101d5565b806101de565b80356100b0816101f7565b6000806040838503121561021e5761021e600080fd5b600061022a85856101ec565b925050602061023b858286016101fd565b9150509250929050565b61024e816101c4565b82525050565b602081016100b08284610245565b634e487b7160e01b600052604160045260246000fd5b601f19601f830116810181811067ffffffffffffffff8211171561029e5761029e610262565b6040525050565b60006102b060405190565b90506102bc8282610278565b919050565b600067ffffffffffffffff8211156102db576102db610262565b601f19601f83011660200192915050565b82818337506000910152565b600061030b610306846102c1565b6102a5565b90508281526020810184848401111561032657610326600080fd5b6101628482856102ec565b600082601f83011261034557610345600080fd5b81356103558482602086016102f8565b949350505050565b6000806040838503121561037357610373600080fd5b600061037f85856101fd565b925050602083013567ffffffffffffffff81111561039f5761039f600080fd5b61023b85828601610331565b60006100b08260601b90565b60006100b0826103ab565b61024e6103ce826101c4565b6103b7565b8061024e565b60006103e582856103c2565b6014820191506103f582846103d3565b506020019291505056fea26469706673582212204bec886f54707d9b8c65587c5ea3f7bfc14034d5daba518fa4eb3fdbf9f363f464736f6c63430008090033

Deployed Bytecode

0x6080604052600436106100295760003560e01c806350f1c4641461002e578063cdcb760a14610064575b600080fd5b34801561003a57600080fd5b5061004e610049366004610208565b610077565b60405161005b9190610254565b60405180910390f35b61004e61007236600461035d565b6100b6565b6000828260405160200161008c9291906103d9565b6040516020818303038152906040528051906020012091506100ad826100ee565b90505b92915050565b600033836040516020016100cb9291906103d9565b6040516020818303038152906040528051906020012092506100ad3483856100fa565b60006100b0823061016a565b60006f67363d3d37363d34f03d5260086018f3600052816010806000f58061012a5763301164256000526004601cfd5b8060145261d69460005260016034536017601e20915060008085516020870188855af1823b026101625763301164256000526004601cfd5b509392505050565b60006040518260005260ff600b53836020527f21c35dbe1b344a2488cf3321d6ce542f8e9f305544ff09e4993a62319a497c1f6040526055600b206014528060405261d694600052600160345350506017601e2092915050565b60006001600160a01b0382166100b0565b6101de816101c4565b81146101e957600080fd5b50565b80356100b0816101d5565b806101de565b80356100b0816101f7565b6000806040838503121561021e5761021e600080fd5b600061022a85856101ec565b925050602061023b858286016101fd565b9150509250929050565b61024e816101c4565b82525050565b602081016100b08284610245565b634e487b7160e01b600052604160045260246000fd5b601f19601f830116810181811067ffffffffffffffff8211171561029e5761029e610262565b6040525050565b60006102b060405190565b90506102bc8282610278565b919050565b600067ffffffffffffffff8211156102db576102db610262565b601f19601f83011660200192915050565b82818337506000910152565b600061030b610306846102c1565b6102a5565b90508281526020810184848401111561032657610326600080fd5b6101628482856102ec565b600082601f83011261034557610345600080fd5b81356103558482602086016102f8565b949350505050565b6000806040838503121561037357610373600080fd5b600061037f85856101fd565b925050602083013567ffffffffffffffff81111561039f5761039f600080fd5b61023b85828601610331565b60006100b08260601b90565b60006100b0826103ab565b61024e6103ce826101c4565b6103b7565b8061024e565b60006103e582856103c2565b6014820191506103f582846103d3565b506020019291505056fea26469706673582212204bec886f54707d9b8c65587c5ea3f7bfc14034d5daba518fa4eb3fdbf9f363f464736f6c63430008090033

Block Transaction Gas Used Reward
view all blocks sequenced

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
[ 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.