// SPDX-License-Identifier: GPL-3.0
pragma solidity 0.8.20;
/// @title LaunchToken
/// @notice Standard ERC-20 minted once at creation by the TokenFactory/Launchpad.
/// Creation atomically moves the full supply into this token's deterministic launch
/// escrow; from there tokens distribute via the curve and graduate into the AMM pool. No owner,
/// no mint-after-creation, no governance hooks — deliberately boring so the
/// token is safe to list anywhere and carries no launchpad-specific risk.
contract LaunchToken {
string public name;
string public symbol;
uint8 public constant decimals = 18;
/// @dev IPFS URI (ipfs://...) pointing to a JSON with image, description, socials.
/// Set at creation, immutable. Resolved off-chain by the frontend/indexer.
string public metadataURI;
uint256 public totalSupply;
mapping(address => uint256) public balanceOf;
mapping(address => mapping(address => uint256)) public allowance;
event Transfer(address indexed from, address indexed to, uint256 value);
event Approval(address indexed owner, address indexed spender, uint256 value);
constructor(
string memory name_,
string memory symbol_,
uint256 totalSupply_,
address mintTo,
string memory metadataURI_
) {
name = name_;
symbol = symbol_;
metadataURI = metadataURI_;
totalSupply = totalSupply_;
balanceOf[mintTo] = totalSupply_;
emit Transfer(address(0), mintTo, totalSupply_);
}
function approve(address spender, uint256 value) external returns (bool) {
allowance[msg.sender][spender] = value;
emit Approval(msg.sender, spender, value);
return true;
}
function transfer(address to, uint256 value) external returns (bool) {
_transfer(msg.sender, to, value);
return true;
}
function transferFrom(address from, address to, uint256 value) external returns (bool) {
uint256 allowed = allowance[from][msg.sender];
if (allowed != type(uint256).max) {
allowance[from][msg.sender] = allowed - value;
}
_transfer(from, to, value);
return true;
}
function _transfer(address from, address to, uint256 value) internal {
balanceOf[from] -= value;
balanceOf[to] += value;
emit Transfer(from, to, value);
}
}[
{
"type": "constructor",
"inputs": [
{
"name": "name_",
"type": "string",
"internalType": "string"
},
{
"name": "symbol_",
"type": "string",
"internalType": "string"
},
{
"name": "totalSupply_",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "mintTo",
"type": "address",
"internalType": "address"
},
{
"name": "metadataURI_",
"type": "string",
"internalType": "string"
}
],
"stateMutability": "nonpayable"
},
{
"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": "allowance",
"type": "function",
"inputs": [
{
"name": "",
"type": "address",
"internalType": "address"
},
{
"name": "",
"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": "",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "decimals",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint8",
"internalType": "uint8"
}
],
"stateMutability": "view"
},
{
"name": "metadataURI",
"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": "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"
}
]0x6080604081815260049182361015610015575f80fd5b5f92833560e01c91826303ee438c146104705750816306fdde0314610398578163095ea7b31461032757816318160ddd1461030857816323b872dd14610281578163313ce5671461026557816370a082311461022b57816395d89b411461010b57508063a9059cbb146100db5763dd62ed3e14610090575f80fd5b346100d757806003193601126100d757806020926100ac61058f565b6100b46105a9565b6001600160a01b0391821683526005865283832091168252845220549051908152f35b5080fd5b50346100d757806003193601126100d7576020906101046100fa61058f565b60243590336105e0565b5160018152f35b8383346100d757816003193601126100d75780519082600180549081811c90808316928315610221575b602093848410811461020e578388529081156101f2575060011461019d575b505050829003601f01601f191682019267ffffffffffffffff84118385101761018a5750829182610186925282610548565b0390f35b634e487b7160e01b815260418552602490fd5b8087529192508591837fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b8385106101de5750505050830101858080610154565b8054888601830152930192849082016101c8565b60ff1916878501525050151560051b8401019050858080610154565b634e487b7160e01b895260228a52602489fd5b91607f1691610135565b9050346102615760203660031901126102615760209282916001600160a01b0361025361058f565b168252845220549051908152f35b8280fd5b5050346100d757816003193601126100d7576020905160128152f35b5050346100d75760603660031901126100d7576101046020926102a261058f565b6102aa6105a9565b6001600160a01b0382168084526005875285842033855287528584205460443594929392879186600182016102e4575b50505050506105e0565b6102ed916105bf565b92815260058952818120338252895220555f858180866102da565b5050346100d757816003193601126100d7576020906003549051908152f35b5050346100d757806003193601126100d7576020918161034561058f565b91602435918291338152600587528181209460018060a01b0316948582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b8383346100d757816003193601126100d757805190828354600181811c90808316928315610466575b602093848410811461020e578388529081156101f2575060011461041157505050829003601f01601f191682019267ffffffffffffffff84118385101761018a5750829182610186925282610548565b8680529192508591837f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b8385106104525750505050830101858080610154565b80548886018301529301928490820161043c565b91607f16916103c1565b8490843461026157826003193601126102615782600254600181811c9080831692831561053e575b602093848410811461020e578388529081156101f257506001146104e857505050829003601f01601f191682019267ffffffffffffffff84118385101761018a5750829182610186925282610548565b600287529192508591837f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace5b83851061052a5750505050830101858080610154565b805488860183015293019284908201610514565b91607f1691610498565b602080825282518183018190529093925f5b82811061057b57505060409293505f838284010152601f8019910116010190565b81810186015184820160400152850161055a565b600435906001600160a01b03821682036105a557565b5f80fd5b602435906001600160a01b03821682036105a557565b919082039182116105cc57565b634e487b7160e01b5f52601160045260245ffd5b909160018060a01b03809216915f938385526004602052604085206106068482546105bf565b905516928381526004602052604081208054918383018093116106535750556040519081527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602090a3565b634e487b7160e01b81526011600452602490fdfea26469706673582212206249539cd319bd4d7f7c7cdf3601df8df6b1838b750c1deaf8d4f7d0ebdd679e64736f6c63430008140033
| Token | Symbol | Balance | Price | Value |
|---|---|---|---|---|
| no token holdings | ||||
| Transaction Hash | Method | Block | Age | From | To | Amount | Token | ||
|---|---|---|---|---|---|---|---|---|---|
| no token transfers for this address yet | |||||||||
| Type | Age | Block | Details |
|---|---|---|---|
| no cross-chain L1↔L2 transactions for this address | |||
| Txn Hash | Age | Event | Topics / Data |
|---|---|---|---|
| 0x60bc4d…3728b7 | 21 days agoSun, 26 Jul 2026 16:43:25 UTC | Transfer | [0] 0x000000000000…a2eb1f4a [1] 0x000000000000…1e862916 data: 0x000000000000000000…0bbfb689 |
| 0x60bc4d…3728b7 | 21 days agoSun, 26 Jul 2026 16:43:25 UTC | Approval | [0] 0x000000000000…a2eb1f4a [1] 0x000000000000…a1deed3f data: 0x000000000000000000…0bbfb689 |
| 0x60bc4d…3728b7 | 21 days agoSun, 26 Jul 2026 16:43:25 UTC | Transfer | [0] 0x000000000000…e443b1d1 [1] 0x000000000000…a2eb1f4a data: 0x000000000000000000…0bbfb689 |
| 0x54f9c9…80a2d7 | 21 days agoSun, 26 Jul 2026 16:43:16 UTC | Approval | [0] 0x000000000000…e443b1d1 [1] 0x000000000000…a2eb1f4a data: 0x000000000000000000…0bbfb689 |
| 0x0ed2f2…0e6506 | 21 days agoSun, 26 Jul 2026 01:49:06 UTC | Transfer | [0] 0x000000000000…a2eb1f4a [1] 0x000000000000…e443b1d1 data: 0x000000000000000000…0bbfb689 |
| 0x0ed2f2…0e6506 | 21 days agoSun, 26 Jul 2026 01:49:06 UTC | Transfer | [0] 0x000000000000…1e862916 [1] 0x000000000000…a2eb1f4a data: 0x000000000000000000…0bbfb689 |
| 0x687099…f026e6 | 22 days agoSat, 25 Jul 2026 18:56:46 UTC | Transfer | [0] 0x000000000000…a2eb1f4a [1] 0x000000000000…1e862916 data: 0x000000000000000000…eb6bcc0d |
| 0x687099…f026e6 | 22 days agoSat, 25 Jul 2026 18:56:46 UTC | Approval | [0] 0x000000000000…a2eb1f4a [1] 0x000000000000…a1deed3f data: 0x000000000000000000…eb6bcc0d |
| 0x687099…f026e6 | 22 days agoSat, 25 Jul 2026 18:56:46 UTC | Transfer | [0] 0x000000000000…e443b1d1 [1] 0x000000000000…a2eb1f4a data: 0x000000000000000000…eb6bcc0d |
| 0xa5be44…b46579 | 22 days agoSat, 25 Jul 2026 18:56:39 UTC | Approval | [0] 0x000000000000…e443b1d1 [1] 0x000000000000…a2eb1f4a data: 0x000000000000000000…eb6bcc0d |
| 0x66e2d4…0dabdb | 22 days agoSat, 25 Jul 2026 17:11:58 UTC | Transfer | [0] 0x000000000000…a2eb1f4a [1] 0x000000000000…ddb94422 data: 0x000000000000000000…38d0ada0 |
| 0x66e2d4…0dabdb | 22 days agoSat, 25 Jul 2026 17:11:58 UTC | Transfer | [0] 0x000000000000…1e862916 [1] 0x000000000000…a2eb1f4a data: 0x000000000000000000…38d0ada0 |
| 0x677238…fc761b | 22 days agoSat, 25 Jul 2026 17:01:48 UTC | Approval | [0] 0x000000000000…569a7544 [1] 0x000000000000…dc849060 data: 0xffffffffffffffffff…ffffffff |
| 0xfe0127…ebb882 | 22 days agoSat, 25 Jul 2026 16:59:51 UTC | Transfer | [0] 0x000000000000…a2eb1f4a [1] 0x000000000000…33447774 data: 0x000000000000000000…87410b70 |
| 0xfe0127…ebb882 | 22 days agoSat, 25 Jul 2026 16:59:51 UTC | Transfer | [0] 0x000000000000…1e862916 [1] 0x000000000000…a2eb1f4a data: 0x000000000000000000…87410b70 |
| 0x045fde…56eedb | 22 days agoSat, 25 Jul 2026 16:57:51 UTC | Transfer | [0] 0x000000000000…a2eb1f4a [1] 0x000000000000…4250710f data: 0x000000000000000000…5403698a |
| 0x045fde…56eedb | 22 days agoSat, 25 Jul 2026 16:57:51 UTC | Transfer | [0] 0x000000000000…1e862916 [1] 0x000000000000…a2eb1f4a data: 0x000000000000000000…5403698a |
| 0x246518…5df7fc | 22 days agoSat, 25 Jul 2026 16:38:34 UTC | Transfer | [0] 0x000000000000…a2eb1f4a [1] 0x000000000000…1e862916 data: 0x000000000000000000…312990e8 |
| 0x246518…5df7fc | 22 days agoSat, 25 Jul 2026 16:38:34 UTC | Approval | [0] 0x000000000000…a2eb1f4a [1] 0x000000000000…a1deed3f data: 0x000000000000000000…312990e8 |
| 0x246518…5df7fc | 22 days agoSat, 25 Jul 2026 16:38:34 UTC | Transfer | [0] 0x000000000000…be1160f3 [1] 0x000000000000…a2eb1f4a data: 0x000000000000000000…312990e8 |
| 0x7ed858…d17cdb | 22 days agoSat, 25 Jul 2026 16:38:24 UTC | Approval | [0] 0x000000000000…be1160f3 [1] 0x000000000000…a2eb1f4a data: 0x000000000000000000…312990e8 |
| 0xccb6b8…585828 | 22 days agoSat, 25 Jul 2026 16:35:24 UTC | Transfer | [0] 0x000000000000…a2eb1f4a [1] 0x000000000000…be1160f3 data: 0x000000000000000000…312990e8 |
| 0xccb6b8…585828 | 22 days agoSat, 25 Jul 2026 16:35:24 UTC | Transfer | [0] 0x000000000000…1e862916 [1] 0x000000000000…a2eb1f4a data: 0x000000000000000000…312990e8 |
| 0x838094…a6070d | 22 days agoSat, 25 Jul 2026 16:32:32 UTC | Transfer | [0] 0x000000000000…a2eb1f4a [1] 0x000000000000…e443b1d1 data: 0x000000000000000000…bb2b6396 |
| 0x838094…a6070d | 22 days agoSat, 25 Jul 2026 16:32:32 UTC | Transfer | [0] 0x000000000000…1e862916 [1] 0x000000000000…a2eb1f4a data: 0x000000000000000000…bb2b6396 |
| Transaction Hash | Method ? | Block | Age | From | To | Amount | Txn Fee ? | ||
|---|---|---|---|---|---|---|---|---|---|
| 0x54f9c9…80a2d7 | Approve | 20,023,213 | 21 days agoSun, 26 Jul 2026 16:43:16 UTC | 0x1407…b1d1 | IN | Intern | $0.000 ETH | 0.00000237 | |
| 0xa5be44…b46579 | Approve | 19,241,930 | 22 days agoSat, 25 Jul 2026 18:56:39 UTC | 0x1407…b1d1 | IN | Intern | $0.000 ETH | 0.00000345 | |
| 0x677238…fc761b | Approve | 19,173,247 | 22 days agoSat, 25 Jul 2026 17:01:48 UTC | 0x897d…7544 | IN | Intern | $0.000 ETH | 0.00000359 | |
| 0x7ed858…d17cdb | Approve | 19,159,248 | 22 days agoSat, 25 Jul 2026 16:38:24 UTC | 0xd329…60f3 | IN | Intern | $0.000 ETH | 0.00000359 |
| Transaction Hash | Method | Block | Age | From | To | Type | Item | ||
|---|---|---|---|---|---|---|---|---|---|
| no NFT transfers for this address yet | |||||||||
| Block | Age | Parent Transaction Hash | Type | Method | From | To | Value | |
|---|---|---|---|---|---|---|---|---|
| 19,145,871 | 22 days agoSat, 25 Jul 2026 16:16:01 UTC | 0x5dd68c…6e8290 | CREATE2 | createLaunchVanity | 0x1354…ed3f | IN | 0x0a92…b10c | 0 ETH |