ETH Price: $3,251.49 (+3.50%)
Gas: 6 Gwei

Contract

0x99dCa73f6aFbe03C91Dad22a8144A2316531d256
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
0x60806040147501292022-05-10 18:34:33807 days ago1652207673IN
 Create: ShinySeeder
0 ETH0.0362134843

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
ShinySeeder

Compiler Version
v0.8.9+commit.e5eed63a

Optimization Enabled:
Yes with 10000 runs

Other Settings:
default evmVersion
File 1 of 3 : ShinySeeder.sol
// SPDX-License-Identifier: GPL-3.0

/// @title The ShinyToken pseudo-random seed generator

/*********************************
 * ・゚・゚✧.・・゚shiny.club・✫・゜・゚✧ *
 *********************************/

pragma solidity ^0.8.9;

import { IShinySeeder } from './interfaces/IShinySeeder.sol';
import { IShinyDescriptor } from './interfaces/IShinyDescriptor.sol';

contract ShinySeeder is IShinySeeder {
    /**
     * @notice Generate a pseudo-random Shiny seed using the previous blockhash and Shiny ID.
     */
    // prettier-ignore
    function generateSeedForMint(uint256 shinyId, IShinyDescriptor descriptor, bool isShiny) external view override returns (Seed memory) {
        uint256 pseudorandomness = uint256(
            keccak256(abi.encodePacked(blockhash(block.number - 1), shinyId))
        );

        uint256 backgroundCount = descriptor.backgroundCount();
        uint256 bodyCount = descriptor.bodyCount();
        uint256 accessoryCount = descriptor.accessoryCount();
        uint256 headCount = descriptor.headCount();
        uint256 eyesCount = descriptor.eyesCount();
        uint256 nosesCount = descriptor.nosesCount();
        uint256 mouthsCount = descriptor.mouthsCount();

        return Seed({
            background: uint16(
                uint16(pseudorandomness) % backgroundCount
            ),
            body: uint16(
                uint16(pseudorandomness >> 32) % bodyCount
            ),
            accessory: uint16(
                uint16(pseudorandomness >> 64) % accessoryCount
            ),
            head: uint16(
                uint16(pseudorandomness >> 96) % headCount
            ),
            eyes: uint16(
                uint16(pseudorandomness >> 128) % eyesCount
            ),
            nose: uint16(
                uint16(pseudorandomness >> 160) % nosesCount
            ),
            mouth: uint16(
                uint16(pseudorandomness >> 192) % mouthsCount
            ),
            shinyAccessory: isShiny ? uint16(1) : uint16(0)
        });
    }

        /**
     * @notice Generate a pseudo-random Shiny seed using the previous blockhash and Shiny ID.
     */
    // prettier-ignore
    function generateSeedWithValues(Seed memory newSeed,
                                    IShinyDescriptor descriptor,
                                    bool _isShiny) external view returns (Seed memory) {
        // Check that seedString values are valid
        require(newSeed.background <= descriptor.backgroundCount());
        require(newSeed.body <= descriptor.bodyCount());
        require(newSeed.accessory <= descriptor.accessoryCount());
        require(newSeed.head <= descriptor.headCount());
        require(newSeed.eyes <= descriptor.eyesCount());
        require(newSeed.nose <= descriptor.nosesCount());
        require(newSeed.mouth <= descriptor.mouthsCount());
        require(newSeed.shinyAccessory <= descriptor.shinyAccessoriesCount());
        // If not shiny, don't allow setting shinyAccessory
        if (!_isShiny) {
            require(newSeed.shinyAccessory == 0, 'Non-shiny is not allowed to change shinyAccessory');
        }

        return Seed({
            background: newSeed.background,
            body: newSeed.body,
            accessory: newSeed.accessory,
            head: newSeed.head,
            eyes: newSeed.eyes,
            nose: newSeed.nose,
            mouth: newSeed.mouth,
            shinyAccessory: newSeed.shinyAccessory
        });
    }
}

File 2 of 3 : IShinySeeder.sol
// SPDX-License-Identifier: GPL-3.0

/// @title Interface for ShinySeeder

/*********************************
 * ・゚・゚✧.・・゚shiny.club・✫・゜・゚✧ *
 *********************************/

pragma solidity ^0.8.9;

import { IShinyDescriptor } from './IShinyDescriptor.sol';

interface IShinySeeder {
    struct Seed {
        uint16 background;
        uint16 body;
        uint16 accessory;
        uint16 head;
        uint16 eyes;
        uint16 nose;
        uint16 mouth;
        uint16 shinyAccessory;
    }

    function generateSeedForMint(uint256 tokenId, IShinyDescriptor descriptor, bool isShiny) external view returns (Seed memory);

    function generateSeedWithValues(Seed memory newSeed,
                                    IShinyDescriptor descriptor,
                                    bool isShiny) external view returns (Seed memory);
}

File 3 of 3 : IShinyDescriptor.sol
// SPDX-License-Identifier: GPL-3.0

/// @title Interface for ShinyDescriptor

/*********************************
 * ・゚・゚✧.・・゚shiny.club・✫・゜・゚✧ *
 *********************************/

pragma solidity ^0.8.9;

import { IShinySeeder } from './IShinySeeder.sol';

interface IShinyDescriptor {
    event PartsLocked();

    function arePartsLocked() external returns (bool);

    function palettes(uint8 paletteIndex, uint256 colorIndex) external view returns (string memory);

    function backgrounds(uint256 index) external view returns (string memory);

    function bodies(uint256 index) external view returns (bytes memory);

    function accessories(uint256 index) external view returns (bytes memory);

    function heads(uint256 index) external view returns (bytes memory);

    function eyes(uint256 index) external view returns (bytes memory);

    function noses(uint256 index) external view returns (bytes memory);

    function mouths(uint256 index) external view returns (bytes memory);

    function shinyAccessories(uint256 index) external view returns (bytes memory);

    function backgroundCount() external view returns (uint256);

    function bodyCount() external view returns (uint256);

    function accessoryCount() external view returns (uint256);

    function headCount() external view returns (uint256);

    function eyesCount() external view returns (uint256);

    function nosesCount() external view returns (uint256);

    function mouthsCount() external view returns (uint256);

    function shinyAccessoriesCount() external view returns (uint256);

    function addManyColorsToPalette(uint8 paletteIndex, string[] calldata newColors) external;

    function addManyBackgrounds(string[] calldata backgrounds) external;

    function addManyBodies(bytes[] calldata bodies) external;

    function addManyAccessories(bytes[] calldata accessories) external;

    function addManyHeads(bytes[] calldata heads) external;

    function addManyEyes(bytes[] calldata eyes) external;

    function addManyNoses(bytes[] calldata noses) external;

    function addManyMouths(bytes[] calldata mouths) external;

    function addManyShinyAccessories(bytes[] calldata shinyAccessories) external;

    function addColorToPalette(uint8 paletteIndex, string calldata color) external;

    function addBackground(string calldata background) external;

    function addBody(bytes calldata body) external;

    function addAccessory(bytes calldata accessory) external;

    function addHead(bytes calldata head) external;

    function addEyes(bytes calldata eyes) external;

    function addNoses(bytes calldata noses) external;

    function addMouths(bytes calldata mouths) external;

    function lockParts() external;

    function tokenURI(uint256 tokenId, IShinySeeder.Seed memory seed, bool isShiny) external view returns (string memory);

    function dataURI(uint256 tokenId, IShinySeeder.Seed memory seed, bool isShiny) external view returns (string memory);

    function genericDataURI(
        string calldata name,
        string calldata description,
        IShinySeeder.Seed memory seed,
        bool isShiny
    ) external view returns (string memory);

    function generateSVGImage(IShinySeeder.Seed memory seed) external view returns (string memory);
}

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

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"uint256","name":"shinyId","type":"uint256"},{"internalType":"contract IShinyDescriptor","name":"descriptor","type":"address"},{"internalType":"bool","name":"isShiny","type":"bool"}],"name":"generateSeedForMint","outputs":[{"components":[{"internalType":"uint16","name":"background","type":"uint16"},{"internalType":"uint16","name":"body","type":"uint16"},{"internalType":"uint16","name":"accessory","type":"uint16"},{"internalType":"uint16","name":"head","type":"uint16"},{"internalType":"uint16","name":"eyes","type":"uint16"},{"internalType":"uint16","name":"nose","type":"uint16"},{"internalType":"uint16","name":"mouth","type":"uint16"},{"internalType":"uint16","name":"shinyAccessory","type":"uint16"}],"internalType":"struct IShinySeeder.Seed","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"uint16","name":"background","type":"uint16"},{"internalType":"uint16","name":"body","type":"uint16"},{"internalType":"uint16","name":"accessory","type":"uint16"},{"internalType":"uint16","name":"head","type":"uint16"},{"internalType":"uint16","name":"eyes","type":"uint16"},{"internalType":"uint16","name":"nose","type":"uint16"},{"internalType":"uint16","name":"mouth","type":"uint16"},{"internalType":"uint16","name":"shinyAccessory","type":"uint16"}],"internalType":"struct IShinySeeder.Seed","name":"newSeed","type":"tuple"},{"internalType":"contract IShinyDescriptor","name":"descriptor","type":"address"},{"internalType":"bool","name":"_isShiny","type":"bool"}],"name":"generateSeedWithValues","outputs":[{"components":[{"internalType":"uint16","name":"background","type":"uint16"},{"internalType":"uint16","name":"body","type":"uint16"},{"internalType":"uint16","name":"accessory","type":"uint16"},{"internalType":"uint16","name":"head","type":"uint16"},{"internalType":"uint16","name":"eyes","type":"uint16"},{"internalType":"uint16","name":"nose","type":"uint16"},{"internalType":"uint16","name":"mouth","type":"uint16"},{"internalType":"uint16","name":"shinyAccessory","type":"uint16"}],"internalType":"struct IShinySeeder.Seed","name":"","type":"tuple"}],"stateMutability":"view","type":"function"}]

608060405234801561001057600080fd5b50610e4d806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80633dfbf8871461003b578063801328cc14610064575b600080fd5b61004e610049366004610bb2565b610077565b60405161005b9190610cd1565b60405180910390f35b61004e610072366004610d52565b610667565b6040805161010081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101919091528273ffffffffffffffffffffffffffffffffffffffff16634531c0a86040518163ffffffff1660e01b815260040160206040518083038186803b1580156100fe57600080fd5b505afa158015610112573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101369190610d85565b845161ffff16111561014757600080fd5b8273ffffffffffffffffffffffffffffffffffffffff1663eba818066040518163ffffffff1660e01b815260040160206040518083038186803b15801561018d57600080fd5b505afa1580156101a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101c59190610d85565b846020015161ffff1611156101d957600080fd5b8273ffffffffffffffffffffffffffffffffffffffff16634daebac26040518163ffffffff1660e01b815260040160206040518083038186803b15801561021f57600080fd5b505afa158015610233573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102579190610d85565b846040015161ffff16111561026b57600080fd5b8273ffffffffffffffffffffffffffffffffffffffff1663cc2aa0916040518163ffffffff1660e01b815260040160206040518083038186803b1580156102b157600080fd5b505afa1580156102c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102e99190610d85565b846060015161ffff1611156102fd57600080fd5b8273ffffffffffffffffffffffffffffffffffffffff16638104468c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561034357600080fd5b505afa158015610357573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061037b9190610d85565b846080015161ffff16111561038f57600080fd5b8273ffffffffffffffffffffffffffffffffffffffff166367a14fb66040518163ffffffff1660e01b815260040160206040518083038186803b1580156103d557600080fd5b505afa1580156103e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061040d9190610d85565b8460a0015161ffff16111561042157600080fd5b8273ffffffffffffffffffffffffffffffffffffffff16630de518666040518163ffffffff1660e01b815260040160206040518083038186803b15801561046757600080fd5b505afa15801561047b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061049f9190610d85565b8460c0015161ffff1611156104b357600080fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a5ba4aa26040518163ffffffff1660e01b815260040160206040518083038186803b1580156104f957600080fd5b505afa15801561050d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105319190610d85565b8460e0015161ffff16111561054557600080fd5b816105e45760e084015161ffff16156105e4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603160248201527f4e6f6e2d7368696e79206973206e6f7420616c6c6f77656420746f206368616e60448201527f6765207368696e794163636573736f7279000000000000000000000000000000606482015260840160405180910390fd5b604051806101000160405280856000015161ffff168152602001856020015161ffff168152602001856040015161ffff168152602001856060015161ffff168152602001856080015161ffff1681526020018560a0015161ffff1681526020018560c0015161ffff1681526020018560e0015161ffff1681525090509392505050565b6040805161010081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052906106b3600143610d9e565b604080519140602083015281018690526060016040516020818303038152906040528051906020012060001c905060008473ffffffffffffffffffffffffffffffffffffffff16634531c0a86040518163ffffffff1660e01b815260040160206040518083038186803b15801561072957600080fd5b505afa15801561073d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107619190610d85565b905060008573ffffffffffffffffffffffffffffffffffffffff1663eba818066040518163ffffffff1660e01b815260040160206040518083038186803b1580156107ab57600080fd5b505afa1580156107bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107e39190610d85565b905060008673ffffffffffffffffffffffffffffffffffffffff16634daebac26040518163ffffffff1660e01b815260040160206040518083038186803b15801561082d57600080fd5b505afa158015610841573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108659190610d85565b905060008773ffffffffffffffffffffffffffffffffffffffff1663cc2aa0916040518163ffffffff1660e01b815260040160206040518083038186803b1580156108af57600080fd5b505afa1580156108c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108e79190610d85565b905060008873ffffffffffffffffffffffffffffffffffffffff16638104468c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561093157600080fd5b505afa158015610945573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109699190610d85565b905060008973ffffffffffffffffffffffffffffffffffffffff166367a14fb66040518163ffffffff1660e01b815260040160206040518083038186803b1580156109b357600080fd5b505afa1580156109c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109eb9190610d85565b905060008a73ffffffffffffffffffffffffffffffffffffffff16630de518666040518163ffffffff1660e01b815260040160206040518083038186803b158015610a3557600080fd5b505afa158015610a49573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a6d9190610d85565b9050604051806101000160405280888a61ffff16610a8b9190610ddc565b61ffff1681526020018760208b901c61ffff16610aa89190610ddc565b61ffff1681526020018660408b901c61ffff16610ac59190610ddc565b61ffff1681526020018560608b901c61ffff16610ae29190610ddc565b61ffff1681526020018460808b901c61ffff16610aff9190610ddc565b61ffff1681526020018360a08b901c61ffff16610b1c9190610ddc565b61ffff1681526020018260c08b901c61ffff16610b399190610ddc565b61ffff1681526020018b610b4e576000610b51565b60015b61ffff1690529c9b505050505050505050505050565b803561ffff81168114610b7957600080fd5b919050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610b7957600080fd5b80358015158114610b7957600080fd5b6000806000838503610140811215610bc957600080fd5b61010080821215610bd957600080fd5b604051915080820182811067ffffffffffffffff82111715610c24577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604052610c3086610b67565b8252610c3e60208701610b67565b6020830152610c4f60408701610b67565b6040830152610c6060608701610b67565b6060830152610c7160808701610b67565b6080830152610c8260a08701610b67565b60a0830152610c9360c08701610b67565b60c0830152610ca460e08701610b67565b60e0830152819450610cb7818701610b7e565b93505050610cc86101208501610ba2565b90509250925092565b60006101008201905061ffff8084511683528060208501511660208401528060408501511660408401528060608501511660608401528060808501511660808401528060a08501511660a08401525060c0830151610d3560c084018261ffff169052565b5060e0830151610d4b60e084018261ffff169052565b5092915050565b600080600060608486031215610d6757600080fd5b83359250610d7760208501610b7e565b9150610cc860408501610ba2565b600060208284031215610d9757600080fd5b5051919050565b600082821015610dd7577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b500390565b600082610e12577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b50069056fea264697066735822122091de2f6a152a273547096d35a5cc63412980d580dc59bf569aaa495addc5fe1264736f6c63430008090033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106100365760003560e01c80633dfbf8871461003b578063801328cc14610064575b600080fd5b61004e610049366004610bb2565b610077565b60405161005b9190610cd1565b60405180910390f35b61004e610072366004610d52565b610667565b6040805161010081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101919091528273ffffffffffffffffffffffffffffffffffffffff16634531c0a86040518163ffffffff1660e01b815260040160206040518083038186803b1580156100fe57600080fd5b505afa158015610112573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101369190610d85565b845161ffff16111561014757600080fd5b8273ffffffffffffffffffffffffffffffffffffffff1663eba818066040518163ffffffff1660e01b815260040160206040518083038186803b15801561018d57600080fd5b505afa1580156101a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101c59190610d85565b846020015161ffff1611156101d957600080fd5b8273ffffffffffffffffffffffffffffffffffffffff16634daebac26040518163ffffffff1660e01b815260040160206040518083038186803b15801561021f57600080fd5b505afa158015610233573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102579190610d85565b846040015161ffff16111561026b57600080fd5b8273ffffffffffffffffffffffffffffffffffffffff1663cc2aa0916040518163ffffffff1660e01b815260040160206040518083038186803b1580156102b157600080fd5b505afa1580156102c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102e99190610d85565b846060015161ffff1611156102fd57600080fd5b8273ffffffffffffffffffffffffffffffffffffffff16638104468c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561034357600080fd5b505afa158015610357573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061037b9190610d85565b846080015161ffff16111561038f57600080fd5b8273ffffffffffffffffffffffffffffffffffffffff166367a14fb66040518163ffffffff1660e01b815260040160206040518083038186803b1580156103d557600080fd5b505afa1580156103e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061040d9190610d85565b8460a0015161ffff16111561042157600080fd5b8273ffffffffffffffffffffffffffffffffffffffff16630de518666040518163ffffffff1660e01b815260040160206040518083038186803b15801561046757600080fd5b505afa15801561047b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061049f9190610d85565b8460c0015161ffff1611156104b357600080fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a5ba4aa26040518163ffffffff1660e01b815260040160206040518083038186803b1580156104f957600080fd5b505afa15801561050d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105319190610d85565b8460e0015161ffff16111561054557600080fd5b816105e45760e084015161ffff16156105e4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603160248201527f4e6f6e2d7368696e79206973206e6f7420616c6c6f77656420746f206368616e60448201527f6765207368696e794163636573736f7279000000000000000000000000000000606482015260840160405180910390fd5b604051806101000160405280856000015161ffff168152602001856020015161ffff168152602001856040015161ffff168152602001856060015161ffff168152602001856080015161ffff1681526020018560a0015161ffff1681526020018560c0015161ffff1681526020018560e0015161ffff1681525090509392505050565b6040805161010081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052906106b3600143610d9e565b604080519140602083015281018690526060016040516020818303038152906040528051906020012060001c905060008473ffffffffffffffffffffffffffffffffffffffff16634531c0a86040518163ffffffff1660e01b815260040160206040518083038186803b15801561072957600080fd5b505afa15801561073d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107619190610d85565b905060008573ffffffffffffffffffffffffffffffffffffffff1663eba818066040518163ffffffff1660e01b815260040160206040518083038186803b1580156107ab57600080fd5b505afa1580156107bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107e39190610d85565b905060008673ffffffffffffffffffffffffffffffffffffffff16634daebac26040518163ffffffff1660e01b815260040160206040518083038186803b15801561082d57600080fd5b505afa158015610841573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108659190610d85565b905060008773ffffffffffffffffffffffffffffffffffffffff1663cc2aa0916040518163ffffffff1660e01b815260040160206040518083038186803b1580156108af57600080fd5b505afa1580156108c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108e79190610d85565b905060008873ffffffffffffffffffffffffffffffffffffffff16638104468c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561093157600080fd5b505afa158015610945573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109699190610d85565b905060008973ffffffffffffffffffffffffffffffffffffffff166367a14fb66040518163ffffffff1660e01b815260040160206040518083038186803b1580156109b357600080fd5b505afa1580156109c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109eb9190610d85565b905060008a73ffffffffffffffffffffffffffffffffffffffff16630de518666040518163ffffffff1660e01b815260040160206040518083038186803b158015610a3557600080fd5b505afa158015610a49573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a6d9190610d85565b9050604051806101000160405280888a61ffff16610a8b9190610ddc565b61ffff1681526020018760208b901c61ffff16610aa89190610ddc565b61ffff1681526020018660408b901c61ffff16610ac59190610ddc565b61ffff1681526020018560608b901c61ffff16610ae29190610ddc565b61ffff1681526020018460808b901c61ffff16610aff9190610ddc565b61ffff1681526020018360a08b901c61ffff16610b1c9190610ddc565b61ffff1681526020018260c08b901c61ffff16610b399190610ddc565b61ffff1681526020018b610b4e576000610b51565b60015b61ffff1690529c9b505050505050505050505050565b803561ffff81168114610b7957600080fd5b919050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610b7957600080fd5b80358015158114610b7957600080fd5b6000806000838503610140811215610bc957600080fd5b61010080821215610bd957600080fd5b604051915080820182811067ffffffffffffffff82111715610c24577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604052610c3086610b67565b8252610c3e60208701610b67565b6020830152610c4f60408701610b67565b6040830152610c6060608701610b67565b6060830152610c7160808701610b67565b6080830152610c8260a08701610b67565b60a0830152610c9360c08701610b67565b60c0830152610ca460e08701610b67565b60e0830152819450610cb7818701610b7e565b93505050610cc86101208501610ba2565b90509250925092565b60006101008201905061ffff8084511683528060208501511660208401528060408501511660408401528060608501511660608401528060808501511660808401528060a08501511660a08401525060c0830151610d3560c084018261ffff169052565b5060e0830151610d4b60e084018261ffff169052565b5092915050565b600080600060608486031215610d6757600080fd5b83359250610d7760208501610b7e565b9150610cc860408501610ba2565b600060208284031215610d9757600080fd5b5051919050565b600082821015610dd7577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b500390565b600082610e12577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b50069056fea264697066735822122091de2f6a152a273547096d35a5cc63412980d580dc59bf569aaa495addc5fe1264736f6c63430008090033

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  ]

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.