// 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 | Type | Item | ||
|---|---|---|---|---|---|---|---|---|---|
| no NFT transfers for this address yet | |||||||||
| Transaction Hash | Method | Block | Age | From | To | Amount | Token | ||
|---|---|---|---|---|---|---|---|---|---|
| no token transfers for this address yet | |||||||||
| Txn Hash | Age | Event | Topics / Data |
|---|---|---|---|
| 0xb8664f…caac4b | 11 mins agoTue, 18 Aug 2026 05:08:04 UTC | Transfer | [0] 0x000000000000…9d0100b1 [1] 0x000000000000…7c0f39d8 data: 0x000000000000000000…19232920 |
| 0xb8664f…caac4b | 11 mins agoTue, 18 Aug 2026 05:08:04 UTC | Transfer | [0] 0x000000000000…8c8bfce0 [1] 0x000000000000…9d0100b1 data: 0x000000000000000000…19232920 |
| 0x63ab71…6ba662 | 11 mins agoTue, 18 Aug 2026 05:07:42 UTC | Transfer | [0] 0x000000000000…01bcd75e [1] 0x000000000000…8c8bfce0 data: 0x000000000000000000…e064cdcd |
| 0x63ab71…6ba662 | 11 mins agoTue, 18 Aug 2026 05:07:42 UTC | Transfer | [0] 0x000000000000…7c0f39d8 [1] 0x000000000000…01bcd75e data: 0x000000000000000000…987e0140 |
| 0x08dd7f…298164 | 43 mins agoTue, 18 Aug 2026 04:35:55 UTC | Transfer | [0] 0x000000000000…9d0100b1 [1] 0x000000000000…7c0f39d8 data: 0x000000000000000000…91384fb8 |
| 0x08dd7f…298164 | 43 mins agoTue, 18 Aug 2026 04:35:55 UTC | Transfer | [0] 0x000000000000…8c8bfce0 [1] 0x000000000000…9d0100b1 data: 0x000000000000000000…91384fb8 |
| 0x6e9e4e…0b8576 | 1 hr agoTue, 18 Aug 2026 04:05:20 UTC | Transfer | [0] 0x000000000000…01bcd75e [1] 0x000000000000…8c8bfce0 data: 0x000000000000000000…5b52594b |
| 0x6e9e4e…0b8576 | 1 hr agoTue, 18 Aug 2026 04:05:20 UTC | Transfer | [0] 0x000000000000…7c0f39d8 [1] 0x000000000000…01bcd75e data: 0x000000000000000000…3226ef9d |
| 0xeaee1e…9c0f98 | 1 hr agoTue, 18 Aug 2026 04:04:57 UTC | Transfer | [0] 0x000000000000…9d0100b1 [1] 0x000000000000…7c0f39d8 data: 0x000000000000000000…97356b19 |
| 0xeaee1e…9c0f98 | 1 hr agoTue, 18 Aug 2026 04:04:57 UTC | Transfer | [0] 0x000000000000…8c8bfce0 [1] 0x000000000000…9d0100b1 data: 0x000000000000000000…97356b19 |
| 0x034063…7391d6 | 1 hr agoTue, 18 Aug 2026 03:32:36 UTC | Transfer | [0] 0x000000000000…01bcd75e [1] 0x000000000000…8c8bfce0 data: 0x000000000000000000…bd976fe9 |
| 0x034063…7391d6 | 1 hr agoTue, 18 Aug 2026 03:32:36 UTC | Transfer | [0] 0x000000000000…7c0f39d8 [1] 0x000000000000…01bcd75e data: 0x000000000000000000…acfd4be3 |
| 0x6113b7…5fa2f5 | 1 hr agoTue, 18 Aug 2026 03:32:13 UTC | Transfer | [0] 0x000000000000…9d0100b1 [1] 0x000000000000…7c0f39d8 data: 0x000000000000000000…92f1a374 |
| 0x6113b7…5fa2f5 | 1 hr agoTue, 18 Aug 2026 03:32:13 UTC | Transfer | [0] 0x000000000000…8c8bfce0 [1] 0x000000000000…9d0100b1 data: 0x000000000000000000…92f1a374 |
| 0x43a5c2…e29ef5 | 2 hrs agoTue, 18 Aug 2026 03:00:45 UTC | Transfer | [0] 0x000000000000…01bcd75e [1] 0x000000000000…8c8bfce0 data: 0x000000000000000000…a82eb532 |
| 0x43a5c2…e29ef5 | 2 hrs agoTue, 18 Aug 2026 03:00:45 UTC | Transfer | [0] 0x000000000000…7c0f39d8 [1] 0x000000000000…01bcd75e data: 0x000000000000000000…d23a627e |
| 0x5c8225…35e5c4 | 2 hrs agoTue, 18 Aug 2026 03:00:22 UTC | Transfer | [0] 0x000000000000…9d0100b1 [1] 0x000000000000…7c0f39d8 data: 0x000000000000000000…1ece6898 |
| 0x5c8225…35e5c4 | 2 hrs agoTue, 18 Aug 2026 03:00:22 UTC | Transfer | [0] 0x000000000000…8c8bfce0 [1] 0x000000000000…9d0100b1 data: 0x000000000000000000…1ece6898 |
| 0xaa3ab6…8e8e6c | 2 hrs agoTue, 18 Aug 2026 02:29:02 UTC | Transfer | [0] 0x000000000000…01bcd75e [1] 0x000000000000…8c8bfce0 data: 0x000000000000000000…2f902844 |
| 0xaa3ab6…8e8e6c | 2 hrs agoTue, 18 Aug 2026 02:29:02 UTC | Transfer | [0] 0x000000000000…7c0f39d8 [1] 0x000000000000…01bcd75e data: 0x000000000000000000…bb743254 |
| 0x50166b…a5d49a | 2 hrs agoTue, 18 Aug 2026 02:28:40 UTC | Transfer | [0] 0x000000000000…9d0100b1 [1] 0x000000000000…7c0f39d8 data: 0x000000000000000000…39638c2f |
| 0x50166b…a5d49a | 2 hrs agoTue, 18 Aug 2026 02:28:40 UTC | Transfer | [0] 0x000000000000…8c8bfce0 [1] 0x000000000000…9d0100b1 data: 0x000000000000000000…39638c2f |
| 0xe3ad28…ffd0eb | 3 hrs agoTue, 18 Aug 2026 01:57:14 UTC | Transfer | [0] 0x000000000000…01bcd75e [1] 0x000000000000…8c8bfce0 data: 0x000000000000000000…000e126a |
| 0xe3ad28…ffd0eb | 3 hrs agoTue, 18 Aug 2026 01:57:14 UTC | Transfer | [0] 0x000000000000…7c0f39d8 [1] 0x000000000000…01bcd75e data: 0x000000000000000000…80119704 |
| 0x015f12…571564 | 3 hrs agoTue, 18 Aug 2026 01:56:56 UTC | Transfer | [0] 0x000000000000…9d0100b1 [1] 0x000000000000…7c0f39d8 data: 0x000000000000000000…06ded29b |
| Transaction Hash | Method ? | Block | Age | From | To | Amount | Txn Fee ? | ||
|---|---|---|---|---|---|---|---|---|---|
| 0x15c174…8bbca3 | Approve | 38,192,217 | 1 day agoSun, 16 Aug 2026 18:30:34 UTC | 0x40cf…9c15 | IN | SUSHI SZN | $0.000 ETH | 0.00000093 | |
| 0xbd97c4…65f30d | Approve | 37,616,104 | 2 days agoSun, 16 Aug 2026 02:26:29 UTC | 0x6b6f…5ba9 | IN | SUSHI SZN | $0.000 ETH | 0.00000121 | |
| 0xff40cd…cf44ab | Approve | 33,956,740 | 6 days agoTue, 11 Aug 2026 20:39:36 UTC | 0xd626…88fd | IN | SUSHI SZN | $0.000 ETH | 0.00000141 | |
| 0x30c152…66b86d | Approve | 33,956,740 | 6 days agoTue, 11 Aug 2026 20:39:36 UTC | 0xf2a4…b2d5 | IN | SUSHI SZN | $0.000 ETH | 0.00000141 | |
| 0x7f4bb1…b5f062 | Approve | 33,956,740 | 6 days agoTue, 11 Aug 2026 20:39:36 UTC | 0x0027…2ca2 | IN | SUSHI SZN | $0.000 ETH | 0.00000141 | |
| 0x0be17e…a8f237 | Approve | 33,956,740 | 6 days agoTue, 11 Aug 2026 20:39:36 UTC | 0x8c70…998b | IN | SUSHI SZN | $0.000 ETH | 0.00000141 | |
| 0x3689bf…97b74a | Approve | 33,956,700 | 6 days agoTue, 11 Aug 2026 20:39:32 UTC | 0x6b6f…5ba9 | IN | SUSHI SZN | $0.000 ETH | 0.00000142 |
| Block | Age | Parent Transaction Hash | Type | Method | From | To | Value | |
|---|---|---|---|---|---|---|---|---|
| 33,956,504 | 6 days agoTue, 11 Aug 2026 20:39:12 UTC | 0x3c70a4…c3f547 | CREATE2 | launch | 0x626c…b3d4 | IN | 0x03bb…b70e | 0 ETH |