frxETH Price: $1,634.48 (+3.38%)

Contract

0x331B9182088e2A7d6D3Fe4742AbA1fB231aEcc56

Overview

frxETH Balance | FXTL Balance

0 frxETH | 911,546 FXTL

frxETH Value

$0.00

Token Holdings

More Info

Private Name Tags

TokenTracker

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve191947402025-04-21 1:49:512 hrs ago1745200191IN
Frax Finance: CRV Token
0 frxETH0.000000050.00110025
Approve191918942025-04-21 0:14:593 hrs ago1745194499IN
Frax Finance: CRV Token
0 frxETH00.0000379
Approve191837052025-04-20 19:42:018 hrs ago1745178121IN
Frax Finance: CRV Token
0 frxETH0.000000050.00110025
Approve191807682025-04-20 18:04:0710 hrs ago1745172247IN
Frax Finance: CRV Token
0 frxETH0.000000040.00100025
Approve191803142025-04-20 17:48:5910 hrs ago1745171339IN
Frax Finance: CRV Token
0 frxETH0.000000040.00100025
Approve191793042025-04-20 17:15:1910 hrs ago1745169319IN
Frax Finance: CRV Token
0 frxETH0.000000050.00110025
Approve191692692025-04-20 11:40:4916 hrs ago1745149249IN
Frax Finance: CRV Token
0 frxETH0.000000050.00110025
Approve191679362025-04-20 10:56:2317 hrs ago1745146583IN
Frax Finance: CRV Token
0 frxETH00.00010026
Transfer191654752025-04-20 9:34:2118 hrs ago1745141661IN
Frax Finance: CRV Token
0 frxETH0.000000020.00100025
Approve191650742025-04-20 9:20:5918 hrs ago1745140859IN
Frax Finance: CRV Token
0 frxETH0.000000050.00110025
Approve191646642025-04-20 9:07:1919 hrs ago1745140039IN
Frax Finance: CRV Token
0 frxETH0.000000050.00110025
Transfer191631242025-04-20 8:15:5919 hrs ago1745136959IN
Frax Finance: CRV Token
0 frxETH0.000000050.00110025
Approve191598632025-04-20 6:27:1721 hrs ago1745130437IN
Frax Finance: CRV Token
0 frxETH0.000000050.00110025
Approve191596222025-04-20 6:19:1521 hrs ago1745129955IN
Frax Finance: CRV Token
0 frxETH00.00010025
Approve191593732025-04-20 6:10:5722 hrs ago1745129457IN
Frax Finance: CRV Token
0 frxETH0.000000020.00110025
Approve191590292025-04-20 5:59:2922 hrs ago1745128769IN
Frax Finance: CRV Token
0 frxETH0.000000040.00100025
Approve191589012025-04-20 5:55:1322 hrs ago1745128513IN
Frax Finance: CRV Token
0 frxETH0.000000050.001125
Approve191537322025-04-20 3:02:5525 hrs ago1745118175IN
Frax Finance: CRV Token
0 frxETH0.000000030.00110025
Approve191536412025-04-20 2:59:5325 hrs ago1745117993IN
Frax Finance: CRV Token
0 frxETH0.000000040.00100025
Approve191527102025-04-20 2:28:5125 hrs ago1745116131IN
Frax Finance: CRV Token
0 frxETH0.000000050.00110025
Approve191512292025-04-20 1:39:2926 hrs ago1745113169IN
Frax Finance: CRV Token
0 frxETH0.000000050.00110025
Transfer191462052025-04-19 22:52:0129 hrs ago1745103121IN
Frax Finance: CRV Token
0 frxETH0.000000050.00110025
Approve191431592025-04-19 21:10:2931 hrs ago1745097029IN
Frax Finance: CRV Token
0 frxETH0.000000040.00100025
Approve191404852025-04-19 19:41:2132 hrs ago1745091681IN
Frax Finance: CRV Token
0 frxETH0.000000050.00110025
Approve191376602025-04-19 18:07:1134 hrs ago1745086031IN
Frax Finance: CRV Token
0 frxETH0.000000050.00110025
View all transactions

Latest 1 internal transaction

Parent Transaction Hash Block From To
8169102024-02-20 15:55:31425 days ago1708444531  Contract Creation0 frxETH

Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
ERC20

Compiler Version
vyper:0.3.10

Optimization Enabled:
N/A

Other Settings:
default evmVersion, None license

Contract Source Code (Vyper language format)

# @version 0.3.10
"""
@title ERC20
@notice Bridged token implementation
"""
from vyper.interfaces import ERC20

implements: ERC20


interface ERC1271:
    def isValidSignature(_hash: bytes32, _signature: Bytes[65]) -> bytes4: view


event Approval:
    owner: indexed(address)
    spender: indexed(address)
    value: uint256

event Transfer:
    sender: indexed(address)
    receiver: indexed(address)
    value: uint256

event Mint:
    account: indexed(address)
    amount: uint256

event Burn:
    account: indexed(address)
    amount: uint256


decimals: public(constant(uint8)) = 18
version: public(constant(String[8])) = "v1.0.0"

ERC1271_MAGIC_VAL: constant(bytes4) = 0x1626ba7e
EIP712_TYPEHASH: constant(bytes32) = keccak256(
    "EIP712Domain(string name,string version,uint256 chainId,address verifyingContract,bytes32 salt)"
)
EIP2612_TYPEHASH: constant(bytes32) = keccak256(
    "Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)"
)
VERSION_HASH: constant(bytes32) = keccak256(version)


name: public(immutable(String[64]))
symbol: public(immutable(String[32]))
salt: public(immutable(bytes32))

NAME_HASH: immutable(bytes32)
CACHED_CHAIN_ID: immutable(uint256)
CACHED_DOMAIN_SEPARATOR: immutable(bytes32)

SUPPORTED_INTERFACES: constant(bytes4[3]) = [
    # ERC165: bytes4(keccak256('supportsInterface(bytes4)'))
    0x01ffc9a7,
    # Interface corresponding to the legacy L2StandardERC20:
    #   bytes4(keccak256('l1Token()')) == 0xc01e1bd6
    #   bytes4(keccak256('mint(address,uint256)')) == 0x40c10f19
    #   bytes4(keccak256('burn(address,uint256)')) == 0x9dc29fac
    0x1d1d8b63,
    # Interface corresponding to the updated OptimismMintableERC20.
    #   bytes4(keccak256('remoteToken()')) == 0xd6c0b2c4
    #   bytes4(keccak256('bridge()')) == 0xe78cea92
    #   bytes4(keccak256('mint(address,uint256)')) == 0x40c10f19
    #   bytes4(keccak256('burn(address,uint256)')) == 0x9dc29fac
    0xec4fc8e3,
]

allowance: public(HashMap[address, HashMap[address, uint256]])
balanceOf: public(HashMap[address, uint256])
totalSupply: public(uint256)

nonces: public(HashMap[address, uint256])
BRIDGE: public(immutable(address))
REMOTE_TOKEN: public(immutable(address))


@external
def __init__(_name: String[64], _symbol: String[32], _bridge: address, _remote_token: address):
    name = _name
    symbol = _symbol

    NAME_HASH = keccak256(_name)
    CACHED_CHAIN_ID = chain.id
    salt = block.prevhash
    CACHED_DOMAIN_SEPARATOR = keccak256(
        _abi_encode(
            EIP712_TYPEHASH,
            keccak256(_name),
            VERSION_HASH,
            chain.id,
            self,
            block.prevhash,
        )
    )

    BRIDGE = _bridge
    REMOTE_TOKEN = _remote_token


@internal
def _approve(_owner: address, _spender: address, _value: uint256):
    self.allowance[_owner][_spender] = _value

    log Approval(_owner, _spender, _value)


@internal
def _transfer(_from: address, _to: address, _value: uint256):
    assert _to not in [self, empty(address)]

    self.balanceOf[_from] -= _value
    self.balanceOf[_to] += _value

    log Transfer(_from, _to, _value)


@view
@internal
def _domain_separator() -> bytes32:
    if chain.id != CACHED_CHAIN_ID:
        return keccak256(
            _abi_encode(
                EIP712_TYPEHASH,
                NAME_HASH,
                VERSION_HASH,
                chain.id,
                self,
                salt,
            )
        )
    return CACHED_DOMAIN_SEPARATOR


@external
def transferFrom(_from: address, _to: address, _value: uint256) -> bool:
    """
    @notice Transfer tokens from one account to another.
    @dev The caller needs to have an allowance from account `_from` greater than or
        equal to the value being transferred. An allowance equal to the uint256 type's
        maximum, is considered infinite and does not decrease.
    @param _from The account which tokens will be spent from.
    @param _to The account which tokens will be sent to.
    @param _value The amount of tokens to be transferred.
    """
    allowance: uint256 = self.allowance[_from][msg.sender]
    if allowance != max_value(uint256):
        self._approve(_from, msg.sender, allowance - _value)

    self._transfer(_from, _to, _value)
    return True


@external
def transfer(_to: address, _value: uint256) -> bool:
    """
    @notice Transfer tokens to `_to`.
    @param _to The account to transfer tokens to.
    @param _value The amount of tokens to transfer.
    """
    self._transfer(msg.sender, _to, _value)
    return True


@external
def approve(_spender: address, _value: uint256) -> bool:
    """
    @notice Allow `_spender` to transfer up to `_value` amount of tokens from the caller's account.
    @dev Non-zero to non-zero approvals are allowed, but should be used cautiously. The methods
        increaseAllowance + decreaseAllowance are available to prevent any front-running that
        may occur.
    @param _spender The account permitted to spend up to `_value` amount of caller's funds.
    @param _value The amount of tokens `_spender` is allowed to spend.
    """
    self._approve(msg.sender, _spender, _value)
    return True


@external
def permit(
    _owner: address,
    _spender: address,
    _value: uint256,
    _deadline: uint256,
    _v: uint8,
    _r: bytes32,
    _s: bytes32,
) -> bool:
    """
    @notice Permit `_spender` to spend up to `_value` amount of `_owner`'s tokens via a signature.
    @dev In the event of a chain fork, replay attacks are prevented as domain separator is recalculated.
        However, this is only if the resulting chains update their chainId.
    @param _owner The account which generated the signature and is granting an allowance.
    @param _spender The account which will be granted an allowance.
    @param _value The approval amount.
    @param _deadline The deadline by which the signature must be submitted.
    @param _v The last byte of the ECDSA signature.
    @param _r The first 32 bytes of the ECDSA signature.
    @param _s The second 32 bytes of the ECDSA signature.
    """
    assert _owner != empty(address) and block.timestamp <= _deadline

    nonce: uint256 = self.nonces[_owner]
    digest: bytes32 = keccak256(
        concat(
            b"\x19\x01",
            self._domain_separator(),
            keccak256(_abi_encode(EIP2612_TYPEHASH, _owner, _spender, _value, nonce, _deadline)),
        )
    )

    if _owner.is_contract:
        sig: Bytes[65] = concat(_abi_encode(_r, _s), slice(convert(_v, bytes32), 31, 1))
        assert ERC1271(_owner).isValidSignature(digest, sig) == ERC1271_MAGIC_VAL
    else:
        assert ecrecover(digest, _v, _r, _s) == _owner

    self.nonces[_owner] = nonce + 1
    self._approve(_owner, _spender, _value)
    return True


@external
def increaseAllowance(_spender: address, _add_value: uint256) -> bool:
    """
    @notice Increase the allowance granted to `_spender`.
    @dev This function will never overflow, and instead will bound
        allowance to MAX_UINT256. This has the potential to grant an
        infinite approval.
    @param _spender The account to increase the allowance of.
    @param _add_value The amount to increase the allowance by.
    """
    cached_allowance: uint256 = self.allowance[msg.sender][_spender]
    allowance: uint256 = unsafe_add(cached_allowance, _add_value)

    # check for an overflow
    if allowance < cached_allowance:
        allowance = max_value(uint256)

    if allowance != cached_allowance:
        self._approve(msg.sender, _spender, allowance)

    return True


@external
def decreaseAllowance(_spender: address, _sub_value: uint256) -> bool:
    """
    @notice Decrease the allowance granted to `_spender`.
    @dev This function will never underflow, and instead will bound
        allowance to 0.
    @param _spender The account to decrease the allowance of.
    @param _sub_value The amount to decrease the allowance by.
    """
    cached_allowance: uint256 = self.allowance[msg.sender][_spender]
    allowance: uint256 = unsafe_sub(cached_allowance, _sub_value)

    # check for an underflow
    if cached_allowance < allowance:
        allowance = 0

    if allowance != cached_allowance:
        self._approve(msg.sender, _spender, allowance)

    return True


@view
@external
def DOMAIN_SEPARATOR() -> bytes32:
    """
    @notice EIP712 domain separator.
    """
    return self._domain_separator()


@pure
@external
def supportsInterface(_interface_id: bytes4) -> bool:
    """
    @dev Interface identification is specified in ERC-165.
    @param interface_id Id of the interface
    """
    return _interface_id in SUPPORTED_INTERFACES


@pure
@external
def bridge() -> address:
    """
    @notice Address of bridge contract.
    @dev Legacy, use `BRIDGE`
    """
    return BRIDGE


@pure
@external
def l1Token() -> address:
    """
    @notice Address of token on L1.
    @dev Legacy, use `REMOTE_TOKEN`
    """
    return REMOTE_TOKEN


@pure
@external
def remoteToken() -> address:
    """
    @notice Address of token on L1.
    @dev Legacy, use `REMOTE_TOKEN`
    """
    return REMOTE_TOKEN


@external
def mint(_to: address, _value: uint256):
    """
    @notice Mint `_value` amount of tokens to `_to`.
    @dev Only callable by an bridge.
    @param _to The account newly minted tokens are credited to.
    @param _value Amount of token to mint
    """
    assert msg.sender == BRIDGE
    assert _to not in [self, empty(address)]

    self.balanceOf[_to] += _value
    self.totalSupply += _value

    log Transfer(empty(address), _to, _value)
    log Mint(_to, _value)


@external
def burn(_from: address, _value: uint256):
    """
    @notice Burn `_value` amount of tokens from `_from`.
    @dev Only callable by bridge.
    @param _from The account to burn the tokens from.
    @param _value The amount of tokens to burn.
    """
    assert msg.sender == BRIDGE

    self.balanceOf[_from] -= _value
    self.totalSupply -= _value

    log Transfer(_from, empty(address), _value)
    log Burn(_from, _value)

Contract Security Audit

Contract ABI

API
[{"name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true},{"name":"spender","type":"address","indexed":true},{"name":"value","type":"uint256","indexed":false}],"anonymous":false,"type":"event"},{"name":"Transfer","inputs":[{"name":"sender","type":"address","indexed":true},{"name":"receiver","type":"address","indexed":true},{"name":"value","type":"uint256","indexed":false}],"anonymous":false,"type":"event"},{"name":"Mint","inputs":[{"name":"account","type":"address","indexed":true},{"name":"amount","type":"uint256","indexed":false}],"anonymous":false,"type":"event"},{"name":"Burn","inputs":[{"name":"account","type":"address","indexed":true},{"name":"amount","type":"uint256","indexed":false}],"anonymous":false,"type":"event"},{"stateMutability":"nonpayable","type":"constructor","inputs":[{"name":"_name","type":"string"},{"name":"_symbol","type":"string"},{"name":"_bridge","type":"address"},{"name":"_remote_token","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"transferFrom","inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"nonpayable","type":"function","name":"transfer","inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"nonpayable","type":"function","name":"approve","inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"nonpayable","type":"function","name":"permit","inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"},{"name":"_deadline","type":"uint256"},{"name":"_v","type":"uint8"},{"name":"_r","type":"bytes32"},{"name":"_s","type":"bytes32"}],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"nonpayable","type":"function","name":"increaseAllowance","inputs":[{"name":"_spender","type":"address"},{"name":"_add_value","type":"uint256"}],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"nonpayable","type":"function","name":"decreaseAllowance","inputs":[{"name":"_spender","type":"address"},{"name":"_sub_value","type":"uint256"}],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"view","type":"function","name":"DOMAIN_SEPARATOR","inputs":[],"outputs":[{"name":"","type":"bytes32"}]},{"stateMutability":"pure","type":"function","name":"supportsInterface","inputs":[{"name":"_interface_id","type":"bytes4"}],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"pure","type":"function","name":"bridge","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"pure","type":"function","name":"l1Token","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"pure","type":"function","name":"remoteToken","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"nonpayable","type":"function","name":"mint","inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"burn","inputs":[{"name":"_from","type":"address"},{"name":"_value","type":"uint256"}],"outputs":[]},{"stateMutability":"view","type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8"}]},{"stateMutability":"view","type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"string"}]},{"stateMutability":"view","type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string"}]},{"stateMutability":"view","type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string"}]},{"stateMutability":"view","type":"function","name":"salt","inputs":[],"outputs":[{"name":"","type":"bytes32"}]},{"stateMutability":"view","type":"function","name":"allowance","inputs":[{"name":"arg0","type":"address"},{"name":"arg1","type":"address"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"balanceOf","inputs":[{"name":"arg0","type":"address"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"nonces","inputs":[{"name":"arg0","type":"address"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"BRIDGE","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"REMOTE_TOKEN","inputs":[],"outputs":[{"name":"","type":"address"}]}]

610e805150346101cd576020610f285f395f516040602082610f28015f395f51116101cd576020602082610f28015f395f51018082610f280160403950506020610f485f395f516020602082610f28015f395f51116101cd576020602082610f28015f395f51018082610f280160a03950506020610f685f395f518060a01c6101cd5760e0526020610f885f395f518060a01c6101cd57610100526020604051015f81601f0160051c600381116101cd5780156100d457905b8060051b604001518160051b610d4001526001018181186100b8575b505050602060a051015f81601f0160051c600281116101cd57801561011457905b8060051b60a001518160051b606001610d4001526001018181186100f5575b505050604051606020610e005246610e20526001430340610de0527fd87cd6ef79d4e2b95e15ce8abf732db51ec771f1ca2edccf22a46c729ac5647261014052604051606020610160527f15124d26d1272f8d4d5266a24ca397811f414b8cd05a53b26b745f63af5ae2fc61018052466101a052306101c05260014303406101e05260c061012052610120805160208201209050610e405260e051610e605261010051610e8052610d406101d161000039610ea0610000f35b5f80fd5f3560e01c60026019820660011b610d0e01601e395f51565b63313ce5678118610b885734610d0a57601260405260206040f3610b88565b6354fd4d5081186100b55734610d0a5760208060805260066040527f76312e302e30000000000000000000000000000000000000000000000000000060605260408160800181518152602082015160208201528051806020830101601f825f03163682375050601f19601f8251602001011690509050810190506080f35b6301ffc9a78118610b8857602436103417610d0a576004358060201b610d0a576040526040517f01ffc9a700000000000000000000000000000000000000000000000000000000811861010957600161015c565b7f1d1d8b6300000000000000000000000000000000000000000000000000000000811861013757600161015c565b7fec4fc8e3000000000000000000000000000000000000000000000000000000008118155b905060805260206080f3610b88565b6306fdde0381186101c15734610d0a576020806040528060400160206020610d405f395f510180610d408339508051806020830101601f825f03163682375050601f19601f825160200101169050810190506040f35b6323b872dd8118610b8857606436103417610d0a576004358060a01c610d0a5760c0526024358060a01c610d0a5760e0525f60c0516020525f5260405f2080336020525f5260405f20905054610100527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61010051146102655760c0516040523360605261010051604435808203828111610d0a5790509050608052610265610b8c565b60c05160405260e05160605260443560805261027f610be0565b6001610120526020610120f3610b88565b6395d89b4181186102e65734610d0a576020806040528060400160206020610da05f395f510180610da08339508051806020830101601f825f03163682375050601f19601f825160200101169050810190506040f35b63395093518118610b8857604436103417610d0a576004358060a01c610d0a5760c0525f336020525f5260405f208060c0516020525f5260405f2090505460e05260243560e051016101005260e051610100511015610365577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610100525b60e051610100511461038a573360405260c0516060526101005160805261038a610b8c565b6001610120526020610120f3610b88565b63bfa0b1338118610b885734610d0a576020610de060403960206040f3610b88565b63dd62ed3e8118610b8857604436103417610d0a576004358060a01c610d0a576040526024358060a01c610d0a576060525f6040516020525f5260405f20806060516020525f5260405f2090505460805260206080f3610b88565b6370a082318118610b8857602436103417610d0a576004358060a01c610d0a5760405260016040516020525f5260405f205460605260206060f3610b88565b6318160ddd81186104735734610d0a5760025460405260206040f35b63d6c0b2c48118610b885734610d0a576020610e8060403960206040f3610b88565b637ecebe0081146003361116156104d657602436103417610d0a576004358060a01c610d0a5760405260036040516020525f5260405f205460605260206060f35b639dc29fac8118610b8857604436103417610d0a576004358060a01c610d0a576040526020610e605f395f513318610d0a5760016040516020525f5260405f208054602435808203828111610d0a5790509050815550600254602435808203828111610d0a57905090506002555f6040517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60243560605260206060a36040517fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca560243560605260206060a200610b88565b63ee9a31a28118610b885734610d0a576020610e6060403960206040f3610b88565b63033964be8118610b885734610d0a576020610e8060403960206040f3610b88565b63a9059cbb811861063257604436103417610d0a576004358060a01c610d0a5760c0523360405260c051606052602435608052610627610be0565b600160e052602060e0f35b633644e5158118610b885734610d0a57602061064f610120610c77565b610120f3610b88565b63095ea7b38118610b8857604436103417610d0a576004358060a01c610d0a5760c0523360405260c051606052602435608052610693610b8c565b600160e052602060e0f3610b88565b63d505accf8118610b885760e436103417610d0a576004358060a01c610d0a57610120526024358060a01c610d0a57610140526084358060081c610d0a576101605261012051156106f8576064354211156106fa565b5f5b15610d0a576003610120516020525f5260405f2054610180525f60026101c0527f19010000000000000000000000000000000000000000000000000000000000006101e0526101c0805160208201836103200181518152505080830192505050610765610200610c77565b610200518161032001526020810190507f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c961024052610120516102605261014051610280526044356102a052610180516102c0526064356102e05260c061022052610220805160208201209050816103200152602081019050806103005261030090508051602082012090506101a052610120513b1561093e575f604060a46102603760406102405261024080516020820183610320018281848460045afa50505080830192505050610160516102a0526102a0601f810180516102e0525060016102c0526102c09050805160208201836103200181518152505080830192505050806103005261030090506020815101806101c0828460045afa5050507f1626ba7e0000000000000000000000000000000000000000000000000000000061012051631626ba7e6102405260406101a051610260528061028052806102600160206101c051018082826101c060045afa50508051806020830101601f825f03163682375050601f19601f82516020010116905081015050602061024060c461025c845afa610916573d5f5f3e3d5ffd5b60203d10610d0a57610240518060201b610d0a576103205261032090505118610d0a57610978565b610120515f610240526101a0516101c052610160516101e052604060a461020037602061024060806101c060015afa506102405118610d0a575b6101805160018101818110610d0a5790506003610120516020525f5260405f205561012051604052610140516060526044356080526109b5610b8c565b60016101c05260206101c0f3610b88565b63a457c2d78118610b8857604436103417610d0a576004358060a01c610d0a5760c0525f336020525f5260405f208060c0516020525f5260405f2090505460e05260243560e05103610100526101005160e0511015610a25575f610100525b60e0516101005114610a4a573360405260c05160605261010051608052610a4a610b8c565b6001610120526020610120f3610b88565b63e78cea928118610b885734610d0a576020610e6060403960206040f3610b88565b63c01e1bd68118610b885734610d0a576020610e8060403960206040f3610b88565b6340c10f198118610b8857604436103417610d0a576004358060a01c610d0a576040526020610e605f395f513318610d0a57604051308114610ae357801515610ae5565b5f5b905015610d0a5760016040516020525f5260405f208054602435808201828110610d0a5790509050815550600254602435808201828110610d0a57905090506002556040515f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60243560605260206060a36040517f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d412139688560243560605260206060a2005b5f5ffd5b6080515f6040516020525f5260405f20806060516020525f5260405f209050556060516040517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560805160a052602060a0a3565b606051308114610bf257801515610bf4565b5f5b905015610d0a5760016040516020525f5260405f208054608051808203828111610d0a579050905081555060016060516020525f5260405f208054608051808201828110610d0a57905090508155506060516040517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60805160a052602060a0a3565b6020610e205f395f514614610cff577fd87cd6ef79d4e2b95e15ce8abf732db51ec771f1ca2edccf22a46c729ac564726060526020610e006080397f15124d26d1272f8d4d5266a24ca397811f414b8cd05a53b26b745f63af5ae2fc60a0524660c0523060e0526020610de06101003960c06040526040805160208201209050815250610d08565b6020610e408239505b565b5f80fd04570b8806a20a7d039b0290041805ec05a8065809c60a5b0a9f0b88016b05ca0b880b880b8800370b880018049503bd0b8884190d40811832190160a16576797065728300030a0017000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000004200000000000000000000000000000000000010000000000000000000000000d533a949740bb3306d119cc777fa900ba034cd52000000000000000000000000000000000000000000000000000000000000000f43757276652044414f20546f6b656e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034352560000000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x5f3560e01c60026019820660011b610d0e01601e395f51565b63313ce5678118610b885734610d0a57601260405260206040f3610b88565b6354fd4d5081186100b55734610d0a5760208060805260066040527f76312e302e30000000000000000000000000000000000000000000000000000060605260408160800181518152602082015160208201528051806020830101601f825f03163682375050601f19601f8251602001011690509050810190506080f35b6301ffc9a78118610b8857602436103417610d0a576004358060201b610d0a576040526040517f01ffc9a700000000000000000000000000000000000000000000000000000000811861010957600161015c565b7f1d1d8b6300000000000000000000000000000000000000000000000000000000811861013757600161015c565b7fec4fc8e3000000000000000000000000000000000000000000000000000000008118155b905060805260206080f3610b88565b6306fdde0381186101c15734610d0a576020806040528060400160206020610d405f395f510180610d408339508051806020830101601f825f03163682375050601f19601f825160200101169050810190506040f35b6323b872dd8118610b8857606436103417610d0a576004358060a01c610d0a5760c0526024358060a01c610d0a5760e0525f60c0516020525f5260405f2080336020525f5260405f20905054610100527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61010051146102655760c0516040523360605261010051604435808203828111610d0a5790509050608052610265610b8c565b60c05160405260e05160605260443560805261027f610be0565b6001610120526020610120f3610b88565b6395d89b4181186102e65734610d0a576020806040528060400160206020610da05f395f510180610da08339508051806020830101601f825f03163682375050601f19601f825160200101169050810190506040f35b63395093518118610b8857604436103417610d0a576004358060a01c610d0a5760c0525f336020525f5260405f208060c0516020525f5260405f2090505460e05260243560e051016101005260e051610100511015610365577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610100525b60e051610100511461038a573360405260c0516060526101005160805261038a610b8c565b6001610120526020610120f3610b88565b63bfa0b1338118610b885734610d0a576020610de060403960206040f3610b88565b63dd62ed3e8118610b8857604436103417610d0a576004358060a01c610d0a576040526024358060a01c610d0a576060525f6040516020525f5260405f20806060516020525f5260405f2090505460805260206080f3610b88565b6370a082318118610b8857602436103417610d0a576004358060a01c610d0a5760405260016040516020525f5260405f205460605260206060f3610b88565b6318160ddd81186104735734610d0a5760025460405260206040f35b63d6c0b2c48118610b885734610d0a576020610e8060403960206040f3610b88565b637ecebe0081146003361116156104d657602436103417610d0a576004358060a01c610d0a5760405260036040516020525f5260405f205460605260206060f35b639dc29fac8118610b8857604436103417610d0a576004358060a01c610d0a576040526020610e605f395f513318610d0a5760016040516020525f5260405f208054602435808203828111610d0a5790509050815550600254602435808203828111610d0a57905090506002555f6040517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60243560605260206060a36040517fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca560243560605260206060a200610b88565b63ee9a31a28118610b885734610d0a576020610e6060403960206040f3610b88565b63033964be8118610b885734610d0a576020610e8060403960206040f3610b88565b63a9059cbb811861063257604436103417610d0a576004358060a01c610d0a5760c0523360405260c051606052602435608052610627610be0565b600160e052602060e0f35b633644e5158118610b885734610d0a57602061064f610120610c77565b610120f3610b88565b63095ea7b38118610b8857604436103417610d0a576004358060a01c610d0a5760c0523360405260c051606052602435608052610693610b8c565b600160e052602060e0f3610b88565b63d505accf8118610b885760e436103417610d0a576004358060a01c610d0a57610120526024358060a01c610d0a57610140526084358060081c610d0a576101605261012051156106f8576064354211156106fa565b5f5b15610d0a576003610120516020525f5260405f2054610180525f60026101c0527f19010000000000000000000000000000000000000000000000000000000000006101e0526101c0805160208201836103200181518152505080830192505050610765610200610c77565b610200518161032001526020810190507f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c961024052610120516102605261014051610280526044356102a052610180516102c0526064356102e05260c061022052610220805160208201209050816103200152602081019050806103005261030090508051602082012090506101a052610120513b1561093e575f604060a46102603760406102405261024080516020820183610320018281848460045afa50505080830192505050610160516102a0526102a0601f810180516102e0525060016102c0526102c09050805160208201836103200181518152505080830192505050806103005261030090506020815101806101c0828460045afa5050507f1626ba7e0000000000000000000000000000000000000000000000000000000061012051631626ba7e6102405260406101a051610260528061028052806102600160206101c051018082826101c060045afa50508051806020830101601f825f03163682375050601f19601f82516020010116905081015050602061024060c461025c845afa610916573d5f5f3e3d5ffd5b60203d10610d0a57610240518060201b610d0a576103205261032090505118610d0a57610978565b610120515f610240526101a0516101c052610160516101e052604060a461020037602061024060806101c060015afa506102405118610d0a575b6101805160018101818110610d0a5790506003610120516020525f5260405f205561012051604052610140516060526044356080526109b5610b8c565b60016101c05260206101c0f3610b88565b63a457c2d78118610b8857604436103417610d0a576004358060a01c610d0a5760c0525f336020525f5260405f208060c0516020525f5260405f2090505460e05260243560e05103610100526101005160e0511015610a25575f610100525b60e0516101005114610a4a573360405260c05160605261010051608052610a4a610b8c565b6001610120526020610120f3610b88565b63e78cea928118610b885734610d0a576020610e6060403960206040f3610b88565b63c01e1bd68118610b885734610d0a576020610e8060403960206040f3610b88565b6340c10f198118610b8857604436103417610d0a576004358060a01c610d0a576040526020610e605f395f513318610d0a57604051308114610ae357801515610ae5565b5f5b905015610d0a5760016040516020525f5260405f208054602435808201828110610d0a5790509050815550600254602435808201828110610d0a57905090506002556040515f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60243560605260206060a36040517f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d412139688560243560605260206060a2005b5f5ffd5b6080515f6040516020525f5260405f20806060516020525f5260405f209050556060516040517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560805160a052602060a0a3565b606051308114610bf257801515610bf4565b5f5b905015610d0a5760016040516020525f5260405f208054608051808203828111610d0a579050905081555060016060516020525f5260405f208054608051808201828110610d0a57905090508155506060516040517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60805160a052602060a0a3565b6020610e205f395f514614610cff577fd87cd6ef79d4e2b95e15ce8abf732db51ec771f1ca2edccf22a46c729ac564726060526020610e006080397f15124d26d1272f8d4d5266a24ca397811f414b8cd05a53b26b745f63af5ae2fc60a0524660c0523060e0526020610de06101003960c06040526040805160208201209050815250610d08565b6020610e408239505b565b5f80fd04570b8806a20a7d039b0290041805ec05a8065809c60a5b0a9f0b88016b05ca0b880b880b8800370b880018049503bd0b88000000000000000000000000000000000000000000000000000000000000000f43757276652044414f20546f6b656e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034352560000000000000000000000000000000000000000000000000000000000cbdc3d6d0fd2e2db8fb14cf12fe81ac0ea85b312874b82cbdbabebf36ea4b8fa9f8677a1fd4b02d0a7b641e866cb02a22994bd45292cfd173416a660877ce3f200000000000000000000000000000000000000000000000000000000000000fc501ce0b5faf81d62d4f864c642ae87b58f3626bb8c23f2a0b8dbb272cd8914240000000000000000000000004200000000000000000000000000000000000010000000000000000000000000d533a949740bb3306d119cc777fa900ba034cd52

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

000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000004200000000000000000000000000000000000010000000000000000000000000d533a949740bb3306d119cc777fa900ba034cd52000000000000000000000000000000000000000000000000000000000000000f43757276652044414f20546f6b656e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034352560000000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : _name (string): Curve DAO Token
Arg [1] : _symbol (string): CRV
Arg [2] : _bridge (address): 0x4200000000000000000000000000000000000010
Arg [3] : _remote_token (address): 0xD533a949740bb3306d119CC777fa900bA034cd52

-----Encoded View---------------
8 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000c0
Arg [2] : 0000000000000000000000004200000000000000000000000000000000000010
Arg [3] : 000000000000000000000000d533a949740bb3306d119cc777fa900ba034cd52
Arg [4] : 000000000000000000000000000000000000000000000000000000000000000f
Arg [5] : 43757276652044414f20546f6b656e0000000000000000000000000000000000
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [7] : 4352560000000000000000000000000000000000000000000000000000000000


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
[ 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.