// SPDX-License-Identifier: MIT
pragma solidity 0.8.25;
import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";
/// @title PartyToken
/// @notice Minimal fixed-supply ERC20 launched by PartyFactory via CREATE2.
/// @dev No owner, no mint, no transfer hooks. The full supply is minted once to
/// `recipient` (the factory) in the constructor. The caller-bound CREATE2
/// salt is mined off-chain so this token sorts below the paired asset (token0).
contract PartyToken is ERC20 {
/// @notice IPFS (or https) URI of the token's metadata JSON.
string public metadataUri;
constructor(
string memory name_,
string memory symbol_,
uint256 supply_,
address recipient_,
string memory metadataUri_
) ERC20(name_, symbol_) {
metadataUri = metadataUri_;
_mint(recipient_, supply_);
}
/// @notice Alias for `metadataUri`, mirroring the ERC721 tokenURI convention.
function tokenURI() external view returns (string memory) {
return metadataUri;
}
}[
{
"type": "constructor",
"inputs": [
{
"name": "name_",
"type": "string",
"internalType": "string"
},
{
"name": "symbol_",
"type": "string",
"internalType": "string"
},
{
"name": "supply_",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "recipient_",
"type": "address",
"internalType": "address"
},
{
"name": "metadataUri_",
"type": "string",
"internalType": "string"
}
],
"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": "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": "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": "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": "tokenURI",
"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"
}
]0x6080604090808252600480361015610015575f80fd5b5f3560e01c91826306fdde031461046557508163095ea7b3146103bd57816318160ddd1461039f57816323b872dd146102ad578163313ce567146102925781633c130d901461023457816370a082311461025c57816377a4d5591461023457816395d89b411461011557508063a9059cbb146100e55763dd62ed3e14610099575f80fd5b346100e157806003193601126100e1576020906100b4610567565b6100bc61057d565b9060018060a01b038091165f5260018452825f2091165f528252805f20549051908152f35b5f80fd5b50346100e157806003193601126100e15760209061010e610104610567565b6024359033610698565b5160018152f35b82346100e1575f3660031901126100e1578051905f835460018160011c906001831692831561022a575b6020938484108114610217578388529081156101fb57506001146101a7575b505050829003601f01601f191682019267ffffffffffffffff841183851017610194575082918261019092528261053d565b0390f35b604190634e487b7160e01b5f525260245ffd5b5f878152929350837f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b8385106101e7575050505083010184808061015e565b8054888601830152930192849082016101d1565b60ff1916878501525050151560051b840101905084808061015e565b602289634e487b7160e01b5f525260245ffd5b91607f169161013f565b82346100e1575f3660031901126100e15761019090610251610593565b90519182918261053d565b82346100e15760203660031901126100e1576020906001600160a01b03610281610567565b165f525f8252805f20549051908152f35b82346100e1575f3660031901126100e1576020905160128152f35b9050346100e15760603660031901126100e1576102c8610567565b6102d061057d565b906044359260018060a01b038216805f526001602052855f20335f52602052855f2054915f19831061030b575b60208761010e888888610698565b85831061037357811561035d57331561034757505f9081526001602090815286822033835281529086902091859003909155829061010e6102fd565b6024905f885191634a1406b160e11b8352820152fd5b6024905f88519163e602df0560e01b8352820152fd5b8651637dc7a0d960e11b8152339181019182526020820193909352604081018690528291506060010390fd5b82346100e1575f3660031901126100e1576020906002549051908152f35b82346100e157806003193601126100e1576103d6610567565b60243590331561044f576001600160a01b03169081156104395760209350335f5260018452825f20825f52845280835f205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b8251634a1406b160e11b81525f81860152602490fd5b825163e602df0560e01b81525f81860152602490fd5b83346100e1575f3660031901126100e1575f60035460018160011c9060018316928315610533575b6020938484108114610217578388529081156101fb57506001146104dd57505050829003601f01601f191682019267ffffffffffffffff841183851017610194575082918261019092528261053d565b60035f908152929350837fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b83851061051f575050505083010184808061015e565b805488860183015293019284908201610509565b91607f169161048d565b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b03821682036100e157565b602435906001600160a01b03821682036100e157565b604051905f60055460018160011c906001831692831561068e575b602093848410811461067a5783885290811561065e5750600114610608575b505050829003601f01601f1916820167ffffffffffffffff8111838210176105f457604052565b634e487b7160e01b5f52604160045260245ffd5b60055f908152929350837f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db05b83851061064a57505050508301015f80806105cd565b805488860183015293019284908201610634565b60ff1916878501525050151560051b84010190505f80806105cd565b634e487b7160e01b5f52602260045260245ffd5b91607f16916105ae565b916001600160a01b0380841692831561075a571692831561074257825f525f60205260405f2054908282106107105750817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92602092855f525f84520360405f2055845f5260405f20818154019055604051908152a3565b60405163391434e360e21b81526001600160a01b03919091166004820152602481019190915260448101829052606490fd5b60405163ec442f0560e01b81525f6004820152602490fd5b604051634b637e8f60e11b81525f6004820152602490fdfea2646970667358221220d17c4219ae719cdd67293c7cc1df6199db324657aed7aeb144d3027dcf6fac5364736f6c63430008190033
| Token | Symbol | Balance | Price | Value |
|---|---|---|---|---|
| no token holdings | ||||
| Type | Age | Block | Details |
|---|---|---|---|
| no cross-chain L1↔L2 transactions for this address | |||
| 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 | |||||||||
| Txn Hash | Age | Event | Topics / Data |
|---|---|---|---|
| 0xa0e769…822ed5 | 20 hrs agoMon, 17 Aug 2026 11:53:18 UTC | Transfer | [0] 0x000000000000…01bcd75e [1] 0x000000000000…8c8bfce0 data: 0x000000000000000000…082bd723 |
| 0xa0e769…822ed5 | 20 hrs agoMon, 17 Aug 2026 11:53:18 UTC | Transfer | [0] 0x000000000000…c9ef7bbe [1] 0x000000000000…01bcd75e data: 0x000000000000000000…8a36cceb |
| 0x52c860…cd54f1 | 20 hrs agoMon, 17 Aug 2026 11:52:44 UTC | Transfer | [0] 0x000000000000…9d0100b1 [1] 0x000000000000…c9ef7bbe data: 0x000000000000000000…fd67f4e7 |
| 0x52c860…cd54f1 | 20 hrs agoMon, 17 Aug 2026 11:52:44 UTC | Transfer | [0] 0x000000000000…8c8bfce0 [1] 0x000000000000…9d0100b1 data: 0x000000000000000000…fd67f4e7 |
| 0x1989e1…97a6e9 | 21 hrs agoMon, 17 Aug 2026 11:22:43 UTC | Transfer | [0] 0x000000000000…01bcd75e [1] 0x000000000000…8c8bfce0 data: 0x000000000000000000…41746b5b |
| 0x1989e1…97a6e9 | 21 hrs agoMon, 17 Aug 2026 11:22:43 UTC | Transfer | [0] 0x000000000000…c9ef7bbe [1] 0x000000000000…01bcd75e data: 0x000000000000000000…d1d18631 |
| 0x4fd6a0…e8c4ab | 21 hrs agoMon, 17 Aug 2026 11:22:19 UTC | Transfer | [0] 0x000000000000…9d0100b1 [1] 0x000000000000…c9ef7bbe data: 0x000000000000000000…f5d85985 |
| 0x4fd6a0…e8c4ab | 21 hrs agoMon, 17 Aug 2026 11:22:19 UTC | Transfer | [0] 0x000000000000…8c8bfce0 [1] 0x000000000000…9d0100b1 data: 0x000000000000000000…f5d85985 |
| 0xb65e4d…825ea4 | 21 hrs agoMon, 17 Aug 2026 10:51:40 UTC | Transfer | [0] 0x000000000000…01bcd75e [1] 0x000000000000…8c8bfce0 data: 0x000000000000000000…810bed12 |
| 0xb65e4d…825ea4 | 21 hrs agoMon, 17 Aug 2026 10:51:40 UTC | Transfer | [0] 0x000000000000…c9ef7bbe [1] 0x000000000000…01bcd75e data: 0x000000000000000000…214ee856 |
| 0xa51705…640e53 | 21 hrs agoMon, 17 Aug 2026 10:51:11 UTC | Transfer | [0] 0x000000000000…9d0100b1 [1] 0x000000000000…c9ef7bbe data: 0x000000000000000000…02d29e75 |
| 0xa51705…640e53 | 21 hrs agoMon, 17 Aug 2026 10:51:11 UTC | Transfer | [0] 0x000000000000…8c8bfce0 [1] 0x000000000000…9d0100b1 data: 0x000000000000000000…02d29e75 |
| 0x1f16bb…87e7c0 | 22 hrs agoMon, 17 Aug 2026 10:20:34 UTC | Transfer | [0] 0x000000000000…01bcd75e [1] 0x000000000000…8c8bfce0 data: 0x000000000000000000…c7a433f0 |
| 0x1f16bb…87e7c0 | 22 hrs agoMon, 17 Aug 2026 10:20:34 UTC | Transfer | [0] 0x000000000000…c9ef7bbe [1] 0x000000000000…01bcd75e data: 0x000000000000000000…798d40ec |
| 0x630a84…ec040b | 22 hrs agoMon, 17 Aug 2026 10:19:28 UTC | Transfer | [0] 0x000000000000…9d0100b1 [1] 0x000000000000…c9ef7bbe data: 0x000000000000000000…7b2d1c12 |
| 0x630a84…ec040b | 22 hrs agoMon, 17 Aug 2026 10:19:28 UTC | Transfer | [0] 0x000000000000…8c8bfce0 [1] 0x000000000000…9d0100b1 data: 0x000000000000000000…7b2d1c12 |
| 0x986225…a1acb4 | 22 hrs agoMon, 17 Aug 2026 09:48:37 UTC | Transfer | [0] 0x000000000000…01bcd75e [1] 0x000000000000…8c8bfce0 data: 0x000000000000000000…1602acb8 |
| 0x986225…a1acb4 | 22 hrs agoMon, 17 Aug 2026 09:48:37 UTC | Transfer | [0] 0x000000000000…c9ef7bbe [1] 0x000000000000…01bcd75e data: 0x000000000000000000…db8357e5 |
| 0x4facbc…89e3d3 | 22 hrs agoMon, 17 Aug 2026 09:48:03 UTC | Transfer | [0] 0x000000000000…9d0100b1 [1] 0x000000000000…c9ef7bbe data: 0x000000000000000000…bf4e44e4 |
| 0x4facbc…89e3d3 | 22 hrs agoMon, 17 Aug 2026 09:48:03 UTC | Transfer | [0] 0x000000000000…8c8bfce0 [1] 0x000000000000…9d0100b1 data: 0x000000000000000000…bf4e44e4 |
| 0x82608f…594d1d | 23 hrs agoMon, 17 Aug 2026 09:15:59 UTC | Transfer | [0] 0x000000000000…01bcd75e [1] 0x000000000000…8c8bfce0 data: 0x000000000000000000…6d0283ff |
| 0x82608f…594d1d | 23 hrs agoMon, 17 Aug 2026 09:15:59 UTC | Transfer | [0] 0x000000000000…c9ef7bbe [1] 0x000000000000…01bcd75e data: 0x000000000000000000…484324fe |
| 0x822cd9…730642 | 23 hrs agoMon, 17 Aug 2026 09:15:17 UTC | Transfer | [0] 0x000000000000…9d0100b1 [1] 0x000000000000…c9ef7bbe data: 0x000000000000000000…3a3a3de1 |
| 0x822cd9…730642 | 23 hrs agoMon, 17 Aug 2026 09:15:17 UTC | Transfer | [0] 0x000000000000…8c8bfce0 [1] 0x000000000000…9d0100b1 data: 0x000000000000000000…3a3a3de1 |
| 0xc52b7e…63ee79 | 1 day agoMon, 17 Aug 2026 08:38:26 UTC | Transfer | [0] 0x000000000000…01bcd75e [1] 0x000000000000…8c8bfce0 data: 0x000000000000000000…cd9706b1 |
| Transaction Hash | Method ? | Block | Age | From | To | Amount | Txn Fee ? | ||
|---|---|---|---|---|---|---|---|---|---|
| 0xd8b33d…e99cb8 | Approve | 37,372,794 | 2 days agoSat, 15 Aug 2026 19:39:44 UTC | 0x872b…9062 | IN | YTETYJ | $0.000 ETH | 0.00000133 | |
| 0x5ded1b…206580 | Approve | 33,715,370 | 6 days agoTue, 11 Aug 2026 13:57:56 UTC | 0x4f22…f658 | IN | YTETYJ | $0.000 ETH | 0.00000122 | |
| 0x228d0b…503b7a | Approve | 33,715,307 | 6 days agoTue, 11 Aug 2026 13:57:50 UTC | 0xa202…1934 | IN | YTETYJ | $0.000 ETH | 0.00000122 |
| Block | Age | Parent Transaction Hash | Type | Method | From | To | Value | |
|---|---|---|---|---|---|---|---|---|
| 33,714,994 | 6 days agoTue, 11 Aug 2026 13:57:18 UTC | 0x6f7246…c0ecc0 | CREATE2 | launch | 0x626c…b3d4 | IN | 0x0187…e73f | 0 ETH |