POL Price: $0.619848 (-5.19%)
 

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Create Account654164012024-12-13 3:07:075 hrs ago1734059227IN
0x00000000...813775758
0 POL0.0042897544.9956648
Create Account654120002024-12-13 0:28:268 hrs ago1734049706IN
0x00000000...813775758
0 POL0.0031481833.02167438
Create Account654119532024-12-13 0:26:468 hrs ago1734049606IN
0x00000000...813775758
0 POL0.0031591533.13669701
Create Account653521262024-12-11 12:51:1643 hrs ago1733921476IN
0x00000000...813775758
0 POL0.0057926860.76011644
Create Account653521132024-12-11 12:50:5043 hrs ago1733921450IN
0x00000000...813775758
0 POL0.0053872856.50785724
Create Account653157282024-12-10 15:03:132 days ago1733842993IN
0x00000000...813775758
0 POL0.0072819676.38128916
Create Account652702222024-12-09 11:54:433 days ago1733745283IN
0x00000000...813775758
0 POL0.0055274357.97790436
Create Account651729452024-12-07 0:22:126 days ago1733530932IN
0x00000000...813775758
0 POL0.0031103532.62893335
Create Account627351042024-10-07 7:17:1867 days ago1728285438IN
0x00000000...813775758
0 POL0.0031007732.65584407
Create Account627348122024-10-07 7:06:5667 days ago1728284816IN
0x00000000...813775758
0 POL0.0030915632.55891732
Create Account627345132024-10-07 6:56:2267 days ago1728284182IN
0x00000000...813775758
0 POL0.002957331.14096466
Create Account590012222024-07-05 20:21:21160 days ago1720210881IN
0x00000000...813775758
0 POL0.0028876230.30000128
Create Account588191242024-07-01 7:08:02165 days ago1719817682IN
0x00000000...813775758
0 POL0.0028655130.17445046
Create Account577201602024-06-03 12:44:52192 days ago1717418692IN
0x00000000...813775758
0 POL0.0028489530.00000004
Create Account577198972024-06-03 12:34:58192 days ago1717418098IN
0x00000000...813775758
0 POL0.0028485930.00000002
Create Account562303532024-04-25 8:26:11232 days ago1714033571IN
0x00000000...813775758
0 POL0.01277473134.23207635
Create Account561303012024-04-22 16:36:45234 days ago1713803805IN
0x00000000...813775758
0 POL0.0058439161.56087289
Create Account561267412024-04-22 14:29:20234 days ago1713796160IN
0x00000000...813775758
0 POL0.01146137120.73630734
Create Account561263042024-04-22 14:13:20234 days ago1713795200IN
0x00000000...813775758
0 POL0.01103618116.25721312
Create Account561254722024-04-22 13:43:17234 days ago1713793397IN
0x00000000...813775758
0 POL0.01717961180.97333501
Create Account560966672024-04-21 20:13:01235 days ago1713730381IN
0x00000000...813775758
0 POL0.0035212137.0931942
Create Account560141752024-04-19 17:47:51237 days ago1713548871IN
0x00000000...813775758
0 POL0.01504834158.5221004
Create Account560134412024-04-19 17:19:45237 days ago1713547185IN
0x00000000...813775758
0 POL0.01258907132.6157091
Create Account560131332024-04-19 17:08:17237 days ago1713546497IN
0x00000000...813775758
0 POL0.01398759147.36660746
Create Account560116452024-04-19 16:13:16237 days ago1713543196IN
0x00000000...813775758
0 POL0.02178613229.49926446
View all transactions

Latest 25 internal transactions (View All)

Parent Transaction Hash Block From To
654199522024-12-13 5:12:533 hrs ago1734066773
0x00000000...813775758
 Contract Creation0 POL
654192362024-12-13 4:47:314 hrs ago1734065251
0x00000000...813775758
 Contract Creation0 POL
654170842024-12-13 3:31:175 hrs ago1734060677
0x00000000...813775758
 Contract Creation0 POL
654170792024-12-13 3:31:075 hrs ago1734060667
0x00000000...813775758
 Contract Creation0 POL
654164012024-12-13 3:07:075 hrs ago1734059227
0x00000000...813775758
 Contract Creation0 POL
654120002024-12-13 0:28:268 hrs ago1734049706
0x00000000...813775758
 Contract Creation0 POL
654119532024-12-13 0:26:468 hrs ago1734049606
0x00000000...813775758
 Contract Creation0 POL
654088652024-12-12 22:35:5010 hrs ago1734042950
0x00000000...813775758
 Contract Creation0 POL
654075732024-12-12 21:50:0211 hrs ago1734040202
0x00000000...813775758
 Contract Creation0 POL
654057752024-12-12 20:45:1612 hrs ago1734036316
0x00000000...813775758
 Contract Creation0 POL
654057232024-12-12 20:43:2512 hrs ago1734036205
0x00000000...813775758
 Contract Creation0 POL
654043602024-12-12 19:55:0512 hrs ago1734033305
0x00000000...813775758
 Contract Creation0 POL
654024442024-12-12 18:47:0414 hrs ago1734029224
0x00000000...813775758
 Contract Creation0 POL
654007692024-12-12 17:47:3815 hrs ago1734025658
0x00000000...813775758
 Contract Creation0 POL
653790252024-12-12 4:53:4627 hrs ago1733979226
0x00000000...813775758
 Contract Creation0 POL
653716312024-12-12 0:29:3132 hrs ago1733963371
0x00000000...813775758
 Contract Creation0 POL
653697072024-12-11 23:20:3333 hrs ago1733959233
0x00000000...813775758
 Contract Creation0 POL
653681682024-12-11 22:25:2934 hrs ago1733955929
0x00000000...813775758
 Contract Creation0 POL
653675392024-12-11 22:03:1234 hrs ago1733954592
0x00000000...813775758
 Contract Creation0 POL
653670372024-12-11 21:45:2135 hrs ago1733953521
0x00000000...813775758
 Contract Creation0 POL
653655282024-12-11 20:51:5435 hrs ago1733950314
0x00000000...813775758
 Contract Creation0 POL
653655252024-12-11 20:51:4835 hrs ago1733950308
0x00000000...813775758
 Contract Creation0 POL
653655222024-12-11 20:51:4235 hrs ago1733950302
0x00000000...813775758
 Contract Creation0 POL
653652242024-12-11 20:40:3636 hrs ago1733949636
0x00000000...813775758
 Contract Creation0 POL
653640332024-12-11 19:58:0236 hrs ago1733947082
0x00000000...813775758
 Contract Creation0 POL
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:
default 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 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
[ 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.