Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 2,400 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Swap | 22134632 | 17 hrs ago | IN | 0 ETH | 0.0000413 | ||||
Swap | 22118321 | 3 days ago | IN | 0 ETH | 0.00022437 | ||||
Swap | 22113551 | 3 days ago | IN | 0 ETH | 0.00086029 | ||||
Swap | 22112945 | 3 days ago | IN | 0 ETH | 0.00004956 | ||||
Swap | 22107838 | 4 days ago | IN | 0 ETH | 0.00022111 | ||||
Swap | 22073185 | 9 days ago | IN | 0 ETH | 0.00007434 | ||||
Swap | 21697409 | 61 days ago | IN | 0 ETH | 0.00071172 | ||||
Swap | 19756089 | 332 days ago | IN | 0 ETH | 0.00066305 | ||||
Swap | 19696663 | 341 days ago | IN | 0 ETH | 0.00050444 | ||||
Swap | 19670201 | 344 days ago | IN | 0 ETH | 0.00074529 | ||||
Swap | 19558725 | 360 days ago | IN | 0 ETH | 0.00213982 | ||||
Swap | 19331104 | 392 days ago | IN | 0 ETH | 0.00794571 | ||||
Swap | 19269838 | 401 days ago | IN | 0 ETH | 0.08412804 | ||||
Swap | 19067980 | 429 days ago | IN | 0 ETH | 0.00086306 | ||||
Swap | 19066925 | 429 days ago | IN | 0 ETH | 0.0007442 | ||||
Swap | 19059531 | 430 days ago | IN | 0 ETH | 0.00379282 | ||||
Swap | 19058485 | 430 days ago | IN | 0 ETH | 0.00741905 | ||||
Swap | 19052832 | 431 days ago | IN | 0 ETH | 0.00085781 | ||||
Swap | 18992665 | 439 days ago | IN | 0 ETH | 0.00203423 | ||||
Swap | 18907040 | 452 days ago | IN | 0 ETH | 0.00719144 | ||||
Swap | 18900969 | 452 days ago | IN | 0 ETH | 0.00478118 | ||||
Swap | 18850550 | 459 days ago | IN | 0 ETH | 0.00225261 | ||||
Swap | 18839043 | 461 days ago | IN | 0 ETH | 0.00486135 | ||||
Swap | 18769918 | 471 days ago | IN | 0 ETH | 0.00409628 | ||||
Swap | 18539364 | 503 days ago | IN | 0 ETH | 0.00317216 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
TPLSwap
Compiler Version
v0.8.17+commit.8df45f5f
Contract Source Code (Solidity Standard Json-Input format)
//SPDX-License-Identifier: MIT pragma solidity ^0.8.12; import {ERC165, IERC165} from "@openzeppelin/contracts/utils/introspection/ERC165.sol"; import {IERC1155Receiver} from "@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol"; import {ITPLRevealedParts} from "./TPLRevealedParts/ITPLRevealedParts.sol"; /// @title TPLSwap /// @author CyberBrokers /// @author dev by @dievardump /// @notice Contract allowing to swap unrevealed TPL Mech Parts against revealed TPL Mech Parts contract TPLSwap is IERC1155Receiver, ERC165 { error UnknownContract(); address public immutable UNREVEALED_PARTS; address public immutable REVEALED_PARTS; modifier onlyKnownContract() { if (msg.sender != UNREVEALED_PARTS) { revert UnknownContract(); } _; } constructor(address unrevealed, address revealed) { UNREVEALED_PARTS = unrevealed; REVEALED_PARTS = revealed; } ///////////////////////////////////////////////////////// // Getters // ///////////////////////////////////////////////////////// function supportsInterface(bytes4 interfaceId) public view override(ERC165, IERC165) returns (bool) { return interfaceId == type(IERC1155Receiver).interfaceId || super.supportsInterface(interfaceId); } ///////////////////////////////////////////////////////// // Interaction // ///////////////////////////////////////////////////////// /// @notice Allows an user to swap `amounts` of unrevealed parts of `ids` and get as many TPLRevealedParts /// @dev the user must have approved the current contract on TPLUnrevealedParts /// @param ids the unrevealed parts ids to swap /// @param amounts the amounts to swap function swap(uint256[] calldata ids, uint256[] calldata amounts) external { IERC1155Burnable(UNREVEALED_PARTS).burnBatch(msg.sender, ids, amounts); uint256 length = ids.length; for (uint256 i; i < length; i++) { _mintBodyPartFrom(msg.sender, ids[i], amounts[i]); } } ///////////////////////////////////////////////////////// // Callbacks / Hooks // ///////////////////////////////////////////////////////// /// @dev hook allowing users to directly send TPLUnrevealedPartsIds to this contract in order to swap /// @dev tests have shown that this method will be more expensive to use than approval then swap function onERC1155Received( address, /*operator*/ address from, uint256 id, uint256 value, bytes calldata ) external onlyKnownContract returns (bytes4) { // burn IERC1155Burnable(msg.sender).burn(address(this), id, value); // mint _mintBodyPartFrom(from, id, value); // ACK return this.onERC1155Received.selector; } /// @dev hook allowing users to directly send TPLUnrevealedPartsIds in batch to this contract in order to swap /// @dev tests have shown that this method will be more expensive to use than approval then swap function onERC1155BatchReceived( address, /* operator */ address from, uint256[] calldata ids, uint256[] calldata values, bytes calldata ) external onlyKnownContract returns (bytes4) { // burn IERC1155Burnable(msg.sender).burnBatch(address(this), ids, values); // mint uint256 length = ids.length; for (uint256 i; i < length; i++) { _mintBodyPartFrom(from, ids[i], values[i]); } // ACK return this.onERC1155BatchReceived.selector; } ///////////////////////////////////////////////////////// // Internals // ///////////////////////////////////////////////////////// /// @dev this function mint & reveals the body part wanted from the unrevealed `id` /// @param to the account receiving the part /// @param id the unrevealed part id /// @param amount the amount of part wanted function _mintBodyPartFrom( address to, uint256 id, uint256 amount ) internal { // most left 12 bits are the original unrevealed id // most right 12 bits is the "generation" of the part. Here all parts are Genesis parts uint24 packedData = uint24((id << 12) | 1); // mint `amount` revealed parts to `to` with `packedData` ITPLRevealedParts(REVEALED_PARTS).mintTo(to, amount, packedData); } } interface IERC1155Burnable { function burn( address account, uint256 id, uint256 value ) external; function burnBatch( address account, uint256[] memory ids, uint256[] memory values ) external; }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.5.0) (token/ERC1155/IERC1155Receiver.sol) pragma solidity ^0.8.0; import "../../utils/introspection/IERC165.sol"; /** * @dev _Available since v3.1._ */ interface IERC1155Receiver is IERC165 { /** * @dev Handles the receipt of a single ERC1155 token type. This function is * called at the end of a `safeTransferFrom` after the balance has been updated. * * NOTE: To accept the transfer, this must return * `bytes4(keccak256("onERC1155Received(address,address,uint256,uint256,bytes)"))` * (i.e. 0xf23a6e61, or its own function selector). * * @param operator The address which initiated the transfer (i.e. msg.sender) * @param from The address which previously owned the token * @param id The ID of the token being transferred * @param value The amount of tokens being transferred * @param data Additional data with no specified format * @return `bytes4(keccak256("onERC1155Received(address,address,uint256,uint256,bytes)"))` if transfer is allowed */ function onERC1155Received( address operator, address from, uint256 id, uint256 value, bytes calldata data ) external returns (bytes4); /** * @dev Handles the receipt of a multiple ERC1155 token types. This function * is called at the end of a `safeBatchTransferFrom` after the balances have * been updated. * * NOTE: To accept the transfer(s), this must return * `bytes4(keccak256("onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)"))` * (i.e. 0xbc197c81, or its own function selector). * * @param operator The address which initiated the batch transfer (i.e. msg.sender) * @param from The address which previously owned the token * @param ids An array containing ids of each token being transferred (order and length must match values array) * @param values An array containing amounts of each token being transferred (order and length must match ids array) * @param data Additional data with no specified format * @return `bytes4(keccak256("onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)"))` if transfer is allowed */ function onERC1155BatchReceived( address operator, address from, uint256[] calldata ids, uint256[] calldata values, bytes calldata data ) external returns (bytes4); }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (utils/introspection/ERC165.sol) pragma solidity ^0.8.0; import "./IERC165.sol"; /** * @dev Implementation of the {IERC165} interface. * * Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check * for the additional interface id that will be supported. For example: * * ```solidity * function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { * return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId); * } * ``` * * Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation. */ abstract contract ERC165 is IERC165 { /** * @dev See {IERC165-supportsInterface}. */ function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { return interfaceId == type(IERC165).interfaceId; } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (utils/introspection/IERC165.sol) pragma solidity ^0.8.0; /** * @dev Interface of the ERC165 standard, as defined in the * https://eips.ethereum.org/EIPS/eip-165[EIP]. * * Implementers can declare support of contract interfaces, which can then be * queried by others ({ERC165Checker}). * * For an implementation, see {ERC165}. */ interface IERC165 { /** * @dev Returns true if this contract implements the interface defined by * `interfaceId`. See the corresponding * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] * to learn more about how these ids are created. * * This function call must use less than 30 000 gas. */ function supportsInterface(bytes4 interfaceId) external view returns (bool); }
//SPDX-License-Identifier: MIT pragma solidity ^0.8.12; import {IBase721A} from "../../utils/tokens/ERC721/IBase721A.sol"; /// @title ITPLRevealedParts /// @author CyberBrokers /// @author dev by @dievardump /// @notice Interface for the Revealed Parts contract. interface ITPLRevealedParts is IBase721A { struct TokenData { uint256 generation; uint256 originalId; uint256 bodyPart; uint256 model; uint256[] stats; } /// @notice verifies that `account` owns all `tokenIds` /// @param account the account /// @param tokenIds the token ids to check /// @return if account owns all tokens function isOwnerOfBatch(address account, uint256[] calldata tokenIds) external view returns (bool); /// @notice returns a Mech Part data (body part and original id) /// @param tokenId the tokenId to check /// @return the Mech Part data (body part and original id) function partData(uint256 tokenId) external view returns (TokenData memory); /// @notice returns a list of Mech Part data (body part and original id) /// @param tokenIds the tokenIds to knoMechParts type of /// @return a list of Mech Part data (body part and original id) function partDataBatch(uint256[] calldata tokenIds) external view returns (TokenData[] memory); /// @notice Allows to burn tokens in batch /// @param tokenIds the tokens to burn function burnBatch(uint256[] calldata tokenIds) external; }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.12; interface IBase721A { /// @notice Allows a `minter` to mint `amount` tokens to `to` with `extraData_` /// @param to to whom we need to mint /// @param amount how many to mint /// @param extraData extraData for these items function mintTo( address to, uint256 amount, uint24 extraData ) external; }
{ "evmVersion": "london", "libraries": {}, "metadata": { "bytecodeHash": "ipfs", "useLiteralContent": true }, "optimizer": { "enabled": true, "runs": 200 }, "remappings": [], "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"unrevealed","type":"address"},{"internalType":"address","name":"revealed","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"UnknownContract","type":"error"},{"inputs":[],"name":"REVEALED_PARTS","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"UNREVEALED_PARTS","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256[]","name":"ids","type":"uint256[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC1155BatchReceived","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC1155Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"ids","type":"uint256[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"swap","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60c060405234801561001057600080fd5b5060405161091338038061091383398101604081905261002f91610062565b6001600160a01b039182166080521660a052610095565b80516001600160a01b038116811461005d57600080fd5b919050565b6000806040838503121561007557600080fd5b61007e83610046565b915061008c60208401610046565b90509250929050565b60805160a05161083f6100d46000396000818160e8015261047801526000818160a901528181610197015281816102760152610384015261083f6000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c806301ffc9a7146100675780630a3cb72e1461008f57806337a0fde1146100a45780635dbe16c4146100e3578063bc197c811461010a578063f23a6e6114610136575b600080fd5b61007a6100753660046104dc565b610149565b60405190151581526020015b60405180910390f35b6100a261009d366004610559565b610180565b005b6100cb7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610086565b6100cb7f000000000000000000000000000000000000000000000000000000000000000081565b61011d610118366004610623565b610269565b6040516001600160e01b03199091168152602001610086565b61011d6101443660046106de565b610377565b60006001600160e01b03198216630271189760e51b148061017a57506301ffc9a760e01b6001600160e01b03198316145b92915050565b604051631ac8311560e21b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690636b20c454906101d49033908890889088908890600401610788565b600060405180830381600087803b1580156101ee57600080fd5b505af1158015610202573d6000803e3d6000fd5b5085925060009150505b818110156102615761024f3387878481811061022a5761022a6107cc565b90506020020135868685818110610243576102436107cc565b9050602002013561043e565b80610259816107e2565b91505061020c565b505050505050565b6000336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146102b4576040516392c84d8160e01b815260040160405180910390fd5b604051631ac8311560e21b81523390636b20c454906102df9030908b908b908b908b90600401610788565b600060405180830381600087803b1580156102f957600080fd5b505af115801561030d573d6000803e3d6000fd5b5088925060009150505b818110156103605761034e8a8a8a84818110610335576103356107cc565b90506020020135898985818110610243576102436107cc565b80610358816107e2565b915050610317565b5063bc197c8160e01b9a9950505050505050505050565b6000336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146103c2576040516392c84d8160e01b815260040160405180910390fd5b604051637a94c56560e11b81523060048201526024810186905260448101859052339063f5298aca90606401600060405180830381600087803b15801561040857600080fd5b505af115801561041c573d6000803e3d6000fd5b5050505061042b86868661043e565b5063f23a6e6160e01b9695505050505050565b604051633f69c97760e21b81526001600160a01b038481166004830152602482018390526001600c85901b1762ffffff81166044840152917f00000000000000000000000000000000000000000000000000000000000000009091169063fda725dc90606401600060405180830381600087803b1580156104be57600080fd5b505af11580156104d2573d6000803e3d6000fd5b5050505050505050565b6000602082840312156104ee57600080fd5b81356001600160e01b03198116811461050657600080fd5b9392505050565b60008083601f84011261051f57600080fd5b50813567ffffffffffffffff81111561053757600080fd5b6020830191508360208260051b850101111561055257600080fd5b9250929050565b6000806000806040858703121561056f57600080fd5b843567ffffffffffffffff8082111561058757600080fd5b6105938883890161050d565b909650945060208701359150808211156105ac57600080fd5b506105b98782880161050d565b95989497509550505050565b80356001600160a01b03811681146105dc57600080fd5b919050565b60008083601f8401126105f357600080fd5b50813567ffffffffffffffff81111561060b57600080fd5b60208301915083602082850101111561055257600080fd5b60008060008060008060008060a0898b03121561063f57600080fd5b610648896105c5565b975061065660208a016105c5565b9650604089013567ffffffffffffffff8082111561067357600080fd5b61067f8c838d0161050d565b909850965060608b013591508082111561069857600080fd5b6106a48c838d0161050d565b909650945060808b01359150808211156106bd57600080fd5b506106ca8b828c016105e1565b999c989b5096995094979396929594505050565b60008060008060008060a087890312156106f757600080fd5b610700876105c5565b955061070e602088016105c5565b94506040870135935060608701359250608087013567ffffffffffffffff81111561073857600080fd5b61074489828a016105e1565b979a9699509497509295939492505050565b81835260006001600160fb1b0383111561076f57600080fd5b8260051b80836020870137939093016020019392505050565b6001600160a01b03861681526060602082018190526000906107ad9083018688610756565b82810360408401526107c0818587610756565b98975050505050505050565b634e487b7160e01b600052603260045260246000fd5b60006001820161080257634e487b7160e01b600052601160045260246000fd5b506001019056fea264697066735822122005abf3e5a1b365c1b44d6535698b2a90074c026a8e0b6b6606234f3944045f9964736f6c63430008110033000000000000000000000000f4bacb2375654ef2459f427c8c6cf34573f751540000000000000000000000007bc1e07cdfa283db7cf3c680d16ca7f161a64046
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100625760003560e01c806301ffc9a7146100675780630a3cb72e1461008f57806337a0fde1146100a45780635dbe16c4146100e3578063bc197c811461010a578063f23a6e6114610136575b600080fd5b61007a6100753660046104dc565b610149565b60405190151581526020015b60405180910390f35b6100a261009d366004610559565b610180565b005b6100cb7f000000000000000000000000f4bacb2375654ef2459f427c8c6cf34573f7515481565b6040516001600160a01b039091168152602001610086565b6100cb7f0000000000000000000000007bc1e07cdfa283db7cf3c680d16ca7f161a6404681565b61011d610118366004610623565b610269565b6040516001600160e01b03199091168152602001610086565b61011d6101443660046106de565b610377565b60006001600160e01b03198216630271189760e51b148061017a57506301ffc9a760e01b6001600160e01b03198316145b92915050565b604051631ac8311560e21b81526001600160a01b037f000000000000000000000000f4bacb2375654ef2459f427c8c6cf34573f751541690636b20c454906101d49033908890889088908890600401610788565b600060405180830381600087803b1580156101ee57600080fd5b505af1158015610202573d6000803e3d6000fd5b5085925060009150505b818110156102615761024f3387878481811061022a5761022a6107cc565b90506020020135868685818110610243576102436107cc565b9050602002013561043e565b80610259816107e2565b91505061020c565b505050505050565b6000336001600160a01b037f000000000000000000000000f4bacb2375654ef2459f427c8c6cf34573f7515416146102b4576040516392c84d8160e01b815260040160405180910390fd5b604051631ac8311560e21b81523390636b20c454906102df9030908b908b908b908b90600401610788565b600060405180830381600087803b1580156102f957600080fd5b505af115801561030d573d6000803e3d6000fd5b5088925060009150505b818110156103605761034e8a8a8a84818110610335576103356107cc565b90506020020135898985818110610243576102436107cc565b80610358816107e2565b915050610317565b5063bc197c8160e01b9a9950505050505050505050565b6000336001600160a01b037f000000000000000000000000f4bacb2375654ef2459f427c8c6cf34573f7515416146103c2576040516392c84d8160e01b815260040160405180910390fd5b604051637a94c56560e11b81523060048201526024810186905260448101859052339063f5298aca90606401600060405180830381600087803b15801561040857600080fd5b505af115801561041c573d6000803e3d6000fd5b5050505061042b86868661043e565b5063f23a6e6160e01b9695505050505050565b604051633f69c97760e21b81526001600160a01b038481166004830152602482018390526001600c85901b1762ffffff81166044840152917f0000000000000000000000007bc1e07cdfa283db7cf3c680d16ca7f161a640469091169063fda725dc90606401600060405180830381600087803b1580156104be57600080fd5b505af11580156104d2573d6000803e3d6000fd5b5050505050505050565b6000602082840312156104ee57600080fd5b81356001600160e01b03198116811461050657600080fd5b9392505050565b60008083601f84011261051f57600080fd5b50813567ffffffffffffffff81111561053757600080fd5b6020830191508360208260051b850101111561055257600080fd5b9250929050565b6000806000806040858703121561056f57600080fd5b843567ffffffffffffffff8082111561058757600080fd5b6105938883890161050d565b909650945060208701359150808211156105ac57600080fd5b506105b98782880161050d565b95989497509550505050565b80356001600160a01b03811681146105dc57600080fd5b919050565b60008083601f8401126105f357600080fd5b50813567ffffffffffffffff81111561060b57600080fd5b60208301915083602082850101111561055257600080fd5b60008060008060008060008060a0898b03121561063f57600080fd5b610648896105c5565b975061065660208a016105c5565b9650604089013567ffffffffffffffff8082111561067357600080fd5b61067f8c838d0161050d565b909850965060608b013591508082111561069857600080fd5b6106a48c838d0161050d565b909650945060808b01359150808211156106bd57600080fd5b506106ca8b828c016105e1565b999c989b5096995094979396929594505050565b60008060008060008060a087890312156106f757600080fd5b610700876105c5565b955061070e602088016105c5565b94506040870135935060608701359250608087013567ffffffffffffffff81111561073857600080fd5b61074489828a016105e1565b979a9699509497509295939492505050565b81835260006001600160fb1b0383111561076f57600080fd5b8260051b80836020870137939093016020019392505050565b6001600160a01b03861681526060602082018190526000906107ad9083018688610756565b82810360408401526107c0818587610756565b98975050505050505050565b634e487b7160e01b600052603260045260246000fd5b60006001820161080257634e487b7160e01b600052601160045260246000fd5b506001019056fea264697066735822122005abf3e5a1b365c1b44d6535698b2a90074c026a8e0b6b6606234f3944045f9964736f6c63430008110033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000f4bacb2375654ef2459f427c8c6cf34573f751540000000000000000000000007bc1e07cdfa283db7cf3c680d16ca7f161a64046
-----Decoded View---------------
Arg [0] : unrevealed (address): 0xf4baCB2375654Ef2459f427C8c6cF34573f75154
Arg [1] : revealed (address): 0x7bC1e07cdFA283db7cF3C680D16ca7F161a64046
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000f4bacb2375654ef2459f427c8c6cf34573f75154
Arg [1] : 0000000000000000000000007bc1e07cdfa283db7cf3c680d16ca7f161a64046
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 35 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ 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.