ETH Price: $2,869.57 (-2.44%)

Contract

0xf3A431008396df8A8b2DF492C913706BDB0874ef

Overview

ETH Balance

Taiko Alethia LogoTaiko Alethia LogoTaiko Alethia Logo0 ETH

ETH Value

$0.00

Token Holdings

More Info

Private Name Tags

Transaction Hash
Block
From
To
Mint37642212025-12-24 15:29:1332 days ago1766590153IN
Curve: Child Gauge Factory
0 ETH0.000005070.03063
Mint37642172025-12-24 15:28:4132 days ago1766590121IN
Curve: Child Gauge Factory
0 ETH0.000005590.03063
Mint33769722025-11-24 14:54:1662 days ago1763996056IN
Curve: Child Gauge Factory
0 ETH0.000005350.0251
Mint31638182025-11-08 14:24:3578 days ago1762611875IN
Curve: Child Gauge Factory
0 ETH0.000005560.03
Mint31274002025-11-05 19:15:1981 days ago1762370119IN
Curve: Child Gauge Factory
0 ETH0.000003190.025
Mint30882262025-11-02 19:15:4984 days ago1762110949IN
Curve: Child Gauge Factory
0 ETH0.000003190.025
Mint30860762025-11-02 15:15:0184 days ago1762096501IN
Curve: Child Gauge Factory
0 ETH0.000169711.025
Mint30860532025-11-02 15:12:0384 days ago1762096323IN
Curve: Child Gauge Factory
0 ETH0.000213221.025
Mint30391472025-10-29 19:15:5888 days ago1761765358IN
Curve: Child Gauge Factory
0 ETH0.000003190.025
Mint30092842025-10-27 8:43:4590 days ago1761554625IN
Curve: Child Gauge Factory
0 ETH0.000022830.125
Mint30018202025-10-26 19:15:5591 days ago1761506155IN
Curve: Child Gauge Factory
0 ETH0.000003250.025
Mint30017012025-10-26 19:04:2791 days ago1761505467IN
Curve: Child Gauge Factory
0 ETH0.000006290.03063
Mint29720112025-10-24 13:21:2593 days ago1761312085IN
Curve: Child Gauge Factory
0 ETH0.000004620.027
Mint29719022025-10-24 13:11:1093 days ago1761311470IN
Curve: Child Gauge Factory
0 ETH0.000004620.027
Mint29675962025-10-24 5:24:4993 days ago1761283489IN
Curve: Child Gauge Factory
0 ETH0.000004680.02734
Mint29643762025-10-23 23:18:2394 days ago1761261503IN
Curve: Child Gauge Factory
0 ETH0.000004540.03063
Mint29619812025-10-23 18:35:3394 days ago1761244533IN
Curve: Child Gauge Factory
0 ETH0.000004550.03066
Mint29586652025-10-23 12:28:1794 days ago1761222497IN
Curve: Child Gauge Factory
0 ETH0.000004520.02735
Mint29570382025-10-23 9:40:1394 days ago1761212413IN
Curve: Child Gauge Factory
0 ETH0.000018550.125
Mint29490432025-10-22 19:18:3595 days ago1761160715IN
Curve: Child Gauge Factory
0 ETH0.000004620.027
Mint29490232025-10-22 19:15:5795 days ago1761160557IN
Curve: Child Gauge Factory
0 ETH0.000003190.025
Mint29364422025-10-21 18:00:1796 days ago1761069617IN
Curve: Child Gauge Factory
0 ETH0.000004710.03063
Mint29355712025-10-21 16:10:4596 days ago1761063045IN
Curve: Child Gauge Factory
0 ETH0.0000040.027
Mint29273432025-10-20 23:05:2097 days ago1761001520IN
Curve: Child Gauge Factory
0 ETH0.000005150.03063
Mint29226372025-10-20 13:00:4797 days ago1760965247IN
Curve: Child Gauge Factory
0 ETH0.000004680.02734
View all transactions

Latest 11 internal transactions

Advanced mode:
Parent Transaction Hash Block From To
12127472025-06-18 4:28:47222 days ago1750220927
Curve: Child Gauge Factory
 Contract Creation0 ETH
12127352025-06-18 4:22:35222 days ago1750220555
Curve: Child Gauge Factory
 Contract Creation0 ETH
10025482025-03-22 23:33:11309 days ago1742686391
Curve: Child Gauge Factory
 Contract Creation0 ETH
6863622024-12-17 15:21:11404 days ago1734448871
Curve: Child Gauge Factory
 Contract Creation0 ETH
6863582024-12-17 15:18:11404 days ago1734448691
Curve: Child Gauge Factory
 Contract Creation0 ETH
6863552024-12-17 15:15:35404 days ago1734448535
Curve: Child Gauge Factory
 Contract Creation0 ETH
6863522024-12-17 15:13:35404 days ago1734448415
Curve: Child Gauge Factory
 Contract Creation0 ETH
6863492024-12-17 15:11:35404 days ago1734448295
Curve: Child Gauge Factory
 Contract Creation0 ETH
6863452024-12-17 15:09:11404 days ago1734448151
Curve: Child Gauge Factory
 Contract Creation0 ETH
6863382024-12-17 15:05:59404 days ago1734447959
Curve: Child Gauge Factory
 Contract Creation0 ETH
6313872024-12-02 10:12:47419 days ago1733134367
Curve: Child Gauge Factory
 Contract Creation0 ETH
Cross-Chain Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
CurveXChainLiquidityGaugeFactory

Compiler Version
vyper:0.3.10

Optimization Enabled:
N/A

Other Settings:
default evmVersion, None license

Contract Source Code (Vyper language format)

# pragma version 0.3.10
# pragma evm-version paris
"""
@title CurveXChainLiquidityGaugeFactory
@custom:version 2.0.1
@author Curve.Fi
@license Copyright (c) Curve.Fi, 2020-2024 - all rights reserved
@notice Layer2/Cross-Chain Gauge Factory for Curve
"""

version: public(constant(String[8])) = "2.0.1"


from vyper.interfaces import ERC20

interface ChildGauge:
    def initialize(_lp_token: address, _root: address, _manager: address): nonpayable
    def integrate_fraction(_user: address) -> uint256: view
    def user_checkpoint(_user: address) -> bool: nonpayable

interface CallProxy:
    def anyCall(
        _to: address, _data: Bytes[1024], _fallback: address, _to_chain_id: uint256
    ): nonpayable


event DeployedGauge:
    _implementation: indexed(address)
    _lp_token: indexed(address)
    _deployer: indexed(address)
    _salt: bytes32
    _gauge: address

event Minted:
    _user: indexed(address)
    _gauge: indexed(address)
    _new_total: uint256

event UpdateImplementation:
    _old_implementation: address
    _new_implementation: address

event UpdateVotingEscrow:
    _old_voting_escrow: address
    _new_voting_escrow: address

event UpdateRoot:
    _factory: address
    _implementation: address

event UpdateManager:
    _manager: address

event UpdateCallProxy:
    _old_call_proxy: address
    _new_call_proxy: address

event UpdateMirrored:
    _gauge: indexed(address)
    _mirrored: bool

event TransferOwnership:
    _old_owner: address
    _new_owner: address


WEEK: constant(uint256) = 86400 * 7


crv: public(ERC20)


get_implementation: public(address)
voting_escrow: public(address)

owner: public(address)
future_owner: public(address)
manager: public(address)

root_factory: public(address)
root_implementation: public(address)
call_proxy: public(address)
# [last_request][has_counterpart][is_valid_gauge]
gauge_data: public(HashMap[address, uint256])
# user -> gauge -> value
minted: public(HashMap[address, HashMap[address, uint256]])

get_gauge_from_lp_token: public(HashMap[address, address])
get_gauge_count: public(uint256)
get_gauge: public(address[max_value(int128)])

deployer: immutable(address)


@external
def __init__(_root_factory: address, _root_impl: address, _crv: address):
    """
    @param _root_factory Root factory to anchor to
    @param _root_impl Address of root gauge implementation to calculate mirror (can be updated)
    @param _crv Bridged CRV token address (might be zero if not known yet)
    """
    self.crv = ERC20(_crv)

    assert _root_factory != empty(address)
    assert _root_impl != empty(address)
    self.root_factory = _root_factory
    self.root_implementation = _root_impl
    log UpdateRoot(_root_factory, _root_impl)

    self.owner = msg.sender
    log TransferOwnership(empty(address), msg.sender)

    self.manager = msg.sender
    log UpdateManager(msg.sender)

    deployer = msg.sender


@external
def set_owner(_owner: address):

    assert msg.sender == deployer
    assert self.owner == deployer
    assert _owner != deployer

    log TransferOwnership(self.owner, _owner)
    self.owner = _owner


@internal
def _psuedo_mint(_gauge: address, _user: address):
    gauge_data: uint256 = self.gauge_data[_gauge]
    assert gauge_data != 0  # dev: invalid gauge

    # if is_mirrored and last_request != this week
    if gauge_data & 2 != 0 and (gauge_data >> 2) / WEEK != block.timestamp / WEEK:
        CallProxy(self.call_proxy).anyCall(
            self,
            _abi_encode(_gauge, method_id=method_id("transmit_emissions(address)")),
            empty(address),
            1,
        )
        # update last request time
        self.gauge_data[_gauge] = block.timestamp << 2 + 3

    assert ChildGauge(_gauge).user_checkpoint(_user)
    total_mint: uint256 = ChildGauge(_gauge).integrate_fraction(_user)
    to_mint: uint256 = total_mint - self.minted[_user][_gauge]

    if to_mint != 0 and self.crv != empty(ERC20):
        assert self.crv.transfer(_user, to_mint, default_return_value=True)
        self.minted[_user][_gauge] = total_mint

        log Minted(_user, _gauge, total_mint)


@external
@nonreentrant("lock")
def mint(_gauge: address):
    """
    @notice Mint everything which belongs to `msg.sender` and send to them
    @param _gauge `LiquidityGauge` address to get mintable amount from
    """
    self._psuedo_mint(_gauge, msg.sender)


@external
@nonreentrant("lock")
def mint_many(_gauges: address[32]):
    """
    @notice Mint everything which belongs to `msg.sender` across multiple gauges
    @param _gauges List of `LiquidityGauge` addresses
    """
    for i in range(32):
        if _gauges[i] == empty(address):
            pass
        self._psuedo_mint(_gauges[i], msg.sender)


@external
def deploy_gauge(_lp_token: address, _salt: bytes32, _manager: address = msg.sender) -> address:
    """
    @notice Deploy a liquidity gauge
    @param _lp_token The token to deposit in the gauge
    @param _salt A value to deterministically deploy a gauge
    @param _manager The address to set as manager of the gauge
    """
    if self.get_gauge_from_lp_token[_lp_token] != empty(address):
        # overwriting lp_token -> gauge mapping requires
        assert msg.sender == self.owner  # dev: only owner

    gauge_data: uint256 = 1  # set is_valid_gauge = True
    implementation: address = self.get_implementation
    salt: bytes32 = keccak256(_abi_encode(chain.id, _salt))
    gauge: address = create_minimal_proxy_to(
        implementation, salt=salt
    )

    if msg.sender == self.call_proxy:
        gauge_data += 2  # set mirrored = True
        log UpdateMirrored(gauge, True)
        # issue a call to the root chain to deploy a root gauge
        CallProxy(self.call_proxy).anyCall(
            self,
            _abi_encode(chain.id, _salt, method_id=method_id("deploy_gauge(uint256,bytes32)")),
            empty(address),
            1
        )

    self.gauge_data[gauge] = gauge_data

    idx: uint256 = self.get_gauge_count
    self.get_gauge[idx] = gauge
    self.get_gauge_count = idx + 1
    self.get_gauge_from_lp_token[_lp_token] = gauge

    # derive root gauge address
    gauge_codehash: bytes32 = keccak256(
        concat(
            0x602d3d8160093d39f3363d3d373d3d3d363d73,
            convert(self.root_implementation, bytes20),
            0x5af43d82803e903d91602b57fd5bf3,
        )
    )
    digest: bytes32 = keccak256(concat(0xFF, convert(self.root_factory, bytes20), salt, gauge_codehash))
    root: address = convert(convert(digest, uint256) & convert(max_value(uint160), uint256), address)

    # If root is uninitialized, self.owner can always set the root gauge manually
    # on the gauge contract itself via set_root_gauge method
    ChildGauge(gauge).initialize(_lp_token, root, _manager)

    log DeployedGauge(implementation, _lp_token, msg.sender, _salt, gauge)
    return gauge


@external
def set_crv(_crv: ERC20):
    """
    @notice Sets CRV token address
    @dev Child gauges reference the factory to fetch CRV address
         If empty, the gauges do not mint any CRV tokens.
    @param _crv address of CRV token on child chain
    """
    assert msg.sender == self.owner
    assert _crv != empty(ERC20)
    assert self.crv == empty(ERC20), "CRV already set"

    self.crv = _crv


@external
def set_root(_factory: address, _implementation: address):
    """
    @notice Update root addresses
    @dev Addresses are used only as helper methods
    @param _factory Root gauge factory
    @param _implementation Root gauge
    """
    assert msg.sender in [self.owner, self.manager]  # dev: access denied

    self.root_factory = _factory
    self.root_implementation = _implementation
    log UpdateRoot(_factory, _implementation)


@external
def set_voting_escrow(_voting_escrow: address):
    """
    @notice Update the voting escrow contract
    @param _voting_escrow Contract to use as the voting escrow oracle
    """
    assert msg.sender == self.owner  # dev: only owner

    log UpdateVotingEscrow(self.voting_escrow, _voting_escrow)
    self.voting_escrow = _voting_escrow


@external
def set_implementation(_implementation: address):
    """
    @notice Set the implementation
    @param _implementation The address of the implementation to use
    """
    assert msg.sender == self.owner  # dev: only owner

    log UpdateImplementation(self.get_implementation, _implementation)
    self.get_implementation = _implementation


@external
def set_mirrored(_gauge: address, _mirrored: bool):
    """
    @notice Set the mirrored bit of the gauge data for `_gauge`
    @param _gauge The gauge of interest
    @param _mirrored Boolean deteremining whether to set the mirrored bit to True/False
    """
    gauge_data: uint256 = self.gauge_data[_gauge]
    assert gauge_data != 0  # dev: invalid gauge
    assert msg.sender == self.owner  # dev: only owner

    gauge_data = gauge_data | 1  # set is_valid_gauge = True
    if _mirrored:
        gauge_data += 2  # set is_mirrored = True

    self.gauge_data[_gauge] = gauge_data
    log UpdateMirrored(_gauge, _mirrored)


@external
def set_call_proxy(_new_call_proxy: address):
    """
    @notice Set the address of the call proxy used
    @dev _new_call_proxy should adhere to the same interface as defined
    @param _new_call_proxy Address of the cross chain call proxy
    """
    assert msg.sender == self.owner

    log UpdateCallProxy(self.call_proxy, _new_call_proxy)
    self.call_proxy = _new_call_proxy


@external
def set_manager(_new_manager: address):
    assert msg.sender in [self.owner, self.manager]  # dev: access denied

    self.manager = _new_manager
    log UpdateManager(_new_manager)


@external
def commit_transfer_ownership(_future_owner: address):
    """
    @notice Transfer ownership to `_future_owner`
    @param _future_owner The account to commit as the future owner
    """
    assert msg.sender == self.owner  # dev: only owner

    self.future_owner = _future_owner


@external
def accept_transfer_ownership():
    """
    @notice Accept the transfer of ownership
    @dev Only the committed future owner can call this function
    """
    assert msg.sender == self.future_owner  # dev: only future owner

    log TransferOwnership(self.owner, msg.sender)
    self.owner = msg.sender


@view
@external
def is_valid_gauge(_gauge: address) -> bool:
    """
    @notice Query whether the gauge is a valid one deployed via the factory
    @param _gauge The address of the gauge of interest
    """
    return self.gauge_data[_gauge] != 0


@view
@external
def is_mirrored(_gauge: address) -> bool:
    """
    @notice Query whether the gauge is mirrored on Ethereum mainnet
    @param _gauge The address of the gauge of interest
    """
    return (self.gauge_data[_gauge] & 2) != 0


@view
@external
def last_request(_gauge: address) -> uint256:
    """
    @notice Query the timestamp of the last cross chain request for emissions
    @param _gauge The address of the gauge of interest
    """
    return self.gauge_data[_gauge] >> 2

Contract Security Audit

Contract ABI

API
[{"name":"DeployedGauge","inputs":[{"name":"_implementation","type":"address","indexed":true},{"name":"_lp_token","type":"address","indexed":true},{"name":"_deployer","type":"address","indexed":true},{"name":"_salt","type":"bytes32","indexed":false},{"name":"_gauge","type":"address","indexed":false}],"anonymous":false,"type":"event"},{"name":"Minted","inputs":[{"name":"_user","type":"address","indexed":true},{"name":"_gauge","type":"address","indexed":true},{"name":"_new_total","type":"uint256","indexed":false}],"anonymous":false,"type":"event"},{"name":"UpdateImplementation","inputs":[{"name":"_old_implementation","type":"address","indexed":false},{"name":"_new_implementation","type":"address","indexed":false}],"anonymous":false,"type":"event"},{"name":"UpdateVotingEscrow","inputs":[{"name":"_old_voting_escrow","type":"address","indexed":false},{"name":"_new_voting_escrow","type":"address","indexed":false}],"anonymous":false,"type":"event"},{"name":"UpdateRoot","inputs":[{"name":"_factory","type":"address","indexed":false},{"name":"_implementation","type":"address","indexed":false}],"anonymous":false,"type":"event"},{"name":"UpdateManager","inputs":[{"name":"_manager","type":"address","indexed":false}],"anonymous":false,"type":"event"},{"name":"UpdateCallProxy","inputs":[{"name":"_old_call_proxy","type":"address","indexed":false},{"name":"_new_call_proxy","type":"address","indexed":false}],"anonymous":false,"type":"event"},{"name":"UpdateMirrored","inputs":[{"name":"_gauge","type":"address","indexed":true},{"name":"_mirrored","type":"bool","indexed":false}],"anonymous":false,"type":"event"},{"name":"TransferOwnership","inputs":[{"name":"_old_owner","type":"address","indexed":false},{"name":"_new_owner","type":"address","indexed":false}],"anonymous":false,"type":"event"},{"stateMutability":"nonpayable","type":"constructor","inputs":[{"name":"_root_factory","type":"address"},{"name":"_root_impl","type":"address"},{"name":"_crv","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"set_owner","inputs":[{"name":"_owner","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"mint","inputs":[{"name":"_gauge","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"mint_many","inputs":[{"name":"_gauges","type":"address[32]"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"deploy_gauge","inputs":[{"name":"_lp_token","type":"address"},{"name":"_salt","type":"bytes32"}],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"nonpayable","type":"function","name":"deploy_gauge","inputs":[{"name":"_lp_token","type":"address"},{"name":"_salt","type":"bytes32"},{"name":"_manager","type":"address"}],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"nonpayable","type":"function","name":"set_crv","inputs":[{"name":"_crv","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"set_root","inputs":[{"name":"_factory","type":"address"},{"name":"_implementation","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"set_voting_escrow","inputs":[{"name":"_voting_escrow","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"set_implementation","inputs":[{"name":"_implementation","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"set_mirrored","inputs":[{"name":"_gauge","type":"address"},{"name":"_mirrored","type":"bool"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"set_call_proxy","inputs":[{"name":"_new_call_proxy","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"set_manager","inputs":[{"name":"_new_manager","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"commit_transfer_ownership","inputs":[{"name":"_future_owner","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"accept_transfer_ownership","inputs":[],"outputs":[]},{"stateMutability":"view","type":"function","name":"is_valid_gauge","inputs":[{"name":"_gauge","type":"address"}],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"view","type":"function","name":"is_mirrored","inputs":[{"name":"_gauge","type":"address"}],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"view","type":"function","name":"last_request","inputs":[{"name":"_gauge","type":"address"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"string"}]},{"stateMutability":"view","type":"function","name":"crv","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"get_implementation","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"voting_escrow","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"future_owner","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"manager","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"root_factory","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"root_implementation","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"call_proxy","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"gauge_data","inputs":[{"name":"arg0","type":"address"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"minted","inputs":[{"name":"arg0","type":"address"},{"name":"arg1","type":"address"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"get_gauge_from_lp_token","inputs":[{"name":"arg0","type":"address"}],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"get_gauge_count","inputs":[],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"get_gauge","inputs":[{"name":"arg0","type":"uint256"}],"outputs":[{"name":"","type":"address"}]}]

6112475150346101175760206113796000396000518060a01c6101175760405260206113996000396000518060a01c6101175760605260206113b96000396000518060a01c61011757608052608051600155604051156101175760605115610117576040516007556060516008557f70f9501abbdc1e859ff8c1a6d83d3cb1ba973674e97c3e3c2292540d6e40dcfe60405160a05260605160c052604060a0a1336004557f5c486528ec3e3f0ea91181cff8116f02bfa350e03b8b6f12e00765adbb5af85c600060a0523360c052604060a0a1336006557f5c18ab5c697b63d102fc7e14c77bfaef0f1013206eca139920fd389277814e093360a052602060a0a1336112475261124761011c61000039611267610000f35b600080fd60003560e01c6002601d820660011b61120d01601e39600051565b6354fd4d50811861009957346112085760208060805260056040527f322e302e3100000000000000000000000000000000000000000000000000000060605260408160800181518152602082015160208201528051806020830101601f82600003163682375050601f19601f8251602001011690509050810190506080f35b631ec0cdc181186100b557346112085760055460405260206040f35b6366e1de658118610f5f57604436103417611208576004358060a01c611208576040526024358060a01c611208576060523360045481186100f75760016100fe565b6006548118155b905015611208576040516007556060516008557f70f9501abbdc1e859ff8c1a6d83d3cb1ba973674e97c3e3c2292540d6e40dcfe60405160805260605160a05260406080a100610f5f565b636a4874a18118610f5f57346112085760015460405260206040f3610f5f565b63c781c6688118610f5f57346112085760025460405260206040f3610f5f565b63dfe0503181186101a557346112085760035460405260206040f35b639aece83e8118610f5f57602436103417611208576004358060a01c611208576040523360045481186101d95760016101e0565b6006548118155b905015611208576040516006557f5c18ab5c697b63d102fc7e14c77bfaef0f1013206eca139920fd389277814e0960405160605260206060a100610f5f565b638da5cb5b811861023b57346112085760045460405260206040f35b63285218488118610f5f57602436103417611208576004356f7ffffffffffffffffffffffffffffffe811161120857600e015460405260206040f3610f5f565b63481c6a758118610f5f57346112085760065460405260206040f3610f5f565b633043228d8118610f5f57346112085760075460405260206040f3610f5f565b637de035c18118610f5f57346112085760085460405260206040f3610f5f565b63f81c6c3e81186102f757346112085760095460405260206040f35b635d95c65e8118610f5f57602436103417611208576004358060a01c61120857604052600c60405160205260005260406000205460605260206060f3610f5f565b63f0ce32f8811861037557602436103417611208576004358060a01c61120857604052600a60405160205260005260406000205460605260206060f35b632d4841218118610f5f57602436103417611208576004358060a01c6112085760405260045433186112085760405115611208576001541561040e57600f6060527f43525620616c726561647920736574000000000000000000000000000000000060805260605060605180608001601f826000031636823750506308c379a06020526020604052601f19601f6060510116604401603cfd5b60405160015500610f5f565b638b752bb08118610f5f57604436103417611208576004358060a01c611208576040526024358060a01c61120857606052600b604051602052600052604060002080606051602052600052604060002090505460805260206080f3610f5f565b63f111569c8118610f5f573461120857600d5460405260206040f3610f5f565b637cb97b2b811861052e57602436103417611208576004358060a01c61120857604052602061124760003960005133186112085760206112476000396000516004541861120857602061124760003960005160405114611208577f5c486528ec3e3f0ea91181cff8116f02bfa350e03b8b6f12e00765adbb5af85c60045460605260405160805260406060a1604051600455005b635ecb9e148118610f5f57602436103417611208576004358060a01c611208576040526004543318611208577fe385116766307e81d4427b03f1ac50c300b2f6a5df7b3c67eeb7eaaab12f080560095460605260405160805260406060a160405160095500610f5f565b636a6278428118610f5f57602436103417611208576004358060a01c611208576102005260005460021461120857600260005561020051604052336060526105de610f65565b600360005500610f5f565b6355ec67088118610f5f5761040436103417611208576004358060a01c61120857610200526024358060a01c61120857610220526044358060a01c61120857610240526064358060a01c61120857610260526084358060a01c611208576102805260a4358060a01c611208576102a05260c4358060a01c611208576102c05260e4358060a01c611208576102e052610104358060a01c6112085761030052610124358060a01c6112085761032052610144358060a01c6112085761034052610164358060a01c6112085761036052610184358060a01c61120857610380526101a4358060a01c611208576103a0526101c4358060a01c611208576103c0526101e4358060a01c611208576103e052610204358060a01c6112085761040052610224358060a01c6112085761042052610244358060a01c6112085761044052610264358060a01c6112085761046052610284358060a01c61120857610480526102a4358060a01c611208576104a0526102c4358060a01c611208576104c0526102e4358060a01c611208576104e052610304358060a01c6112085761050052610324358060a01c6112085761052052610344358060a01c6112085761054052610364358060a01c6112085761056052610384358060a01c61120857610580526103a4358060a01c611208576105a0526103c4358060a01c611208576105c0526103e4358060a01c611208576105e05260005460021461120857600260005560006020905b806106005261060051601f81116112085760051b610200015161082a575b61060051601f81116112085760051b61020001516040523360605261084d610f65565b60010181811861080c575050600360005500610f5f565b638db98b5c8118610f5f5760443610341761120857336060526108aa56610f5f565b636be320d28118610f5f57606436103417611208576044358060a01c611208576060525b6004358060a01c61120857604052600c604051602052600052604060002054156108d8576004543318611208575b600160805260025460a052466101005260243561012052604060e05260e080516020820120905060c0527f602d3d8160093d39f3363d3d373d3d3d363d73000000000000000000000000006101005260a05160601b610113527f5af43d82803e903d91602b57fd5bf300000000000000000000000000000000006101275260c05160366101006000f580156112085760e0526009543318610a60576080516002810181811061120857905060805260e0517f54b0a41dd85251df77437effbf9fbdca133bd234e7771816495877177288092c6001610100526020610100a260095463f9754c93610180526080306101a052806101c05263e10a16b861010452600446610124526024356101445260400161010052610100816101a00160208251018082828560045afa50508051806020830101601f82600003163682375050601f19601f82516020010116905090508101905060006101e05260016102005250803b1561120857600061018061010461019c6000855af1610a5e573d600060003e3d6000fd5b505b608051600a60e051602052600052604060002055600d546101005260e051610100516f7ffffffffffffffffffffffffffffffe811161120857600e01556101005160018101818110611208579050600d5560e051600c60405160205260005260406000205560007f602d3d8160093d39f3363d3d373d3d3d363d73000000000000000000000000008161016001526013810190506008548060601b90508161016001526014810190507f5af43d82803e903d91602b57fd5bf30000000000000000000000000000000000816101600152600f81019050806101405261014090508051602082012090506101205260007fff000000000000000000000000000000000000000000000000000000000000008161018001526001810190506007548060601b905081610180015260148101905060c05181610180015260208101905061012051816101800152602081019050806101605261016090508051602082012090506101405273ffffffffffffffffffffffffffffffffffffffff61014051168060a01c611208576101605260e05163c0c53b8b610180526040516101a052610160516101c0526060516101e052803b15611208576000610180606461019c6000855af1610c34573d600060003e3d6000fd5b503360405160a0517f69e16554b097f489830077da86e9e40cc91529a8d0787c42c4f33a0a337a0e086024356101805260e0516101a0526040610180a4602060e0f3610f5f565b6323fc5a478118610f5f57602436103417611208576004358060a01c611208576040526004543318611208577fa1b167642dcf1fee2fbf716c48c7c3f2326e4f26020cb042cd6405dfa72f4fd260035460605260405160805260406060a160405160035500610f5f565b634cd69da08118610f5f57602436103417611208576004358060a01c611208576040526004543318611208577fcdfeee65e4d0a88d6e47c5d034c34b03d52f1e6ffc56906257fc93d993ca04c460025460605260405160805260406060a160405160025500610f5f565b634b29cac88118610e0f57604436103417611208576004358060a01c611208576040526024358060011c61120857606052600a604051602052600052604060002054608052608051156112085760045433186112085760016080511760805260605115610dca57608051600281018181106112085790506080525b608051600a6040516020526000526040600020556040517f54b0a41dd85251df77437effbf9fbdca133bd234e7771816495877177288092c60605160a052602060a0a2005b636b441a408118610f5f57602436103417611208576004358060a01c6112085760405260045433186112085760405160055500610f5f565b63e5ea47b88118610e965734611208576005543318611208577f5c486528ec3e3f0ea91181cff8116f02bfa350e03b8b6f12e00765adbb5af85c6004546040523360605260406040a133600455005b6351bd4db58118610f5f57602436103417611208576004358060a01c61120857604052600a60405160205260005260406000205460021c60605260206060f3610f5f565b634b9203798118610f5f57602436103417611208576004358060a01c61120857604052600a604051602052600052604060002054151560605260206060f3610f5f565b638a42bd828118610f5f57602436103417611208576004358060a01c611208576040526002600a60405160205260005260406000205416151560605260206060f35b60006000fd5b600a604051602052600052604060002054608052608051156112085760026080511615610faa574262093a808104905060805160021c62093a80810490501415610fad565b60005b156110675760095463f9754c93610100526080306101205280610140526311bfb95660a452600460405160c45260200160a05260a0816101200160208251018082828560045afa50508051806020830101601f82600003163682375050601f19601f82516020010116905090508101905060006101605260016101805250803b1561120857600061010060e461011c6000855af1611050573d600060003e3d6000fd5b504260051b600a6040516020526000526040600020555b604051634b82009360a05260605160c052602060a0602460bc6000855af1611094573d600060003e3d6000fd5b60203d106112085760a0518060011c6112085760e05260e09050511561120857604051630940070760c05260605160e052602060c0602460dc845afa6110df573d600060003e3d6000fd5b60203d106112085760c090505160a05260a051600b6060516020526000526040600020806040516020526000526040600020905054808203828111611208579050905060c05260c0511561113757600154151561113a565b60005b156112065760015463a9059cbb60e0526060516101005260c05161012052602060e0604460fc6000855af1611174573d600060003e3d6000fd5b3d61118b57803b15611208576001610140526111a3565b60203d106112085760e0518060011c61120857610140525b610140905051156112085760a051600b60605160205260005260406000208060405160205260005260406000209050556040516060517f9d228d69b5fdb8d273a2336f8fb8612d039631024ea9bf09c424a9503aa078f060a05160e052602060e0a35b565b600080fd0f5f03380f5f0f5f0d4f059808860eda049a0c7b0ce5041a047a0f5f0f5f001a027b05e9021f0f5f02db01490e47018902bb029b016908640f1d8419124781183a1820a16576797065728300030a0016000000000000000000000000306a45a1478a000dc701a6e1f7a569afb8d9dcd600000000000000000000000096720942f9ff22efd8611f696e5333fe3671717a00000000000000000000000009413312b263fd252c16e592a45f4689f26cb79d

Deployed Bytecode

0x60003560e01c6002601d820660011b61120d01601e39600051565b6354fd4d50811861009957346112085760208060805260056040527f322e302e3100000000000000000000000000000000000000000000000000000060605260408160800181518152602082015160208201528051806020830101601f82600003163682375050601f19601f8251602001011690509050810190506080f35b631ec0cdc181186100b557346112085760055460405260206040f35b6366e1de658118610f5f57604436103417611208576004358060a01c611208576040526024358060a01c611208576060523360045481186100f75760016100fe565b6006548118155b905015611208576040516007556060516008557f70f9501abbdc1e859ff8c1a6d83d3cb1ba973674e97c3e3c2292540d6e40dcfe60405160805260605160a05260406080a100610f5f565b636a4874a18118610f5f57346112085760015460405260206040f3610f5f565b63c781c6688118610f5f57346112085760025460405260206040f3610f5f565b63dfe0503181186101a557346112085760035460405260206040f35b639aece83e8118610f5f57602436103417611208576004358060a01c611208576040523360045481186101d95760016101e0565b6006548118155b905015611208576040516006557f5c18ab5c697b63d102fc7e14c77bfaef0f1013206eca139920fd389277814e0960405160605260206060a100610f5f565b638da5cb5b811861023b57346112085760045460405260206040f35b63285218488118610f5f57602436103417611208576004356f7ffffffffffffffffffffffffffffffe811161120857600e015460405260206040f3610f5f565b63481c6a758118610f5f57346112085760065460405260206040f3610f5f565b633043228d8118610f5f57346112085760075460405260206040f3610f5f565b637de035c18118610f5f57346112085760085460405260206040f3610f5f565b63f81c6c3e81186102f757346112085760095460405260206040f35b635d95c65e8118610f5f57602436103417611208576004358060a01c61120857604052600c60405160205260005260406000205460605260206060f3610f5f565b63f0ce32f8811861037557602436103417611208576004358060a01c61120857604052600a60405160205260005260406000205460605260206060f35b632d4841218118610f5f57602436103417611208576004358060a01c6112085760405260045433186112085760405115611208576001541561040e57600f6060527f43525620616c726561647920736574000000000000000000000000000000000060805260605060605180608001601f826000031636823750506308c379a06020526020604052601f19601f6060510116604401603cfd5b60405160015500610f5f565b638b752bb08118610f5f57604436103417611208576004358060a01c611208576040526024358060a01c61120857606052600b604051602052600052604060002080606051602052600052604060002090505460805260206080f3610f5f565b63f111569c8118610f5f573461120857600d5460405260206040f3610f5f565b637cb97b2b811861052e57602436103417611208576004358060a01c61120857604052602061124760003960005133186112085760206112476000396000516004541861120857602061124760003960005160405114611208577f5c486528ec3e3f0ea91181cff8116f02bfa350e03b8b6f12e00765adbb5af85c60045460605260405160805260406060a1604051600455005b635ecb9e148118610f5f57602436103417611208576004358060a01c611208576040526004543318611208577fe385116766307e81d4427b03f1ac50c300b2f6a5df7b3c67eeb7eaaab12f080560095460605260405160805260406060a160405160095500610f5f565b636a6278428118610f5f57602436103417611208576004358060a01c611208576102005260005460021461120857600260005561020051604052336060526105de610f65565b600360005500610f5f565b6355ec67088118610f5f5761040436103417611208576004358060a01c61120857610200526024358060a01c61120857610220526044358060a01c61120857610240526064358060a01c61120857610260526084358060a01c611208576102805260a4358060a01c611208576102a05260c4358060a01c611208576102c05260e4358060a01c611208576102e052610104358060a01c6112085761030052610124358060a01c6112085761032052610144358060a01c6112085761034052610164358060a01c6112085761036052610184358060a01c61120857610380526101a4358060a01c611208576103a0526101c4358060a01c611208576103c0526101e4358060a01c611208576103e052610204358060a01c6112085761040052610224358060a01c6112085761042052610244358060a01c6112085761044052610264358060a01c6112085761046052610284358060a01c61120857610480526102a4358060a01c611208576104a0526102c4358060a01c611208576104c0526102e4358060a01c611208576104e052610304358060a01c6112085761050052610324358060a01c6112085761052052610344358060a01c6112085761054052610364358060a01c6112085761056052610384358060a01c61120857610580526103a4358060a01c611208576105a0526103c4358060a01c611208576105c0526103e4358060a01c611208576105e05260005460021461120857600260005560006020905b806106005261060051601f81116112085760051b610200015161082a575b61060051601f81116112085760051b61020001516040523360605261084d610f65565b60010181811861080c575050600360005500610f5f565b638db98b5c8118610f5f5760443610341761120857336060526108aa56610f5f565b636be320d28118610f5f57606436103417611208576044358060a01c611208576060525b6004358060a01c61120857604052600c604051602052600052604060002054156108d8576004543318611208575b600160805260025460a052466101005260243561012052604060e05260e080516020820120905060c0527f602d3d8160093d39f3363d3d373d3d3d363d73000000000000000000000000006101005260a05160601b610113527f5af43d82803e903d91602b57fd5bf300000000000000000000000000000000006101275260c05160366101006000f580156112085760e0526009543318610a60576080516002810181811061120857905060805260e0517f54b0a41dd85251df77437effbf9fbdca133bd234e7771816495877177288092c6001610100526020610100a260095463f9754c93610180526080306101a052806101c05263e10a16b861010452600446610124526024356101445260400161010052610100816101a00160208251018082828560045afa50508051806020830101601f82600003163682375050601f19601f82516020010116905090508101905060006101e05260016102005250803b1561120857600061018061010461019c6000855af1610a5e573d600060003e3d6000fd5b505b608051600a60e051602052600052604060002055600d546101005260e051610100516f7ffffffffffffffffffffffffffffffe811161120857600e01556101005160018101818110611208579050600d5560e051600c60405160205260005260406000205560007f602d3d8160093d39f3363d3d373d3d3d363d73000000000000000000000000008161016001526013810190506008548060601b90508161016001526014810190507f5af43d82803e903d91602b57fd5bf30000000000000000000000000000000000816101600152600f81019050806101405261014090508051602082012090506101205260007fff000000000000000000000000000000000000000000000000000000000000008161018001526001810190506007548060601b905081610180015260148101905060c05181610180015260208101905061012051816101800152602081019050806101605261016090508051602082012090506101405273ffffffffffffffffffffffffffffffffffffffff61014051168060a01c611208576101605260e05163c0c53b8b610180526040516101a052610160516101c0526060516101e052803b15611208576000610180606461019c6000855af1610c34573d600060003e3d6000fd5b503360405160a0517f69e16554b097f489830077da86e9e40cc91529a8d0787c42c4f33a0a337a0e086024356101805260e0516101a0526040610180a4602060e0f3610f5f565b6323fc5a478118610f5f57602436103417611208576004358060a01c611208576040526004543318611208577fa1b167642dcf1fee2fbf716c48c7c3f2326e4f26020cb042cd6405dfa72f4fd260035460605260405160805260406060a160405160035500610f5f565b634cd69da08118610f5f57602436103417611208576004358060a01c611208576040526004543318611208577fcdfeee65e4d0a88d6e47c5d034c34b03d52f1e6ffc56906257fc93d993ca04c460025460605260405160805260406060a160405160025500610f5f565b634b29cac88118610e0f57604436103417611208576004358060a01c611208576040526024358060011c61120857606052600a604051602052600052604060002054608052608051156112085760045433186112085760016080511760805260605115610dca57608051600281018181106112085790506080525b608051600a6040516020526000526040600020556040517f54b0a41dd85251df77437effbf9fbdca133bd234e7771816495877177288092c60605160a052602060a0a2005b636b441a408118610f5f57602436103417611208576004358060a01c6112085760405260045433186112085760405160055500610f5f565b63e5ea47b88118610e965734611208576005543318611208577f5c486528ec3e3f0ea91181cff8116f02bfa350e03b8b6f12e00765adbb5af85c6004546040523360605260406040a133600455005b6351bd4db58118610f5f57602436103417611208576004358060a01c61120857604052600a60405160205260005260406000205460021c60605260206060f3610f5f565b634b9203798118610f5f57602436103417611208576004358060a01c61120857604052600a604051602052600052604060002054151560605260206060f3610f5f565b638a42bd828118610f5f57602436103417611208576004358060a01c611208576040526002600a60405160205260005260406000205416151560605260206060f35b60006000fd5b600a604051602052600052604060002054608052608051156112085760026080511615610faa574262093a808104905060805160021c62093a80810490501415610fad565b60005b156110675760095463f9754c93610100526080306101205280610140526311bfb95660a452600460405160c45260200160a05260a0816101200160208251018082828560045afa50508051806020830101601f82600003163682375050601f19601f82516020010116905090508101905060006101605260016101805250803b1561120857600061010060e461011c6000855af1611050573d600060003e3d6000fd5b504260051b600a6040516020526000526040600020555b604051634b82009360a05260605160c052602060a0602460bc6000855af1611094573d600060003e3d6000fd5b60203d106112085760a0518060011c6112085760e05260e09050511561120857604051630940070760c05260605160e052602060c0602460dc845afa6110df573d600060003e3d6000fd5b60203d106112085760c090505160a05260a051600b6060516020526000526040600020806040516020526000526040600020905054808203828111611208579050905060c05260c0511561113757600154151561113a565b60005b156112065760015463a9059cbb60e0526060516101005260c05161012052602060e0604460fc6000855af1611174573d600060003e3d6000fd5b3d61118b57803b15611208576001610140526111a3565b60203d106112085760e0518060011c61120857610140525b610140905051156112085760a051600b60605160205260005260406000208060405160205260005260406000209050556040516060517f9d228d69b5fdb8d273a2336f8fb8612d039631024ea9bf09c424a9503aa078f060a05160e052602060e0a35b565b600080fd0f5f03380f5f0f5f0d4f059808860eda049a0c7b0ce5041a047a0f5f0f5f001a027b05e9021f0f5f02db01490e47018902bb029b016908640f1d0000000000000000000000002d12d0907a388811e3aa855a550f959501d303ee

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000306a45a1478a000dc701a6e1f7a569afb8d9dcd600000000000000000000000096720942f9ff22efd8611f696e5333fe3671717a00000000000000000000000009413312b263fd252c16e592a45f4689f26cb79d

-----Decoded View---------------
Arg [0] : _root_factory (address): 0x306A45a1478A000dC701A6e1f7a569afb8D9DCD6
Arg [1] : _root_impl (address): 0x96720942F9fF22eFd8611F696E5333Fe3671717a
Arg [2] : _crv (address): 0x09413312b263fD252C16e592A45f4689F26cb79d

-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 000000000000000000000000306a45a1478a000dc701a6e1f7a569afb8d9dcd6
Arg [1] : 00000000000000000000000096720942f9ff22efd8611f696e5333fe3671717a
Arg [2] : 00000000000000000000000009413312b263fd252c16e592a45f4689f26cb79d


Block Transaction Gas Used Reward
view all blocks sequenced

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

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
0xf3A431008396df8A8b2DF492C913706BDB0874ef
Net Worth in USD
$29,961.46

Net Worth in ETH
Taiko Alethia LogoTaiko Alethia LogoTaiko Alethia Logo 10.441084

Token Allocations
CRV 29.66%
WHYPE 23.17%
USDE 11.73%
Others 35.44%
Chain Token Portfolio % Price Amount Value
HYPEREVM23.17%$22.06314.691$6,942.08
HYPEREVM11.73%$13,514.4838$3,514.48
HYPEREVM9.47%$0.05158155,019.1341$2,837.94
HYPEREVM8.15%$1.012,427.1767$2,441.74
HYPEREVM7.89%$0.9984252,368.9691$2,365.24
HYPEREVM4.28%$1.141,123.7047$1,281.02
HYPEREVM3.62%$11,081.8443$1,084.01
HYPEREVM1.58%$1.02464.728$472.63
HYPEREVM0.30%$1.1180.7294$89.61
HYPEREVM0.04%$0.99967313.4715$13.47
HYPEREVM0.04%$22.280.5327$11.87
HYPEREVM0.03%$1.017.8442$7.93
HYPEREVM0.02%$22.10.3104$6.86
HYPEREVM0.02%$0.9936434.6511$4.62
SONIC29.63%$0.34918125,424.2198$8,877.65
TAIKO0.03%$0.34918127.844$9.72
UNI<0.01%$2,866.840.00020171$0.5782
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.