| Token | Symbol | Balance | Price | Value |
|---|---|---|---|---|
| no token holdings | ||||
// SPDX-License-Identifier: MIT
pragma solidity 0.8.30;
import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";
import {ERC20Permit} from "@openzeppelin/contracts/token/ERC20/extensions/ERC20Permit.sol";
/// Fixed-supply, ownerless ERC20 launched through the HoodStar launchpad.
///
/// ERC20Permit (EIP-2612) lets holders approve by signature, so selling on the
/// curve is a single transaction (see HoodstarDotFun.sellWithPermit).
///
/// Anti-rug invariants, enforced by what this contract does NOT have:
/// - no mint function: the full 1B supply is minted once, to the launchpad
/// - no owner, pause, freeze, blacklist, or fee-on-transfer hooks
/// - the creator receives zero tokens here; they can only buy on the curve
contract HoodToken is ERC20, ERC20Permit {
uint256 public constant TOTAL_SUPPLY = 1_000_000_000e18;
/// URI for off-chain metadata (image, description). Immutable after launch.
string public metadataURI;
constructor(string memory name_, string memory symbol_, string memory metadataURI_, address curve)
ERC20(name_, symbol_)
ERC20Permit(name_)
{
metadataURI = metadataURI_;
_mint(curve, TOTAL_SUPPLY);
}
}[
{
"type": "constructor",
"inputs": [
{
"name": "name_",
"type": "string",
"internalType": "string"
},
{
"name": "symbol_",
"type": "string",
"internalType": "string"
},
{
"name": "metadataURI_",
"type": "string",
"internalType": "string"
},
{
"name": "curve",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "nonpayable"
},
{
"name": "ECDSAInvalidSignature",
"type": "error",
"inputs": []
},
{
"name": "ECDSAInvalidSignatureLength",
"type": "error",
"inputs": [
{
"name": "length",
"type": "uint256",
"internalType": "uint256"
}
]
},
{
"name": "ECDSAInvalidSignatureS",
"type": "error",
"inputs": [
{
"name": "s",
"type": "bytes32",
"internalType": "bytes32"
}
]
},
{
"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": "ERC2612ExpiredSignature",
"type": "error",
"inputs": [
{
"name": "deadline",
"type": "uint256",
"internalType": "uint256"
}
]
},
{
"name": "ERC2612InvalidSigner",
"type": "error",
"inputs": [
{
"name": "signer",
"type": "address",
"internalType": "address"
},
{
"name": "owner",
"type": "address",
"internalType": "address"
}
]
},
{
"name": "InvalidAccountNonce",
"type": "error",
"inputs": [
{
"name": "account",
"type": "address",
"internalType": "address"
},
{
"name": "currentNonce",
"type": "uint256",
"internalType": "uint256"
}
]
},
{
"name": "InvalidShortString",
"type": "error",
"inputs": []
},
{
"name": "StringTooLong",
"type": "error",
"inputs": [
{
"name": "str",
"type": "string",
"internalType": "string"
}
]
},
{
"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": "EIP712DomainChanged",
"type": "event",
"inputs": [],
"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": "DOMAIN_SEPARATOR",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "bytes32",
"internalType": "bytes32"
}
],
"stateMutability": "view"
},
{
"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": "decimals",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint8",
"internalType": "uint8"
}
],
"stateMutability": "view"
},
{
"name": "eip712Domain",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "fields",
"type": "bytes1",
"internalType": "bytes1"
},
{
"name": "name",
"type": "string",
"internalType": "string"
},
{
"name": "version",
"type": "string",
"internalType": "string"
},
{
"name": "chainId",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "verifyingContract",
"type": "address",
"internalType": "address"
},
{
"name": "salt",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "extensions",
"type": "uint256[]",
"internalType": "uint256[]"
}
],
"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": "nonces",
"type": "function",
"inputs": [
{
"name": "owner",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "permit",
"type": "function",
"inputs": [
{
"name": "owner",
"type": "address",
"internalType": "address"
},
{
"name": "spender",
"type": "address",
"internalType": "address"
},
{
"name": "value",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "deadline",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "v",
"type": "uint8",
"internalType": "uint8"
},
{
"name": "r",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "s",
"type": "bytes32",
"internalType": "bytes32"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"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"
}
]0x60806040526004361015610011575f80fd5b5f3560e01c806303ee438c146106fb57806306fdde0314610656578063095ea7b31461063057806318160ddd1461061357806323b872dd14610534578063313ce567146105195780633644e515146104f757806370a08231146104c05780637ecebe001461048857806384b0196e14610390578063902d55a51461036a57806395d89b4114610288578063a9059cbb14610257578063d505accf146101125763dd62ed3e146100be575f80fd5b3461010e57604036600319011261010e576100d7610832565b6100df610848565b6001600160a01b039182165f908152600160209081526040808320949093168252928352819020549051908152f35b5f80fd5b3461010e5760e036600319011261010e5761012b610832565b610133610848565b604435906064359260843560ff8116810361010e57844211610244576102076102109160018060a01b03841696875f52600760205260405f20908154916001830190556040519060208201927f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c984528a604084015260018060a01b038916606084015289608084015260a083015260c082015260c081526101d560e0826107d8565b5190206101e061091b565b906040519161190160f01b83526002830152602282015260c43591604260a4359220610c4f565b90929192610cdc565b6001600160a01b031684810361022d575061022b9350610a37565b005b84906325c0072360e11b5f5260045260245260445ffd5b8463313c898160e11b5f5260045260245ffd5b3461010e57604036600319011261010e5761027d610273610832565b602435903361085e565b602060405160018152f35b3461010e575f36600319011261010e576040515f6004546102a8816107a0565b808452906001811690811561034657506001146102e8575b6102e4836102d0818503826107d8565b60405191829160208352602083019061080e565b0390f35b60045f9081527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b939250905b80821061032c575090915081016020016102d06102c0565b919260018160209254838588010152019101909291610314565b60ff191660208086019190915291151560051b840190910191506102d090506102c0565b3461010e575f36600319011261010e5760206040516b033b2e3c9fd0803ce80000008152f35b3461010e575f36600319011261010e5761042c6103cc7f4fea9395c68eea93a50000000000000000000000000000000000000000000009610a9a565b6103f57f3100000000000000000000000000000000000000000000000000000000000001610b97565b602061043a6040519261040883856107d8565b5f84525f368137604051958695600f60f81b875260e08588015260e087019061080e565b90858203604087015261080e565b4660608501523060808501525f60a085015283810360c08501528180845192838152019301915f5b82811061047157505050500390f35b835185528695509381019392810192600101610462565b3461010e57602036600319011261010e576001600160a01b036104a9610832565b165f526007602052602060405f2054604051908152f35b3461010e57602036600319011261010e576001600160a01b036104e1610832565b165f525f602052602060405f2054604051908152f35b3461010e575f36600319011261010e57602061051161091b565b604051908152f35b3461010e575f36600319011261010e57602060405160128152f35b3461010e57606036600319011261010e5761054d610832565b610555610848565b6001600160a01b0382165f818152600160209081526040808320338452909152902054909260443592915f198110610593575b5061027d935061085e565b8381106105f85784156105e55733156105d25761027d945f52600160205260405f2060018060a01b0333165f526020528360405f209103905584610588565b634a1406b160e11b5f525f60045260245ffd5b63e602df0560e01b5f525f60045260245ffd5b8390637dc7a0d960e11b5f523360045260245260445260645ffd5b3461010e575f36600319011261010e576020600254604051908152f35b3461010e57604036600319011261010e5761027d61064c610832565b6024359033610a37565b3461010e575f36600319011261010e576040515f600354610676816107a0565b8084529060018116908115610346575060011461069d576102e4836102d0818503826107d8565b60035f9081527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b939250905b8082106106e1575090915081016020016102d06102c0565b9192600181602092548385880101520191019092916106c9565b3461010e575f36600319011261010e576040515f60085461071b816107a0565b80845290600181169081156103465750600114610742576102e4836102d0818503826107d8565b60085f9081527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee3939250905b808210610786575090915081016020016102d06102c0565b91926001816020925483858801015201910190929161076e565b90600182811c921680156107ce575b60208310146107ba57565b634e487b7160e01b5f52602260045260245ffd5b91607f16916107af565b90601f8019910116810190811067ffffffffffffffff8211176107fa57604052565b634e487b7160e01b5f52604160045260245ffd5b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b038216820361010e57565b602435906001600160a01b038216820361010e57565b6001600160a01b0316908115610908576001600160a01b03169182156108f557815f525f60205260405f20548181106108dc57817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92602092855f525f84520360405f2055845f525f825260405f20818154019055604051908152a3565b8263391434e360e21b5f5260045260245260445260645ffd5b63ec442f0560e01b5f525f60045260245ffd5b634b637e8f60e11b5f525f60045260245ffd5b307f0000000000000000000000001cb7ee22daf82148c08ffe87b4645a7c6ca9e1b56001600160a01b03161480610a0e575b15610976577fd2471edb60e0675be6f8476a4eaf44381f53f15d1f9df2c0c24811bd2866d00a90565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f3258def85509729a468a785e07f36dde925887c00bd9414c7fff4bd32aa0c38960408201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260a08152610a0860c0826107d8565b51902090565b507f0000000000000000000000000000000000000000000000000000000000001237461461094d565b6001600160a01b03169081156105e5576001600160a01b03169182156105d25760207f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591835f526001825260405f20855f5282528060405f2055604051908152a3565b60ff8114610ae05760ff811690601f8211610ad15760405191610abe6040846107d8565b6020808452838101919036833783525290565b632cd44ac360e21b5f5260045ffd5b50604051600554815f610af2836107a0565b8083529260018116908115610b785750600114610b19575b610b16925003826107d8565b90565b5060055f90815290917f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db05b818310610b5c575050906020610b1692820101610b0a565b6020919350806001915483858801015201910190918392610b44565b60209250610b1694915060ff191682840152151560051b820101610b0a565b60ff8114610bbb5760ff811690601f8211610ad15760405191610abe6040846107d8565b50604051600654815f610bcd836107a0565b8083529260018116908115610b785750600114610bf057610b16925003826107d8565b5060065f90815290917ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f5b818310610c33575050906020610b1692820101610b0a565b6020919350806001915483858801015201910190918392610c1b565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411610cd1579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa15610cc6575f516001600160a01b03811615610cbc57905f905f90565b505f906001905f90565b6040513d5f823e3d90fd5b5050505f9160039190565b6004811015610d3c5780610cee575050565b60018103610d055763f645eedf60e01b5f5260045ffd5b60028103610d20575063fce698f760e01b5f5260045260245ffd5b600314610d2a5750565b6335e2f38360e21b5f5260045260245ffd5b634e487b7160e01b5f52602160045260245ffdfea2646970667358221220327d387b49db240a165de6d94a37293c73aa6ece3b54379e63c9b7389c60ffb964736f6c634300081e0033
| 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 | |||
| Transaction Hash | Method | Block | Age | From | To | Amount | Token | ||
|---|---|---|---|---|---|---|---|---|---|
| no token transfers for this address yet | |||||||||
| Txn Hash | Age | Event | Topics / Data |
|---|---|---|---|
| 0x41a925…58b96a | 30 days agoFri, 17 Jul 2026 20:20:49 UTC | Transfer | [0] 0x000000000000…9051d9b4 [1] 0x000000000000…dafce885 data: 0x000000000000000000…8bc1dac4 |
| 0x41a925…58b96a | 30 days agoFri, 17 Jul 2026 20:20:49 UTC | Approval | [0] 0x000000000000…9051d9b4 [1] 0x000000000000…dafce885 data: 0x000000000000000000…8bc1dac4 |
| 0x8d628c…299a90 | 30 days agoFri, 17 Jul 2026 20:19:58 UTC | Transfer | [0] 0x000000000000…dafce885 [1] 0x000000000000…9051d9b4 data: 0x000000000000000000…8bc1dac4 |
| 0x8d628c…299a90 | 30 days agoFri, 17 Jul 2026 20:19:58 UTC | Transfer | [0] 0x000000000000…00000000 [1] 0x000000000000…dafce885 data: 0x000000000000000000…e8000000 |
| Transaction Hash | Method ? | Block | Age | From | To | Amount | Txn Fee ? | ||
|---|---|---|---|---|---|---|---|---|---|
| No direct transactions — this address is only ever reached via internal calls (common for a contract only invoked through a router or proxy). View Internal Transactions → | |||||||||
| Block | Age | Parent Transaction Hash | Type | Method | From | To | Value | |
|---|---|---|---|---|---|---|---|---|
| 12,401,404 | 30 days agoFri, 17 Jul 2026 20:19:58 UTC | 0x8d628c…299a90 | CREATE | createToken | 0x40d8…e885 | IN | 0x1cb7…e1b5 | 0 ETH |