ETH Price: $2,100.53 (+0.47%)

Contract

0x02101dfB77FDE026414827Fdc604ddAF224F0921
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Create Account246085752026-03-07 22:31:357 days ago1772922695IN
0x02101dfB...F224F0921
0 ETH0.000005130.04079112
Create Account246083182026-03-07 21:39:597 days ago1772919599IN
0x02101dfB...F224F0921
0 ETH0.000004770.03795384
Create Account244190442026-02-09 11:55:4733 days ago1770638147IN
0x02101dfB...F224F0921
0 ETH0.000007840.0623401
Create Account244190162026-02-09 11:50:1133 days ago1770637811IN
0x02101dfB...F224F0921
0 ETH0.000007150.0568818
Create Account244188412026-02-09 11:15:1133 days ago1770635711IN
0x02101dfB...F224F0921
0 ETH0.000011280.08963548
Create Account244183722026-02-09 9:40:1133 days ago1770630011IN
0x02101dfB...F224F0921
0 ETH0.000006570.05222109
Create Account244180002026-02-09 8:25:1133 days ago1770625511IN
0x02101dfB...F224F0921
0 ETH0.000004960.03946022
Create Account244157012026-02-09 0:41:5934 days ago1770597719IN
0x02101dfB...F224F0921
0 ETH0.000005180.04122768
Create Account244156652026-02-09 0:34:4734 days ago1770597287IN
0x02101dfB...F224F0921
0 ETH0.000005390.04283949
Create Account244156302026-02-09 0:27:4734 days ago1770596867IN
0x02101dfB...F224F0921
0 ETH0.000006230.04952447
Create Account244150112026-02-08 22:22:5934 days ago1770589379IN
0x02101dfB...F224F0921
0 ETH0.000004910.03903809
Create Account244149832026-02-08 22:17:2334 days ago1770589043IN
0x02101dfB...F224F0921
0 ETH0.000006110.04856664
Create Account239533472025-12-06 10:49:1198 days ago1765018151IN
0x02101dfB...F224F0921
0 ETH0.000254652.02347126
Create Account239533412025-12-06 10:47:5998 days ago1765018079IN
0x02101dfB...F224F0921
0 ETH0.000254152.01949749
Create Account239533212025-12-06 10:43:5998 days ago1765017839IN
0x02101dfB...F224F0921
0 ETH0.000254872.02519869
Create Account236452192025-10-24 5:23:47141 days ago1761283427IN
0x02101dfB...F224F0921
0 ETH0.000204992.12739217
Create Account234143732025-09-21 22:22:59174 days ago1758493379IN
0x02101dfB...F224F0921
0 ETH0.000003710.1364677
Create Account233258112025-09-09 13:22:59186 days ago1757424179IN
0x02101dfB...F224F0921
0 ETH0.000030471.11978519
Create Account232409572025-08-28 16:58:11198 days ago1756400291IN
0x02101dfB...F224F0921
0 ETH0.000236291.87754943
Create Account232409432025-08-28 16:55:23198 days ago1756400123IN
0x02101dfB...F224F0921
0 ETH0.000217781.73053596
Create Account232409392025-08-28 16:54:35198 days ago1756400075IN
0x02101dfB...F224F0921
0 ETH0.000151341.20260126
Create Account232408952025-08-28 16:45:47198 days ago1756399547IN
0x02101dfB...F224F0921
0 ETH0.000215711.71406584
Create Account232408852025-08-28 16:43:47198 days ago1756399427IN
0x02101dfB...F224F0921
0 ETH0.000224411.78319352
Create Account228945872025-07-11 7:57:23246 days ago1752220643IN
0x02101dfB...F224F0921
0 ETH0.000622264.94494901
Create Account225883722025-05-29 12:20:47289 days ago1748521247IN
0x02101dfB...F224F0921
0 ETH0.00015315.62521555
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Method Block
From
To
0x3d60ad80246085752026-03-07 22:31:357 days ago1772922695
0x02101dfB...F224F0921
 Contract Creation0 ETH
0x3d60ad80246083182026-03-07 21:39:597 days ago1772919599
0x02101dfB...F224F0921
 Contract Creation0 ETH
0x3d60ad80244190442026-02-09 11:55:4733 days ago1770638147
0x02101dfB...F224F0921
 Contract Creation0 ETH
0x3d60ad80244190162026-02-09 11:50:1133 days ago1770637811
0x02101dfB...F224F0921
 Contract Creation0 ETH
0x3d60ad80244188412026-02-09 11:15:1133 days ago1770635711
0x02101dfB...F224F0921
 Contract Creation0 ETH
0x3d60ad80244183722026-02-09 9:40:1133 days ago1770630011
0x02101dfB...F224F0921
 Contract Creation0 ETH
0x3d60ad80244180002026-02-09 8:25:1133 days ago1770625511
0x02101dfB...F224F0921
 Contract Creation0 ETH
0x3d60ad80244157012026-02-09 0:41:5934 days ago1770597719
0x02101dfB...F224F0921
 Contract Creation0 ETH
0x3d60ad80244156652026-02-09 0:34:4734 days ago1770597287
0x02101dfB...F224F0921
 Contract Creation0 ETH
0x3d60ad80244156302026-02-09 0:27:4734 days ago1770596867
0x02101dfB...F224F0921
 Contract Creation0 ETH
0x3d60ad80244150112026-02-08 22:22:5934 days ago1770589379
0x02101dfB...F224F0921
 Contract Creation0 ETH
0x3d60ad80244149832026-02-08 22:17:2334 days ago1770589043
0x02101dfB...F224F0921
 Contract Creation0 ETH
0x3d60ad80239533472025-12-06 10:49:1198 days ago1765018151
0x02101dfB...F224F0921
 Contract Creation0 ETH
0x3d60ad80239533412025-12-06 10:47:5998 days ago1765018079
0x02101dfB...F224F0921
 Contract Creation0 ETH
0x3d60ad80239533212025-12-06 10:43:5998 days ago1765017839
0x02101dfB...F224F0921
 Contract Creation0 ETH
0x3d60ad80236452192025-10-24 5:23:47141 days ago1761283427
0x02101dfB...F224F0921
 Contract Creation0 ETH
0x3d60ad80232409572025-08-28 16:58:11198 days ago1756400291
0x02101dfB...F224F0921
 Contract Creation0 ETH
0x3d60ad80232409432025-08-28 16:55:23198 days ago1756400123
0x02101dfB...F224F0921
 Contract Creation0 ETH
0x3d60ad80232409392025-08-28 16:54:35198 days ago1756400075
0x02101dfB...F224F0921
 Contract Creation0 ETH
0x3d60ad80232408952025-08-28 16:45:47198 days ago1756399547
0x02101dfB...F224F0921
 Contract Creation0 ETH
0x3d60ad80232408852025-08-28 16:43:47198 days ago1756399427
0x02101dfB...F224F0921
 Contract Creation0 ETH
0x3d60ad80228945872025-07-11 7:57:23246 days ago1752220643
0x02101dfB...F224F0921
 Contract Creation0 ETH
0x3d60ad80225883052025-05-29 12:07:11289 days ago1748520431
0x02101dfB...F224F0921
 Contract Creation0 ETH
0x3d60ad80225882612025-05-29 11:58:23289 days ago1748519903
0x02101dfB...F224F0921
 Contract Creation0 ETH
0x3d60ad80223150602025-04-21 4:43:35328 days ago1745210615
0x02101dfB...F224F0921
 Contract Creation0 ETH
View All Internal Transactions
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
ERC6551Registry

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.0;

import "openzeppelin-contracts/utils/Create2.sol";

import "./interfaces/IERC6551Registry.sol";
import "./lib/ERC6551BytecodeLib.sol";

contract ERC6551Registry is IERC6551Registry {
    error InitializationFailed();

    function createAccount(
        address implementation,
        uint256 chainId,
        address tokenContract,
        uint256 tokenId,
        uint256 salt,
        bytes calldata initData
    ) external returns (address) {
        bytes memory code = ERC6551BytecodeLib.getCreationCode(
            implementation,
            chainId,
            tokenContract,
            tokenId,
            salt
        );

        address _account = Create2.computeAddress(bytes32(salt), keccak256(code));

        if (_account.code.length != 0) return _account;

        emit AccountCreated(_account, implementation, chainId, tokenContract, tokenId, salt);

        _account = Create2.deploy(0, bytes32(salt), code);

        if (initData.length != 0) {
            (bool success, ) = _account.call(initData);
            if (!success) revert InitializationFailed();
        }

        return _account;
    }

    function account(
        address implementation,
        uint256 chainId,
        address tokenContract,
        uint256 tokenId,
        uint256 salt
    ) external view returns (address) {
        bytes32 bytecodeHash = keccak256(
            ERC6551BytecodeLib.getCreationCode(
                implementation,
                chainId,
                tokenContract,
                tokenId,
                salt
            )
        );

        return Create2.computeAddress(bytes32(salt), bytecodeHash);
    }
}

// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.8.0) (utils/Create2.sol)

pragma solidity ^0.8.0;

/**
 * @dev Helper to make usage of the `CREATE2` EVM opcode easier and safer.
 * `CREATE2` can be used to compute in advance the address where a smart
 * contract will be deployed, which allows for interesting new mechanisms known
 * as 'counterfactual interactions'.
 *
 * See the https://eips.ethereum.org/EIPS/eip-1014#motivation[EIP] for more
 * information.
 */
library Create2 {
    /**
     * @dev Deploys a contract using `CREATE2`. The address where the contract
     * will be deployed can be known in advance via {computeAddress}.
     *
     * The bytecode for a contract can be obtained from Solidity with
     * `type(contractName).creationCode`.
     *
     * Requirements:
     *
     * - `bytecode` must not be empty.
     * - `salt` must have not been used for `bytecode` already.
     * - the factory must have a balance of at least `amount`.
     * - if `amount` is non-zero, `bytecode` must have a `payable` constructor.
     */
    function deploy(
        uint256 amount,
        bytes32 salt,
        bytes memory bytecode
    ) internal returns (address addr) {
        require(address(this).balance >= amount, "Create2: insufficient balance");
        require(bytecode.length != 0, "Create2: bytecode length is zero");
        /// @solidity memory-safe-assembly
        assembly {
            addr := create2(amount, add(bytecode, 0x20), mload(bytecode), salt)
        }
        require(addr != address(0), "Create2: Failed on deploy");
    }

    /**
     * @dev Returns the address where a contract will be stored if deployed via {deploy}. Any change in the
     * `bytecodeHash` or `salt` will result in a new destination address.
     */
    function computeAddress(bytes32 salt, bytes32 bytecodeHash) internal view returns (address) {
        return computeAddress(salt, bytecodeHash, address(this));
    }

    /**
     * @dev Returns the address where a contract will be stored if deployed via {deploy} from a contract located at
     * `deployer`. If `deployer` is this contract's address, returns the same value as {computeAddress}.
     */
    function computeAddress(
        bytes32 salt,
        bytes32 bytecodeHash,
        address deployer
    ) internal pure returns (address addr) {
        /// @solidity memory-safe-assembly
        assembly {
            let ptr := mload(0x40) // Get free memory pointer

            // |                   | ↓ ptr ...  ↓ ptr + 0x0B (start) ...  ↓ ptr + 0x20 ...  ↓ ptr + 0x40 ...   |
            // |-------------------|---------------------------------------------------------------------------|
            // | bytecodeHash      |                                                        CCCCCCCCCCCCC...CC |
            // | salt              |                                      BBBBBBBBBBBBB...BB                   |
            // | deployer          | 000000...0000AAAAAAAAAAAAAAAAAAA...AA                                     |
            // | 0xFF              |            FF                                                             |
            // |-------------------|---------------------------------------------------------------------------|
            // | memory            | 000000...00FFAAAAAAAAAAAAAAAAAAA...AABBBBBBBBBBBBB...BBCCCCCCCCCCCCC...CC |
            // | keccak(start, 85) |            ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑ |

            mstore(add(ptr, 0x40), bytecodeHash)
            mstore(add(ptr, 0x20), salt)
            mstore(ptr, deployer) // Right-aligned with 12 preceding garbage bytes
            let start := add(ptr, 0x0b) // The hashed data starts at the final garbage byte which we will set to 0xff
            mstore8(start, 0xff)
            addr := keccak256(start, 85)
        }
    }
}

// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.0;

interface IERC6551Registry {
    event AccountCreated(
        address account,
        address implementation,
        uint256 chainId,
        address tokenContract,
        uint256 tokenId,
        uint256 salt
    );

    function createAccount(
        address implementation,
        uint256 chainId,
        address tokenContract,
        uint256 tokenId,
        uint256 seed,
        bytes calldata initData
    ) external returns (address);

    function account(
        address implementation,
        uint256 chainId,
        address tokenContract,
        uint256 tokenId,
        uint256 salt
    ) external view returns (address);
}

File 4 of 4 : ERC6551BytecodeLib.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

library ERC6551BytecodeLib {
    function getCreationCode(
        address implementation_,
        uint256 chainId_,
        address tokenContract_,
        uint256 tokenId_,
        uint256 salt_
    ) internal pure returns (bytes memory) {
        return
            abi.encodePacked(
                hex"3d60ad80600a3d3981f3363d3d373d3d3d363d73",
                implementation_,
                hex"5af43d82803e903d91602b57fd5bf3",
                abi.encode(salt_, chainId_, tokenContract_, tokenId_)
            );
    }
}

Settings
{
  "remappings": [
    "ds-test/=lib/forge-std/lib/ds-test/src/",
    "forge-std/=lib/forge-std/src/",
    "openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/",
    "sstore2/=lib/sstore2/contracts/"
  ],
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "metadata": {
    "bytecodeHash": "ipfs"
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "evmVersion": "london",
  "libraries": {}
}

Contract Security Audit

Contract ABI

API
[{"inputs":[],"name":"InitializationFailed","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"address","name":"implementation","type":"address"},{"indexed":false,"internalType":"uint256","name":"chainId","type":"uint256"},{"indexed":false,"internalType":"address","name":"tokenContract","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"salt","type":"uint256"}],"name":"AccountCreated","type":"event"},{"inputs":[{"internalType":"address","name":"implementation","type":"address"},{"internalType":"uint256","name":"chainId","type":"uint256"},{"internalType":"address","name":"tokenContract","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint256","name":"salt","type":"uint256"}],"name":"account","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"implementation","type":"address"},{"internalType":"uint256","name":"chainId","type":"uint256"},{"internalType":"address","name":"tokenContract","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint256","name":"salt","type":"uint256"},{"internalType":"bytes","name":"initData","type":"bytes"}],"name":"createAccount","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function"}]

608060405234801561001057600080fd5b50610584806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80635e9bc5361461003b578063da7323b31461006a575b600080fd5b61004e6100493660046103be565b61007d565b6040516001600160a01b03909116815260200160405180910390f35b61004e61007836600461040c565b6100ac565b60008061008d87878787876101f2565b805160209091012090506100a1838261025b565b979650505050505050565b6000806100bc89898989896101f2565b905060006100d48660001b838051906020012061025b565b90506001600160a01b0381163b156100ef5791506100a19050565b604080516001600160a01b0383811682528c811660208301528183018c90528a1660608201526080810189905260a0810188905290517f07fba7bba1191da7ee1155dcfa0030701c9c9a9cc34a93b991fc6fd0c9268d8f9181900360c00190a161015b6000878461026f565b905083156101e5576000816001600160a01b0316868660405161017f9291906104bd565b6000604051808303816000865af19150503d80600081146101bc576040519150601f19603f3d011682016040523d82523d6000602084013e6101c1565b606091505b50509050806101e357604051630337323560e31b815260040160405180910390fd5b505b9998505050505050505050565b60408051602081018390529081018590526001600160a01b0384166060828101919091526080820184905290869060a00160408051601f198184030181529082905261024192916020016104cd565b604051602081830303815290604052905095945050505050565b6000610268838330610378565b9392505050565b6000834710156102c65760405162461bcd60e51b815260206004820152601d60248201527f437265617465323a20696e73756666696369656e742062616c616e636500000060448201526064015b60405180910390fd5b81516000036103175760405162461bcd60e51b815260206004820181905260248201527f437265617465323a2062797465636f6465206c656e677468206973207a65726f60448201526064016102bd565b8282516020840186f590506001600160a01b0381166102685760405162461bcd60e51b815260206004820152601960248201527f437265617465323a204661696c6564206f6e206465706c6f790000000000000060448201526064016102bd565b6000604051836040820152846020820152828152600b8101905060ff815360559020949350505050565b80356001600160a01b03811681146103b957600080fd5b919050565b600080600080600060a086880312156103d657600080fd5b6103df866103a2565b9450602086013593506103f4604087016103a2565b94979396509394606081013594506080013592915050565b600080600080600080600060c0888a03121561042757600080fd5b610430886103a2565b965060208801359550610445604089016103a2565b9450606088013593506080880135925060a088013567ffffffffffffffff8082111561047057600080fd5b818a0191508a601f83011261048457600080fd5b81358181111561049357600080fd5b8b60208285010111156104a557600080fd5b60208301945080935050505092959891949750929550565b8183823760009101908152919050565b733d60ad80600a3d3981f3363d3d373d3d3d363d7360601b8152606083901b6bffffffffffffffffffffffff191660148201526e5af43d82803e903d91602b57fd5bf360881b60288201528151600090815b8181101561053c576020818601810151603786840101520161051f565b5060009201603701918252509291505056fea2646970667358221220e2587fca867549b42048ba247681a3b9d8e4fe0d15087826dd42a21f64e2739664736f6c63430008110033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106100365760003560e01c80635e9bc5361461003b578063da7323b31461006a575b600080fd5b61004e6100493660046103be565b61007d565b6040516001600160a01b03909116815260200160405180910390f35b61004e61007836600461040c565b6100ac565b60008061008d87878787876101f2565b805160209091012090506100a1838261025b565b979650505050505050565b6000806100bc89898989896101f2565b905060006100d48660001b838051906020012061025b565b90506001600160a01b0381163b156100ef5791506100a19050565b604080516001600160a01b0383811682528c811660208301528183018c90528a1660608201526080810189905260a0810188905290517f07fba7bba1191da7ee1155dcfa0030701c9c9a9cc34a93b991fc6fd0c9268d8f9181900360c00190a161015b6000878461026f565b905083156101e5576000816001600160a01b0316868660405161017f9291906104bd565b6000604051808303816000865af19150503d80600081146101bc576040519150601f19603f3d011682016040523d82523d6000602084013e6101c1565b606091505b50509050806101e357604051630337323560e31b815260040160405180910390fd5b505b9998505050505050505050565b60408051602081018390529081018590526001600160a01b0384166060828101919091526080820184905290869060a00160408051601f198184030181529082905261024192916020016104cd565b604051602081830303815290604052905095945050505050565b6000610268838330610378565b9392505050565b6000834710156102c65760405162461bcd60e51b815260206004820152601d60248201527f437265617465323a20696e73756666696369656e742062616c616e636500000060448201526064015b60405180910390fd5b81516000036103175760405162461bcd60e51b815260206004820181905260248201527f437265617465323a2062797465636f6465206c656e677468206973207a65726f60448201526064016102bd565b8282516020840186f590506001600160a01b0381166102685760405162461bcd60e51b815260206004820152601960248201527f437265617465323a204661696c6564206f6e206465706c6f790000000000000060448201526064016102bd565b6000604051836040820152846020820152828152600b8101905060ff815360559020949350505050565b80356001600160a01b03811681146103b957600080fd5b919050565b600080600080600060a086880312156103d657600080fd5b6103df866103a2565b9450602086013593506103f4604087016103a2565b94979396509394606081013594506080013592915050565b600080600080600080600060c0888a03121561042757600080fd5b610430886103a2565b965060208801359550610445604089016103a2565b9450606088013593506080880135925060a088013567ffffffffffffffff8082111561047057600080fd5b818a0191508a601f83011261048457600080fd5b81358181111561049357600080fd5b8b60208285010111156104a557600080fd5b60208301945080935050505092959891949750929550565b8183823760009101908152919050565b733d60ad80600a3d3981f3363d3d373d3d3d363d7360601b8152606083901b6bffffffffffffffffffffffff191660148201526e5af43d82803e903d91602b57fd5bf360881b60288201528151600090815b8181101561053c576020818601810151603786840101520161051f565b5060009201603701918252509291505056fea2646970667358221220e2587fca867549b42048ba247681a3b9d8e4fe0d15087826dd42a21f64e2739664736f6c63430008110033

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
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.