Overview
APE Balance
0 APE
APE Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 50 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Safe Create2 | 8754369 | 4 days ago | IN | 0 APE | 0.01581212 | ||||
Safe Create2 | 8328481 | 12 days ago | IN | 0 APE | 0.02047504 | ||||
Safe Create2 | 7844637 | 20 days ago | IN | 0 APE | 0.06292802 | ||||
Safe Create2 | 7844636 | 20 days ago | IN | 0 APE | 0.05948558 | ||||
Safe Create2 | 7844635 | 20 days ago | IN | 0 APE | 0.0057636 | ||||
Safe Create2 | 7519909 | 25 days ago | IN | 0 APE | 0.02361648 | ||||
Safe Create2 | 7519871 | 25 days ago | IN | 0 APE | 0.13252847 | ||||
Safe Create2 | 7519844 | 25 days ago | IN | 0 APE | 0.10094744 | ||||
Safe Create2 | 7519832 | 25 days ago | IN | 0 APE | 0.1191216 | ||||
Safe Create2 | 7519820 | 25 days ago | IN | 0 APE | 0.13128916 | ||||
Safe Create2 | 7519808 | 25 days ago | IN | 0 APE | 0.1162059 | ||||
Safe Create2 | 7519796 | 25 days ago | IN | 0 APE | 0.24784977 | ||||
Safe Create2 | 7519781 | 25 days ago | IN | 0 APE | 0.03669918 | ||||
Safe Create2 | 7519773 | 25 days ago | IN | 0 APE | 0.00759997 | ||||
Safe Create2 | 7519751 | 25 days ago | IN | 0 APE | 0.01581179 | ||||
Safe Create2 | 7519717 | 25 days ago | IN | 0 APE | 0.01157035 | ||||
Safe Create2 | 6590036 | 48 days ago | IN | 0 APE | 0.01246859 | ||||
Safe Create2 | 5683284 | 62 days ago | IN | 0 APE | 0.07962609 | ||||
Safe Create2 | 5683282 | 62 days ago | IN | 0 APE | 0.04745003 | ||||
Safe Create2 | 5664677 | 62 days ago | IN | 0 APE | 0.07962502 | ||||
Safe Create2 | 5656852 | 62 days ago | IN | 0 APE | 0.08056482 | ||||
Safe Create2 | 5598644 | 63 days ago | IN | 0 APE | 0.08099929 | ||||
Safe Create2 | 5597657 | 63 days ago | IN | 0 APE | 0.08069396 | ||||
Safe Create2 | 5596722 | 63 days ago | IN | 0 APE | 0.08069724 | ||||
Safe Create2 | 5552348 | 64 days ago | IN | 0 APE | 0.08214985 |
Latest 25 internal transactions (View All)
Loading...
Loading
Contract Name:
ImmutableCreate2Factory
Compiler Version
v0.5.10+commit.5a6ea5b1
Contract Source Code (Solidity)
/** *Submitted for verification at apescan.io on 2025-01-29 */ /** *Submitted for verification at basescan.org on 2023-07-11 */ /** *Submitted for verification at Etherscan.io on 2019-07-30 */ pragma solidity 0.5.10; // optimization enabled, 99999 runs, evm: petersburg /** * @title Immutable Create2 Contract Factory * @author 0age * @notice This contract provides a safeCreate2 function that takes a salt value * and a block of initialization code as arguments and passes them into inline * assembly. The contract prevents redeploys by maintaining a mapping of all * contracts that have already been deployed, and prevents frontrunning or other * collisions by requiring that the first 20 bytes of the salt are equal to the * address of the caller (this can be bypassed by setting the first 20 bytes to * the null address). There is also a view function that computes the address of * the contract that will be created when submitting a given salt or nonce along * with a given block of initialization code. * @dev This contract has not yet been fully tested or audited - proceed with * caution and please share any exploits or optimizations you discover. */ contract ImmutableCreate2Factory { // mapping to track which addresses have already been deployed. mapping(address => bool) private _deployed; /** * @dev Create a contract using CREATE2 by submitting a given salt or nonce * along with the initialization code for the contract. Note that the first 20 * bytes of the salt must match those of the calling address, which prevents * contract creation events from being submitted by unintended parties. * @param salt bytes32 The nonce that will be passed into the CREATE2 call. * @param initializationCode bytes The initialization code that will be passed * into the CREATE2 call. * @return Address of the contract that will be created, or the null address * if a contract already exists at that address. */ function safeCreate2( bytes32 salt, bytes calldata initializationCode ) external payable containsCaller(salt) returns (address deploymentAddress) { // move the initialization code from calldata to memory. bytes memory initCode = initializationCode; // determine the target address for contract deployment. address targetDeploymentAddress = address( uint160( // downcast to match the address type. uint256( // convert to uint to truncate upper digits. keccak256( // compute the CREATE2 hash using 4 inputs. abi.encodePacked( // pack all inputs to the hash together. hex"ff", // start with 0xff to distinguish from RLP. address(this), // this contract will be the caller. salt, // pass in the supplied salt value. keccak256( // pass in the hash of initialization code. abi.encodePacked( initCode ) ) ) ) ) ) ); // ensure that a contract hasn't been previously deployed to target address. require( !_deployed[targetDeploymentAddress], "Invalid contract creation - contract has already been deployed." ); // using inline assembly: load data and length of data, then call CREATE2. assembly { // solhint-disable-line let encoded_data := add(0x20, initCode) // load initialization code. let encoded_size := mload(initCode) // load the init code's length. deploymentAddress := create2( // call CREATE2 with 4 arguments. callvalue, // forward any attached value. encoded_data, // pass in initialization code. encoded_size, // pass in init code's length. salt // pass in the salt value. ) } // check address against target to ensure that deployment was successful. require( deploymentAddress == targetDeploymentAddress, "Failed to deploy contract using provided salt and initialization code." ); // record the deployment of the contract to prevent redeploys. _deployed[deploymentAddress] = true; } /** * @dev Compute the address of the contract that will be created when * submitting a given salt or nonce to the contract along with the contract's * initialization code. The CREATE2 address is computed in accordance with * EIP-1014, and adheres to the formula therein of * `keccak256( 0xff ++ address ++ salt ++ keccak256(init_code)))[12:]` when * performing the computation. The computed address is then checked for any * existing contract code - if so, the null address will be returned instead. * @param salt bytes32 The nonce passed into the CREATE2 address calculation. * @param initCode bytes The contract initialization code to be used. * that will be passed into the CREATE2 address calculation. * @return Address of the contract that will be created, or the null address * if a contract has already been deployed to that address. */ function findCreate2Address( bytes32 salt, bytes calldata initCode ) external view returns (address deploymentAddress) { // determine the address where the contract will be deployed. deploymentAddress = address( uint160( // downcast to match the address type. uint256( // convert to uint to truncate upper digits. keccak256( // compute the CREATE2 hash using 4 inputs. abi.encodePacked( // pack all inputs to the hash together. hex"ff", // start with 0xff to distinguish from RLP. address(this), // this contract will be the caller. salt, // pass in the supplied salt value. keccak256( // pass in the hash of initialization code. abi.encodePacked( initCode ) ) ) ) ) ) ); // return null address to signify failure if contract has been deployed. if (_deployed[deploymentAddress]) { return address(0); } } /** * @dev Compute the address of the contract that will be created when * submitting a given salt or nonce to the contract along with the keccak256 * hash of the contract's initialization code. The CREATE2 address is computed * in accordance with EIP-1014, and adheres to the formula therein of * `keccak256( 0xff ++ address ++ salt ++ keccak256(init_code)))[12:]` when * performing the computation. The computed address is then checked for any * existing contract code - if so, the null address will be returned instead. * @param salt bytes32 The nonce passed into the CREATE2 address calculation. * @param initCodeHash bytes32 The keccak256 hash of the initialization code * that will be passed into the CREATE2 address calculation. * @return Address of the contract that will be created, or the null address * if a contract has already been deployed to that address. */ function findCreate2AddressViaHash( bytes32 salt, bytes32 initCodeHash ) external view returns (address deploymentAddress) { // determine the address where the contract will be deployed. deploymentAddress = address( uint160( // downcast to match the address type. uint256( // convert to uint to truncate upper digits. keccak256( // compute the CREATE2 hash using 4 inputs. abi.encodePacked( // pack all inputs to the hash together. hex"ff", // start with 0xff to distinguish from RLP. address(this), // this contract will be the caller. salt, // pass in the supplied salt value. initCodeHash // pass in the hash of initialization code. ) ) ) ) ); // return null address to signify failure if contract has been deployed. if (_deployed[deploymentAddress]) { return address(0); } } /** * @dev Determine if a contract has already been deployed by the factory to a * given address. * @param deploymentAddress address The contract address to check. * @return True if the contract has been deployed, false otherwise. */ function hasBeenDeployed( address deploymentAddress ) external view returns (bool) { // determine if a contract has been deployed to the provided address. return _deployed[deploymentAddress]; } /** * @dev Modifier to ensure that the first 20 bytes of a submitted salt match * those of the calling account. This provides protection against the salt * being stolen by frontrunners or other attackers. The protection can also be * bypassed if desired by setting each of the first 20 bytes to zero. * @param salt bytes32 The salt value to check against the calling address. */ modifier containsCaller(bytes32 salt) { // prevent contract submissions from being stolen from tx.pool by requiring // that the first 20 bytes of the submitted salt match msg.sender. require( (address(bytes20(salt)) == msg.sender) || (bytes20(salt) == bytes20(0)), "Invalid salt - first 20 bytes of the salt must match calling address." ); _; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":true,"inputs":[{"name":"deploymentAddress","type":"address"}],"name":"hasBeenDeployed","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"salt","type":"bytes32"},{"name":"initializationCode","type":"bytes"}],"name":"safeCreate2","outputs":[{"name":"deploymentAddress","type":"address"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"name":"salt","type":"bytes32"},{"name":"initCode","type":"bytes"}],"name":"findCreate2Address","outputs":[{"name":"deploymentAddress","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"salt","type":"bytes32"},{"name":"initCodeHash","type":"bytes32"}],"name":"findCreate2AddressViaHash","outputs":[{"name":"deploymentAddress","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b50610833806100206000396000f3fe60806040526004361061003f5760003560e01c806308508b8f1461004457806364e030871461009857806385cf97ab14610138578063a49a7c90146101bc575b600080fd5b34801561005057600080fd5b506100846004803603602081101561006757600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166101ec565b604080519115158252519081900360200190f35b61010f600480360360408110156100ae57600080fd5b813591908101906040810160208201356401000000008111156100d057600080fd5b8201836020820111156100e257600080fd5b8035906020019184600183028401116401000000008311171561010457600080fd5b509092509050610217565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b34801561014457600080fd5b5061010f6004803603604081101561015b57600080fd5b8135919081019060408101602082013564010000000081111561017d57600080fd5b82018360208201111561018f57600080fd5b803590602001918460018302840111640100000000831117156101b157600080fd5b509092509050610592565b3480156101c857600080fd5b5061010f600480360360408110156101df57600080fd5b508035906020013561069e565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205460ff1690565b600083606081901c33148061024c57507fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008116155b6102a1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260458152602001806107746045913960600191505060405180910390fd5b606084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920182905250604051855195965090943094508b93508692506020918201918291908401908083835b6020831061033557805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016102f8565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff018019909216911617905260408051929094018281037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe00183528085528251928201929092207fff000000000000000000000000000000000000000000000000000000000000008383015260609890981b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016602183015260358201969096526055808201979097528251808203909701875260750182525084519484019490942073ffffffffffffffffffffffffffffffffffffffff81166000908152938490529390922054929350505060ff16156104a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603f815260200180610735603f913960400191505060405180910390fd5b81602001825188818334f5955050508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161461053a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260468152602001806107b96046913960600191505060405180910390fd5b50505073ffffffffffffffffffffffffffffffffffffffff8116600090815260208190526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790559392505050565b6000308484846040516020018083838082843760408051919093018181037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe001825280845281516020928301207fff000000000000000000000000000000000000000000000000000000000000008383015260609990991b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000166021820152603581019790975260558088019890985282518088039098018852607590960182525085519585019590952073ffffffffffffffffffffffffffffffffffffffff81166000908152948590529490932054939450505060ff909116159050610697575060005b9392505050565b604080517fff000000000000000000000000000000000000000000000000000000000000006020808301919091523060601b6021830152603582018590526055808301859052835180840390910181526075909201835281519181019190912073ffffffffffffffffffffffffffffffffffffffff81166000908152918290529190205460ff161561072e575060005b9291505056fe496e76616c696420636f6e7472616374206372656174696f6e202d20636f6e74726163742068617320616c7265616479206265656e206465706c6f7965642e496e76616c69642073616c74202d206669727374203230206279746573206f66207468652073616c74206d757374206d617463682063616c6c696e6720616464726573732e4661696c656420746f206465706c6f7920636f6e7472616374207573696e672070726f76696465642073616c7420616e6420696e697469616c697a6174696f6e20636f64652ea265627a7a723058202bdc55310d97c4088f18acf04253db593f0914059f0c781a9df3624dcef0d1cf64736f6c634300050a0032
Deployed Bytecode
0x60806040526004361061003f5760003560e01c806308508b8f1461004457806364e030871461009857806385cf97ab14610138578063a49a7c90146101bc575b600080fd5b34801561005057600080fd5b506100846004803603602081101561006757600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166101ec565b604080519115158252519081900360200190f35b61010f600480360360408110156100ae57600080fd5b813591908101906040810160208201356401000000008111156100d057600080fd5b8201836020820111156100e257600080fd5b8035906020019184600183028401116401000000008311171561010457600080fd5b509092509050610217565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b34801561014457600080fd5b5061010f6004803603604081101561015b57600080fd5b8135919081019060408101602082013564010000000081111561017d57600080fd5b82018360208201111561018f57600080fd5b803590602001918460018302840111640100000000831117156101b157600080fd5b509092509050610592565b3480156101c857600080fd5b5061010f600480360360408110156101df57600080fd5b508035906020013561069e565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205460ff1690565b600083606081901c33148061024c57507fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008116155b6102a1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260458152602001806107746045913960600191505060405180910390fd5b606084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920182905250604051855195965090943094508b93508692506020918201918291908401908083835b6020831061033557805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016102f8565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff018019909216911617905260408051929094018281037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe00183528085528251928201929092207fff000000000000000000000000000000000000000000000000000000000000008383015260609890981b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016602183015260358201969096526055808201979097528251808203909701875260750182525084519484019490942073ffffffffffffffffffffffffffffffffffffffff81166000908152938490529390922054929350505060ff16156104a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603f815260200180610735603f913960400191505060405180910390fd5b81602001825188818334f5955050508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161461053a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260468152602001806107b96046913960600191505060405180910390fd5b50505073ffffffffffffffffffffffffffffffffffffffff8116600090815260208190526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790559392505050565b6000308484846040516020018083838082843760408051919093018181037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe001825280845281516020928301207fff000000000000000000000000000000000000000000000000000000000000008383015260609990991b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000166021820152603581019790975260558088019890985282518088039098018852607590960182525085519585019590952073ffffffffffffffffffffffffffffffffffffffff81166000908152948590529490932054939450505060ff909116159050610697575060005b9392505050565b604080517fff000000000000000000000000000000000000000000000000000000000000006020808301919091523060601b6021830152603582018590526055808301859052835180840390910181526075909201835281519181019190912073ffffffffffffffffffffffffffffffffffffffff81166000908152918290529190205460ff161561072e575060005b9291505056fe496e76616c696420636f6e7472616374206372656174696f6e202d20636f6e74726163742068617320616c7265616479206265656e206465706c6f7965642e496e76616c69642073616c74202d206669727374203230206279746573206f66207468652073616c74206d757374206d617463682063616c6c696e6720616464726573732e4661696c656420746f206465706c6f7920636f6e7472616374207573696e672070726f76696465642073616c7420616e6420696e697469616c697a6174696f6e20636f64652ea265627a7a723058202bdc55310d97c4088f18acf04253db593f0914059f0c781a9df3624dcef0d1cf64736f6c634300050a0032
Deployed Bytecode Sourcemap
1144:8623:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8745:214;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8745:214:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8745:214:0;;;;:::i;:::-;;;;;;;;;;;;;;;;;;1950:2438;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1950:2438:0;;;;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;1950:2438:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;1950:2438:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;-1:-1;1950:2438:0;;-1:-1:-1;1950:2438:0;-1:-1:-1;1950:2438:0;:::i;:::-;;;;;;;;;;;;;;;;;;;5294:1174;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5294:1174:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5294:1174:0;;;;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;5294:1174:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;5294:1174:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;-1:-1;5294:1174:0;;-1:-1:-1;5294:1174:0;-1:-1:-1;5294:1174:0;:::i;7403:1079::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7403:1079:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7403:1079:0;;;;;;;:::i;8745:214::-;8925:28;;8830:4;8925:28;;;;;;;;;;;;;;8745:214::o;1950:2438::-;2082:25;2067:4;9586:22;;;;9612:10;9586:36;;9585:78;;-1:-1:-1;9635:27:0;;;;9585:78;9569:181;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2178:21;2202:18;;2178:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;-1:-1;2961:64:0;;;;2178:42;;-1:-1:-1;99:1;;2745:4:0;;-1:-1:-1;2809:4:0;;-1:-1:-1;2178:42:0;;-1:-1:-1;2961:64:0;;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;139:12;;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;246:30;;311:9;;295:26;;;340:21;;377:20;365:33;;2961:64:0;;;;;;;26:21:-1;;;22:32;;6:49;;2961:64:0;;;2880:162;;;;;;;;;2580:477;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;2580:477:0;;;;-1:-1:-1;2499:571:0;;;;;;;;;2580:477;3205:34;;-1:-1:-1;3205:34:0;;;;;;;;;;;;2499:571;;-1:-1:-1;;;3205:34:0;;3204:35;3188:132;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3512:8;3506:4;3502:19;3584:8;3578:15;3955:4;3877:12;3798;3720:9;3658:370;3637:391;;3418:617;;4159:23;4138:44;;:17;:44;;;4122:148;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;4347:28:0;;;:9;:28;;;;;;;;;;:35;;;;4378:4;4347:35;;;4357:17;1950:2438;-1:-1:-1;;;1950:2438:0:o;5294:1174::-;5399:25;5950:4;6016;6209:8;;6172:64;;;;;;;30:3:-1;22:6;14;1:33;6172:64:0;;;45:16:-1;;;;26:21;;;22:32;;6:49;;6172:64:0;;;6089:164;;49:4:-1;6089:164:0;;;;5781:487;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;5781:487:0;;;;;;-1:-1:-1;5698:583:0;;;;;;;;;5781:487;6399:28;;-1:-1:-1;6399:28:0;;;;;;;;;;;;5698:583;;-1:-1:-1;;;6399:28:0;;;;6395:68;;-1:-1:-1;6395:68:0;;-1:-1:-1;6453:1:0;6395:68;5294:1174;;;;;:::o;7403:1079::-;7894:388;;;;;;;;;;;;8063:4;7894:388;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;7894:388:0;;;;;;7811:484;;;;;;;;;7894:388;8413:28;;7512:25;8413:28;;;;;;;;;;;;;8409:68;;;-1:-1:-1;8467:1:0;8409:68;7403:1079;;;;:::o
Swarm Source
bzzr://2bdc55310d97c4088f18acf04253db593f0914059f0c781a9df3624dcef0d1cf
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 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.