ETH Price: $3,952.08 (-0.20%)

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:59101 days ago1725332579IN
0x00000000...813775758
0 ETH0.000130591.375861
Create Account201741802024-06-26 6:49:59170 days ago1719384599IN
0x00000000...813775758
0 ETH0.000324013.41327261
Create Account197637522024-04-29 21:49:47227 days ago1714427387IN
0x00000000...813775758
0 ETH0.00063856.72446737
Create Account197533592024-04-28 10:55:59229 days ago1714301759IN
0x00000000...813775758
0 ETH0.000788148.30140064
Create Account197532712024-04-28 10:38:23229 days ago1714300703IN
0x00000000...813775758
0 ETH0.00017846.97349
Create Account197532432024-04-28 10:32:47229 days ago1714300367IN
0x00000000...813775758
0 ETH0.000179657.02260622
Create Account197531962024-04-28 10:23:23229 days ago1714299803IN
0x00000000...813775758
0 ETH0.000198457.75745961
Create Account197531752024-04-28 10:19:11229 days ago1714299551IN
0x00000000...813775758
0 ETH0.000920759.69576564
Create Account196353792024-04-11 22:32:59245 days ago1712874779IN
0x00000000...813775758
0 ETH0.0003624214.1798768
Create Account196353792024-04-11 22:32:59245 days ago1712874779IN
0x00000000...813775758
0 ETH0.0013462514.1798768
Create Account192426822024-02-16 19:58:23300 days ago1708113503IN
0x00000000...813775758
0 ETH0.0024661125.87062106
Create Account191601882024-02-05 6:07:23312 days ago1707113243IN
0x00000000...813775758
0 ETH0.0012476313.14283219
Create Account191599622024-02-05 5:21:35312 days ago1707110495IN
0x00000000...813775758
0 ETH0.0010662511.23068671
Create Account191437692024-02-02 22:45:23314 days ago1706913923IN
0x00000000...813775758
0 ETH0.0014895215.6908947
Create Account191433492024-02-02 21:20:11314 days ago1706908811IN
0x00000000...813775758
0 ETH0.0014591415.37091013
Create Account191147392024-01-29 21:03:47318 days ago1706562227IN
0x00000000...813775758
0 ETH0.0015919416.76985156
Create Account190451742024-01-20 2:45:47328 days ago1705718747IN
0x00000000...813775758
0 ETH0.001526716.01783588
Create Account184663082023-10-30 23:40:11409 days ago1698709211IN
0x00000000...813775758
0 ETH0.0021502122.64794195
Create Account184646052023-10-30 17:57:35409 days ago1698688655IN
0x00000000...813775758
0 ETH0.0032719834.46768678
Create Account184328002023-10-26 7:07:23414 days ago1698304043IN
0x00000000...813775758
0 ETH0.0013117713.8167441

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block
From
To
213936362024-12-13 12:37:352 hrs ago1734093455
0x00000000...813775758
 Contract Creation0 ETH
213931462024-12-13 10:59:234 hrs ago1734087563
0x00000000...813775758
 Contract Creation0 ETH
213901402024-12-13 0:54:5914 hrs ago1734051299
0x00000000...813775758
 Contract Creation0 ETH
213838162024-12-12 3:44:1135 hrs ago1733975051
0x00000000...813775758
 Contract Creation0 ETH
213631962024-12-09 6:37:354 days ago1733726255
0x00000000...813775758
 Contract Creation0 ETH
213550972024-12-08 3:30:355 days ago1733628635
0x00000000...813775758
 Contract Creation0 ETH
213532882024-12-07 21:27:235 days ago1733606843
0x00000000...813775758
 Contract Creation0 ETH
213513072024-12-07 14:47:596 days ago1733582879
0x00000000...813775758
 Contract Creation0 ETH
213510242024-12-07 13:50:596 days ago1733579459
0x00000000...813775758
 Contract Creation0 ETH
213509352024-12-07 13:32:476 days ago1733578367
0x00000000...813775758
 Contract Creation0 ETH
213495632024-12-07 8:56:116 days ago1733561771
0x00000000...813775758
 Contract Creation0 ETH
213490122024-12-07 7:05:356 days ago1733555135
0x00000000...813775758
 Contract Creation0 ETH
213474952024-12-07 2:00:596 days ago1733536859
0x00000000...813775758
 Contract Creation0 ETH
213470752024-12-07 0:36:116 days ago1733531771
0x00000000...813775758
 Contract Creation0 ETH
213457412024-12-06 20:07:236 days ago1733515643
0x00000000...813775758
 Contract Creation0 ETH
213411262024-12-06 4:39:597 days ago1733459999
0x00000000...813775758
 Contract Creation0 ETH
213379002024-12-05 17:51:237 days ago1733421083
0x00000000...813775758
 Contract Creation0 ETH
213188472024-12-03 1:58:4710 days ago1733191127
0x00000000...813775758
 Contract Creation0 ETH
213187782024-12-03 1:44:5910 days ago1733190299
0x00000000...813775758
 Contract Creation0 ETH
213018442024-11-30 17:00:1112 days ago1732986011
0x00000000...813775758
 Contract Creation0 ETH
213015362024-11-30 15:58:1112 days ago1732982291
0x00000000...813775758
 Contract Creation0 ETH
212781752024-11-27 9:24:2316 days ago1732699463
0x00000000...813775758
 Contract Creation0 ETH
212752302024-11-26 23:32:1116 days ago1732663931
0x00000000...813775758
 Contract Creation0 ETH
212641592024-11-25 10:24:4718 days ago1732530287
0x00000000...813775758
 Contract Creation0 ETH
212637042024-11-25 8:53:1118 days ago1732524791
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.