// SPDX-License-Identifier: MIT
pragma solidity ^0.8.28;
import {LootConstants as C} from "../LootConstants.sol";
import {ILootLedgerV3} from "../v3/interfaces/ILootLedgerV3.sol";
/// Minimal pool read the keyless graduation latch needs (Uniswap V3 slot0 shape — on v4
/// this is the per-pool V3OracleAdapter, certified slot0-selector-exact, #155/#159).
interface IPoolSlot0V31 {
function slot0()
external
view
returns (uint160 sqrtPriceX96, int24 tick, uint16, uint16, uint16, uint8, bool);
}
/// The adapter's provenance getter: the LOOT hook this pool's oracle reports to. The
/// token only ever holds the ADAPTER address (`pool`), so this is how the graduation
/// latch reaches the hook that owns the crossing observation (F-14).
interface IOracleAdapterHookV4 {
function baseOracleHook() external view returns (address);
}
/// The one gate on graduation (F-14, audit 2026-08-13): true once this pool has been
/// observed at or past the 25x mark at the START of a second — a price no single
/// transaction can manufacture about itself. See LootHookV4._beforeSwap.
interface ILootHookGradV4 {
function gradCrossedAtBlockStart(address token) external view returns (bool);
}
/// @title MemeTokenV4 — MemeTokenV31 under the FROZEN #161 D1 diff (v4 singleton world)
/// @notice THE DIFF vs the deployed MemeTokenV31 IS FROZEN to exactly (#161 D1 — anything
/// more is a #161-reverse, and every byte re-keys TOKEN_INIT_CODE_HASH / the
/// …1007 salt tables, #169/#164 D4):
/// 1. ONE new constant: `POOL_MANAGER` — the canonical Uniswap V4 singleton,
/// baked (chain-invariant per #153: byte-identical at the same address on
/// 46630 and 4663, so ONE initcode hash table serves both chains and the
/// CREATE2 …1007 vanity law is intact — no constructor args, ever).
/// 2. TWO comparison edits: the launch-protections gate and the graduation
/// probe gate move `from == pool` -> `from == POOL_MANAGER` (in v4 every
/// swap's transfer counterparty is the PoolManager; `pool` storage now
/// holds the per-pool ORACLE ADAPTER — the price view. The g.pool dual
/// role split, #167/#161).
/// 3. ONE exemption line: `capExempt[POOL_MANAGER] = true` in initialize —
/// the faithful transposition of v3's in-token auto-exemption of the
/// counterparty (`capExempt[pool_]` survives and lands harmlessly on the
/// adapter). In-token rather than via the factory array so a factory
/// wiring slip can't create the failure mode at all (#161 D1). Mandatory:
/// the launch seed settles the full supply factory -> PM, and every
/// pre-grad sell transfers to the PM whose balance is ~the whole supply.
/// EVERYTHING ELSE — initialize signature (9 params, #164 D4), metadata
/// immutability, the keyless one-way graduation latch, the onTransfer ledger
/// hook (frozen A1), ERC-20 surface, maxWallet/origin-cap math — is
/// byte-identical to MemeTokenV31 (see that file's full safety analysis; it
/// all applies verbatim).
/// @dev v4 notes (mechanics, no byte changes beyond the enumerated diff):
/// - `pool_` = the OZ V3OracleAdapter for this token's pool; both slot0 read
/// sites (graduate() + the probe) are byte-identical against it.
/// - `token0IsWeth_` is passed `true` forever (native ETH is always currency0 —
/// #164 D2); the `false` branch is dead code on v4 rows but survives for the
/// diff freeze.
/// - The origin-flow cap below still binds every REAL token transfer out of the
/// PM (any v4 pool of this token — parasite pools included, #161 D2). The
/// ERC-6909-claims hole is closed HOOK-side (LootHookV4's hour-1 rail, #161
/// post-resolution ruling); launch-block 6909 exits remain origin-capped there
/// too. Sell-burns ride the any-outbound law — custody-independent, unchanged.
/// - F-14 (audit 2026-08-13) BREAKS THE #161 D1 DIFF FREEZE, deliberately and with
/// the owner's fix mandate. The frozen diff inherited MemeTokenV31's same-tx
/// atomic latch: `graduate()` and an in-`_update` probe both read instantaneous
/// `slot0` and set the one-way `graduated` bit. On the v4 singleton that is
/// forgeable inside ONE `poolManager.unlock` for 0.0565 ETH and zero capital
/// (swap to the mark, latch, swap back — the token delta nets to zero, so no
/// transfer and no cap ever runs). Both reads are removed. Graduation is decided
/// by LootHookV4's block-start observation, and this contract only latches on it.
/// Everything else about the diff is unchanged; this re-keys
/// TOKEN_INIT_CODE_HASH, which is free because nothing has been mined for mainnet.
contract MemeTokenV4 {
// --- errors ---
error AlreadyInitialized();
error AlreadyGraduated();
error NotGraduatedYet();
error LaunchBlockBuy();
error MaxWalletExceeded();
error OriginFlowCapExceeded();
error InsufficientBalance();
error InsufficientAllowance();
// sqrt(25x) — graduation is exactly 25x launch price (SPEC v3.2 §3.3: 5+6+6+8 = 25).
// F-14 (audit 2026-08-13): the ratio itself now lives ONLY in LootHookV4, which is
// the only contract that may decide a crossing. The token deliberately holds no
// price-comparison of its own any more — a second copy of the rule would be a second
// place for an instantaneous read to creep back in. `token0IsWeth` and
// `launchSqrtPX96` below stay as the launch-frame record the factory writes and
// indexers read.
/// #161 D1 (diff item 1): the canonical Uniswap V4 PoolManager singleton — the
/// transfer counterparty of EVERY v4 swap settlement. Chain-invariant (#153).
address public constant POOL_MANAGER = 0x8366a39CC670B4001A1121B8F6A443A643e40951;
// --- ERC-20 storage ---
string private _name;
string private _symbol;
uint8 public constant decimals = 18;
uint256 public constant totalSupply = C.TOTAL_SUPPLY;
mapping(address => uint256) public balanceOf;
mapping(address => mapping(address => uint256)) public allowance;
// --- LOOT protocol wiring (set once at initialize) ---
address public factory;
/// v4: the per-pool V3OracleAdapter (the PRICE VIEW — slot0-selector-exact, #155).
/// The transfer-classification counterparty is the POOL_MANAGER constant above.
address public pool;
/// The loot-game ledger (SPEC v3 §3.5). Trusted; set once at initialize.
address public ledger;
/// Pool orientation + launch sqrt price — the keyless graduation reference frame,
/// recorded from the factory's own pool initialization (same TickMath values).
bool public token0IsWeth;
uint160 public launchSqrtPX96;
mapping(address => bool) public capExempt;
uint256 public launchBlock;
uint256 public launchTime;
address public devBuyRecipient;
/// One-way graduation latch (fires at the 4.663 ETH / 25x crossing). Lifts the
/// wallet cap + origin-flow cap. Metadata was already immutable from initialize.
bool public graduated;
// Aggregator-facing on-chain metadata (v2.3 §4.2 read conventions; WRITE-ONCE in v3.2).
string private _tokenURI;
string private _logoURI;
string private _description;
string private _website;
string private _telegram;
string private _twitter;
mapping(address => uint256) public originBought;
// --- events ---
event Transfer(address indexed from, address indexed to, uint256 value);
event Approval(address indexed owner, address indexed spender, uint256 value);
event MetadataUpdated(string tokenURI, string logoURI);
/// Keyless graduation latch (freeze semantics + cap lift), with the crossing price.
event Graduated(uint160 sqrtPriceX96);
/// Legacy-named event kept for existing indexer watchers: historically "metadata
/// frozen at graduation"; in v3.2+ metadata is immutable from launch and this event
/// simply marks the graduation latch.
event MetadataFrozen_(string finalName, string finalSymbol);
struct Metadata {
string tokenURI;
string logoURI;
string description;
string website;
string telegram;
string twitter;
}
/// @dev Called by the factory in the deploy tx. Mints the full supply to the
/// factory; wires the loot ledger and the graduation reference frame in the
/// same breath. NO authority parameter exists — final metadata only.
/// SIGNATURE UNCHANGED from MemeTokenV31 (#164 D4).
function initialize(
string calldata name_,
string calldata symbol_,
address pool_,
bool token0IsWeth_,
uint160 launchSqrtPX96_,
address[] calldata capExempt_,
address devBuyRecipient_,
Metadata calldata meta_,
address ledger_
) external {
if (factory != address(0)) revert AlreadyInitialized();
factory = msg.sender;
_name = name_;
_symbol = symbol_;
pool = pool_;
token0IsWeth = token0IsWeth_;
launchSqrtPX96 = launchSqrtPX96_;
ledger = ledger_;
launchBlock = block.number;
launchTime = block.timestamp;
devBuyRecipient = devBuyRecipient_;
capExempt[msg.sender] = true;
capExempt[pool_] = true;
// #161 D1 (diff item 3): the swap-settlement counterparty is always cap-exempt.
capExempt[POOL_MANAGER] = true;
for (uint256 i = 0; i < capExempt_.length; i++) {
capExempt[capExempt_[i]] = true;
}
balanceOf[msg.sender] = C.TOTAL_SUPPLY;
emit Transfer(address(0), msg.sender, C.TOTAL_SUPPLY);
_tokenURI = meta_.tokenURI;
_logoURI = meta_.logoURI;
_description = meta_.description;
_website = meta_.website;
_telegram = meta_.telegram;
_twitter = meta_.twitter;
emit MetadataUpdated(meta_.tokenURI, meta_.logoURI);
}
// ============ metadata (immutable from initialize — keyless ethos) ============
function name() external view returns (string memory) {
return _name;
}
function symbol() external view returns (string memory) {
return _symbol;
}
function tokenURI() external view returns (string memory) {
return _tokenURI;
}
function logoURI() external view returns (string memory) {
return _logoURI;
}
function description() external view returns (string memory) {
return _description;
}
function website() external view returns (string memory) {
return _website;
}
function telegram() external view returns (string memory) {
return _telegram;
}
function twitter() external view returns (string memory) {
return _twitter;
}
/// ABI-compat view for existing readers (LootRouter clamp, ledger, indexers): the
/// historical "metadata frozen" bit IS the graduation latch in v3.2+.
function metadataFrozen() external view returns (bool) {
return graduated;
}
// ============ keyless graduation ============
/// @notice Permissionless graduation latch: anyone may call it, from anywhere, with
/// no gas cap, once the pool's crossing has been OBSERVED ACROSS A SECOND
/// BOUNDARY by the hook. The hook's own `_beforeSwap` dispatch normally gets
/// here first on the confirming swap; this stays open as the unbounded-gas
/// path so a gas-starved or reverting dispatch can never strand the milestone
/// (the ledger's `pokeGraduation` is the third, ledger-side path).
/// @dev F-14 (audit 2026-08-13) — THE FORGERY CLOSER. This function used to read
/// `IPoolSlot0V31(pool).slot0()` and latch on the spot. Both the read and the
/// call were permissionless, so inside ONE `poolManager.unlock` an attacker
/// swapped down to the 25x mark, called this, and swapped straight back: the
/// token delta netted to zero so no capital was ever committed and no transfer
/// ever ran, and the milestone latched FOREVER at a measured cost of 0.0565 ETH
/// with spot back at 99.2% of launch. `graduated` gates every cap branch in
/// `_update`, the ledger self-latches its 25x ATH off this bit, and the
/// knife-catcher then armed on any dust buy — all permanently, on a keyless
/// immutable contract.
///
/// A price a transaction produces about itself proves nothing. The check is now
/// the hook's block-start observation and ONLY that: `_beforeSwap` reads the
/// pre-swap price on the first swap of a new second, which is the price the pool
/// was LEFT at when an earlier second ended. To make it read crossed you have to
/// leave the 25x position standing across a second boundary — the full ~4.7 ETH
/// committed, exposed to every other trader, unhedgeable inside an unlock.
///
/// Deliberately NOT re-checking instantaneous `slot0` on top: the attacker
/// controls that value, so it adds no security, and it subtracts liveness — an
/// honest crossing confirmed by a sell would fail the spot check and lose its
/// graduation. The observation is the authority.
function graduate() external {
if (graduated) revert AlreadyGraduated();
address hook = IOracleAdapterHookV4(pool).baseOracleHook();
if (!ILootHookGradV4(hook).gradCrossedAtBlockStart(address(this))) revert NotGraduatedYet();
(uint160 sqrtP,,,,,,) = IPoolSlot0V31(pool).slot0();
_latchGraduation(sqrtP);
}
function _latchGraduation(uint160 sqrtP) internal {
graduated = true;
emit Graduated(sqrtP);
emit MetadataFrozen_(_name, _symbol);
}
// ============ ERC-20 with launch protections + the loot hook ============
function transfer(address to, uint256 value) external returns (bool) {
_update(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) {
if (allowed < value) revert InsufficientAllowance();
allowance[from][msg.sender] = allowed - value;
}
_update(from, to, value);
return true;
}
function approve(address spender, uint256 value) external returns (bool) {
allowance[msg.sender][spender] = value;
emit Approval(msg.sender, spender, value);
return true;
}
function _update(address from, address to, uint256 value) internal {
uint256 fromBal = balanceOf[from];
if (fromBal < value) revert InsufficientBalance();
unchecked {
balanceOf[from] = fromBal - value;
}
// Launch protections (v2.3 §4.5, unchanged): buys out of the pool while the
// cap regime is active.
// #161 D1 (diff item 2a): the counterparty is the PoolManager on v4.
// F-16b (audit 2026-08-13): the note that used to sit here — "these run BEFORE
// the graduation probe below, so the crossing buy is itself still capped" — was
// FALSE. The in-swap fee crank's `take(currency1, splitter)` (LootHookV4:644,
// inside afterSwap) ran this very function BEFORE the swapper's own take, and
// that probe latched graduation, so a crossing buy whose swap also fired the
// crank skipped both its maxWallet check and its origin charge. There is no probe
// below any more (F-14 moved the whole latch to the hook's block-start
// observation), so the ordering the old note asserted is no longer even
// expressible: within a transaction the caps here are decided by a `graduated`
// bit that no transaction can flip about itself.
if (!graduated && from == POOL_MANAGER && !capExempt[to]) {
if (block.number == launchBlock && to != devBuyRecipient) revert LaunchBlockBuy();
if (block.timestamp < launchTime + C.LAUNCH_RESTRICTION_WINDOW) {
uint256 bought = originBought[tx.origin] + value;
if (bought > (maxWallet() * C.ORIGIN_BUY_CAP_PCT_OF_MAX) / 100) {
revert OriginFlowCapExceeded();
}
originBought[tx.origin] = bought;
}
}
if (!graduated && !capExempt[to]) {
if (balanceOf[to] + value > maxWallet()) revert MaxWalletExceeded();
}
balanceOf[to] += value;
emit Transfer(from, to, value);
// F-14 (audit 2026-08-13): THE IN-TRANSFER GRADUATION PROBE IS GONE. It read
// `IPoolSlot0V31(pool).slot0()` on every PoolManager -> X transfer and latched
// the one-way `graduated` bit on the spot, which made the milestone forgeable
// inside a single unlock (see `graduate()` above for the full sequence and the
// measured 0.0565 ETH cost). Every price a transaction can show about itself is
// attacker-chosen; graduation is now decided solely by LootHookV4's block-start
// observation, which no transaction can manufacture. Redundancy is preserved
// where it belongs — the hook's in-swap dispatch, the permissionless
// `graduate()`, and the ledger's permissionless `pokeGraduation` are three
// independent, uncapped-or-retried routes to the same latch.
//
// What this costs: the crossing buy no longer graduates in its own transaction.
// The caps above therefore stay engaged one step longer, until the first swap of
// a later second confirms the crossing — strictly the fund-safe direction, and it
// also removes the F-16b ordering hazard outright.
//
// What it saves: an external staticcall on every pre-graduation transfer out of
// the PoolManager.
// Loot-game hook (SPEC v3 §3.5): LAST step, balances final, trusted callee,
// no other external (state-touching) calls in the transfer path. The ledger
// no-ops for non-players and unregistered tokens; it can only ever burn the
// SENDER's game position — it cannot move tokens or revert a legitimate
// transfer for a wallet with no position. It still reads `metadataFrozen()` to
// latch its own graduation state, so the first transfer after the hook's latch
// syncs the ledger with no keeper window.
if (ledger != address(0)) {
ILootLedgerV3(ledger).onTransfer(from, to, value, fromBal);
}
}
function maxWallet() public pure returns (uint256) {
return (C.TOTAL_SUPPLY * C.MAX_WALLET_BPS) / 10_000;
}
}[
{
"name": "AlreadyGraduated",
"type": "error",
"inputs": []
},
{
"name": "AlreadyInitialized",
"type": "error",
"inputs": []
},
{
"name": "InsufficientAllowance",
"type": "error",
"inputs": []
},
{
"name": "InsufficientBalance",
"type": "error",
"inputs": []
},
{
"name": "LaunchBlockBuy",
"type": "error",
"inputs": []
},
{
"name": "MaxWalletExceeded",
"type": "error",
"inputs": []
},
{
"name": "NotGraduatedYet",
"type": "error",
"inputs": []
},
{
"name": "OriginFlowCapExceeded",
"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": "Graduated",
"type": "event",
"inputs": [
{
"name": "sqrtPriceX96",
"type": "uint160",
"indexed": false,
"internalType": "uint160"
}
],
"anonymous": false
},
{
"name": "MetadataFrozen_",
"type": "event",
"inputs": [
{
"name": "finalName",
"type": "string",
"indexed": false,
"internalType": "string"
},
{
"name": "finalSymbol",
"type": "string",
"indexed": false,
"internalType": "string"
}
],
"anonymous": false
},
{
"name": "MetadataUpdated",
"type": "event",
"inputs": [
{
"name": "tokenURI",
"type": "string",
"indexed": false,
"internalType": "string"
},
{
"name": "logoURI",
"type": "string",
"indexed": false,
"internalType": "string"
}
],
"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": "POOL_MANAGER",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"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": "capExempt",
"type": "function",
"inputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"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": "devBuyRecipient",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "factory",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "graduate",
"type": "function",
"inputs": [],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "graduated",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "view"
},
{
"name": "initialize",
"type": "function",
"inputs": [
{
"name": "name_",
"type": "string",
"internalType": "string"
},
{
"name": "symbol_",
"type": "string",
"internalType": "string"
},
{
"name": "pool_",
"type": "address",
"internalType": "address"
},
{
"name": "token0IsWeth_",
"type": "bool",
"internalType": "bool"
},
{
"name": "launchSqrtPX96_",
"type": "uint160",
"internalType": "uint160"
},
{
"name": "capExempt_",
"type": "address[]",
"internalType": "address[]"
},
{
"name": "devBuyRecipient_",
"type": "address",
"internalType": "address"
},
{
"name": "meta_",
"type": "tuple",
"components": [
{
"name": "tokenURI",
"type": "string",
"internalType": "string"
},
{
"name": "logoURI",
"type": "string",
"internalType": "string"
},
{
"name": "description",
"type": "string",
"internalType": "string"
},
{
"name": "website",
"type": "string",
"internalType": "string"
},
{
"name": "telegram",
"type": "string",
"internalType": "string"
},
{
"name": "twitter",
"type": "string",
"internalType": "string"
}
],
"internalType": "struct MemeTokenV4.Metadata"
},
{
"name": "ledger_",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "launchBlock",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "launchSqrtPX96",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint160",
"internalType": "uint160"
}
],
"stateMutability": "view"
},
{
"name": "launchTime",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "ledger",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "logoURI",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "string",
"internalType": "string"
}
],
"stateMutability": "view"
},
{
"name": "maxWallet",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "pure"
},
{
"name": "metadataFrozen",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "view"
},
{
"name": "name",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "string",
"internalType": "string"
}
],
"stateMutability": "view"
},
{
"name": "originBought",
"type": "function",
"inputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "pool",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"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": "token0IsWeth",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"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"
},
{
"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"
}
]0x6080806040526004361015610012575f80fd5b5f3560e01c90816306fdde0314611ca157508063095ea7b314611c2957806316f0115b14611c0357806318160ddd14611bdd57806323b872dd14611b1c578063313ce56714611b015780633c130d9014611a5c57806347ecb665146119b757806356397c351461199157806362308e85146119635780636bb38b28146118be57806370a08231146118865780637284e416146117e1578063740c8438146109c8578063790ca413146109ab57806395d89b41146109065780639dbcd6c2146108ce578063a9059cbb1461089d578063abfaeee0146107f8578063b1c9cec4146107d2578063bc9ee585146107ad578063beb0a416146106d3578063c45a0155146106ad578063d00efb2f14610690578063d3618cca14610277578063dd62ed3e14610223578063e06898dd146101fd578063e7c2b77214610171578063f295344f146101c0578063f8b45b051461019a5763fb3cc6c214610171575f80fd5b34610196575f36600319011261019657602060ff600b5460a01c166040519015158152f35b5f80fd5b34610196575f3660031901126101965760206a108b2a2c28029094000000604051908152f35b34610196576020366003190112610196576001600160a01b036101e1611d6a565b165f526008602052602060ff60405f2054166040519015158152f35b34610196575f3660031901126101965760206001600160a01b0360075416604051908152f35b346101965760403660031901126101965761023c611d6a565b6001600160a01b0361024c611d80565b91165f5260036020526001600160a01b0360405f2091165f52602052602060405f2054604051908152f35b34610196575f36600319011261019657600b5460ff8160a01c16610681576001600160a01b0360055416604051630677875760e01b8152602081600481855afa9081156105ea575f9161063e575b5060206001600160a01b039160246040518094819363040a619b60e21b8352306004840152165afa9081156105ea575f91610604575b50156105f55760e060049160405192838092633850c7bd851b82525afa9081156105ea575f91610523575b50602090600160a01b60ff60a01b197f8533b921298f19f6c27c7139b55f6908dadf578f62fbce38b9ac40568fd45274941617600b556001600160a01b0360405191168152a1604051604081525f5f5461037f81611dc4565b908160408501526001811690815f1461050257506001146104ad575b5081810360208301526001545f916103b282611dc4565b808252916001811690811561046b57506001146103f2575b7f033131e3be249d990981fad053d9c7773b55e6f4426309ebd2bc20b708e0217884840385a1005b60015f9081529250907fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b81841061045157505001602001817f033131e3be249d990981fad053d9c7773b55e6f4426309ebd2bc20b708e021786103ca565b60018160209295939554838587010152019101929061041d565b8594506020929150927f033131e3be249d990981fad053d9c7773b55e6f4426309ebd2bc20b708e02178959360ff191683830152151560051b010191926103ca565b5f8080529091507f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b8282106104eb5750820160600190508261039b565b8054828501606001526020909101906001016104d6565b60209350604092915060ff19166060850152151560051b830101018261039b565b905060e0813d60e0116105e2575b8161053e60e09383611dfc565b81010312610196578051916001600160a01b03831683036101965760208201518060020b036101965761057360408301611e7e565b5061058060608301611e7e565b5061058d60808301611e7e565b5060a082015160ff81160361019657600160a01b60ff60a01b197f8533b921298f19f6c27c7139b55f6908dadf578f62fbce38b9ac40568fd45274946105d760c060209601611e71565b509350505091610326565b3d9150610531565b6040513d5f823e3d90fd5b63ebde3b4960e01b5f5260045ffd5b90506020813d602011610636575b8161061f60209383611dfc565b810103126101965761063090611e71565b836102fb565b3d9150610612565b90506020813d602011610679575b8161065960209383611dfc565b8101031261019657516001600160a01b03811681036101965760206102c5565b3d915061064c565b63e6a0d45f60e01b5f5260045ffd5b34610196575f366003190112610196576020600954604051908152f35b34610196575f3660031901126101965760206001600160a01b0360045416604051908152f35b34610196575f366003190112610196576040515f600f546106f381611dc4565b8084529060018116908115610789575060011461072b575b6107278361071b81850382611dfc565b60405191829182611d40565b0390f35b919050600f5f527f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac802915f905b80821061076f5750909150810160200161071b61070b565b919260018160209254838588010152019101909291610757565b60ff191660208086019190915291151560051b8401909101915061071b905061070b565b34610196575f36600319011261019657602060ff60065460a01c166040519015158152f35b34610196575f3660031901126101965760206001600160a01b03600b5416604051908152f35b34610196575f366003190112610196576040515f60115461081881611dc4565b8084529060018116908115610789575060011461083f576107278361071b81850382611dfc565b91905060115f527f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c68915f905b8082106108835750909150810160200161071b61070b565b91926001816020925483858801015201910190929161086b565b34610196576040366003190112610196576108c36108b9611d6a565b6024359033611e9a565b602060405160018152f35b34610196576020366003190112610196576001600160a01b036108ef611d6a565b165f526012602052602060405f2054604051908152f35b34610196575f366003190112610196576040515f60015461092681611dc4565b8084529060018116908115610789575060011461094d576107278361071b81850382611dfc565b91905060015f527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6915f905b8082106109915750909150810160200161071b61070b565b919260018160209254838588010152019101909291610979565b34610196575f366003190112610196576020600a54604051908152f35b34610196576101203660031901126101965760043567ffffffffffffffff8111610196576109fa903690600401611d96565b9060243567ffffffffffffffff811161019657610a1b903690600401611d96565b92906044356001600160a01b038116809103610196576064359485151580960361019657608435946001600160a01b0386168096036101965760a4359567ffffffffffffffff871161019657366023880112156101965786600401359767ffffffffffffffff8911610196573660248a60051b8a0101116101965760c435936001600160a01b0385168095036101965760e4359667ffffffffffffffff881161019657876004019860c06003198a360301126101965761010435956001600160a01b038716809703610196576004546001600160a01b0381166117d3576001600160a01b031916331760045567ffffffffffffffff82116110bd578190610b225f54611dc4565b601f811161175d575b505f90601f83116001146116d9575f926116ce575b50508160011b915f199060031b1c1916175f555b67ffffffffffffffff82116110bd57610b6e600154611dc4565b601f8111611664575b505f90601f83116001146115c957918074ffffffffffffffffffffffffffffffffffffffffff19949260ff60a01b945f926115be575b50508160011b915f199060031b1c1916176001555b866001600160a01b03196005541617600555600654936001600160a01b0319600754161760075560a01b16911617176006554360095542600a556001600160a01b0319600b541617600b55335f52600860205260405f20600160ff198254161790555f52600860205260405f20600160ff19825416179055738366a39cc670b4001a1121b8f6a443a643e409515f52600860205260405f20600160ff198254161790555f5b84811015610ca95760248160051b85010135906001600160a01b038216809203610196576001915f52600860205260405f208260ff1982541617905501610c67565b50335f5260026020526b033b2e3c9fd0803ce800000060405f20556040516b033b2e3c9fd0803ce800000081525f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60203393a3610d078280611e1e565b67ffffffffffffffff81949294116110bd57610d24600c54611dc4565b601f8111611550575b505f601f82116001146114cf57819293945f926114c4575b50508160011b915f199060031b1c191617600c555b6024820191610d698383611e1e565b67ffffffffffffffff81959295116110bd57610d86600d54611dc4565b601f8111611456575b505f601f82116001146113d45781929394955f926113c9575b50508160011b915f199060031b1c191617600d555b610dca6044830184611e1e565b67ffffffffffffffff81959295116110bd57610de7600e54611dc4565b601f811161135b575b505f601f82116001146112d95781929394955f926112ce575b50508160011b915f199060031b1c191617600e555b610e2b6064840182611e1e565b67ffffffffffffffff81959295116110bd57610e48600f54611dc4565b601f8111611260575b505f601f82116001146111de5781929394955f926111d3575b50508160011b915f199060031b1c191617600f555b610e8c6084820183611e1e565b9067ffffffffffffffff82116110bd57610ea7601054611dc4565b601f8111611165575b505f90601f83116001146110dc579180610eeb949260a4945f926110d1575b50508160011b915f199060031b1c1916176010555b0182611e1e565b929067ffffffffffffffff84116110bd57610f07601154611dc4565b601f811161104f575b505f90601f8511600114610fab577f30f5c4b652f95e2a697bda3258896c421eee4f29adce8fe38060f47f7aed91ad94915f9183610fa0575b50508160011b915f199060031b1c1916176011555b610f9b610f76610f6e8480611e1e565b939094611e1e565b610f8d604051958695604087526040870191611e51565b918483036020860152611e51565b0390a1005b013590508580610f49565b601f1985169160115f527f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c68925f5b81811061103757509160019391877f30f5c4b652f95e2a697bda3258896c421eee4f29adce8fe38060f47f7aed91ad98941061101e575b505050811b01601155610f5e565b01355f19600384901b60f8161c19169055858080611010565b91936020600181928787013581550195019201610fd9565b84811115610f105760115f52601f850160051c90602086106110b5575b601f82910160051c03905f5b828110611086575050610f10565b5f8282017f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c680155600101611078565b5f915061106c565b634e487b7160e01b5f52604160045260245ffd5b013590508780610ecf565b601f1983169160105f527f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae672925f5b81811061114d575092600192859260a496610eeb989610611134575b505050811b01601055610ee4565b01355f19600384901b60f8161c19169055878080611126565b9193602060018192878701358155019501920161110a565b82811115610eb05760105f52601f830160051c90602084106111cb575b601f82910160051c03905f5b82811061119c575050610eb0565b5f8282017f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae672015560010161118e565b5f9150611182565b013590508580610e6a565b601f19821695600f5f527f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac802915f5b8881106112485750836001959697981061122f575b505050811b01600f55610e7f565b01355f19600384901b60f8161c19169055858080611221565b9092602060018192868601358155019401910161120c565b81811115610e5157600f5f52601f820160051c90602083106112c6575b601f82910160051c03905f5b828110611297575050610e51565b5f8282017f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac8020155600101611289565b5f915061127d565b013590508580610e09565b601f19821695600e5f527fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd915f5b8881106113435750836001959697981061132a575b505050811b01600e55610e1e565b01355f19600384901b60f8161c1916905585808061131c565b90926020600181928686013581550194019101611307565b81811115610df057600e5f52601f820160051c90602083106113c1575b601f82910160051c03905f5b828110611392575050610df0565b5f8282017fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd0155600101611384565b5f9150611378565b013590508580610da8565b601f19821695600d5f527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb5915f5b88811061143e57508360019596979810611425575b505050811b01600d55610dbd565b01355f19600384901b60f8161c19169055858080611417565b90926020600181928686013581550194019101611402565b81811115610d8f57600d5f52601f820160051c90602083106114bc575b601f82910160051c03905f5b82811061148d575050610d8f565b5f8282017fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb5015560010161147f565b5f9150611473565b013590508480610d45565b601f19821694600c5f527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7915f5b87811061153857508360019596971061151f575b505050811b01600c55610d5a565b01355f19600384901b60f8161c19169055848080611511565b909260206001819286860135815501940191016114fd565b81811115610d2d57600c5f52601f820160051c90602083106115b6575b601f82910160051c03905f5b828110611587575050610d2d565b5f8282017fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c70155600101611579565b5f915061156d565b013590508d80610bad565b7fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf691601f1984165f5b81811061164c575092600192859260ff60a01b9674ffffffffffffffffffffffffffffffffffffffffff19989610611633575b505050811b01600155610bc2565b01355f19600384901b60f8161c191690558d8080611625565b919360206001819287870135815501950192016115f2565b82811115610b7757601f830160051c90602084106116c6575b601f82910160051c03905f5b828110611697575050610b77565b5f8282017fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60155600101611689565b5f915061167d565b013590508d80610b40565b909150601f198316915f80527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563925f5b818110611745575090846001959493921061172c575b505050811b015f55610b54565b01355f19600384901b60f8161c191690558d808061171f565b91936020600181928787013581550195019201611709565b82811115610b2b579091505f8052601f830160051c90602084106117cb575b9080601f8594930160051c03905f5b828110611799575050610b2b565b5f8183017f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563015585945060010161178b565b5f915061177c565b62dc149f60e41b5f5260045ffd5b34610196575f366003190112610196576040515f600e5461180181611dc4565b80845290600181169081156107895750600114611828576107278361071b81850382611dfc565b919050600e5f527fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd915f905b80821061186c5750909150810160200161071b61070b565b919260018160209254838588010152019101909291611854565b34610196576020366003190112610196576001600160a01b036118a7611d6a565b165f526002602052602060405f2054604051908152f35b34610196575f366003190112610196576040515f600d546118de81611dc4565b80845290600181169081156107895750600114611905576107278361071b81850382611dfc565b919050600d5f527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb5915f905b8082106119495750909150810160200161071b61070b565b919260018160209254838588010152019101909291611931565b34610196575f366003190112610196576020604051738366a39cc670b4001a1121b8f6a443a643e409518152f35b34610196575f3660031901126101965760206001600160a01b0360065416604051908152f35b34610196575f366003190112610196576040515f6010546119d781611dc4565b808452906001811690811561078957506001146119fe576107278361071b81850382611dfc565b91905060105f527f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae672915f905b808210611a425750909150810160200161071b61070b565b919260018160209254838588010152019101909291611a2a565b34610196575f366003190112610196576040515f600c54611a7c81611dc4565b80845290600181169081156107895750600114611aa3576107278361071b81850382611dfc565b919050600c5f527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7915f905b808210611ae75750909150810160200161071b61070b565b919260018160209254838588010152019101909291611acf565b34610196575f36600319011261019657602060405160128152f35b3461019657606036600319011261019657611b35611d6a565b611b3d611d80565b604435906001600160a01b03831692835f52600360205260405f206001600160a01b0333165f5260205260405f20545f198103611b80575b506108c39350611e9a565b838110611bce57838103908111611bba576108c3945f52600360205260405f206001600160a01b0333165f5260205260405f205584611b75565b634e487b7160e01b5f52601160045260245ffd5b6313be252b60e01b5f5260045ffd5b34610196575f3660031901126101965760206040516b033b2e3c9fd0803ce80000008152f35b34610196575f3660031901126101965760206001600160a01b0360055416604051908152f35b3461019657604036600319011261019657611c42611d6a565b6001600160a01b0360243591335f52600360205260405f208282165f526020528260405f205560405192835216907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b34610196575f366003190112610196575f5f54611cbd81611dc4565b80845290600181169081156107895750600114611ce4576107278361071b81850382611dfc565b5f8080527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563939250905b808210611d265750909150810160200161071b61070b565b919260018160209254838588010152019101909291611d0e565b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b038216820361019657565b602435906001600160a01b038216820361019657565b9181601f840112156101965782359167ffffffffffffffff8311610196576020838186019501011161019657565b90600182811c92168015611df2575b6020831014611dde57565b634e487b7160e01b5f52602260045260245ffd5b91607f1691611dd3565b90601f8019910116810190811067ffffffffffffffff8211176110bd57604052565b903590601e1981360301821215610196570180359067ffffffffffffffff82116101965760200191813603831361019657565b908060209392818452848401375f828201840152601f01601f1916010190565b5190811515820361019657565b519061ffff8216820361019657565b91908201809211611bba57565b91906001600160a01b035f9316805f52600260205260405f20549183831061211657815f52600260205283830360405f2055600b5460ff8160a01c1615806120f9575b806120d9575b612032575b5060ff600b5460a01c161580612012575b611fd2575b6001600160a01b031691828552600260205260408520611f1f858254611e8d565b905582827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6020604051888152a36001600160a01b03600654169081611f68575b505050505050565b813b15611fce57918560849281959460405197889687956348e3eb8d60e11b875260048701526024860152604485015260648401525af18015611fc357611fb3575b80808080611f60565b81611fbd91611dfc565b5f611faa565b6040513d84823e3d90fd5b8580fd5b6001600160a01b03811685526002602052611ff1846040872054611e8d565b6a108b2a2c280290940000001015611efe57632ce93b5960e01b8552600485fd5b506001600160a01b0381168552600860205260ff60408620541615611ef9565b600954431490816120bc575b506120ad57600a54610e108101809111611bba57421061205f575b5f611ee8565b9350325f5260126020526120778360405f2054611e8d565b935f946a13da329b63364718000000811161209e57325f52601260205260405f2055612059565b6318f325b760e01b5f5260045ffd5b63872c84bd60e01b5f5260045ffd5b6001600160a01b039150166001600160a01b03821614155f61203e565b506001600160a01b0382165f52600860205260ff60405f20541615611ee3565b50738366a39cc670b4001a1121b8f6a443a643e409518314611edd565b631e9acf1760e31b5f5260045ffdfea2646970667358221220497f9b9f420ce994259694b454a76b63f0c0ed31fc441d3ca1e4e145adb1c12564736f6c63430008240033
| Token | Symbol | Balance | Price | Value |
|---|---|---|---|---|
| no token holdings | ||||
| Transaction Hash | Method | Block | Age | From | To | Type | Item | ||
|---|---|---|---|---|---|---|---|---|---|
| no NFT transfers for this address yet | |||||||||
| User-Op Hash | Age | Block | Bundler | Gas Cost | Status |
|---|---|---|---|---|---|
| no AA (ERC-4337) user-operations sent by 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 | Amount | Txn Fee ? | ||
|---|---|---|---|---|---|---|---|---|---|
| 0x5ba00f…390fb4 | Approve | 39,023,556 | 1 hr agoMon, 17 Aug 2026 17:40:30 UTC | 0x6863…4d55 | IN | LOOT Mainnet Probe | $0.000 ETH | 0.00000092 | |
| 0xf8f1b8…471845 | Approve | 39,023,556 | 1 hr agoMon, 17 Aug 2026 17:40:30 UTC | 0x36f9…0f79 | IN | LOOT Mainnet Probe | $0.000 ETH | 0.00000092 | |
| 0x52df89…d4439c | Approve | 39,023,556 | 1 hr agoMon, 17 Aug 2026 17:40:30 UTC | 0x7397…bedd | IN | LOOT Mainnet Probe | $0.000 ETH | 0.00000092 | |
| 0x548399…b51bc2 | Approve | 39,023,556 | 1 hr agoMon, 17 Aug 2026 17:40:30 UTC | 0xdde0…1432 | IN | LOOT Mainnet Probe | $0.000 ETH | 0.00000092 | |
| 0x582908…a6b315 | Approve | 38,956,773 | 3 hrs agoMon, 17 Aug 2026 15:48:58 UTC | 0x582a…221a | IN | LOOT Mainnet Probe | $0.000 ETH | 0.00000093 | |
| 0x6bcd0f…99fb78 | Approve | 38,900,062 | 4 hrs agoMon, 17 Aug 2026 14:14:21 UTC | 0xdb26…1dbc | IN | LOOT Mainnet Probe | $0.000 ETH | 0.00000093 | |
| 0xd01f50…5f2dd1 | Approve | 38,838,760 | 6 hrs agoMon, 17 Aug 2026 12:32:03 UTC | 0xec28…455f | IN | LOOT Mainnet Probe | $0.000 ETH | 0.00000092 | |
| 0xbf486e…0d892e | Approve | 38,773,908 | 8 hrs agoMon, 17 Aug 2026 10:43:33 UTC | 0x3495…ee9a | IN | LOOT Mainnet Probe | $0.000 ETH | 0.00000092 | |
| 0xb4e667…3a480a | Approve | 38,668,408 | 11 hrs agoMon, 17 Aug 2026 07:46:59 UTC | 0xf91d…963b | IN | LOOT Mainnet Probe | $0.000 ETH | 0.00000092 | |
| 0xd3309b…268000 | Approve | 38,665,557 | 11 hrs agoMon, 17 Aug 2026 07:42:14 UTC | 0xf5c4…6157 | IN | LOOT Mainnet Probe | $0.000 ETH | 0.00000093 | |
| 0xd86f62…002dc0 | Approve | 38,612,279 | 12 hrs agoMon, 17 Aug 2026 06:13:05 UTC | 0x5326…fd6f | IN | LOOT Mainnet Probe | $0.000 ETH | 0.00000092 | |
| 0x631f6f…37979a | Approve | 38,597,297 | 13 hrs agoMon, 17 Aug 2026 05:48:00 UTC | 0xdf8d…52c4 | IN | LOOT Mainnet Probe | $0.000 ETH | 0.00000092 | |
| 0xdf13d6…b193f1 | Approve | 38,597,297 | 13 hrs agoMon, 17 Aug 2026 05:48:00 UTC | 0x074e…375a | IN | LOOT Mainnet Probe | $0.000 ETH | 0.00000092 | |
| 0x744161…e1bc21 | Approve | 38,597,297 | 13 hrs agoMon, 17 Aug 2026 05:48:00 UTC | 0xfb15…17ca | IN | LOOT Mainnet Probe | $0.000 ETH | 0.00000092 | |
| 0xf99c81…55ca58 | Approve | 38,597,297 | 13 hrs agoMon, 17 Aug 2026 05:48:00 UTC | 0x7fd8…0a42 | IN | LOOT Mainnet Probe | $0.000 ETH | 0.00000092 | |
| 0x5dc3ce…8523af | Approve | 38,577,671 | 13 hrs agoMon, 17 Aug 2026 05:15:10 UTC | 0x25e5…3eb1 | IN | LOOT Mainnet Probe | $0.000 ETH | 0.00000092 | |
| 0x82a12a…951f55 | Approve | 38,564,897 | 14 hrs agoMon, 17 Aug 2026 04:53:48 UTC | 0xe265…1440 | IN | LOOT Mainnet Probe | $0.000 ETH | 0.00000092 | |
| 0x5d5f90…ba9a8c | Approve | 38,522,359 | 15 hrs agoMon, 17 Aug 2026 03:42:39 UTC | 0xfc1b…0dc2 | IN | LOOT Mainnet Probe | $0.000 ETH | 0.00000092 | |
| 0x53d4f7…52dc0a | Approve | 38,449,063 | 17 hrs agoMon, 17 Aug 2026 01:40:00 UTC | 0x5d85…e093 | IN | LOOT Mainnet Probe | $0.000 ETH | 0.00000092 | |
| 0xf9a620…1ad3e9 | Approve | 38,407,301 | 18 hrs agoMon, 17 Aug 2026 00:30:08 UTC | 0x8041…6d7a | IN | LOOT Mainnet Probe | $0.000 ETH | 0.00000093 | |
| 0x143ca8…92582c | Approve | 38,401,496 | 18 hrs agoMon, 17 Aug 2026 00:20:26 UTC | 0x45e2…5afc | IN | LOOT Mainnet Probe | $0.000 ETH | 0.00000093 | |
| 0x8f6be3…c9d7cb | Approve | 38,396,095 | 18 hrs agoMon, 17 Aug 2026 00:11:24 UTC | 0xcabb…144c | IN | LOOT Mainnet Probe | $0.000 ETH | 0.00000092 | |
| 0xce5fdf…b1bc35 | Approve | 38,380,479 | 19 hrs agoSun, 16 Aug 2026 23:45:17 UTC | 0x1801…f69e | IN | LOOT Mainnet Probe | $0.000 ETH | 0.00000092 | |
| 0xb3acec…d08b40 | Approve | 38,359,220 | 19 hrs agoSun, 16 Aug 2026 23:09:44 UTC | 0x811a…dd03 | IN | LOOT Mainnet Probe | $0.000 ETH | 0.00000093 | |
| 0xfb46e2…0b93da | Approve | 38,318,912 | 21 hrs agoSun, 16 Aug 2026 22:02:18 UTC | 0x2484…4d86 | IN | LOOT Mainnet Probe | $0.000 ETH | — |
| Block | Age | Parent Transaction Hash | Type | Method | From | To | Value | |
|---|---|---|---|---|---|---|---|---|
| 38,204,184 | 1 day agoSun, 16 Aug 2026 18:50:33 UTC | 0x313839…68fd5d | CREATE2 | launch | 0x55f0…6a0a | IN | 0xae4e…1007 | 0 ETH |
| Txn Hash | Age | Event | Topics / Data |
|---|---|---|---|
| 0xd7a0bc…420ca9 | 1 hr agoMon, 17 Aug 2026 17:40:30 UTC | Transfer | [0] 0x000000000000…0693bedd [1] 0x000000000000…43e40951 data: 0x000000000000000000…adf543e2 |
| 0x9688a3…ad46a4 | 1 hr agoMon, 17 Aug 2026 17:40:30 UTC | Transfer | [0] 0x000000000000…eda30f79 [1] 0x000000000000…43e40951 data: 0x000000000000000000…5bbecc0b |
| 0x351736…ab6e6e | 1 hr agoMon, 17 Aug 2026 17:40:30 UTC | Transfer | [0] 0x000000000000…ea214d55 [1] 0x000000000000…43e40951 data: 0x000000000000000000…8590744c |
| 0x47e734…4889aa | 1 hr agoMon, 17 Aug 2026 17:40:30 UTC | Transfer | [0] 0x000000000000…3ff41432 [1] 0x000000000000…43e40951 data: 0x000000000000000000…2abed0d7 |
| 0x52df89…d4439c | 1 hr agoMon, 17 Aug 2026 17:40:30 UTC | Approval | [0] 0x000000000000…0693bedd [1] 0x000000000000…262c40dc data: 0x000000000000000000…adf543e2 |
| 0x5ba00f…390fb4 | 1 hr agoMon, 17 Aug 2026 17:40:30 UTC | Approval | [0] 0x000000000000…ea214d55 [1] 0x000000000000…262c40dc data: 0x000000000000000000…8590744c |
| 0xf8f1b8…471845 | 1 hr agoMon, 17 Aug 2026 17:40:30 UTC | Approval | [0] 0x000000000000…eda30f79 [1] 0x000000000000…262c40dc data: 0x000000000000000000…5bbecc0b |
| 0x548399…b51bc2 | 1 hr agoMon, 17 Aug 2026 17:40:30 UTC | Approval | [0] 0x000000000000…3ff41432 [1] 0x000000000000…262c40dc data: 0x000000000000000000…2abed0d7 |
| 0xe57b4f…47215a | 1 hr agoMon, 17 Aug 2026 17:14:37 UTC | Transfer | [0] 0x000000000000…db8c0904 [1] 0x000000000000…43e40951 data: 0x000000000000000000…97b21894 |
| 0xe57b4f…47215a | 1 hr agoMon, 17 Aug 2026 17:14:37 UTC | Transfer | [0] 0x000000000000…ad9893e8 [1] 0x000000000000…db8c0904 data: 0x000000000000000000…97b21894 |
| 0xa321c0…c0c27d | 2 hrs agoMon, 17 Aug 2026 16:21:52 UTC | Transfer | [0] 0x000000000000…ea65d950 [1] 0x000000000000…43e40951 data: 0x000000000000000000…59a07d47 |
| 0xa321c0…c0c27d | 2 hrs agoMon, 17 Aug 2026 16:21:52 UTC | Transfer | [0] 0x000000000000…509f5668 [1] 0x000000000000…0000dead data: 0x000000000000000000…d5691725 |
| 0xa321c0…c0c27d | 2 hrs agoMon, 17 Aug 2026 16:21:52 UTC | Transfer | [0] 0x000000000000…43e40951 [1] 0x000000000000…509f5668 data: 0x000000000000000000…d5691725 |
| 0x05c232…486b82 | 3 hrs agoMon, 17 Aug 2026 15:48:58 UTC | Transfer | [0] 0x000000000000…e9b05d31 [1] 0x000000000000…43e40951 data: 0x000000000000000000…99653e7b |
| 0x05c232…486b82 | 3 hrs agoMon, 17 Aug 2026 15:48:58 UTC | Transfer | [0] 0x000000000000…ae5a221a [1] 0x000000000000…e9b05d31 data: 0x000000000000000000…99653e7b |
| 0x582908…a6b315 | 3 hrs agoMon, 17 Aug 2026 15:48:58 UTC | Approval | [0] 0x000000000000…ae5a221a [1] 0x000000000000…e1a4f53d data: 0xffffffffffffffffff…ffffffff |
| 0x93da67…423f57 | 3 hrs agoMon, 17 Aug 2026 15:47:25 UTC | Transfer | [0] 0x000000000000…43e40951 [1] 0x000000000000…ae5a221a data: 0x000000000000000000…989af295 |
| 0x1dc34f…116cd4 | 4 hrs agoMon, 17 Aug 2026 14:14:21 UTC | Transfer | [0] 0x000000000000…e9b05d31 [1] 0x000000000000…43e40951 data: 0x000000000000000000…d92b7e61 |
| 0x1dc34f…116cd4 | 4 hrs agoMon, 17 Aug 2026 14:14:21 UTC | Transfer | [0] 0x000000000000…23691dbc [1] 0x000000000000…e9b05d31 data: 0x000000000000000000…d92b7e61 |
| 0x6bcd0f…99fb78 | 4 hrs agoMon, 17 Aug 2026 14:14:21 UTC | Approval | [0] 0x000000000000…23691dbc [1] 0x000000000000…e1a4f53d data: 0xffffffffffffffffff…ffffffff |
| 0xe46d1a…0a11eb | 4 hrs agoMon, 17 Aug 2026 14:11:15 UTC | Transfer | [0] 0x000000000000…43e40951 [1] 0x000000000000…7290afa9 data: 0x000000000000000000…b4effcb4 |
| 0xf50294…5da66b | 4 hrs agoMon, 17 Aug 2026 14:11:15 UTC | Transfer | [0] 0x000000000000…43e40951 [1] 0x000000000000…23691dbc data: 0x000000000000000000…d7403c2b |
| 0x8d5a93…880f8a | 6 hrs agoMon, 17 Aug 2026 12:32:03 UTC | Transfer | [0] 0x000000000000…f3e4455f [1] 0x000000000000…43e40951 data: 0x000000000000000000…e85310ca |
| 0xd01f50…5f2dd1 | 6 hrs agoMon, 17 Aug 2026 12:32:03 UTC | Approval | [0] 0x000000000000…f3e4455f [1] 0x000000000000…262c40dc data: 0x000000000000000000…e85310ca |
| 0xbeff13…655122 | 7 hrs agoMon, 17 Aug 2026 11:50:37 UTC | Transfer | [0] 0x000000000000…db8c0904 [1] 0x000000000000…43e40951 data: 0x000000000000000000…10b54246 |