Overview
ETH Balance
0 ETH
ETH Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
107386225 | 503 days ago | 0 ETH | ||||
107386225 | 503 days ago | 0 ETH | ||||
107386225 | 503 days ago | 0 ETH | ||||
107386225 | 503 days ago | 0 ETH | ||||
107386225 | 503 days ago | 0 ETH | ||||
107386225 | 503 days ago | 0 ETH | ||||
107386225 | 503 days ago | 0 ETH | ||||
107386225 | 503 days ago | 0 ETH | ||||
107386225 | 503 days ago | 0 ETH | ||||
107386225 | 503 days ago | 0 ETH | ||||
107386225 | 503 days ago | 0 ETH | ||||
107386225 | 503 days ago | 0 ETH | ||||
107386225 | 503 days ago | 0 ETH | ||||
107386225 | 503 days ago | 0 ETH | ||||
107386225 | 503 days ago | 0 ETH | ||||
107386225 | 503 days ago | 0 ETH | ||||
107386225 | 503 days ago | 0 ETH | ||||
107386225 | 503 days ago | 0 ETH | ||||
107386225 | 503 days ago | 0 ETH | ||||
107386225 | 503 days ago | 0 ETH | ||||
107386225 | 503 days ago | 0 ETH | ||||
107386225 | 503 days ago | 0 ETH | ||||
107084919 | 510 days ago | 0 ETH | ||||
107084919 | 510 days ago | 0 ETH | ||||
107084919 | 510 days ago | 0 ETH |
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
Vyper_contract
Compiler Version
vyper:0.3.0
Contract Source Code (Vyper language format)
# @version 0.3.0 """ @title Swap Burner @notice Swaps an asset into another asset using a specific pool, and forwards to another burner """ from vyper.interfaces import ERC20 interface StableSwap: def exchange(i: int128, j: int128, dx: uint256, min_dy: uint256): nonpayable interface CryptoPool: def exchange(i: uint256, j: uint256, dx: uint256, min_dy: uint256): payable def get_dy(i: uint256, j: uint256, amount: uint256) -> uint256: view interface CryptoPoolETH: def exchange(i: uint256, j: uint256, dx: uint256, min_dy: uint256, use_eth: bool): payable struct SwapData: pool: address coin: address receiver: address i: uint256 j: uint256 is_cryptoswap: bool ETH_ADDRESS: constant(address) = 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE is_approved: HashMap[address, HashMap[address, bool]] swap_data: public(HashMap[address, SwapData]) recovery: public(address) is_killed: public(bool) owner: public(address) emergency_owner: public(address) future_owner: public(address) future_emergency_owner: public(address) @external def __init__(_recovery: address, _owner: address, _emergency_owner: address): """ @notice Contract constructor @dev Unlike other burners, this contract may transfer tokens to multiple addresses after the swap. Receiver addresses are set by calling `set_swap_data` instead of setting it within the constructor. @param _recovery Address that tokens are transferred to during an emergency token recovery. @param _owner Owner address. Can kill the contract, recover tokens and modify the recovery address. @param _emergency_owner Emergency owner address. Can kill the contract and recover tokens. """ self.recovery = _recovery self.owner = _owner self.emergency_owner = _emergency_owner @payable @external def __default__(): # required to receive ether during intermediate swaps pass @payable @external def burn(_coin: address) -> bool: """ @notice Convert `_coin` by removing liquidity and transfer to another burner @param _coin Address of the coin being converted @return bool success """ assert not self.is_killed # dev: is killed amount: uint256 = 0 eth_amount: uint256 = 0 if _coin == ETH_ADDRESS: amount = self.balance eth_amount = self.balance else: # transfer coins from caller amount = ERC20(_coin).balanceOf(msg.sender) if amount != 0: response: Bytes[32] = raw_call( _coin, _abi_encode( msg.sender, self, amount, method_id=method_id("transferFrom(address,address,uint256)") ), max_outsize=32, ) if len(response) != 0: assert convert(response, bool) # get actual balance in case of transfer fee or pre-existing balance amount = ERC20(_coin).balanceOf(self) if amount != 0: swap_data: SwapData = self.swap_data[_coin] if not swap_data.is_cryptoswap: StableSwap(swap_data.pool).exchange(convert(swap_data.i, int128), convert(swap_data.j, int128), amount, 0) elif _coin == ETH_ADDRESS or swap_data.coin == ETH_ADDRESS: CryptoPoolETH(swap_data.pool).exchange(swap_data.i, swap_data.j, amount, 0, True, value=eth_amount) else: CryptoPool(swap_data.pool).exchange(swap_data.i, swap_data.j, amount, 0) if swap_data.receiver != ZERO_ADDRESS: amount = ERC20(swap_data.coin).balanceOf(self) response: Bytes[32] = raw_call( swap_data.coin, _abi_encode(swap_data.receiver, amount, method_id=method_id("transfer(address,uint256)")), max_outsize=32, ) if len(response) != 0: assert convert(response, bool) return True @external def set_swap_data( _from: address, _to: address, _pool: address, _receiver: address, i: uint256, j: uint256, _is_cryptoswap: bool ) -> bool: """ @notice Set conversion and transfer data for `_from` @return bool success """ assert msg.sender in [self.owner, self.emergency_owner] # dev: only owner self.swap_data[_from] = SwapData({ pool: _pool, coin: _to, receiver: _receiver, i: i, j: j, is_cryptoswap: _is_cryptoswap }) if _from != ETH_ADDRESS: response: Bytes[32] = raw_call( _from, _abi_encode(_pool, MAX_UINT256, method_id=method_id("approve(address,uint256)")), max_outsize=32, ) if len(response) != 0: assert convert(response, bool) return True @external def recover_balance(_coin: address) -> bool: """ @notice Recover ERC20 tokens from this contract @dev Tokens are sent to the recovery address @param _coin Token address @return bool success """ assert msg.sender in [self.owner, self.emergency_owner] # dev: only owner amount: uint256 = ERC20(_coin).balanceOf(self) response: Bytes[32] = raw_call( _coin, _abi_encode(self.recovery, amount, method_id=method_id("transfer(address,uint256)")), max_outsize=32, ) if len(response) != 0: assert convert(response, bool) return True @external def set_recovery(_recovery: address) -> bool: """ @notice Set the token recovery address @param _recovery Token recovery address @return bool success """ assert msg.sender == self.owner # dev: only owner self.recovery = _recovery return True @external def set_killed(_is_killed: bool) -> bool: """ @notice Set killed status for this contract @dev When killed, the `burn` function cannot be called @param _is_killed Killed status @return bool success """ assert msg.sender in [self.owner, self.emergency_owner] # dev: only owner self.is_killed = _is_killed return True @external def commit_transfer_ownership(_future_owner: address) -> bool: """ @notice Commit a transfer of ownership @dev Must be accepted by the new owner via `accept_transfer_ownership` @param _future_owner New owner address @return bool success """ assert msg.sender == self.owner # dev: only owner self.future_owner = _future_owner return True @external def accept_transfer_ownership() -> bool: """ @notice Accept a transfer of ownership @return bool success """ assert msg.sender == self.future_owner # dev: only owner self.owner = msg.sender return True @external def commit_transfer_emergency_ownership(_future_owner: address) -> bool: """ @notice Commit a transfer of ownership @dev Must be accepted by the new owner via `accept_transfer_ownership` @param _future_owner New owner address @return bool success """ assert msg.sender == self.emergency_owner # dev: only owner self.future_emergency_owner = _future_owner return True @external def accept_transfer_emergency_ownership() -> bool: """ @notice Accept a transfer of ownership @return bool success """ assert msg.sender == self.future_emergency_owner # dev: only owner self.emergency_owner = msg.sender return True
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"stateMutability":"nonpayable","type":"constructor","inputs":[{"name":"_recovery","type":"address"},{"name":"_owner","type":"address"},{"name":"_emergency_owner","type":"address"}],"outputs":[]},{"stateMutability":"payable","type":"fallback"},{"stateMutability":"payable","type":"function","name":"burn","inputs":[{"name":"_coin","type":"address"}],"outputs":[{"name":"","type":"bool"}],"gas":76929},{"stateMutability":"nonpayable","type":"function","name":"set_swap_data","inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_pool","type":"address"},{"name":"_receiver","type":"address"},{"name":"i","type":"uint256"},{"name":"j","type":"uint256"},{"name":"_is_cryptoswap","type":"bool"}],"outputs":[{"name":"","type":"bool"}],"gas":223677},{"stateMutability":"nonpayable","type":"function","name":"recover_balance","inputs":[{"name":"_coin","type":"address"}],"outputs":[{"name":"","type":"bool"}],"gas":17294},{"stateMutability":"nonpayable","type":"function","name":"set_recovery","inputs":[{"name":"_recovery","type":"address"}],"outputs":[{"name":"","type":"bool"}],"gas":37965},{"stateMutability":"nonpayable","type":"function","name":"set_killed","inputs":[{"name":"_is_killed","type":"bool"}],"outputs":[{"name":"","type":"bool"}],"gas":40543},{"stateMutability":"nonpayable","type":"function","name":"commit_transfer_ownership","inputs":[{"name":"_future_owner","type":"address"}],"outputs":[{"name":"","type":"bool"}],"gas":38025},{"stateMutability":"nonpayable","type":"function","name":"accept_transfer_ownership","inputs":[],"outputs":[{"name":"","type":"bool"}],"gas":37894},{"stateMutability":"nonpayable","type":"function","name":"commit_transfer_emergency_ownership","inputs":[{"name":"_future_owner","type":"address"}],"outputs":[{"name":"","type":"bool"}],"gas":38085},{"stateMutability":"nonpayable","type":"function","name":"accept_transfer_emergency_ownership","inputs":[],"outputs":[{"name":"","type":"bool"}],"gas":37954},{"stateMutability":"view","type":"function","name":"swap_data","inputs":[{"name":"arg0","type":"address"}],"outputs":[{"name":"","type":"tuple","components":[{"name":"pool","type":"address"},{"name":"coin","type":"address"},{"name":"receiver","type":"address"},{"name":"i","type":"uint256"},{"name":"j","type":"uint256"},{"name":"is_cryptoswap","type":"bool"}]}],"gas":13793},{"stateMutability":"view","type":"function","name":"recovery","inputs":[],"outputs":[{"name":"","type":"address"}],"gas":2916},{"stateMutability":"view","type":"function","name":"is_killed","inputs":[],"outputs":[{"name":"","type":"bool"}],"gas":2946},{"stateMutability":"view","type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address"}],"gas":2976},{"stateMutability":"view","type":"function","name":"emergency_owner","inputs":[],"outputs":[{"name":"","type":"address"}],"gas":3006},{"stateMutability":"view","type":"function","name":"future_owner","inputs":[],"outputs":[{"name":"","type":"address"}],"gas":3036},{"stateMutability":"view","type":"function","name":"future_emergency_owner","inputs":[],"outputs":[{"name":"","type":"address"}],"gas":3066}]
Contract Creation Code
6f7fffffffffffffffffffffffffffffff6040526020610ba060c03960c0518060a01c610b9b578090506101405260206020610ba00160c03960c0518060a01c610b9b578090506101605260206040610ba00160c03960c0518060a01c610b9b5780905061018052610140516002556101605160045561018051600555610b8356600436101561000d57610afb565b60046000601c376f7fffffffffffffffffffffffffffffff6040526000516389afcb4481141561047c576004358060a01c610afd5780905061014052600354610afd576040366101603773eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee61014051141561008557476101605247610180526101c8565b6370a082316101a052336101c05260206101a060246101bc610140515afa15610afd57601f3d1115610afd576101a051610160526000610160511815610193576323b872dd6101e45260043361020452306102245261016051610244526060016101e0526101e08051602001806102808284600060045af115610afd5750506020610340610280516102a06000610140515af115610afd5760203d8082111561012e5780610130565b815b90509050610320526103208051602001806101a08284600060045af115610afd57505060006101a0511815610192576101a08060200151600082518060209013610afd5780919012610afd57806020036101000a820490509050905015610afd575b5b6370a082316101a052306101c05260206101a060246101bc610140515afa15610afd57601f3d1115610afd576101a051610160525b600061016051181561046f5760016101405160e05260c052604060c02080546101a05260018101546101c05260028101546101e052600381015461020052600481015461022052600581015461024052506102405161027f57633df0212461026052610200516040518111610afd5761028052610220516040518111610afd576102a052610160516102c05260006102e0526101a0513b15610afd5760006000608461027c60006101a0515af115610afd57610362565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6101405114156102a55760016102c0565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6101c051145b156103195763394747c5610260526102005161028052610220516102a052610160516102c05260006102e0526001610300526101a0513b15610afd576000600060a461027c610180516101a0515af115610afd57610361565b635b41b908610260526102005161028052610220516102a052610160516102c05260006102e0526101a0513b15610afd5760006000608461027c60006101a0515af115610afd575b5b60006101e051181561046e576370a082316102605230610280526020610260602461027c6101c0515afa15610afd57601f3d1115610afd57610260516101605263a9059cbb6102a45260046101e0516102c452610160516102e4526040016102a0526102a08051602001806103208284600060045af115610afd57505060206103c06103205161034060006101c0515af115610afd5760203d80821115610409578061040b565b815b905090506103a0526103a08051602001806102608284600060045af115610afd575050600061026051181561046d576102608060200151600082518060209013610afd5780919012610afd57806020036101000a820490509050905015610afd575b5b5b60016101a05260206101a0f35b63a973862581141561069a576004358060a01c610afd57809050610140526024358060a01c610afd57809050610160526044358060a01c610afd57809050610180526064358060a01c610afd578090506101a05260c4358060011c610afd578090506101c05234610afd57600454610200526005546102205260006101e0526101e061012060006002818352015b6101205160200261020001513314156105265760018352610536565b815160010180835281141561050a575b5050506101e05115610afd5760016101405160e05260c052604060c0206101805181556101605160018201556101a0516002820155608435600382015560a43560048201556101c05160058201555073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee61014051181561068d5763095ea7b361022452600461018051610244527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61026452604001610220526102208051602001806102a08284600060045af115610afd57505060206103406102a0516102c06000610140515af115610afd5760203d80821115610628578061062a565b815b90509050610320526103208051602001806101e08284600060045af115610afd57505060006101e051181561068c576101e08060200151600082518060209013610afd5780919012610afd57806020036101000a820490509050905015610afd575b5b60016101e05260206101e0f35b63db2f5f79811415610823576004358060a01c610afd578090506101405234610afd57600454610180526005546101a05260006101605261016061012060006002818352015b6101205160200261018001513314156106fc576001835261070c565b81516001018083528114156106e0575b5050506101605115610afd576370a0823161018052306101a0526020610180602461019c610140515afa15610afd57601f3d1115610afd57610180516101605263a9059cbb6101c45260046002546101e45261016051610204526040016101c0526101c08051602001806102408284600060045af115610afd57505060206102e0610240516102606000610140515af115610afd5760203d808211156107b257806107b4565b815b905090506102c0526102c08051602001806101808284600060045af115610afd5750506000610180511815610816576101808060200151600082518060209013610afd5780919012610afd57806020036101000a820490509050905015610afd575b60016101c05260206101c0f35b635dc659b0811415610864576004358060a01c610afd578090506101405234610afd57600454331415610afd57610140516002556001610160526020610160f35b6390b229978114156108f6576004358060011c610afd578090506101405234610afd57600454610180526005546101a05260006101605261016061012060006002818352015b6101205160200261018001513314156108c657600183526108d6565b81516001018083528114156108aa575b5050506101605115610afd57610140516003556001610160526020610160f35b636b441a40811415610937576004358060a01c610afd578090506101405234610afd57600454331415610afd57610140516006556001610160526020610160f35b63e5ea47b88114156109635734610afd57600654331415610afd57336004556001610140526020610140f35b6395c899158114156109a4576004358060a01c610afd578090506101405234610afd57600554331415610afd57610140516007556001610160526020610160f35b632d2cb6758114156109d05734610afd57600754331415610afd57336005556001610140526020610140f35b6312946aae811415610a3f576004358060a01c610afd578090506101405234610afd5760016101405160e05260c052604060c02080546101605260018101546101805260028101546101a05260038101546101c05260048101546101e0526005810154610200525060c0610160f35b63ddceafa9811415610a5e5734610afd57600254610140526020610140f35b639c868ac0811415610a7d5734610afd57600354610140526020610140f35b638da5cb5b811415610a9c5734610afd57600454610140526020610140f35b6363a4042a811415610abb5734610afd57600554610140526020610140f35b631ec0cdc1811415610ada5734610afd57600654610140526020610140f35b63e19f994c811415610af95734610afd57600754610140526020610140f35b505b005b600080fd5b610081610b8303610081600039610081610b83036000f35b600080fd000000000000000000000000bf7e49483881c76487b0989cd7d9a8239b20ca4100000000000000000000000071f718d3e4d1449d1502a6a7595eb84ebccb1683000000000000000000000000babe61887f1de2713c6f97e567623453d3c79f67
Deployed Bytecode
0x600436101561000d57610afb565b60046000601c376f7fffffffffffffffffffffffffffffff6040526000516389afcb4481141561047c576004358060a01c610afd5780905061014052600354610afd576040366101603773eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee61014051141561008557476101605247610180526101c8565b6370a082316101a052336101c05260206101a060246101bc610140515afa15610afd57601f3d1115610afd576101a051610160526000610160511815610193576323b872dd6101e45260043361020452306102245261016051610244526060016101e0526101e08051602001806102808284600060045af115610afd5750506020610340610280516102a06000610140515af115610afd5760203d8082111561012e5780610130565b815b90509050610320526103208051602001806101a08284600060045af115610afd57505060006101a0511815610192576101a08060200151600082518060209013610afd5780919012610afd57806020036101000a820490509050905015610afd575b5b6370a082316101a052306101c05260206101a060246101bc610140515afa15610afd57601f3d1115610afd576101a051610160525b600061016051181561046f5760016101405160e05260c052604060c02080546101a05260018101546101c05260028101546101e052600381015461020052600481015461022052600581015461024052506102405161027f57633df0212461026052610200516040518111610afd5761028052610220516040518111610afd576102a052610160516102c05260006102e0526101a0513b15610afd5760006000608461027c60006101a0515af115610afd57610362565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6101405114156102a55760016102c0565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6101c051145b156103195763394747c5610260526102005161028052610220516102a052610160516102c05260006102e0526001610300526101a0513b15610afd576000600060a461027c610180516101a0515af115610afd57610361565b635b41b908610260526102005161028052610220516102a052610160516102c05260006102e0526101a0513b15610afd5760006000608461027c60006101a0515af115610afd575b5b60006101e051181561046e576370a082316102605230610280526020610260602461027c6101c0515afa15610afd57601f3d1115610afd57610260516101605263a9059cbb6102a45260046101e0516102c452610160516102e4526040016102a0526102a08051602001806103208284600060045af115610afd57505060206103c06103205161034060006101c0515af115610afd5760203d80821115610409578061040b565b815b905090506103a0526103a08051602001806102608284600060045af115610afd575050600061026051181561046d576102608060200151600082518060209013610afd5780919012610afd57806020036101000a820490509050905015610afd575b5b5b60016101a05260206101a0f35b63a973862581141561069a576004358060a01c610afd57809050610140526024358060a01c610afd57809050610160526044358060a01c610afd57809050610180526064358060a01c610afd578090506101a05260c4358060011c610afd578090506101c05234610afd57600454610200526005546102205260006101e0526101e061012060006002818352015b6101205160200261020001513314156105265760018352610536565b815160010180835281141561050a575b5050506101e05115610afd5760016101405160e05260c052604060c0206101805181556101605160018201556101a0516002820155608435600382015560a43560048201556101c05160058201555073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee61014051181561068d5763095ea7b361022452600461018051610244527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61026452604001610220526102208051602001806102a08284600060045af115610afd57505060206103406102a0516102c06000610140515af115610afd5760203d80821115610628578061062a565b815b90509050610320526103208051602001806101e08284600060045af115610afd57505060006101e051181561068c576101e08060200151600082518060209013610afd5780919012610afd57806020036101000a820490509050905015610afd575b5b60016101e05260206101e0f35b63db2f5f79811415610823576004358060a01c610afd578090506101405234610afd57600454610180526005546101a05260006101605261016061012060006002818352015b6101205160200261018001513314156106fc576001835261070c565b81516001018083528114156106e0575b5050506101605115610afd576370a0823161018052306101a0526020610180602461019c610140515afa15610afd57601f3d1115610afd57610180516101605263a9059cbb6101c45260046002546101e45261016051610204526040016101c0526101c08051602001806102408284600060045af115610afd57505060206102e0610240516102606000610140515af115610afd5760203d808211156107b257806107b4565b815b905090506102c0526102c08051602001806101808284600060045af115610afd5750506000610180511815610816576101808060200151600082518060209013610afd5780919012610afd57806020036101000a820490509050905015610afd575b60016101c05260206101c0f35b635dc659b0811415610864576004358060a01c610afd578090506101405234610afd57600454331415610afd57610140516002556001610160526020610160f35b6390b229978114156108f6576004358060011c610afd578090506101405234610afd57600454610180526005546101a05260006101605261016061012060006002818352015b6101205160200261018001513314156108c657600183526108d6565b81516001018083528114156108aa575b5050506101605115610afd57610140516003556001610160526020610160f35b636b441a40811415610937576004358060a01c610afd578090506101405234610afd57600454331415610afd57610140516006556001610160526020610160f35b63e5ea47b88114156109635734610afd57600654331415610afd57336004556001610140526020610140f35b6395c899158114156109a4576004358060a01c610afd578090506101405234610afd57600554331415610afd57610140516007556001610160526020610160f35b632d2cb6758114156109d05734610afd57600754331415610afd57336005556001610140526020610140f35b6312946aae811415610a3f576004358060a01c610afd578090506101405234610afd5760016101405160e05260c052604060c02080546101605260018101546101805260028101546101a05260038101546101c05260048101546101e0526005810154610200525060c0610160f35b63ddceafa9811415610a5e5734610afd57600254610140526020610140f35b639c868ac0811415610a7d5734610afd57600354610140526020610140f35b638da5cb5b811415610a9c5734610afd57600454610140526020610140f35b6363a4042a811415610abb5734610afd57600554610140526020610140f35b631ec0cdc1811415610ada5734610afd57600654610140526020610140f35b63e19f994c811415610af95734610afd57600754610140526020610140f35b505b005b600080fd
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000bf7e49483881c76487b0989cd7d9a8239b20ca4100000000000000000000000071f718d3e4d1449d1502a6a7595eb84ebccb1683000000000000000000000000babe61887f1de2713c6f97e567623453d3c79f67
-----Decoded View---------------
Arg [0] : _recovery (address): 0xbF7E49483881C76487b0989CD7d9A8239B20CA41
Arg [1] : _owner (address): 0x71F718D3e4d1449D1502A6A7595eb84eBcCB1683
Arg [2] : _emergency_owner (address): 0xbabe61887f1de2713c6f97e567623453d3C79f67
-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 000000000000000000000000bf7e49483881c76487b0989cd7d9a8239b20ca41
Arg [1] : 00000000000000000000000071f718d3e4d1449d1502a6a7595eb84ebccb1683
Arg [2] : 000000000000000000000000babe61887f1de2713c6f97e567623453d3c79f67
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
BASE | 100.00% | $1.16 | 4,070.3866 | $4,721.65 |
[ 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.