Source Code
Overview
S Balance
Token Holdings
More Info
ContractCreator
Latest 25 from a total of 136 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Swap | 25333126 | 4 days ago | IN | 0 S | 0.00008625 | ||||
Swap | 25322182 | 4 days ago | IN | 0 S | 0.00010508 | ||||
Swap | 25321922 | 4 days ago | IN | 0 S | 0.00017157 | ||||
Swap | 25320023 | 4 days ago | IN | 0 S | 0.00010508 | ||||
Swap | 25319923 | 4 days ago | IN | 0 S | 0.00017157 | ||||
Swap | 25318687 | 4 days ago | IN | 0 S | 0.00010508 | ||||
Swap | 25318553 | 4 days ago | IN | 0 S | 0.00017154 | ||||
Swap | 25317484 | 4 days ago | IN | 0 S | 0.00010508 | ||||
Swap | 25317385 | 4 days ago | IN | 0 S | 0.00017157 | ||||
Swap | 25316539 | 4 days ago | IN | 0 S | 0.00010508 | ||||
Swap | 25316241 | 4 days ago | IN | 0 S | 0.00017157 | ||||
Swap | 25308664 | 4 days ago | IN | 0 S | 0.00010508 | ||||
Swap | 25308290 | 4 days ago | IN | 0 S | 0.00017157 | ||||
Swap | 25307948 | 4 days ago | IN | 0 S | 0.00010508 | ||||
Swap | 25307156 | 4 days ago | IN | 0 S | 0.00017157 | ||||
Swap | 25306554 | 4 days ago | IN | 0 S | 0.00010508 | ||||
Swap | 25306480 | 4 days ago | IN | 0 S | 0.00017157 | ||||
Swap | 25306091 | 4 days ago | IN | 0 S | 0.00010508 | ||||
Swap | 25305757 | 4 days ago | IN | 0 S | 0.00017157 | ||||
Swap | 25305300 | 4 days ago | IN | 0 S | 0.00021438 | ||||
Swap | 25284940 | 4 days ago | IN | 0 S | 0.0000998 | ||||
Swap | 25284927 | 4 days ago | IN | 0 S | 0.00010508 | ||||
Swap | 25284127 | 4 days ago | IN | 0 S | 0.00010508 | ||||
Swap | 25277822 | 4 days ago | IN | 0 S | 0.00008627 | ||||
Swap | 25277813 | 4 days ago | IN | 0 S | 0.00008627 |
Latest 25 internal transactions (View All)
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
25333126 | 4 days ago | 0 S | ||||
25333126 | 4 days ago | 0 S | ||||
25322182 | 4 days ago | 0 S | ||||
25322182 | 4 days ago | 0 S | ||||
25321922 | 4 days ago | 0 S | ||||
25321922 | 4 days ago | 0 S | ||||
25320023 | 4 days ago | 0 S | ||||
25320023 | 4 days ago | 0 S | ||||
25319923 | 4 days ago | 0 S | ||||
25319923 | 4 days ago | 0 S | ||||
25318687 | 4 days ago | 0 S | ||||
25318687 | 4 days ago | 0 S | ||||
25318553 | 4 days ago | 0 S | ||||
25318553 | 4 days ago | 0 S | ||||
25317484 | 4 days ago | 0 S | ||||
25317484 | 4 days ago | 0 S | ||||
25317385 | 4 days ago | 0 S | ||||
25317385 | 4 days ago | 0 S | ||||
25316539 | 4 days ago | 0 S | ||||
25316539 | 4 days ago | 0 S | ||||
25316241 | 4 days ago | 0 S | ||||
25316241 | 4 days ago | 0 S | ||||
25308664 | 4 days ago | 0 S | ||||
25308664 | 4 days ago | 0 S | ||||
25308290 | 4 days ago | 0 S |
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
Core
Compiler Version
v0.8.28+commit.7893614a
Optimization Enabled:
Yes with 200 runs
Other Settings:
cancun EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity ^0.8.20; import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; contract Core { event Swap( address indexed sender, address tokenIn, address tokenOut, uint256 amountIn, uint256 amountOut, uint256 buyPrice, uint256 sellPrice ); event LiquidityAdded( address indexed provider, address token, uint256 amount ); event LiquidityRemoved( address indexed provider, address token, uint256 amount ); event PriceUpdated( address indexed token, uint256 newPrice, uint256 newLiquidity ); mapping(address => uint256) public liquidity; mapping(address => uint256) public tokenPrices; function addLiquidity(address token, uint256 amount) external { require(amount > 0, "Amount must be greater than zero"); require( IERC20(token).transferFrom(msg.sender, address(this), amount), "Transfer failed" ); liquidity[token] += amount; emit LiquidityAdded(msg.sender, token, amount); } function removeLiquidity(address token, uint256 amount) external { require(liquidity[token] >= amount, "Insufficient liquidity"); liquidity[token] -= amount; require(IERC20(token).transfer(msg.sender, amount), "Transfer failed"); emit LiquidityRemoved(msg.sender, token, amount); } function getLiquidity(address token) external view returns (uint256) { return liquidity[token]; } function setPriceAndLiquidity(address token, uint256 newPrice, uint256 newLiquidity) external { require(newLiquidity > 0, "Liquidity must be greater than zero"); tokenPrices[token] = newPrice; liquidity[token] = newLiquidity; emit PriceUpdated(token, newPrice, newLiquidity); } function setPriceAndAutoSetLiquidity(address token, uint256 newPrice) external { require(newPrice > 0, "Price must be greater than zero"); tokenPrices[token] = newPrice; uint256 newLiquidity = 1e18 / newPrice; liquidity[token] = newLiquidity; emit PriceUpdated(token, newPrice, newLiquidity); } function swap( address tokenIn, address tokenOut, uint256 amountIn ) external returns (uint256 amountOut) { require( tokenIn != address(0) && tokenOut != address(0), "Invalid token address" ); require(amountIn > 0, "Amount must be greater than zero"); require( liquidity[tokenIn] > 0 && liquidity[tokenOut] > 0, "Insufficient liquidity" ); uint256 reserveIn = liquidity[tokenIn]; uint256 reserveOut = liquidity[tokenOut]; require(reserveIn > 0 && reserveOut > 0, "Invalid reserves"); // Calculate buy price and sell price before the swap uint256 buyPrice = (reserveOut * 1e18) / reserveIn; uint256 sellPrice = (reserveIn * 1e18) / reserveOut; // Swap formula: x * y = k uint256 amountInWithFee = (amountIn * 997) / 1000; // 0.3% fee amountOut = (amountInWithFee * reserveOut) / (reserveIn + amountInWithFee); require(amountOut > 0, "Swap amount must be greater than zero"); // Update liquidity liquidity[tokenIn] += amountIn; liquidity[tokenOut] -= amountOut; require( IERC20(tokenIn).transferFrom(msg.sender, address(this), amountIn), "Token transfer failed" ); require( IERC20(tokenOut).transfer(msg.sender, amountOut), "Token transfer failed" ); emit Swap(msg.sender, tokenIn, tokenOut, amountIn, amountOut, buyPrice, sellPrice); } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.1.0) (token/ERC20/IERC20.sol) pragma solidity ^0.8.20; /** * @dev Interface of the ERC-20 standard as defined in the ERC. */ interface IERC20 { /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); /** * @dev Returns the value of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the value of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves a `value` amount of tokens from the caller's account to `to`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address to, uint256 value) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets a `value` amount of tokens as the allowance of `spender` over the * caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 value) external returns (bool); /** * @dev Moves a `value` amount of tokens from `from` to `to` using the * allowance mechanism. `value` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom(address from, address to, uint256 value) external returns (bool); }
{ "remappings": [ "@openzeppelin/contracts/=lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/", "@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/", "erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/", "forge-std/=lib/forge-std/src/", "halmos-cheatcodes/=lib/openzeppelin-contracts-upgradeable/lib/halmos-cheatcodes/src/", "openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/", "openzeppelin-contracts/=lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/", "openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/" ], "optimizer": { "enabled": true, "runs": 200 }, "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "evmVersion": "cancun", "viaIR": true, "libraries": {} }
Contract ABI
API[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"provider","type":"address"},{"indexed":false,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LiquidityAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"provider","type":"address"},{"indexed":false,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LiquidityRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"uint256","name":"newPrice","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newLiquidity","type":"uint256"}],"name":"PriceUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"address","name":"tokenIn","type":"address"},{"indexed":false,"internalType":"address","name":"tokenOut","type":"address"},{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountOut","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"buyPrice","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"sellPrice","type":"uint256"}],"name":"Swap","type":"event"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"addLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"getLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"liquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"removeLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"newPrice","type":"uint256"}],"name":"setPriceAndAutoSetLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"newPrice","type":"uint256"},{"internalType":"uint256","name":"newLiquidity","type":"uint256"}],"name":"setPriceAndLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenIn","type":"address"},{"internalType":"address","name":"tokenOut","type":"address"},{"internalType":"uint256","name":"amountIn","type":"uint256"}],"name":"swap","outputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"tokenPrices","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
608080604052346015576109cf908161001a8239f35b5f80fdfe6080806040526004361015610012575f80fd5b5f3560e01c908163204120bc146107b75750806356688700146106c5578063997fdbb9146105ff578063a201ccf6146104fd578063a747b93b146103fb578063b122acec14610432578063b8c876b1146103fb5763df791e5014610074575f80fd5b346103f75760603660031901126103f75761008d6107eb565b6024356001600160a01b03811691908290036103f757604435906001600160a01b0316801515806103ee575b156103b15781156100ca8115610801565b815f525f60205260405f205415158061039b575b6100e790610903565b5f828152602081905260408082205486835291205481159190821580610392575b1561035a57670de0b6b3a76400008102818104670de0b6b3a764000014821517156103465782610137916108e5565b92670de0b6b3a7640000830290838204670de0b6b3a76400001417156103465781610161916108e5565b936103e58702908782046103e5141715610346576103e89004918183029183830414831517156103465761019e92610198916108d8565b906108e5565b9384156102f357835f525f60205260405f206101bb8282546108d8565b9055855f525f60205260405f206101d3868254610948565b90556040516323b872dd60e01b8152336004820152306024820152604481018290526020816064815f895af180156102cf57610216915f916102da575b50610955565b60405163a9059cbb60e01b815233600482015260248101869052956020876044815f855af19687156102cf57602097610255915f916102a25750610955565b604051948552868501526040840152836060840152608083015260a08201527f0874b2d545cb271cdbda4e093020c452328b24af12382ed62c4d00f5c26709db60c03392a2604051908152f35b6102c29150893d8b116102c8575b6102ba818361084c565b810190610882565b5f610210565b503d6102b0565b6040513d5f823e3d90fd5b6102c2915060203d6020116102c8576102ba818361084c565b60405162461bcd60e51b815260206004820152602560248201527f5377617020616d6f756e74206d7573742062652067726561746572207468616e604482015264207a65726f60d81b6064820152608490fd5b634e487b7160e01b5f52601160045260245ffd5b60405162461bcd60e51b815260206004820152601060248201526f496e76616c696420726573657276657360801b6044820152606490fd5b50801515610108565b505f8481526020819052604090205415156100de565b60405162461bcd60e51b8152602060048201526015602482015274496e76616c696420746f6b656e206164647265737360581b6044820152606490fd5b508215156100b9565b5f80fd5b346103f75760203660031901126103f7576001600160a01b0361041c6107eb565b165f525f602052602060405f2054604051908152f35b346103f75760603660031901126103f75761044b6107eb565b6024356044359182156104ac577fb556fac599c3c70efb9ab1fa725ecace6c81cc48d1455f886607def065f3e0c09160409160018060a01b031693845f52600160205281835f2055845f525f60205280835f205582519182526020820152a2005b60405162461bcd60e51b815260206004820152602360248201527f4c6971756964697479206d7573742062652067726561746572207468616e207a60448201526265726f60e81b6064820152608490fd5b346103f75760403660031901126103f7576105166107eb565b60243560018060a01b03821690815f525f60205261053a8160405f20541015610903565b815f525f60205260405f20610550828254610948565b905560405163a9059cbb60e01b81523360048201526024810182905291602090839060449082905f905af19081156102cf576105b86105db927f983e86fda8e7b1e2eae380201830eaf1cac55772e8e39583da349865e8178863945f916105e0575b5061089a565b604080516001600160a01b03909516855260208501919091523393918291820190565b0390a2005b6105f9915060203d6020116102c8576102ba818361084c565b866105b2565b346103f75760403660031901126103f7576106186107eb565b6024359081156106805760407fb556fac599c3c70efb9ab1fa725ecace6c81cc48d1455f886607def065f3e0c09160018060a01b031692835f52600160205280825f205580670de0b6b3a764000004845f525f60205280835f205582519182526020820152a2005b60405162461bcd60e51b815260206004820152601f60248201527f5072696365206d7573742062652067726561746572207468616e207a65726f006044820152606490fd5b346103f75760403660031901126103f7576106de6107eb565b6024356106ec811515610801565b6040516323b872dd60e01b815233600482015230602482015260448101829052906001600160a01b038316906020836064815f865af19182156102cf5761075e6105db937f9d278c56ba6dc86a12eefe6b43112bd6e06648eb4ec0b950ee2d783d40e2acb4955f91610798575061089a565b5f525f60205260405f206107738282546108d8565b9055604080516001600160a01b03909516855260208501919091523393918291820190565b6107b1915060203d6020116102c8576102ba818361084c565b876105b2565b346103f75760203660031901126103f7576020906001600160a01b036107db6107eb565b165f526001825260405f20548152f35b600435906001600160a01b03821682036103f757565b1561080857565b606460405162461bcd60e51b815260206004820152602060248201527f416d6f756e74206d7573742062652067726561746572207468616e207a65726f6044820152fd5b90601f8019910116810190811067ffffffffffffffff82111761086e57604052565b634e487b7160e01b5f52604160045260245ffd5b908160209103126103f7575180151581036103f75790565b156108a157565b60405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b6044820152606490fd5b9190820180921161034657565b81156108ef570490565b634e487b7160e01b5f52601260045260245ffd5b1561090a57565b60405162461bcd60e51b8152602060048201526016602482015275496e73756666696369656e74206c697175696469747960501b6044820152606490fd5b9190820391821161034657565b1561095c57565b60405162461bcd60e51b8152602060048201526015602482015274151bdad95b881d1c985b9cd9995c8819985a5b1959605a1b6044820152606490fdfea2646970667358221220b47681d1a3a96792a5019982d5262e00ed0e444bc26270f494cfe460abe6d22b64736f6c634300081c0033
Deployed Bytecode
0x6080806040526004361015610012575f80fd5b5f3560e01c908163204120bc146107b75750806356688700146106c5578063997fdbb9146105ff578063a201ccf6146104fd578063a747b93b146103fb578063b122acec14610432578063b8c876b1146103fb5763df791e5014610074575f80fd5b346103f75760603660031901126103f75761008d6107eb565b6024356001600160a01b03811691908290036103f757604435906001600160a01b0316801515806103ee575b156103b15781156100ca8115610801565b815f525f60205260405f205415158061039b575b6100e790610903565b5f828152602081905260408082205486835291205481159190821580610392575b1561035a57670de0b6b3a76400008102818104670de0b6b3a764000014821517156103465782610137916108e5565b92670de0b6b3a7640000830290838204670de0b6b3a76400001417156103465781610161916108e5565b936103e58702908782046103e5141715610346576103e89004918183029183830414831517156103465761019e92610198916108d8565b906108e5565b9384156102f357835f525f60205260405f206101bb8282546108d8565b9055855f525f60205260405f206101d3868254610948565b90556040516323b872dd60e01b8152336004820152306024820152604481018290526020816064815f895af180156102cf57610216915f916102da575b50610955565b60405163a9059cbb60e01b815233600482015260248101869052956020876044815f855af19687156102cf57602097610255915f916102a25750610955565b604051948552868501526040840152836060840152608083015260a08201527f0874b2d545cb271cdbda4e093020c452328b24af12382ed62c4d00f5c26709db60c03392a2604051908152f35b6102c29150893d8b116102c8575b6102ba818361084c565b810190610882565b5f610210565b503d6102b0565b6040513d5f823e3d90fd5b6102c2915060203d6020116102c8576102ba818361084c565b60405162461bcd60e51b815260206004820152602560248201527f5377617020616d6f756e74206d7573742062652067726561746572207468616e604482015264207a65726f60d81b6064820152608490fd5b634e487b7160e01b5f52601160045260245ffd5b60405162461bcd60e51b815260206004820152601060248201526f496e76616c696420726573657276657360801b6044820152606490fd5b50801515610108565b505f8481526020819052604090205415156100de565b60405162461bcd60e51b8152602060048201526015602482015274496e76616c696420746f6b656e206164647265737360581b6044820152606490fd5b508215156100b9565b5f80fd5b346103f75760203660031901126103f7576001600160a01b0361041c6107eb565b165f525f602052602060405f2054604051908152f35b346103f75760603660031901126103f75761044b6107eb565b6024356044359182156104ac577fb556fac599c3c70efb9ab1fa725ecace6c81cc48d1455f886607def065f3e0c09160409160018060a01b031693845f52600160205281835f2055845f525f60205280835f205582519182526020820152a2005b60405162461bcd60e51b815260206004820152602360248201527f4c6971756964697479206d7573742062652067726561746572207468616e207a60448201526265726f60e81b6064820152608490fd5b346103f75760403660031901126103f7576105166107eb565b60243560018060a01b03821690815f525f60205261053a8160405f20541015610903565b815f525f60205260405f20610550828254610948565b905560405163a9059cbb60e01b81523360048201526024810182905291602090839060449082905f905af19081156102cf576105b86105db927f983e86fda8e7b1e2eae380201830eaf1cac55772e8e39583da349865e8178863945f916105e0575b5061089a565b604080516001600160a01b03909516855260208501919091523393918291820190565b0390a2005b6105f9915060203d6020116102c8576102ba818361084c565b866105b2565b346103f75760403660031901126103f7576106186107eb565b6024359081156106805760407fb556fac599c3c70efb9ab1fa725ecace6c81cc48d1455f886607def065f3e0c09160018060a01b031692835f52600160205280825f205580670de0b6b3a764000004845f525f60205280835f205582519182526020820152a2005b60405162461bcd60e51b815260206004820152601f60248201527f5072696365206d7573742062652067726561746572207468616e207a65726f006044820152606490fd5b346103f75760403660031901126103f7576106de6107eb565b6024356106ec811515610801565b6040516323b872dd60e01b815233600482015230602482015260448101829052906001600160a01b038316906020836064815f865af19182156102cf5761075e6105db937f9d278c56ba6dc86a12eefe6b43112bd6e06648eb4ec0b950ee2d783d40e2acb4955f91610798575061089a565b5f525f60205260405f206107738282546108d8565b9055604080516001600160a01b03909516855260208501919091523393918291820190565b6107b1915060203d6020116102c8576102ba818361084c565b876105b2565b346103f75760203660031901126103f7576020906001600160a01b036107db6107eb565b165f526001825260405f20548152f35b600435906001600160a01b03821682036103f757565b1561080857565b606460405162461bcd60e51b815260206004820152602060248201527f416d6f756e74206d7573742062652067726561746572207468616e207a65726f6044820152fd5b90601f8019910116810190811067ffffffffffffffff82111761086e57604052565b634e487b7160e01b5f52604160045260245ffd5b908160209103126103f7575180151581036103f75790565b156108a157565b60405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b6044820152606490fd5b9190820180921161034657565b81156108ef570490565b634e487b7160e01b5f52601260045260245ffd5b1561090a57565b60405162461bcd60e51b8152602060048201526016602482015275496e73756666696369656e74206c697175696469747960501b6044820152606490fd5b9190820391821161034657565b1561095c57565b60405162461bcd60e51b8152602060048201526015602482015274151bdad95b881d1c985b9cd9995c8819985a5b1959605a1b6044820152606490fdfea2646970667358221220b47681d1a3a96792a5019982d5262e00ed0e444bc26270f494cfe460abe6d22b64736f6c634300081c0033
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 35 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
[ 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.