ETH Price: $1,862.42 (-4.13%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Exchange234496312025-09-26 20:40:23149 days ago1758919223IN
Yield Basis: Virtual Pool (WBTC)
0 ETH0.000160660.25120559

Latest 1 internal transaction

Advanced mode:
Parent Transaction Hash Method Block
From
To
0x6110c951234340062025-09-24 16:11:47152 days ago1758730307  Contract Creation0 ETH
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

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0x125Ca420...Fc22AF268
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
VirtualPool

Compiler Version
vyper:0.4.3

Optimization Enabled:
Yes

Other Settings:
default evmVersion, None license

Contract Source Code (Vyper Json-Input format)

File 1 of 1 : VirtualPool.vy
# @version 0.4.3
"""
@title VirtualPool
@notice Virtual pool to swap LP in Yield Basis without touching the LP token
@author Scientia Spectra AG
@license Copyright (c) 2025
"""

from ethereum.ercs import IERC20 as ERC20

interface Flash:
    def flashLoan(receiver: address, token: address, amount: uint256, data: Bytes[10**5]) -> bool: nonpayable
    def supportedTokens(token: address) -> bool: view
    def maxFlashLoan(token: address) -> uint256: view

interface Factory:
    def flash() -> Flash: view
    def virtual_pool_impl() -> address: view

interface Pool:
    def approve(_spender: address, _value: uint256) -> bool: nonpayable
    def coins(i: uint256) -> ERC20: view
    def balances(i: uint256) -> uint256: view
    def calc_token_amount(amounts: uint256[2], deposit: bool) -> uint256: view
    def add_liquidity(amounts: uint256[2], min_mint_amount: uint256) -> uint256: nonpayable
    def remove_liquidity(amount: uint256, min_amounts: uint256[2]) -> uint256[2]: nonpayable
    def totalSupply() -> uint256: view

interface YbAMM:
    def coins(i: uint256) -> ERC20: view
    def get_dy(i: uint256, j: uint256, in_amount: uint256) -> uint256: view
    def get_state() -> AMMState: view
    def fee() -> uint256: view
    def exchange(i: uint256, j: uint256, in_amount: uint256, min_out: uint256) -> uint256: nonpayable
    def STABLECOIN() -> ERC20: view
    def COLLATERAL() -> Pool: view


event TokenExchange:
    buyer: indexed(address)
    sold_id: uint256
    tokens_sold: uint256
    bought_id: uint256
    tokens_bought: uint256

struct AMMState:
    collateral: uint256
    debt: uint256
    x0: uint256


FACTORY: public(immutable(Factory))
AMM: public(immutable(YbAMM))
POOL: public(immutable(Pool))
ASSET_TOKEN: public(immutable(ERC20))
STABLECOIN: public(immutable(ERC20))
ROUNDING_DISCOUNT: public(constant(uint256)) = 10**18 // 10**8
IMPL: public(immutable(address))


@deploy
def __init__(amm: YbAMM):
    AMM = amm
    FACTORY = Factory(msg.sender)
    IMPL = staticcall FACTORY.virtual_pool_impl()
    POOL = staticcall amm.COLLATERAL()
    STABLECOIN = staticcall amm.STABLECOIN()
    assert staticcall POOL.coins(0) == STABLECOIN
    ASSET_TOKEN = staticcall POOL.coins(1)
    assert extcall STABLECOIN.approve(POOL.address, max_value(uint256), default_return_value=True)
    assert extcall ASSET_TOKEN.approve(POOL.address, max_value(uint256), default_return_value=True)
    assert extcall STABLECOIN.approve(AMM.address, max_value(uint256), default_return_value=True)
    assert extcall POOL.approve(AMM.address, max_value(uint256), default_return_value=True)


@external
@view
def coins(i: uint256) -> ERC20:
    """
    @notice Coins in the AMM: 0 - stablecoin, 1 - cryptoasset used to form collateral LP
    """
    return [STABLECOIN, ASSET_TOKEN][i]


@internal
@view
def _calculate(i: uint256, in_amount: uint256, only_flash: bool) -> (uint256, uint256):
    stables_in_pool: uint256 = staticcall POOL.balances(0)
    out_amount: uint256 = 0

    if i == 0:
        state: AMMState = staticcall AMM.get_state()
        pool_supply: uint256 = staticcall POOL.totalSupply()
        fee: uint256 = staticcall AMM.fee()
        r0fee: uint256 = stables_in_pool * (10**18 - fee) // pool_supply

        # Solving quadratic eqn instead of calling the AMM b/c we have a special case
        b: uint256 = state.x0 - state.debt + in_amount - r0fee * state.collateral // 10**18
        D: uint256 = b**2 + 4 * state.collateral * r0fee // 10**18 * in_amount
        flash_amount: uint256 = (isqrt(D) - b) // 2  # We received this withdrawing from the pool

        if not only_flash:
            crypto_in_pool: uint256 = staticcall POOL.balances(1)
            out_amount = flash_amount * crypto_in_pool // stables_in_pool
        # Withdrawal was ideally balanced
        return out_amount, flash_amount

    else:
        crypto_in_pool: uint256 = staticcall POOL.balances(1)
        flash_amount: uint256 = in_amount * stables_in_pool // crypto_in_pool
        if not only_flash:
            pool_supply: uint256 = staticcall POOL.totalSupply()
            lp_amount: uint256 = pool_supply * in_amount // crypto_in_pool
            out_amount = staticcall AMM.get_dy(1, 0, lp_amount) - flash_amount
        return out_amount, flash_amount


@external
@view
def get_dy(i: uint256, j: uint256, in_amount: uint256) -> uint256:
    """
    @notice Function to preview the result of exchange in the virtual AMM
    @param i Index of input coin (0 = stablecoin, 1 = crypto)
    @param j Index of output coin
    @param in_amount Amount of coin i
    @return Amount of coin j to be received
    """
    assert (i == 0 and j == 1) or (i == 1 and j == 0)
    _in_amount: uint256 = in_amount
    if i == 0:
        _in_amount = in_amount * (10**18 - ROUNDING_DISCOUNT) // 10**18
    return self._calculate(i, _in_amount, False)[0]


@external
def onFlashLoan(initiator: address, token: address, total_flash_amount: uint256, fee: uint256, data: Bytes[10**5]):
    """
    @notice Receive a flash loan
    @param initiator The initiator of the loan
    @param token The loan currency
    @param total_flash_amount The amount of tokens lent
    @param fee The additional amount of tokens to repay
    @param data Arbitrary data structure, intended to contain user-defined parameters
    """
    assert initiator == self
    assert token == STABLECOIN.address
    assert msg.sender == (staticcall FACTORY.flash()).address, "Wrong caller"

    # executor
    i: uint256 = 0
    in_amount: uint256 = 0
    i, in_amount = abi_decode(data, (uint256, uint256))
    flash_amount: uint256 = self._calculate(i, in_amount, True)[1]
    in_coin: ERC20 = [STABLECOIN, ASSET_TOKEN][i]
    out_coin: ERC20 = [STABLECOIN, ASSET_TOKEN][1-i]
    repay_flash_amount: uint256 = total_flash_amount

    if i == 0:
        # stablecoin -> crypto exchange
        # 1. Take flash loan
        # 2. Use our stables + flash borrowed amount to swap to pool LP in AMM
        # 3. Withdraw symmetrically from pool LP
        # 4. Repay the flash loan
        # 5. Send the crypto
        lp_amount: uint256 = extcall AMM.exchange(0, 1, (in_amount * (10**18 - ROUNDING_DISCOUNT) // 10**18 + flash_amount), 0)
        extcall POOL.remove_liquidity(lp_amount, [0, 0])
        repay_flash_amount = staticcall STABLECOIN.balanceOf(self)

    else:
        # crypto -> stablecoin exchange
        # 1. Take flash loan
        # 2. Deposit taken stables + to Pool
        # 3. Swap LP of the pool to stables
        # 4. Repay flash loan
        # 5. Send the rest to the user
        lp_amount: uint256 = extcall POOL.add_liquidity([flash_amount, in_amount], 0)
        extcall AMM.exchange(1, 0, lp_amount, 0)

    assert extcall STABLECOIN.transfer(msg.sender, repay_flash_amount, default_return_value=True)

@external
@nonreentrant
def exchange(i: uint256, j: uint256, in_amount: uint256, min_out: uint256, _for: address = msg.sender) -> uint256:
    """
    @notice Exchanges two coins, callable by anyone
    @param i Index of input coin (0 = stablecoin, 1 = crypto)
    @param j Output coin index
    @param in_amount Amount of input coin to swap
    @param min_out Minimal amount to get as output
    @param _for Address to send coins to
    @return Amount of coins given in/out
    """
    assert (i == 0 and j == 1) or (i == 1 and j == 0)
    flash: Flash = staticcall FACTORY.flash()

    in_coin: ERC20 = [STABLECOIN, ASSET_TOKEN][i]
    out_coin: ERC20 = [STABLECOIN, ASSET_TOKEN][j]

    assert extcall in_coin.transferFrom(msg.sender, self, in_amount, default_return_value=True)

    data: Bytes[128] = empty(Bytes[128])
    data = abi_encode(i, in_amount)
    extcall flash.flashLoan(self, STABLECOIN.address, staticcall flash.maxFlashLoan(STABLECOIN.address), data)

    out_amount: uint256 = staticcall out_coin.balanceOf(self)
    assert out_amount >= min_out, "Slippage"
    assert extcall out_coin.transfer(_for, out_amount, default_return_value=True)

    log TokenExchange(buyer=_for, sold_id=i, tokens_sold=in_amount, bought_id=j, tokens_bought=out_amount)
    return out_amount


# XXX include methods to determine max_in / max_out

Settings
{
  "outputSelection": {
    "contracts/VirtualPool.vy": [
      "evm.bytecode",
      "evm.deployedBytecode",
      "abi"
    ]
  },
  "search_paths": [
    "."
  ]
}

Contract Security Audit

Contract ABI

API
[{"anonymous":false,"inputs":[{"indexed":true,"name":"buyer","type":"address"},{"indexed":false,"name":"sold_id","type":"uint256"},{"indexed":false,"name":"tokens_sold","type":"uint256"},{"indexed":false,"name":"bought_id","type":"uint256"},{"indexed":false,"name":"tokens_bought","type":"uint256"}],"name":"TokenExchange","type":"event"},{"inputs":[{"name":"i","type":"uint256"}],"name":"coins","outputs":[{"name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"name":"i","type":"uint256"},{"name":"j","type":"uint256"},{"name":"in_amount","type":"uint256"}],"name":"get_dy","outputs":[{"name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"name":"initiator","type":"address"},{"name":"token","type":"address"},{"name":"total_flash_amount","type":"uint256"},{"name":"fee","type":"uint256"},{"name":"data","type":"bytes"}],"name":"onFlashLoan","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"i","type":"uint256"},{"name":"j","type":"uint256"},{"name":"in_amount","type":"uint256"},{"name":"min_out","type":"uint256"}],"name":"exchange","outputs":[{"name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"i","type":"uint256"},{"name":"j","type":"uint256"},{"name":"in_amount","type":"uint256"},{"name":"min_out","type":"uint256"},{"name":"_for","type":"address"}],"name":"exchange","outputs":[{"name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"FACTORY","outputs":[{"name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"AMM","outputs":[{"name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"POOL","outputs":[{"name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ASSET_TOKEN","outputs":[{"name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"STABLECOIN","outputs":[{"name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ROUNDING_DISCOUNT","outputs":[{"name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"IMPL","outputs":[{"name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"name":"amm","type":"address"}],"outputs":[],"stateMutability":"nonpayable","type":"constructor"}]

0x6110c95150346104305760206114955f395f518060a01c610430576040526040516110495233611029526110295163d7d43f18606052602060606004607c845afa61004c573d5f5f3e3d5ffd5b3d602081183d602010021880606001608011610430576060518060a01c6104305760a0525060a09050516110c9526040516324bbab8b606052602060606004607c845afa61009c573d5f5f3e3d5ffd5b3d602081183d602010021880606001608011610430576060518060a01c6104305760a0525060a0905051611069526040516393a39776606052602060606004607c845afa6100ec573d5f5f3e3d5ffd5b3d602081183d602010021880606001608011610430576060518060a01c6104305760a0525060a09050516110a9526110a9516110695163c66106576060525f608052602060606024607c845afa610145573d5f5f3e3d5ffd5b3d602081183d602010021880606001608011610430576060518060a01c6104305760a0525060a090505118610430576110695163c66106576060526001608052602060606024607c845afa61019c573d5f5f3e3d5ffd5b3d602081183d602010021880606001608011610430576060518060a01c6104305760a0525060a0905051611089526110a95163095ea7b3606052611069516080527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60a052602060606044607c5f855af1610219573d5f5f3e3d5ffd5b3d61022f57803b1561043057600160c052610255565b3d602081183d602010021880606001608011610430576060518060011c6104305760c052505b60c090505115610430576110895163095ea7b3606052611069516080527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60a052602060606044607c5f855af16102ae573d5f5f3e3d5ffd5b3d6102c457803b1561043057600160c0526102ea565b3d602081183d602010021880606001608011610430576060518060011c6104305760c052505b60c090505115610430576110a95163095ea7b3606052611049516080527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60a052602060606044607c5f855af1610343573d5f5f3e3d5ffd5b3d61035957803b1561043057600160c05261037f565b3d602081183d602010021880606001608011610430576060518060011c6104305760c052505b60c090505115610430576110695163095ea7b3606052611049516080527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60a052602060606044607c5f855af16103d8573d5f5f3e3d5ffd5b3d6103ee57803b1561043057600160c052610414565b3d602081183d602010021880606001608011610430576060518060011c6104305760c052505b60c09050511561043057611029610434610000396110e9610000f35b5f80fd5f3560e01c6002600e820660011b61100d01601e395f51565b63c661065781186100565760243610341761100957602060206110a96040396020611089606039604060043560028110156110095760051b81019050f35b63556d6e9f8118610af1576064361034176110095760043561007e5760016024351815610080565b5f5b61009d5760016004351861009757602435156100a0565b5f6100a0565b60015b1561100957604435610260526004356100e657604435670de0b6b153581c00810281670de0b6b153581c00820418611009579050670de0b6b3a764000081049050610260525b6020600435604052610260516060525f608052610104610280610af5565b610280f35b6323e30c8b81186105d75760a436103417611009576004358060a01c61100957610260526024358060a01c61100957610280526084356004018035620186a081116110095750602081350180826102a03750503061026051186110095760206110a95f395f5161028051186110095760206110295f395f5163d336c82d620189605260206201896060046201897c845afa6101a6573d5f5f3e3d5ffd5b3d602081183d602010021880620189600162018980116110095762018960518060a01c61100957620189a05250620189a09050513318156102605760208062018a2052600c620189c0527f57726f6e672063616c6c65720000000000000000000000000000000000000000620189e052620189c08162018a2001602c82825e8051806020830101601f825f03163682375050601f19601f8251602001011690509050810190506308c379a062018a00528060040162018a1cfd5b604036620189603760406102a05118611009576102a0516102c001610300116110095760406102c0620189a05e620189a080516201896052602081015162018980525060406201896060405e60016080526102bd620189c0610af5565b620189c060208101905051620189a05260206110a9620189e039602061108962018a0039620189e0620189605160028110156110095760051b8101905051620189c05260206110a962018a0039602061108962018a203962018a006201896051806001036001811161100957905060028110156110095760051b8101905051620189e05260443562018a0052620189605161048c5760206110495f395f51635b41b90862018a40525f62018a6052600162018a80526201898051670de0b6b153581c00810281670de0b6b153581c00820418611009579050670de0b6b3a764000081049050620189a051808201828110611009579050905062018aa0525f62018ac052602062018a40608462018a5c5f855af16103dc573d5f5f3e3d5ffd5b60203d106110095762018a4090505162018a205260206110695f395f51635b36389c62018a405262018a205162018a605260403662018a8037604062018a40606462018a5c5f855af1610431573d5f5f3e3d5ffd5b60403d106110095762018a40505060206110a95f395f516370a0823162018a40523062018a6052602062018a40602462018a5c845afa610473573d5f5f3e3d5ffd5b60203d106110095762018a4090505162018a0052610544565b60206110695f395f51630b4c7e4d62018a4052620189a05162018a6052620189805162018a80525f62018aa052602062018a40606462018a5c5f855af16104d5573d5f5f3e3d5ffd5b60203d106110095762018a4090505162018a205260206110495f395f51635b41b90862018a4052600162018a60525f62018a805262018a205162018aa0525f62018ac052602062018a40608462018a5c5f855af1610535573d5f5f3e3d5ffd5b60203d106110095762018a4050505b60206110a95f395f5163a9059cbb62018a20523362018a405262018a005162018a6052602062018a20604462018a3c5f855af1610583573d5f5f3e3d5ffd5b3d61059b57803b1561100957600162018a80526105c9565b3d602081183d60201002188062018a200162018a40116110095762018a20518060011c6110095762018a8052505b62018a809050511561100957005b6356973ee58118610af157346110095760206110c960403960206040f35b635b41b9088118610af1576084361034176110095733604052610637565b63a64833a08118610af15760a436103417611009576084358060a01c611009576040525b5f5c6001146110095760015f5d6004356106575760016024351815610659565b5f5b610676576001600435186106705760243515610679565b5f610679565b60015b156110095760206110295f395f5163d336c82d608052602060806004609c845afa6106a6573d5f5f3e3d5ffd5b3d602081183d60201002188060800160a011611009576080518060a01c6110095760c0525060c090505160605260206110a960a039602061108960c03960a060043560028110156110095760051b810190505160805260206110a960c039602061108960e03960c060243560028110156110095760051b810190505160a0526080516323b872dd60c0523360e052306101005260443561012052602060c0606460dc5f855af1610758573d5f5f3e3d5ffd5b3d61076f57803b1561100957600161014052610796565b3d602081183d60201002188060c00160e0116110095760c0518060011c6110095761014052505b61014090505115611009575f60c052600435610180526044356101a05260406101605261016060608160c05e50606051635cffe9de6101a0526080306101c05260206110a96101e03960605163613255ab6101605260206110a9610180396020610160602461017c845afa61080d573d5f5f3e3d5ffd5b60203d1061100957610160905051610200528061022052806101c001602060c051018060c0835e508051806020830101601f825f03163682375050601f19601f8251602001011690508101505060206101a06101246101bc5f855af1610875573d5f5f3e3d5ffd5b3d602081183d6020100218806101a0016101c011611009576101a0518060011c611009576102e052506102e0505060a0516370a0823161018052306101a0526020610180602461019c845afa6108cd573d5f5f3e3d5ffd5b60203d106110095761018090505161016052606435610160511015610964576020806101e0526008610180527f536c6970706167650000000000000000000000000000000000000000000000006101a052610180816101e001602882825e8051806020830101601f825f03163682375050601f19601f8251602001011690509050810190506308c379a06101c052806004016101dcfd5b60a05163a9059cbb610180526040516101a052610160516101c0526020610180604461019c5f855af1610999573d5f5f3e3d5ffd5b3d6109b057803b156110095760016101e0526109da565b3d602081183d602010021880610180016101a01161100957610180518060011c611009576101e052505b6101e090505115611009576040517fb2e76ae99761dc136e598d4a629bb347eccb9532a5f8bbd72e18467c3c34cc98600435610180526044356101a0526024356101c052610160516101e0526080610180a260206101605f5f5df35b632dd310008114600336111615610a5a573461100957602061102960403960206040f35b637535d2468118610af1573461100957602061106960403960206040f35b6344a706868118610af1573461100957602061104960403960206040f35b63d70620058118610ab4573461100957602061108960403960206040f35b633a7aae0d8118610af15734611009576402540be40060405260206040f35b6393a397768118610af157346110095760206110a960403960206040f35b5f5ffd5b60206110695f395f51634903b0d160c0525f60e052602060c0602460dc845afa610b21573d5f5f3e3d5ffd5b60203d106110095760c090505160a0525f60c052604051610eb25760206110495f395f516386b301ad610140526060610140600461015c845afa610b67573d5f5f3e3d5ffd5b60603d1061100957610140905060608160e05e5060206110695f395f516318160ddd610160526020610160600461017c845afa610ba6573d5f5f3e3d5ffd5b60203d10611009576101609050516101405260206110495f395f5163ddca3f43610180526020610180600461019c845afa610be3573d5f5f3e3d5ffd5b60203d10611009576101809050516101605260a0516101605180670de0b6b3a764000003670de0b6b3a7640000811161100957905080820281158383830414171561100957905090506101405180156110095780820490509050610180526101205161010051808203828111611009579050905060605180820182811061100957905090506101805160e0518082028115838383041417156110095790509050670de0b6b3a76400008104905080820382811161100957905090506101a0526101a0516fffffffffffffffffffffffffffffffff8111611009576002810a905060e0518060021b818160021c18611009579050610180518082028115838383041417156110095790509050670de0b6b3a764000081049050606051808202811583838304141715611009579050905080820182811061100957905090506101c0526101c0518060b5710100000000000000000000000000000000008210610d51578160801c91508060401b90505b69010000000000000000008210610d6f578160401c91508060201b90505b650100000000008210610d89578160201c91508060101b90505b63010000008210610da1578160101c91508060081b90505b620100008201810260121c9050808184040160011c9050808184040160011c9050808184040160011c9050808184040160011c9050808184040160011c9050808184040160011c9050808184040160011c905080830480828118828410021890509050905090506101a05180820382811161100957905090508060011c90506101e052608051610e9e5760206110695f395f51634903b0d1610220526001610240526020610220602461023c845afa610e5c573d5f5f3e3d5ffd5b60203d1061100957610220905051610200526101e05161020051808202811583838304141715611009579050905060a0518015611009578082049050905060c0525b60c05181526101e051602082015250611007565b60206110695f395f51634903b0d1610100526001610120526020610100602461011c845afa610ee3573d5f5f3e3d5ffd5b60203d106110095761010090505160e05260605160a051808202811583838304141715611009579050905060e0518015611009578082049050905061010052608051610ff75760206110695f395f516318160ddd610140526020610140600461015c845afa610f54573d5f5f3e3d5ffd5b60203d10611009576101409050516101205261012051606051808202811583838304141715611009579050905060e051801561100957808204905090506101405260206110495f395f5163556d6e9f610160526001610180525f6101a052610140516101c0526020610160606461017c845afa610fd3573d5f5f3e3d5ffd5b60203d106110095761016090505161010051808203828111611009579050905060c0525b60c0518152610100516020820152505b565b5f80fd0a780af106130a960af10af10a360af10af10af105f501090ad300188558203290f2cfee2953e907480422c39ae737efdfc9a2a2dd457fb03a4e87ef5e7d3d19102981181c18c0a1657679706572830004030038000000000000000000000000a25306937dba98378c32f167588f5dc17a95c94b

Deployed Bytecode

0x5f3560e01c6002600e820660011b61100d01601e395f51565b63c661065781186100565760243610341761100957602060206110a96040396020611089606039604060043560028110156110095760051b81019050f35b63556d6e9f8118610af1576064361034176110095760043561007e5760016024351815610080565b5f5b61009d5760016004351861009757602435156100a0565b5f6100a0565b60015b1561100957604435610260526004356100e657604435670de0b6b153581c00810281670de0b6b153581c00820418611009579050670de0b6b3a764000081049050610260525b6020600435604052610260516060525f608052610104610280610af5565b610280f35b6323e30c8b81186105d75760a436103417611009576004358060a01c61100957610260526024358060a01c61100957610280526084356004018035620186a081116110095750602081350180826102a03750503061026051186110095760206110a95f395f5161028051186110095760206110295f395f5163d336c82d620189605260206201896060046201897c845afa6101a6573d5f5f3e3d5ffd5b3d602081183d602010021880620189600162018980116110095762018960518060a01c61100957620189a05250620189a09050513318156102605760208062018a2052600c620189c0527f57726f6e672063616c6c65720000000000000000000000000000000000000000620189e052620189c08162018a2001602c82825e8051806020830101601f825f03163682375050601f19601f8251602001011690509050810190506308c379a062018a00528060040162018a1cfd5b604036620189603760406102a05118611009576102a0516102c001610300116110095760406102c0620189a05e620189a080516201896052602081015162018980525060406201896060405e60016080526102bd620189c0610af5565b620189c060208101905051620189a05260206110a9620189e039602061108962018a0039620189e0620189605160028110156110095760051b8101905051620189c05260206110a962018a0039602061108962018a203962018a006201896051806001036001811161100957905060028110156110095760051b8101905051620189e05260443562018a0052620189605161048c5760206110495f395f51635b41b90862018a40525f62018a6052600162018a80526201898051670de0b6b153581c00810281670de0b6b153581c00820418611009579050670de0b6b3a764000081049050620189a051808201828110611009579050905062018aa0525f62018ac052602062018a40608462018a5c5f855af16103dc573d5f5f3e3d5ffd5b60203d106110095762018a4090505162018a205260206110695f395f51635b36389c62018a405262018a205162018a605260403662018a8037604062018a40606462018a5c5f855af1610431573d5f5f3e3d5ffd5b60403d106110095762018a40505060206110a95f395f516370a0823162018a40523062018a6052602062018a40602462018a5c845afa610473573d5f5f3e3d5ffd5b60203d106110095762018a4090505162018a0052610544565b60206110695f395f51630b4c7e4d62018a4052620189a05162018a6052620189805162018a80525f62018aa052602062018a40606462018a5c5f855af16104d5573d5f5f3e3d5ffd5b60203d106110095762018a4090505162018a205260206110495f395f51635b41b90862018a4052600162018a60525f62018a805262018a205162018aa0525f62018ac052602062018a40608462018a5c5f855af1610535573d5f5f3e3d5ffd5b60203d106110095762018a4050505b60206110a95f395f5163a9059cbb62018a20523362018a405262018a005162018a6052602062018a20604462018a3c5f855af1610583573d5f5f3e3d5ffd5b3d61059b57803b1561100957600162018a80526105c9565b3d602081183d60201002188062018a200162018a40116110095762018a20518060011c6110095762018a8052505b62018a809050511561100957005b6356973ee58118610af157346110095760206110c960403960206040f35b635b41b9088118610af1576084361034176110095733604052610637565b63a64833a08118610af15760a436103417611009576084358060a01c611009576040525b5f5c6001146110095760015f5d6004356106575760016024351815610659565b5f5b610676576001600435186106705760243515610679565b5f610679565b60015b156110095760206110295f395f5163d336c82d608052602060806004609c845afa6106a6573d5f5f3e3d5ffd5b3d602081183d60201002188060800160a011611009576080518060a01c6110095760c0525060c090505160605260206110a960a039602061108960c03960a060043560028110156110095760051b810190505160805260206110a960c039602061108960e03960c060243560028110156110095760051b810190505160a0526080516323b872dd60c0523360e052306101005260443561012052602060c0606460dc5f855af1610758573d5f5f3e3d5ffd5b3d61076f57803b1561100957600161014052610796565b3d602081183d60201002188060c00160e0116110095760c0518060011c6110095761014052505b61014090505115611009575f60c052600435610180526044356101a05260406101605261016060608160c05e50606051635cffe9de6101a0526080306101c05260206110a96101e03960605163613255ab6101605260206110a9610180396020610160602461017c845afa61080d573d5f5f3e3d5ffd5b60203d1061100957610160905051610200528061022052806101c001602060c051018060c0835e508051806020830101601f825f03163682375050601f19601f8251602001011690508101505060206101a06101246101bc5f855af1610875573d5f5f3e3d5ffd5b3d602081183d6020100218806101a0016101c011611009576101a0518060011c611009576102e052506102e0505060a0516370a0823161018052306101a0526020610180602461019c845afa6108cd573d5f5f3e3d5ffd5b60203d106110095761018090505161016052606435610160511015610964576020806101e0526008610180527f536c6970706167650000000000000000000000000000000000000000000000006101a052610180816101e001602882825e8051806020830101601f825f03163682375050601f19601f8251602001011690509050810190506308c379a06101c052806004016101dcfd5b60a05163a9059cbb610180526040516101a052610160516101c0526020610180604461019c5f855af1610999573d5f5f3e3d5ffd5b3d6109b057803b156110095760016101e0526109da565b3d602081183d602010021880610180016101a01161100957610180518060011c611009576101e052505b6101e090505115611009576040517fb2e76ae99761dc136e598d4a629bb347eccb9532a5f8bbd72e18467c3c34cc98600435610180526044356101a0526024356101c052610160516101e0526080610180a260206101605f5f5df35b632dd310008114600336111615610a5a573461100957602061102960403960206040f35b637535d2468118610af1573461100957602061106960403960206040f35b6344a706868118610af1573461100957602061104960403960206040f35b63d70620058118610ab4573461100957602061108960403960206040f35b633a7aae0d8118610af15734611009576402540be40060405260206040f35b6393a397768118610af157346110095760206110a960403960206040f35b5f5ffd5b60206110695f395f51634903b0d160c0525f60e052602060c0602460dc845afa610b21573d5f5f3e3d5ffd5b60203d106110095760c090505160a0525f60c052604051610eb25760206110495f395f516386b301ad610140526060610140600461015c845afa610b67573d5f5f3e3d5ffd5b60603d1061100957610140905060608160e05e5060206110695f395f516318160ddd610160526020610160600461017c845afa610ba6573d5f5f3e3d5ffd5b60203d10611009576101609050516101405260206110495f395f5163ddca3f43610180526020610180600461019c845afa610be3573d5f5f3e3d5ffd5b60203d10611009576101809050516101605260a0516101605180670de0b6b3a764000003670de0b6b3a7640000811161100957905080820281158383830414171561100957905090506101405180156110095780820490509050610180526101205161010051808203828111611009579050905060605180820182811061100957905090506101805160e0518082028115838383041417156110095790509050670de0b6b3a76400008104905080820382811161100957905090506101a0526101a0516fffffffffffffffffffffffffffffffff8111611009576002810a905060e0518060021b818160021c18611009579050610180518082028115838383041417156110095790509050670de0b6b3a764000081049050606051808202811583838304141715611009579050905080820182811061100957905090506101c0526101c0518060b5710100000000000000000000000000000000008210610d51578160801c91508060401b90505b69010000000000000000008210610d6f578160401c91508060201b90505b650100000000008210610d89578160201c91508060101b90505b63010000008210610da1578160101c91508060081b90505b620100008201810260121c9050808184040160011c9050808184040160011c9050808184040160011c9050808184040160011c9050808184040160011c9050808184040160011c9050808184040160011c905080830480828118828410021890509050905090506101a05180820382811161100957905090508060011c90506101e052608051610e9e5760206110695f395f51634903b0d1610220526001610240526020610220602461023c845afa610e5c573d5f5f3e3d5ffd5b60203d1061100957610220905051610200526101e05161020051808202811583838304141715611009579050905060a0518015611009578082049050905060c0525b60c05181526101e051602082015250611007565b60206110695f395f51634903b0d1610100526001610120526020610100602461011c845afa610ee3573d5f5f3e3d5ffd5b60203d106110095761010090505160e05260605160a051808202811583838304141715611009579050905060e0518015611009578082049050905061010052608051610ff75760206110695f395f516318160ddd610140526020610140600461015c845afa610f54573d5f5f3e3d5ffd5b60203d10611009576101409050516101205261012051606051808202811583838304141715611009579050905060e051801561100957808204905090506101405260206110495f395f5163556d6e9f610160526001610180525f6101a052610140516101c0526020610160606461017c845afa610fd3573d5f5f3e3d5ffd5b60203d106110095761016090505161010051808203828111611009579050905060c0525b60c0518152610100516020820152505b565b5f80fd0a780af106130a960af10af10a360af10af10af105f501090ad30018000000000000000000000000370a449febb9411c95bf897021377fe0b7d100c0000000000000000000000000a25306937dba98378c32f167588f5dc17a95c94b000000000000000000000000d9ff8396554a0d18b2cfbec53e1979b7ecce83730000000000000000000000002260fac5e5542a773aa44fbcfedf7c193bc2c599000000000000000000000000f939e0a03fb07f59a73314e73794be0e57ac1b4e00000000000000000000000062b792654eafffbbc483d69fa05f8ca4d0914af2

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.