ETH Price: $3,297.81 (-0.34%)

Contract

0x000000006551c19487814612e58FE06813775758
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Create Account206672382024-09-03 3:02:59111 days ago1725332579IN
0x00000000...813775758
0 ETH0.000130591.375861
Create Account201741802024-06-26 6:49:59180 days ago1719384599IN
0x00000000...813775758
0 ETH0.000324013.41327261
Create Account197637522024-04-29 21:49:47237 days ago1714427387IN
0x00000000...813775758
0 ETH0.00063856.72446737
Create Account197533592024-04-28 10:55:59239 days ago1714301759IN
0x00000000...813775758
0 ETH0.000788148.30140064
Create Account197532712024-04-28 10:38:23239 days ago1714300703IN
0x00000000...813775758
0 ETH0.00017846.97349
Create Account197532432024-04-28 10:32:47239 days ago1714300367IN
0x00000000...813775758
0 ETH0.000179657.02260622
Create Account197531962024-04-28 10:23:23239 days ago1714299803IN
0x00000000...813775758
0 ETH0.000198457.75745961
Create Account197531752024-04-28 10:19:11239 days ago1714299551IN
0x00000000...813775758
0 ETH0.000920759.69576564
Create Account196353792024-04-11 22:32:59255 days ago1712874779IN
0x00000000...813775758
0 ETH0.0003624214.1798768
Create Account196353792024-04-11 22:32:59255 days ago1712874779IN
0x00000000...813775758
0 ETH0.0013462514.1798768
Create Account192426822024-02-16 19:58:23310 days ago1708113503IN
0x00000000...813775758
0 ETH0.0024661125.87062106
Create Account191601882024-02-05 6:07:23322 days ago1707113243IN
0x00000000...813775758
0 ETH0.0012476313.14283219
Create Account191599622024-02-05 5:21:35322 days ago1707110495IN
0x00000000...813775758
0 ETH0.0010662511.23068671
Create Account191437692024-02-02 22:45:23324 days ago1706913923IN
0x00000000...813775758
0 ETH0.0014895215.6908947
Create Account191433492024-02-02 21:20:11324 days ago1706908811IN
0x00000000...813775758
0 ETH0.0014591415.37091013
Create Account191147392024-01-29 21:03:47328 days ago1706562227IN
0x00000000...813775758
0 ETH0.0015919416.76985156
Create Account190451742024-01-20 2:45:47338 days ago1705718747IN
0x00000000...813775758
0 ETH0.001526716.01783588
Create Account184663082023-10-30 23:40:11419 days ago1698709211IN
0x00000000...813775758
0 ETH0.0021502122.64794195
Create Account184646052023-10-30 17:57:35420 days ago1698688655IN
0x00000000...813775758
0 ETH0.0032719834.46768678
Create Account184328002023-10-26 7:07:23424 days ago1698304043IN
0x00000000...813775758
0 ETH0.0013117713.8167441

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block
From
To
214652042024-12-23 12:32:116 hrs ago1734957131
0x00000000...813775758
 Contract Creation0 ETH
214642912024-12-23 9:28:239 hrs ago1734946103
0x00000000...813775758
 Contract Creation0 ETH
214634412024-12-23 6:36:4712 hrs ago1734935807
0x00000000...813775758
 Contract Creation0 ETH
214447912024-12-20 16:01:353 days ago1734710495
0x00000000...813775758
 Contract Creation0 ETH
214388842024-12-19 20:14:113 days ago1734639251
0x00000000...813775758
 Contract Creation0 ETH
214371772024-12-19 14:31:114 days ago1734618671
0x00000000...813775758
 Contract Creation0 ETH
214345832024-12-19 5:48:594 days ago1734587339
0x00000000...813775758
 Contract Creation0 ETH
214325762024-12-18 23:04:354 days ago1734563075
0x00000000...813775758
 Contract Creation0 ETH
214283382024-12-18 8:50:595 days ago1734511859
0x00000000...813775758
 Contract Creation0 ETH
214281842024-12-18 8:19:595 days ago1734509999
0x00000000...813775758
 Contract Creation0 ETH
214216342024-12-17 10:23:356 days ago1734431015
0x00000000...813775758
 Contract Creation0 ETH
214182592024-12-16 23:05:596 days ago1734390359
0x00000000...813775758
 Contract Creation0 ETH
214022672024-12-14 17:32:479 days ago1734197567
0x00000000...813775758
 Contract Creation0 ETH
214016312024-12-14 15:25:119 days ago1734189911
0x00000000...813775758
 Contract Creation0 ETH
214015202024-12-14 15:02:479 days ago1734188567
0x00000000...813775758
 Contract Creation0 ETH
214007042024-12-14 12:18:119 days ago1734178691
0x00000000...813775758
 Contract Creation0 ETH
213986272024-12-14 5:21:119 days ago1734153671
0x00000000...813775758
 Contract Creation0 ETH
213975412024-12-14 1:42:359 days ago1734140555
0x00000000...813775758
 Contract Creation0 ETH
213954552024-12-13 18:42:5910 days ago1734115379
0x00000000...813775758
 Contract Creation0 ETH
213936362024-12-13 12:37:3510 days ago1734093455
0x00000000...813775758
 Contract Creation0 ETH
213931462024-12-13 10:59:2310 days ago1734087563
0x00000000...813775758
 Contract Creation0 ETH
213901402024-12-13 0:54:5910 days ago1734051299
0x00000000...813775758
 Contract Creation0 ETH
213838162024-12-12 3:44:1111 days ago1733975051
0x00000000...813775758
 Contract Creation0 ETH
213631962024-12-09 6:37:3514 days ago1733726255
0x00000000...813775758
 Contract Creation0 ETH
213550972024-12-08 3:30:3515 days ago1733628635
0x00000000...813775758
 Contract Creation0 ETH
View All Internal Transactions
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:
london EvmVersion
File 1 of 1 : ERC6551Registry.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.4;

interface IERC6551Registry {
    /**
     * @dev The registry MUST emit the ERC6551AccountCreated event upon successful account creation.
     */
    event ERC6551AccountCreated(
        address account,
        address indexed implementation,
        bytes32 salt,
        uint256 chainId,
        address indexed tokenContract,
        uint256 indexed tokenId
    );

    /**
     * @dev The registry MUST revert with AccountCreationFailed error if the create2 operation fails.
     */
    error AccountCreationFailed();

    /**
     * @dev Creates a token bound account for a non-fungible token.
     *
     * If account has already been created, returns the account address without calling create2.
     *
     * Emits ERC6551AccountCreated event.
     *
     * @return account The address of the token bound account
     */
    function createAccount(
        address implementation,
        bytes32 salt,
        uint256 chainId,
        address tokenContract,
        uint256 tokenId
    ) external returns (address account);

    /**
     * @dev Returns the computed token bound account address for a non-fungible token.
     *
     * @return account The address of the token bound account
     */
    function account(
        address implementation,
        bytes32 salt,
        uint256 chainId,
        address tokenContract,
        uint256 tokenId
    ) external view returns (address account);
}

contract ERC6551Registry is IERC6551Registry {
    function createAccount(
        address implementation,
        bytes32 salt,
        uint256 chainId,
        address tokenContract,
        uint256 tokenId
    ) external returns (address) {
        assembly {
            // Memory Layout:
            // ----
            // 0x00   0xff                           (1 byte)
            // 0x01   registry (address)             (20 bytes)
            // 0x15   salt (bytes32)                 (32 bytes)
            // 0x35   Bytecode Hash (bytes32)        (32 bytes)
            // ----
            // 0x55   ERC-1167 Constructor + Header  (20 bytes)
            // 0x69   implementation (address)       (20 bytes)
            // 0x5D   ERC-1167 Footer                (15 bytes)
            // 0x8C   salt (uint256)                 (32 bytes)
            // 0xAC   chainId (uint256)              (32 bytes)
            // 0xCC   tokenContract (address)        (32 bytes)
            // 0xEC   tokenId (uint256)              (32 bytes)

            // Silence unused variable warnings
            pop(chainId)

            // Copy bytecode + constant data to memory
            calldatacopy(0x8c, 0x24, 0x80) // salt, chainId, tokenContract, tokenId
            mstore(0x6c, 0x5af43d82803e903d91602b57fd5bf3) // ERC-1167 footer
            mstore(0x5d, implementation) // implementation
            mstore(0x49, 0x3d60ad80600a3d3981f3363d3d373d3d3d363d73) // ERC-1167 constructor + header

            // Copy create2 computation data to memory
            mstore8(0x00, 0xff) // 0xFF
            mstore(0x35, keccak256(0x55, 0xb7)) // keccak256(bytecode)
            mstore(0x01, shl(96, address())) // registry address
            mstore(0x15, salt) // salt

            // Compute account address
            let computed := keccak256(0x00, 0x55)

            // If the account has not yet been deployed
            if iszero(extcodesize(computed)) {
                // Deploy account contract
                let deployed := create2(0, 0x55, 0xb7, salt)

                // Revert if the deployment fails
                if iszero(deployed) {
                    mstore(0x00, 0x20188a59) // `AccountCreationFailed()`
                    revert(0x1c, 0x04)
                }

                // Store account address in memory before salt and chainId
                mstore(0x6c, deployed)

                // Emit the ERC6551AccountCreated event
                log4(
                    0x6c,
                    0x60,
                    // `ERC6551AccountCreated(address,address,bytes32,uint256,address,uint256)`
                    0x79f19b3655ee38b1ce526556b7731a20c8f218fbda4a3990b6cc4172fdf88722,
                    implementation,
                    tokenContract,
                    tokenId
                )

                // Return the account address
                return(0x6c, 0x20)
            }

            // Otherwise, return the computed account address
            mstore(0x00, shr(96, shl(96, computed)))
            return(0x00, 0x20)
        }
    }

    function account(
        address implementation,
        bytes32 salt,
        uint256 chainId,
        address tokenContract,
        uint256 tokenId
    ) external view returns (address) {
        assembly {
            // Silence unused variable warnings
            pop(chainId)
            pop(tokenContract)
            pop(tokenId)

            // Copy bytecode + constant data to memory
            calldatacopy(0x8c, 0x24, 0x80) // salt, chainId, tokenContract, tokenId
            mstore(0x6c, 0x5af43d82803e903d91602b57fd5bf3) // ERC-1167 footer
            mstore(0x5d, implementation) // implementation
            mstore(0x49, 0x3d60ad80600a3d3981f3363d3d373d3d3d363d73) // ERC-1167 constructor + header

            // Copy create2 computation data to memory
            mstore8(0x00, 0xff) // 0xFF
            mstore(0x35, keccak256(0x55, 0xb7)) // keccak256(bytecode)
            mstore(0x01, shl(96, address())) // registry address
            mstore(0x15, salt) // salt

            // Store computed account address in memory
            mstore(0x00, shr(96, shl(96, keccak256(0x00, 0x55))))

            // Return computed account address
            return(0x00, 0x20)
        }
    }
}

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

Contract Security Audit

Contract ABI

[{"inputs":[],"name":"AccountCreationFailed","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"implementation","type":"address"},{"indexed":false,"internalType":"bytes32","name":"salt","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"chainId","type":"uint256"},{"indexed":true,"internalType":"address","name":"tokenContract","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ERC6551AccountCreated","type":"event"},{"inputs":[{"internalType":"address","name":"implementation","type":"address"},{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"uint256","name":"chainId","type":"uint256"},{"internalType":"address","name":"tokenContract","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"account","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"implementation","type":"address"},{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"uint256","name":"chainId","type":"uint256"},{"internalType":"address","name":"tokenContract","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"createAccount","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function"}]

608060405234801561001057600080fd5b5061023b806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c8063246a00211461003b5780638a54c52f1461006a575b600080fd5b61004e6100493660046101b7565b61007d565b6040516001600160a01b03909116815260200160405180910390f35b61004e6100783660046101b7565b6100e1565b600060806024608c376e5af43d82803e903d91602b57fd5bf3606c5285605d52733d60ad80600a3d3981f3363d3d373d3d3d363d7360495260ff60005360b76055206035523060601b60015284601552605560002060601b60601c60005260206000f35b600060806024608c376e5af43d82803e903d91602b57fd5bf3606c5285605d52733d60ad80600a3d3981f3363d3d373d3d3d363d7360495260ff60005360b76055206035523060601b600152846015526055600020803b61018b578560b760556000f580610157576320188a596000526004601cfd5b80606c52508284887f79f19b3655ee38b1ce526556b7731a20c8f218fbda4a3990b6cc4172fdf887226060606ca46020606cf35b8060601b60601c60005260206000f35b80356001600160a01b03811681146101b257600080fd5b919050565b600080600080600060a086880312156101cf57600080fd5b6101d88661019b565b945060208601359350604086013592506101f46060870161019b565b94979396509194608001359291505056fea2646970667358221220ea2fe53af507453c64dd7c1db05549fa47a298dfb825d6d11e1689856135f16764736f6c63430008110033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106100365760003560e01c8063246a00211461003b5780638a54c52f1461006a575b600080fd5b61004e6100493660046101b7565b61007d565b6040516001600160a01b03909116815260200160405180910390f35b61004e6100783660046101b7565b6100e1565b600060806024608c376e5af43d82803e903d91602b57fd5bf3606c5285605d52733d60ad80600a3d3981f3363d3d373d3d3d363d7360495260ff60005360b76055206035523060601b60015284601552605560002060601b60601c60005260206000f35b600060806024608c376e5af43d82803e903d91602b57fd5bf3606c5285605d52733d60ad80600a3d3981f3363d3d373d3d3d363d7360495260ff60005360b76055206035523060601b600152846015526055600020803b61018b578560b760556000f580610157576320188a596000526004601cfd5b80606c52508284887f79f19b3655ee38b1ce526556b7731a20c8f218fbda4a3990b6cc4172fdf887226060606ca46020606cf35b8060601b60601c60005260206000f35b80356001600160a01b03811681146101b257600080fd5b919050565b600080600080600060a086880312156101cf57600080fd5b6101d88661019b565b945060208601359350604086013592506101f46060870161019b565b94979396509194608001359291505056fea2646970667358221220ea2fe53af507453c64dd7c1db05549fa47a298dfb825d6d11e1689856135f16764736f6c63430008110033

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.