// SPDX-License-Identifier: MIT
pragma solidity 0.8.26;
import { ERC20 } from "openzeppelin-contracts/contracts/token/ERC20/ERC20.sol";
import { MetadataValidation } from "./libraries/MetadataValidation.sol";
/// @notice Immutable-metadata, fixed-supply launch token. It intentionally has no owner or privileged methods.
contract LaunchToken is ERC20 {
uint256 public constant TOTAL_SUPPLY = 1_000_000_000 ether;
struct Metadata {
string name;
string symbol;
string description;
string imageURI;
string website;
string twitter;
string telegram;
}
string public description;
string public imageURI;
string public website;
string public twitter;
string public telegram;
address public immutable creator;
constructor(Metadata memory metadata, address creator_, address initialHolder_)
ERC20(metadata.name, metadata.symbol)
{
MetadataValidation.validate(
metadata.name,
metadata.symbol,
metadata.description,
metadata.imageURI,
metadata.website,
metadata.twitter,
metadata.telegram,
creator_
);
if (initialHolder_ == address(0)) revert ERC20InvalidReceiver(address(0));
description = metadata.description;
imageURI = metadata.imageURI;
website = metadata.website;
twitter = metadata.twitter;
telegram = metadata.telegram;
creator = creator_;
_mint(initialHolder_, TOTAL_SUPPLY);
}
}[
{
"type": "constructor",
"inputs": [
{
"name": "metadata",
"type": "tuple",
"components": [
{
"name": "name",
"type": "string",
"internalType": "string"
},
{
"name": "symbol",
"type": "string",
"internalType": "string"
},
{
"name": "description",
"type": "string",
"internalType": "string"
},
{
"name": "imageURI",
"type": "string",
"internalType": "string"
},
{
"name": "website",
"type": "string",
"internalType": "string"
},
{
"name": "twitter",
"type": "string",
"internalType": "string"
},
{
"name": "telegram",
"type": "string",
"internalType": "string"
}
],
"internalType": "struct LaunchToken.Metadata"
},
{
"name": "creator_",
"type": "address",
"internalType": "address"
},
{
"name": "initialHolder_",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "nonpayable"
},
{
"name": "ERC20InsufficientAllowance",
"type": "error",
"inputs": [
{
"name": "spender",
"type": "address",
"internalType": "address"
},
{
"name": "allowance",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "needed",
"type": "uint256",
"internalType": "uint256"
}
]
},
{
"name": "ERC20InsufficientBalance",
"type": "error",
"inputs": [
{
"name": "sender",
"type": "address",
"internalType": "address"
},
{
"name": "balance",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "needed",
"type": "uint256",
"internalType": "uint256"
}
]
},
{
"name": "ERC20InvalidApprover",
"type": "error",
"inputs": [
{
"name": "approver",
"type": "address",
"internalType": "address"
}
]
},
{
"name": "ERC20InvalidReceiver",
"type": "error",
"inputs": [
{
"name": "receiver",
"type": "address",
"internalType": "address"
}
]
},
{
"name": "ERC20InvalidSender",
"type": "error",
"inputs": [
{
"name": "sender",
"type": "address",
"internalType": "address"
}
]
},
{
"name": "ERC20InvalidSpender",
"type": "error",
"inputs": [
{
"name": "spender",
"type": "address",
"internalType": "address"
}
]
},
{
"name": "EmptyName",
"type": "error",
"inputs": []
},
{
"name": "EmptySymbol",
"type": "error",
"inputs": []
},
{
"name": "MetadataTooLong",
"type": "error",
"inputs": [
{
"name": "field",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "actual",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "maximum",
"type": "uint256",
"internalType": "uint256"
}
]
},
{
"name": "ZeroCreator",
"type": "error",
"inputs": []
},
{
"name": "Approval",
"type": "event",
"inputs": [
{
"name": "owner",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "spender",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "value",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "Transfer",
"type": "event",
"inputs": [
{
"name": "from",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "to",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "value",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "TOTAL_SUPPLY",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "allowance",
"type": "function",
"inputs": [
{
"name": "owner",
"type": "address",
"internalType": "address"
},
{
"name": "spender",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "approve",
"type": "function",
"inputs": [
{
"name": "spender",
"type": "address",
"internalType": "address"
},
{
"name": "value",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "nonpayable"
},
{
"name": "balanceOf",
"type": "function",
"inputs": [
{
"name": "account",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "creator",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "decimals",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint8",
"internalType": "uint8"
}
],
"stateMutability": "view"
},
{
"name": "description",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "string",
"internalType": "string"
}
],
"stateMutability": "view"
},
{
"name": "imageURI",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "string",
"internalType": "string"
}
],
"stateMutability": "view"
},
{
"name": "name",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "string",
"internalType": "string"
}
],
"stateMutability": "view"
},
{
"name": "symbol",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "string",
"internalType": "string"
}
],
"stateMutability": "view"
},
{
"name": "telegram",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "string",
"internalType": "string"
}
],
"stateMutability": "view"
},
{
"name": "totalSupply",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "transfer",
"type": "function",
"inputs": [
{
"name": "to",
"type": "address",
"internalType": "address"
},
{
"name": "value",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "nonpayable"
},
{
"name": "transferFrom",
"type": "function",
"inputs": [
{
"name": "from",
"type": "address",
"internalType": "address"
},
{
"name": "to",
"type": "address",
"internalType": "address"
},
{
"name": "value",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "nonpayable"
},
{
"name": "twitter",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "string",
"internalType": "string"
}
],
"stateMutability": "view"
},
{
"name": "website",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "string",
"internalType": "string"
}
],
"stateMutability": "view"
}
]0x608060405234801561000f575f80fd5b50600436106100fb575f3560e01c806370a0823111610093578063a9059cbb11610063578063a9059cbb14610224578063abfaeee014610237578063beb0a4161461023f578063dd62ed3e14610247575f80fd5b806370a08231146101cc5780637284e41614610201578063902d55a51461020957806395d89b411461021c575f80fd5b806318160ddd116100ce57806318160ddd1461019057806323b872dd146101a2578063313ce567146101b557806347ecb665146101c4575f80fd5b806302d05d3f146100ff57806306fdde0314610150578063095ea7b314610165578063135d088d14610188575b5f80fd5b6101267f0000000000000000000000008afc6b844fdfc010e3f518cd8e5c259f3902eb0381565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b61015861028c565b60405161014791906108ae565b610178610173366004610929565b61031c565b6040519015158152602001610147565b610158610335565b6002545b604051908152602001610147565b6101786101b0366004610951565b6103c1565b60405160128152602001610147565b6101586103e4565b6101946101da36600461098b565b73ffffffffffffffffffffffffffffffffffffffff165f9081526020819052604090205490565b6101586103f1565b6101946b033b2e3c9fd0803ce800000081565b6101586103fe565b610178610232366004610929565b61040d565b61015861041a565b610158610427565b6101946102553660046109ab565b73ffffffffffffffffffffffffffffffffffffffff9182165f90815260016020908152604080832093909416825291909152205490565b60606003805461029b906109dc565b80601f01602080910402602001604051908101604052809291908181526020018280546102c7906109dc565b80156103125780601f106102e957610100808354040283529160200191610312565b820191905f5260205f20905b8154815290600101906020018083116102f557829003601f168201915b5050505050905090565b5f33610329818585610434565b60019150505b92915050565b60068054610342906109dc565b80601f016020809104026020016040519081016040528092919081815260200182805461036e906109dc565b80156103b95780601f10610390576101008083540402835291602001916103b9565b820191905f5260205f20905b81548152906001019060200180831161039c57829003601f168201915b505050505081565b5f336103ce858285610446565b6103d9858585610519565b506001949350505050565b60098054610342906109dc565b60058054610342906109dc565b60606004805461029b906109dc565b5f33610329818585610519565b60088054610342906109dc565b60078054610342906109dc565b61044183838360016105c2565b505050565b73ffffffffffffffffffffffffffffffffffffffff8381165f908152600160209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8110156105135781811015610505576040517ffb8f41b200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8416600482015260248101829052604481018390526064015b60405180910390fd5b61051384848484035f6105c2565b50505050565b73ffffffffffffffffffffffffffffffffffffffff8316610568576040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081525f60048201526024016104fc565b73ffffffffffffffffffffffffffffffffffffffff82166105b7576040517fec442f050000000000000000000000000000000000000000000000000000000081525f60048201526024016104fc565b610441838383610707565b73ffffffffffffffffffffffffffffffffffffffff8416610611576040517fe602df050000000000000000000000000000000000000000000000000000000081525f60048201526024016104fc565b73ffffffffffffffffffffffffffffffffffffffff8316610660576040517f94280d620000000000000000000000000000000000000000000000000000000081525f60048201526024016104fc565b73ffffffffffffffffffffffffffffffffffffffff8085165f9081526001602090815260408083209387168352929052208290558015610513578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516106f991815260200190565b60405180910390a350505050565b73ffffffffffffffffffffffffffffffffffffffff831661073e578060025f8282546107339190610a2d565b909155506107ee9050565b73ffffffffffffffffffffffffffffffffffffffff83165f90815260208190526040902054818110156107c3576040517fe450d38c00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8516600482015260248101829052604481018390526064016104fc565b73ffffffffffffffffffffffffffffffffffffffff84165f9081526020819052604090209082900390555b73ffffffffffffffffffffffffffffffffffffffff821661081757600280548290039055610842565b73ffffffffffffffffffffffffffffffffffffffff82165f9081526020819052604090208054820190555b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516108a191815260200190565b60405180910390a3505050565b602081525f82518060208401528060208501604085015e5f6040828501015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011684010191505092915050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610924575f80fd5b919050565b5f806040838503121561093a575f80fd5b61094383610901565b946020939093013593505050565b5f805f60608486031215610963575f80fd5b61096c84610901565b925061097a60208501610901565b929592945050506040919091013590565b5f6020828403121561099b575f80fd5b6109a482610901565b9392505050565b5f80604083850312156109bc575f80fd5b6109c583610901565b91506109d360208401610901565b90509250929050565b600181811c908216806109f057607f821691505b602082108103610a27577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b50919050565b8082018082111561032f577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd
| Token | Symbol | Balance | Price | Value |
|---|---|---|---|---|
| no token holdings | ||||
| Transaction Hash | Method | Block | Age | From | To | Amount | Token | ||
|---|---|---|---|---|---|---|---|---|---|
| no token transfers for this address yet | |||||||||
| Transaction Hash | Method | Block | Age | From | To | Type | Item | ||
|---|---|---|---|---|---|---|---|---|---|
| no NFT transfers for this address yet | |||||||||
| Type | Age | Block | Details |
|---|---|---|---|
| no cross-chain L1↔L2 transactions for this address | |||
| Txn Hash | Age | Event | Topics / Data |
|---|---|---|---|
| 0xca8fa3…c15670 | 8 days agoSun, 09 Aug 2026 22:40:22 UTC | Transfer | [0] 0x000000000000…db8c0904 [1] 0x000000000000…43e40951 data: 0x000000000000000000…6352aa06 |
| 0xca8fa3…c15670 | 8 days agoSun, 09 Aug 2026 22:40:22 UTC | Transfer | [0] 0x000000000000…e86dc64e [1] 0x000000000000…db8c0904 data: 0x000000000000000000…6352aa06 |
| 0xa8c32f…8e8a2e | 8 days agoSun, 09 Aug 2026 22:40:22 UTC | Transfer | [0] 0x000000000000…db8c0904 [1] 0x000000000000…43e40951 data: 0x000000000000000000…7de7fa3e |
| 0xa8c32f…8e8a2e | 8 days agoSun, 09 Aug 2026 22:40:22 UTC | Transfer | [0] 0x000000000000…3902eb03 [1] 0x000000000000…db8c0904 data: 0x000000000000000000…7de7fa3e |
| 0xa2335d…15c7f7 | 8 days agoSun, 09 Aug 2026 22:40:18 UTC | Approval | [0] 0x000000000000…e86dc64e [1] 0x000000000000…a9f8e4bf data: 0xffffffffffffffffff…ffffffff |
| 0xc251b4…df2797 | 8 days agoSun, 09 Aug 2026 22:27:37 UTC | Transfer | [0] 0x000000000000…305d2ab0 [1] 0x000000000000…e86dc64e data: 0x000000000000000000…6352aa06 |
| 0xc251b4…df2797 | 8 days agoSun, 09 Aug 2026 22:27:37 UTC | Transfer | [0] 0x000000000000…305d2ab0 [1] 0x000000000000…3902eb03 data: 0x000000000000000000…7de7fa3e |
| 0xc251b4…df2797 | 8 days agoSun, 09 Aug 2026 22:27:37 UTC | Transfer | [0] 0x000000000000…43e40951 [1] 0x000000000000…305d2ab0 data: 0x000000000000000000…e13aa444 |
| 0xd3eacc…afa651 | 8 days agoSun, 09 Aug 2026 22:10:46 UTC | Transfer | [0] 0x000000000000…db8c0904 [1] 0x000000000000…43e40951 data: 0x000000000000000000…dfad11c4 |
| 0xd3eacc…afa651 | 8 days agoSun, 09 Aug 2026 22:10:46 UTC | Transfer | [0] 0x000000000000…08dcf3b7 [1] 0x000000000000…db8c0904 data: 0x000000000000000000…dfad11c4 |
| 0xa8dd2e…db1a9d | 8 days agoSun, 09 Aug 2026 22:10:46 UTC | Transfer | [0] 0x000000000000…db8c0904 [1] 0x000000000000…43e40951 data: 0x000000000000000000…de57a34c |
| 0xa8dd2e…db1a9d | 8 days agoSun, 09 Aug 2026 22:10:46 UTC | Transfer | [0] 0x000000000000…3271670d [1] 0x000000000000…db8c0904 data: 0x000000000000000000…de57a34c |
| 0xf4431a…0e6d87 | 8 days agoSun, 09 Aug 2026 22:10:46 UTC | Transfer | [0] 0x000000000000…db8c0904 [1] 0x000000000000…43e40951 data: 0x000000000000000000…e102803a |
| 0xf4431a…0e6d87 | 8 days agoSun, 09 Aug 2026 22:10:46 UTC | Transfer | [0] 0x000000000000…3b9043ca [1] 0x000000000000…db8c0904 data: 0x000000000000000000…e102803a |
| 0xcde907…2ff5d0 | 8 days agoSun, 09 Aug 2026 22:10:46 UTC | Transfer | [0] 0x000000000000…db8c0904 [1] 0x000000000000…43e40951 data: 0x000000000000000000…7aa65105 |
| 0xcde907…2ff5d0 | 8 days agoSun, 09 Aug 2026 22:10:46 UTC | Transfer | [0] 0x000000000000…250fef3e [1] 0x000000000000…db8c0904 data: 0x000000000000000000…7aa65105 |
| 0x37c0f2…99de33 | 8 days agoSun, 09 Aug 2026 22:10:46 UTC | Transfer | [0] 0x000000000000…db8c0904 [1] 0x000000000000…43e40951 data: 0x000000000000000000…25000000 |
| 0x37c0f2…99de33 | 8 days agoSun, 09 Aug 2026 22:10:46 UTC | Transfer | [0] 0x000000000000…3902eb03 [1] 0x000000000000…db8c0904 data: 0x000000000000000000…25000000 |
| 0x8f9215…f3d9c8 | 8 days agoSun, 09 Aug 2026 22:10:45 UTC | Approval | [0] 0x000000000000…08dcf3b7 [1] 0x000000000000…a9f8e4bf data: 0xffffffffffffffffff…ffffffff |
| 0x2b75f0…fb2daf | 8 days agoSun, 09 Aug 2026 22:10:45 UTC | Approval | [0] 0x000000000000…3271670d [1] 0x000000000000…a9f8e4bf data: 0xffffffffffffffffff…ffffffff |
| 0x4ef480…ab49ce | 8 days agoSun, 09 Aug 2026 22:10:45 UTC | Approval | [0] 0x000000000000…3b9043ca [1] 0x000000000000…a9f8e4bf data: 0xffffffffffffffffff…ffffffff |
| 0x72cdac…175409 | 8 days agoSun, 09 Aug 2026 22:10:44 UTC | Approval | [0] 0x000000000000…250fef3e [1] 0x000000000000…a9f8e4bf data: 0xffffffffffffffffff…ffffffff |
| 0x8e3c0e…20d901 | 8 days agoSun, 09 Aug 2026 22:10:44 UTC | Approval | [0] 0x000000000000…3902eb03 [1] 0x000000000000…a9f8e4bf data: 0xffffffffffffffffff…ffffffff |
| 0xa190ea…9db0c2 | 8 days agoSun, 09 Aug 2026 22:07:09 UTC | Transfer | [0] 0x000000000000…619eae8d [1] 0x000000000000…08dcf3b7 data: 0x000000000000000000…dfad11c4 |
| 0xa190ea…9db0c2 | 8 days agoSun, 09 Aug 2026 22:07:09 UTC | Transfer | [0] 0x000000000000…619eae8d [1] 0x000000000000…3271670d data: 0x000000000000000000…de57a34c |
| Transaction Hash | Method ? | Block | Age | From | To | Amount | Txn Fee ? | ||
|---|---|---|---|---|---|---|---|---|---|
| 0xa2335d…15c7f7 | Approve | 32,302,567 | 8 days agoSun, 09 Aug 2026 22:40:18 UTC | 0x2248…c64e | IN | ZAK ZAK | $0.000 ETH | 0.00000130 | |
| 0x8f9215…f3d9c8 | Approve | 32,284,854 | 8 days agoSun, 09 Aug 2026 22:10:45 UTC | 0x9079…f3b7 | IN | ZAK ZAK | $0.000 ETH | 0.00000129 | |
| 0x2b75f0…fb2daf | Approve | 32,284,853 | 8 days agoSun, 09 Aug 2026 22:10:45 UTC | 0x2388…670d | IN | ZAK ZAK | $0.000 ETH | 0.00000128 | |
| 0x4ef480…ab49ce | Approve | 32,284,853 | 8 days agoSun, 09 Aug 2026 22:10:45 UTC | 0xb877…43ca | IN | ZAK ZAK | $0.000 ETH | 0.00000128 | |
| 0x72cdac…175409 | Approve | 32,284,851 | 8 days agoSun, 09 Aug 2026 22:10:44 UTC | 0x748e…ef3e | IN | ZAK ZAK | $0.000 ETH | 0.00000130 | |
| 0x8e3c0e…20d901 | Approve | 32,284,851 | 8 days agoSun, 09 Aug 2026 22:10:44 UTC | 0x8afc…eb03 | IN | ZAK ZAK | $0.000 ETH | 0.00000130 |
| Block | Age | Parent Transaction Hash | Type | Method | From | To | Value | |
|---|---|---|---|---|---|---|---|---|
| 32,282,686 | 8 days agoSun, 09 Aug 2026 22:07:09 UTC | 0xa190ea…9db0c2 | CREATE2 | launch | 0x499a…d41c | IN | 0x2014…6487 | 0 ETH |