ETH Price: $1,952.17 (+1.61%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

More Info

Private Name Tags

Multichain Info

1 address found via
Transaction Hash
Method
Block
From
To
Transfer240861842025-12-25 0:53:2365 days ago1766624003IN
0xB08FEf57...d497C8F8A
0.002 ETH0.000048062.02850521
Transfer240360532025-12-18 0:57:2372 days ago1766019443IN
0xB08FEf57...d497C8F8A
0.005 ETH0.000048342.04046117
Transfer238365072025-11-19 23:52:35100 days ago1763596355IN
0xB08FEf57...d497C8F8A
0.005 ETH0.000050022.11151563
Transfer237364502025-11-05 23:44:23114 days ago1762386263IN
0xB08FEf57...d497C8F8A
0.005 ETH0.000052842.23044571
Transfer236360712025-10-22 22:35:23128 days ago1761172523IN
0xB08FEf57...d497C8F8A
0.005 ETH0.000049752.09987658
Transfer234711732025-09-29 20:55:47152 days ago1759179347IN
0xB08FEf57...d497C8F8A
0.005 ETH0.000040611.71419988
Transfer233324382025-09-10 11:38:47171 days ago1757504327IN
0xB08FEf57...d497C8F8A
0.005 ETH0.000028861.21848055
Transfer232853272025-09-03 21:39:59177 days ago1756935599IN
0xB08FEf57...d497C8F8A
0.005 ETH0.000032231.36065094
Transfer230562122025-08-02 21:59:35209 days ago1754171975IN
0xB08FEf57...d497C8F8A
0.005 ETH0.000053982.27834206
Transfer229836862025-07-23 18:34:59220 days ago1753295699IN
0xB08FEf57...d497C8F8A
0.005 ETH0.000065972.78464331
Transfer228350322025-07-03 0:10:35240 days ago1751501435IN
0xB08FEf57...d497C8F8A
0.005 ETH0.000063942.69904778
Transfer227342832025-06-18 22:14:35254 days ago1750284875IN
0xB08FEf57...d497C8F8A
0.005 ETH0.000032881.38782185
Transfer225830952025-05-28 18:38:35276 days ago1748457515IN
0xB08FEf57...d497C8F8A
0.005 ETH0.000074313.13657737
Transfer224353012025-05-08 0:34:59296 days ago1746664499IN
0xB08FEf57...d497C8F8A
0.005 ETH0.000021920.9251838
Transfer223331552025-04-23 17:20:11311 days ago1745428811IN
0xB08FEf57...d497C8F8A
0.005 ETH0.000049332.08220841
Transfer222348772025-04-10 0:16:59324 days ago1744244219IN
0xB08FEf57...d497C8F8A
0.005 ETH0.000022350.94369344
Transfer220344582025-03-13 0:46:47352 days ago1741826807IN
0xB08FEf57...d497C8F8A
0.005 ETH0.000025041.05709853
Transfer190624312024-01-22 12:59:59768 days ago1705928399IN
0xB08FEf57...d497C8F8A
0.015 ETH0.0003373214.23717977

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Method Block
From
To
Bridge245374022026-02-26 0:07:352 days ago1772064455
0xB08FEf57...d497C8F8A
0.00200235 ETH
Transfer245374022026-02-26 0:07:352 days ago1772064455
0xB08FEf57...d497C8F8A
0.00200235 ETH
Bridge244872092026-02-19 0:08:359 days ago1771459715
0xB08FEf57...d497C8F8A
0.00200036 ETH
Transfer244872092026-02-19 0:08:359 days ago1771459715
0xB08FEf57...d497C8F8A
0.00200036 ETH
Bridge244370232026-02-12 0:10:2316 days ago1770855023
0xB08FEf57...d497C8F8A
0.00200036 ETH
Transfer244370232026-02-12 0:10:2316 days ago1770855023
0xB08FEf57...d497C8F8A
0.00200036 ETH
Bridge243869832026-02-05 0:13:5923 days ago1770250439
0xB08FEf57...d497C8F8A
0.00200104 ETH
Transfer243869832026-02-05 0:13:5923 days ago1770250439
0xB08FEf57...d497C8F8A
0.00200104 ETH
Bridge243368292026-01-29 0:08:4730 days ago1769645327
0xB08FEf57...d497C8F8A
0.00200077 ETH
Transfer243368292026-01-29 0:08:4730 days ago1769645327
0xB08FEf57...d497C8F8A
0.00200077 ETH
Bridge242866422026-01-22 0:06:5937 days ago1769040419
0xB08FEf57...d497C8F8A
0.0020003 ETH
Transfer242866422026-01-22 0:06:5937 days ago1769040419
0xB08FEf57...d497C8F8A
0.0020003 ETH
Bridge242364252026-01-15 0:07:4744 days ago1768435667
0xB08FEf57...d497C8F8A
0.00200042 ETH
Transfer242364252026-01-15 0:07:4744 days ago1768435667
0xB08FEf57...d497C8F8A
0.00100133 ETH
Bridge241863022026-01-08 0:12:1151 days ago1767831131
0xB08FEf57...d497C8F8A
0.00200026 ETH
Bridge241360922026-01-01 0:07:5958 days ago1767226079
0xB08FEf57...d497C8F8A
0.00200042 ETH
Bridge240859672025-12-25 0:09:1165 days ago1766621351
0xB08FEf57...d497C8F8A
0.00200022 ETH
Bridge240360522025-12-18 0:57:1172 days ago1766019431
0xB08FEf57...d497C8F8A
0.00200031 ETH
Transfer240360522025-12-18 0:57:1172 days ago1766019431
0xB08FEf57...d497C8F8A
0.00022456 ETH
Bridge239857592025-12-11 0:05:4779 days ago1765411547
0xB08FEf57...d497C8F8A
0.00200102 ETH
Bridge239364442025-12-04 0:29:2386 days ago1764808163
0xB08FEf57...d497C8F8A
0.00200018 ETH
Bridge238864212025-11-27 0:15:5993 days ago1764202559
0xB08FEf57...d497C8F8A
0.00200046 ETH
Bridge238365742025-11-20 0:05:59100 days ago1763597159
0xB08FEf57...d497C8F8A
0.00200156 ETH
Bridge237866092025-11-13 0:06:35107 days ago1762992395
0xB08FEf57...d497C8F8A
0.00200055 ETH
Bridge237365652025-11-06 0:07:47114 days ago1762387667
0xB08FEf57...d497C8F8A
0.00200327 ETH
View All Internal Transactions
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Minimal Proxy Contract for 0x9336da074c4f585a8b59a8c2b77a32b630cde5a1

Contract Name:
Vyper_contract

Compiler Version
vyper:0.3.1

Optimization Enabled:
N/A

Other Settings:
berlin EvmVersion, MIT license

Contract Source Code (Vyper language format)

# @version 0.3.1
"""
@title Root Liquidity Gauge Implementation
@license MIT
@author Curve Finance
"""


interface Bridger:
    def cost() -> uint256: view
    def bridge(_token: address, _destination: address, _amount: uint256): payable

interface CRV20:
    def rate() -> uint256: view
    def future_epoch_time_write() -> uint256: nonpayable

interface ERC20:
    def balanceOf(_account: address) -> uint256: view
    def approve(_account: address, _value: uint256): nonpayable
    def transfer(_to: address, _amount: uint256): nonpayable

interface GaugeController:
    def checkpoint_gauge(addr: address): nonpayable
    def gauge_relative_weight(addr: address, time: uint256) -> uint256: view

interface Factory:
    def get_bridger(_chain_id: uint256) -> address: view
    def owner() -> address: view

interface Minter:
    def mint(_gauge: address): nonpayable


struct InflationParams:
    rate: uint256
    finish_time: uint256


WEEK: constant(uint256) = 604800
YEAR: constant(uint256) = 86400 * 365
RATE_DENOMINATOR: constant(uint256) = 10 ** 18
RATE_REDUCTION_COEFFICIENT: constant(uint256) = 1189207115002721024  # 2 ** (1/4) * 1e18
RATE_REDUCTION_TIME: constant(uint256) = YEAR

CRV: immutable(address)
GAUGE_CONTROLLER: immutable(address)
MINTER: immutable(address)


chain_id: public(uint256)
bridger: public(address)
factory: public(address)
inflation_params: public(InflationParams)

last_period: public(uint256)
total_emissions: public(uint256)

is_killed: public(bool)


@external
def __init__(_crv_token: address, _gauge_controller: address, _minter: address):
    self.factory = 0x000000000000000000000000000000000000dEaD

    # assign immutable variables
    CRV = _crv_token
    GAUGE_CONTROLLER = _gauge_controller
    MINTER = _minter


@payable
@external
def __default__():
    pass


@external
def transmit_emissions():
    """
    @notice Mint any new emissions and transmit across to child gauge
    """
    assert msg.sender == self.factory  # dev: call via factory

    Minter(MINTER).mint(self)
    minted: uint256 = ERC20(CRV).balanceOf(self)

    assert minted != 0  # dev: nothing minted
    bridger: address = self.bridger

    Bridger(bridger).bridge(CRV, self, minted, value=Bridger(bridger).cost())


@view
@external
def integrate_fraction(_user: address) -> uint256:
    """
    @notice Query the total emissions `_user` is entitled to
    @dev Any value of `_user` other than the gauge address will return 0
    """
    if _user == self:
        return self.total_emissions
    return 0


@external
def user_checkpoint(_user: address) -> bool:
    """
    @notice Checkpoint the gauge updating total emissions
    @param _user Vestigal parameter with no impact on the function
    """
    # the last period we calculated emissions up to (but not including)
    last_period: uint256 = self.last_period
    # our current period (which we will calculate emissions up to)
    current_period: uint256 = block.timestamp / WEEK

    # only checkpoint if the current period is greater than the last period
    # last period is always less than or equal to current period and we only calculate
    # emissions up to current period (not including it)
    if last_period != current_period:
        # checkpoint the gauge filling in any missing weight data
        GaugeController(GAUGE_CONTROLLER).checkpoint_gauge(self)

        params: InflationParams = self.inflation_params
        emissions: uint256 = 0

        # only calculate emissions for at most 256 periods since the last checkpoint
        for i in range(last_period, last_period + 256):
            if i == current_period:
                # don't calculate emissions for the current period
                break
            period_time: uint256 = i * WEEK
            weight: uint256 = GaugeController(GAUGE_CONTROLLER).gauge_relative_weight(self, period_time)

            if period_time <= params.finish_time and params.finish_time < period_time + WEEK:
                # calculate with old rate
                emissions += weight * params.rate * (params.finish_time - period_time) / 10 ** 18
                # update rate
                params.rate = params.rate * RATE_DENOMINATOR / RATE_REDUCTION_COEFFICIENT
                # calculate with new rate
                emissions += weight * params.rate * (period_time + WEEK - params.finish_time) / 10 ** 18
                # update finish time
                params.finish_time += RATE_REDUCTION_TIME
                # update storage
                self.inflation_params = params
            else:
                emissions += weight * params.rate * WEEK / 10 ** 18

        self.last_period = current_period
        self.total_emissions += emissions

    return True


@external
def set_killed(_is_killed: bool):
    """
    @notice Set the gauge kill status
    @dev Inflation params are modified accordingly to disable/enable emissions
    """
    assert msg.sender == Factory(self.factory).owner()

    if _is_killed:
        self.inflation_params.rate = 0
    else:
        self.inflation_params = InflationParams({
            rate: CRV20(CRV).rate(),
            finish_time: CRV20(CRV).future_epoch_time_write()
        })
        self.last_period = block.timestamp / WEEK
    self.is_killed = _is_killed


@external
def update_bridger():
    """
    @notice Update the bridger used by this contract
    @dev Bridger contracts should prevent briding if ever updated
    """
    # reset approval
    bridger: address = Factory(self.factory).get_bridger(self.chain_id)
    ERC20(CRV).approve(self.bridger, 0)
    ERC20(CRV).approve(bridger, MAX_UINT256)
    self.bridger = bridger


@external
def initialize(_bridger: address, _chain_id: uint256):
    """
    @notice Proxy initialization method
    """
    assert self.factory == ZERO_ADDRESS  # dev: already initialized

    self.chain_id = _chain_id
    self.bridger = _bridger
    self.factory = msg.sender

    inflation_params: InflationParams = InflationParams({
        rate: CRV20(CRV).rate(),
        finish_time: CRV20(CRV).future_epoch_time_write()
    })
    assert inflation_params.rate != 0

    self.inflation_params = inflation_params
    self.last_period = block.timestamp / WEEK

    ERC20(CRV).approve(_bridger, MAX_UINT256)

Contract ABI

API
[{"stateMutability":"nonpayable","type":"constructor","inputs":[{"name":"_crv_token","type":"address"},{"name":"_gauge_controller","type":"address"},{"name":"_minter","type":"address"}],"outputs":[]},{"stateMutability":"payable","type":"fallback"},{"stateMutability":"nonpayable","type":"function","name":"transmit_emissions","inputs":[],"outputs":[]},{"stateMutability":"view","type":"function","name":"integrate_fraction","inputs":[{"name":"_user","type":"address"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"nonpayable","type":"function","name":"user_checkpoint","inputs":[{"name":"_user","type":"address"}],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"nonpayable","type":"function","name":"set_killed","inputs":[{"name":"_is_killed","type":"bool"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"update_bridger","inputs":[],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"initialize","inputs":[{"name":"_bridger","type":"address"},{"name":"_chain_id","type":"uint256"}],"outputs":[]},{"stateMutability":"view","type":"function","name":"chain_id","inputs":[],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"bridger","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"factory","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"inflation_params","inputs":[],"outputs":[{"name":"","type":"tuple","components":[{"name":"rate","type":"uint256"},{"name":"finish_time","type":"uint256"}]}]},{"stateMutability":"view","type":"function","name":"last_period","inputs":[],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"total_emissions","inputs":[],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"is_killed","inputs":[],"outputs":[{"name":"","type":"bool"}]}]

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
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.