// SPDX-License-Identifier: MIT
pragma solidity ^0.8.26;
import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";
import {ILaunchToken} from "./interfaces/ILaunchToken.sol";
/// @title LaunchToken — immutable ERC-20 with a self-expiring anti-snipe cap
/// @notice 100,000,000 tokens minted once at deployment, all of it going into
/// the V3 pool. There is no owner, no mint, no burn, no pause and no
/// way to alter balances or allowances: the only privileged action in
/// this contract is the factory wiring the pool address, exactly once.
///
/// Anti-snipe: during SNIPE_WINDOW seconds after the pool is wired, any
/// single transfer OUT of the pool (i.e. a buy) is capped at
/// MAX_BUY_BPS of the supply. The cap is per transfer, not per wallet
/// and not per transaction — a multi-hop swap emitting several pool
/// transfers is checked transfer by transfer, and a whale splitting its
/// buy across transactions is an accepted, intended outcome. Sells and
/// wallet-to-wallet transfers are never restricted, and the cap lifts
/// itself on-chain with no admin action of any kind.
contract LaunchToken is ERC20, ILaunchToken {
uint256 private constant _TOTAL_SUPPLY = 100_000_000e18;
uint256 private constant _SNIPE_WINDOW = 180;
uint256 private constant _MAX_BUY_BPS = 50;
uint256 private constant _BPS_DENOMINATOR = 10_000;
uint256 private constant _MAX_BUY_PER_TX = (_TOTAL_SUPPLY * _MAX_BUY_BPS) / _BPS_DENOMINATOR;
/// @notice The LaunchFactory that deployed this token. Its sole power is
/// calling `setPool` once; it holds no other privilege afterwards.
address public immutable factory;
/// @inheritdoc ILaunchToken
address public pool;
/// @inheritdoc ILaunchToken
uint256 public launchedAt;
event PoolSet(address indexed pool, uint256 launchedAt);
error NotFactory();
error PoolAlreadySet();
error ZeroAddress();
/// @param recipient the factory, which forwards the whole supply into the pool
constructor(string memory name_, string memory symbol_, address recipient) ERC20(name_, symbol_) {
if (recipient == address(0)) revert ZeroAddress();
factory = msg.sender;
_mint(recipient, _TOTAL_SUPPLY);
}
/// @inheritdoc ILaunchToken
function TOTAL_SUPPLY() external pure returns (uint256) {
return _TOTAL_SUPPLY;
}
/// @inheritdoc ILaunchToken
function SNIPE_WINDOW() external pure returns (uint256) {
return _SNIPE_WINDOW;
}
/// @inheritdoc ILaunchToken
function MAX_BUY_BPS() external pure returns (uint256) {
return _MAX_BUY_BPS;
}
/// @notice Absolute per-transfer buy cap during the window, in wei.
function MAX_BUY_PER_TX() external pure returns (uint256) {
return _MAX_BUY_PER_TX;
}
/// @notice Wires the pool and starts the anti-snipe window. Factory-only and
/// callable exactly once, right after the position has been minted.
/// @dev This is the only state-changing privileged function of the token.
/// There is deliberately no counterpart to unset or re-point the pool.
function setPool(address pool_) external {
if (msg.sender != factory) revert NotFactory();
if (pool != address(0)) revert PoolAlreadySet();
if (pool_ == address(0)) revert ZeroAddress();
pool = pool_;
launchedAt = block.timestamp;
emit PoolSet(pool_, block.timestamp);
}
/// @dev Single choke point for every balance movement in OZ v5, so mints,
/// transfers and transferFroms are all covered by the same check.
function _update(address from, address to, uint256 value) internal override {
address pool_ = pool;
// `pool_ == address(0)` short-circuits the pre-launch phase, where the
// initial mint would otherwise match on `from == address(0)`.
// A validator can nudge `block.timestamp` by a few seconds; on a 180s
// window that is irrelevant, and the alternative (block numbers) varies
// per chain, which the multi-chain single-bytecode rule forbids.
// forge-lint: disable-next-line(block-timestamp)
if (pool_ != address(0) && from == pool_ && block.timestamp < launchedAt + _SNIPE_WINDOW) {
if (value > _MAX_BUY_PER_TX) revert SnipeLimitExceeded(value, _MAX_BUY_PER_TX);
}
super._update(from, to, value);
}
}[
{
"type": "constructor",
"inputs": [
{
"name": "name_",
"type": "string",
"internalType": "string"
},
{
"name": "symbol_",
"type": "string",
"internalType": "string"
},
{
"name": "recipient",
"type": "address",
"internalType": "address"
}
],
"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": "NotFactory",
"type": "error",
"inputs": []
},
{
"name": "PoolAlreadySet",
"type": "error",
"inputs": []
},
{
"name": "SnipeLimitExceeded",
"type": "error",
"inputs": [
{
"name": "attempted",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "maxPerBuy",
"type": "uint256",
"internalType": "uint256"
}
]
},
{
"name": "ZeroAddress",
"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": "PoolSet",
"type": "event",
"inputs": [
{
"name": "pool",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "launchedAt",
"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": "MAX_BUY_BPS",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "pure"
},
{
"name": "MAX_BUY_PER_TX",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "pure"
},
{
"name": "SNIPE_WINDOW",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "pure"
},
{
"name": "TOTAL_SUPPLY",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "pure"
},
{
"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": "factory",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "launchedAt",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "name",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "string",
"internalType": "string"
}
],
"stateMutability": "view"
},
{
"name": "pool",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "setPool",
"type": "function",
"inputs": [
{
"name": "pool_",
"type": "address",
"internalType": "address"
}
],
"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"
}
]0x608060405234801561000f575f80fd5b5060043610610106575f3560e01c806368d350d21161009e57806395d89b411161006e57806395d89b411461020e578063a9059cbb14610216578063bf56b37114610229578063c45a015514610232578063dd62ed3e14610259575f80fd5b806368d350d2146101c657806370a08231146101cd5780637bdb0c93146101f5578063902d55a5146101fd575f80fd5b806323b872dd116100d957806323b872dd14610188578063313ce5671461019b5780634437152a146101aa5780634bbcb9f9146101bf575f80fd5b806306fdde031461010a578063095ea7b31461012857806316f0115b1461014b57806318160ddd14610176575b5f80fd5b610112610291565b60405161011f919061083e565b60405180910390f35b61013b61013636600461088e565b610321565b604051901515815260200161011f565b60055461015e906001600160a01b031681565b6040516001600160a01b03909116815260200161011f565b6002545b60405190815260200161011f565b61013b6101963660046108b6565b61033a565b6040516012815260200161011f565b6101bd6101b83660046108f0565b61035d565b005b60b461017a565b603261017a565b61017a6101db3660046108f0565b6001600160a01b03165f9081526020819052604090205490565b61017a610451565b6a52b7d2dcc80cd2e400000061017a565b61011261047a565b61013b61022436600461088e565b610489565b61017a60065481565b61015e7f000000000000000000000000472a36a358d8190d19d4c03c10b1a14b5a2a6ebd81565b61017a610267366004610910565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b6060600380546102a090610941565b80601f01602080910402602001604051908101604052809291908181526020018280546102cc90610941565b80156103175780601f106102ee57610100808354040283529160200191610317565b820191905f5260205f20905b8154815290600101906020018083116102fa57829003601f168201915b5050505050905090565b5f3361032e818585610496565b60019150505b92915050565b5f336103478582856104a8565b610352858585610529565b506001949350505050565b336001600160a01b037f000000000000000000000000472a36a358d8190d19d4c03c10b1a14b5a2a6ebd16146103a657604051631966391b60e11b815260040160405180910390fd5b6005546001600160a01b0316156103d057604051632fc00d1f60e11b815260040160405180910390fd5b6001600160a01b0381166103f75760405163d92e233d60e01b815260040160405180910390fd5b600580546001600160a01b0319166001600160a01b0383169081179091554260068190556040519081527f766454cf266311018043fed7121567eca6b8f60d59bc0262dc5f2224734128a19060200160405180910390a250565b5f61271061046b60326a52b7d2dcc80cd2e400000061098d565b61047591906109a4565b905090565b6060600480546102a090610941565b5f3361032e818585610529565b6104a38383836001610586565b505050565b6001600160a01b038381165f908152600160209081526040808320938616835292905220545f19811015610523578181101561051557604051637dc7a0d960e11b81526001600160a01b038416600482015260248101829052604481018390526064015b60405180910390fd5b61052384848484035f610586565b50505050565b6001600160a01b03831661055257604051634b637e8f60e11b81525f600482015260240161050c565b6001600160a01b03821661057b5760405163ec442f0560e01b81525f600482015260240161050c565b6104a3838383610658565b6001600160a01b0384166105af5760405163e602df0560e01b81525f600482015260240161050c565b6001600160a01b0383166105d857604051634a1406b160e11b81525f600482015260240161050c565b6001600160a01b038085165f908152600160209081526040808320938716835292905220829055801561052357826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161064a91815260200190565b60405180910390a350505050565b6005546001600160a01b031680158015906106845750806001600160a01b0316846001600160a01b0316145b801561069d575060b460065461069a91906109c3565b42105b15610712576127106106bb60326a52b7d2dcc80cd2e400000061098d565b6106c591906109a4565b82111561071257816127106106e660326a52b7d2dcc80cd2e400000061098d565b6106f091906109a4565b604051634958710f60e11b81526004810192909252602482015260440161050c565b6105238484846001600160a01b038316610742578060025f82825461073791906109c3565b909155506107b29050565b6001600160a01b0383165f90815260208190526040902054818110156107945760405163391434e360e21b81526001600160a01b0385166004820152602481018290526044810183905260640161050c565b6001600160a01b0384165f9081526020819052604090209082900390555b6001600160a01b0382166107ce576002805482900390556107ec565b6001600160a01b0382165f9081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161083191815260200190565b60405180910390a3505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b0381168114610889575f80fd5b919050565b5f806040838503121561089f575f80fd5b6108a883610873565b946020939093013593505050565b5f805f606084860312156108c8575f80fd5b6108d184610873565b92506108df60208501610873565b929592945050506040919091013590565b5f60208284031215610900575f80fd5b61090982610873565b9392505050565b5f8060408385031215610921575f80fd5b61092a83610873565b915061093860208401610873565b90509250929050565b600181811c9082168061095557607f821691505b60208210810361097357634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b808202811582820484141761033457610334610979565b5f826109be57634e487b7160e01b5f52601260045260245ffd5b500490565b808201808211156103345761033461097956
| Token | Symbol | Balance | Price | Value |
|---|---|---|---|---|
| no token holdings | ||||
| Transaction Hash | Method | Block | Age | From | To | Amount | Token | ||
|---|---|---|---|---|---|---|---|---|---|
| no token transfers for this address yet | |||||||||
| Type | Age | Block | Details |
|---|---|---|---|
| no cross-chain L1↔L2 transactions for this address | |||
| Transaction Hash | Method | Block | Age | From | To | Type | Item | ||
|---|---|---|---|---|---|---|---|---|---|
| no NFT transfers for this address yet | |||||||||
| Txn Hash | Age | Event | Topics / Data |
|---|---|---|---|
| 0x991ae3…fc9a07 | 4 mins agoTue, 18 Aug 2026 01:08:49 UTC | Transfer | [0] 0x000000000000…d113f996 [1] 0x000000000000…dd8c5b29 data: 0x000000000000000000…5ba66766 |
| 0x991ae3…fc9a07 | 4 mins agoTue, 18 Aug 2026 01:08:49 UTC | Transfer | [0] 0x000000000000…ec4fff4f [1] 0x000000000000…d113f996 data: 0x000000000000000000…5ba66766 |
| 0x991ae3…fc9a07 | 4 mins agoTue, 18 Aug 2026 01:08:49 UTC | Approval | [0] 0x000000000000…ec4fff4f [1] 0x000000000000…b66337b5 data: 0x000000000000000000…5ba66766 |
| 0x991ae3…fc9a07 | 4 mins agoTue, 18 Aug 2026 01:08:49 UTC | Transfer | [0] 0x000000000000…209c267f [1] 0x000000000000…ec4fff4f data: 0x000000000000000000…5ba66766 |
| 0x991ae3…fc9a07 | 4 mins agoTue, 18 Aug 2026 01:08:49 UTC | Approval | [0] 0x000000000000…209c267f [1] 0x000000000000…f1c315be data: 0x000000000000000000…5ba66766 |
| 0x272030…730530 | 1 hr agoMon, 17 Aug 2026 23:13:22 UTC | Approval | [0] 0x000000000000…3ac9fc89 [1] 0x000000000000…e1a4f53d data: 0x000000000000000000…00000000 |
| 0x54ea66…84ecae | 2 hrs agoMon, 17 Aug 2026 23:11:58 UTC | Approval | [0] 0x000000000000…3ac9fc89 [1] 0x000000000000…3ac78ba3 data: 0x000000000000000000…00000000 |
| 0x3518d7…b036ee | 2 hrs agoMon, 17 Aug 2026 22:43:52 UTC | Transfer | [0] 0x000000000000…987b6824 [1] 0x000000000000…dd8c5b29 data: 0x000000000000000000…35d95a24 |
| 0x7968e8…5c00aa | 2 hrs agoMon, 17 Aug 2026 22:43:50 UTC | Transfer | [0] 0x000000000000…f033ac04 [1] 0x000000000000…dd8c5b29 data: 0x000000000000000000…55fa4116 |
| 0x84e704…0f2079 | 2 hrs agoMon, 17 Aug 2026 22:43:50 UTC | Approval | [0] 0x000000000000…f033ac04 [1] 0x000000000000…262c40dc data: 0x000000000000000000…55fa4116 |
| 0xd4117f…5877f9 | 2 hrs agoMon, 17 Aug 2026 22:43:47 UTC | Transfer | [0] 0x000000000000…8e72c914 [1] 0x000000000000…dd8c5b29 data: 0x000000000000000000…1d35069e |
| 0x33dcdf…cd9310 | 2 hrs agoMon, 17 Aug 2026 22:43:47 UTC | Approval | [0] 0x000000000000…8e72c914 [1] 0x000000000000…262c40dc data: 0x000000000000000000…1d35069e |
| 0x1ca49b…f966bc | 2 hrs agoMon, 17 Aug 2026 22:43:45 UTC | Transfer | [0] 0x000000000000…a9f8e4bf [1] 0x000000000000…dd8c5b29 data: 0x000000000000000000…ef82702d |
| 0x1ca49b…f966bc | 2 hrs agoMon, 17 Aug 2026 22:43:45 UTC | Approval | [0] 0x000000000000…a9f8e4bf [1] 0x000000000000…959e5cb2 data: 0x000000000000000000…ef82702d |
| 0x1ca49b…f966bc | 2 hrs agoMon, 17 Aug 2026 22:43:45 UTC | Transfer | [0] 0x000000000000…80352a0b [1] 0x000000000000…a9f8e4bf data: 0x000000000000000000…ef82702d |
| 0x53aa01…64fcb4 | 2 hrs agoMon, 17 Aug 2026 22:43:16 UTC | Transfer | [0] 0x000000000000…b2f59401 [1] 0x000000000000…dd8c5b29 data: 0x000000000000000000…77426409 |
| 0x53aa01…64fcb4 | 2 hrs agoMon, 17 Aug 2026 22:43:16 UTC | Transfer | [0] 0x000000000000…432157c7 [1] 0x000000000000…b2f59401 data: 0x000000000000000000…77426409 |
| 0xc61a32…b51df5 | 2 hrs agoMon, 17 Aug 2026 22:43:16 UTC | Approval | [0] 0x000000000000…f033ac04 [1] 0x000000000000…3ac78ba3 data: 0xffffffffffffffffff…ffffffff |
| 0x536fc4…566b90 | 2 hrs agoMon, 17 Aug 2026 22:43:14 UTC | Transfer | [0] 0x000000000000…b2f59401 [1] 0x000000000000…dd8c5b29 data: 0x000000000000000000…77426408 |
| 0x536fc4…566b90 | 2 hrs agoMon, 17 Aug 2026 22:43:14 UTC | Transfer | [0] 0x000000000000…432157c7 [1] 0x000000000000…b2f59401 data: 0x000000000000000000…77426408 |
| 0xef105f…c967cb | 2 hrs agoMon, 17 Aug 2026 22:43:12 UTC | Transfer | [0] 0x000000000000…b2f59401 [1] 0x000000000000…dd8c5b29 data: 0x000000000000000000…ee84c810 |
| 0xef105f…c967cb | 2 hrs agoMon, 17 Aug 2026 22:43:12 UTC | Transfer | [0] 0x000000000000…432157c7 [1] 0x000000000000…b2f59401 data: 0x000000000000000000…ee84c810 |
| 0x0adf42…8c6c05 | 2 hrs agoMon, 17 Aug 2026 22:43:11 UTC | Approval | [0] 0x000000000000…80352a0b [1] 0x000000000000…a9f8e4bf data: 0xffffffffffffffffff…ffffffff |
| 0x49408f…12f730 | 2 hrs agoMon, 17 Aug 2026 22:43:10 UTC | Transfer | [0] 0x000000000000…dd8c5b29 [1] 0x000000000000…80352a0b data: 0x000000000000000000…ef82702d |
| 0x7aa285…83e12d | 2 hrs agoMon, 17 Aug 2026 22:43:09 UTC | Approval | [0] 0x000000000000…987b6824 [1] 0x000000000000…c06886a2 data: 0xffffffffffffffffff…ffffffff |
| Transaction Hash | Method ? | Block | Age | From | To | Amount | Txn Fee ? | ||
|---|---|---|---|---|---|---|---|---|---|
| 0x272030…730530 | Approve | 39,222,716 | 1 hr agoMon, 17 Aug 2026 23:13:22 UTC | 0x9bfe…fc89 | IN | DENSITY Protocol | $0.000 ETH | 0.00000052 | |
| 0x54ea66…84ecae | Approve | 39,221,854 | 2 hrs agoMon, 17 Aug 2026 23:11:58 UTC | 0x9bfe…fc89 | IN | DENSITY Protocol | $0.000 ETH | 0.00000053 | |
| 0x84e704…0f2079 | Approve | 39,205,009 | 2 hrs agoMon, 17 Aug 2026 22:43:50 UTC | 0x6b6e…ac04 | IN | DENSITY Protocol | $0.000 ETH | 0.00000094 | |
| 0x33dcdf…cd9310 | Approve | 39,204,982 | 2 hrs agoMon, 17 Aug 2026 22:43:47 UTC | 0x660e…c914 | IN | DENSITY Protocol | $0.000 ETH | 0.00000095 | |
| 0xc61a32…b51df5 | Approve | 39,204,668 | 2 hrs agoMon, 17 Aug 2026 22:43:16 UTC | 0x6b6e…ac04 | IN | DENSITY Protocol | $0.000 ETH | 0.00000094 | |
| 0x0adf42…8c6c05 | Approve | 39,204,619 | 2 hrs agoMon, 17 Aug 2026 22:43:11 UTC | 0x5608…2a0b | IN | DENSITY Protocol | $0.000 ETH | 0.00000095 | |
| 0x7aa285…83e12d | Approve | 39,204,598 | 2 hrs agoMon, 17 Aug 2026 22:43:09 UTC | 0xf11a…6824 | IN | DENSITY Protocol | $0.000 ETH | 0.00000094 | |
| 0xf97c7d…c4fb67 | Approve | 39,142,201 | 4 hrs agoMon, 17 Aug 2026 20:58:51 UTC | 0x4b67…b7bb | IN | DENSITY Protocol | $0.000 ETH | 0.00000093 | |
| 0xa6346d…bea093 | Approve | 39,090,870 | 5 hrs agoMon, 17 Aug 2026 19:33:01 UTC | 0x85a9…1092 | IN | DENSITY Protocol | $0.000 ETH | 0.00000094 | |
| 0x7f3d12…7d8c6b | Approve | 39,090,166 | 5 hrs agoMon, 17 Aug 2026 19:31:50 UTC | 0x1957…83d6 | IN | DENSITY Protocol | $0.000 ETH | 0.00000094 | |
| 0x4aa27b…e151d5 | Approve | 39,071,242 | 6 hrs agoMon, 17 Aug 2026 19:00:13 UTC | 0xa8f7…a331 | IN | DENSITY Protocol | $0.000 ETH | 0.00000094 | |
| 0x4eda5e…bd7b1f | Approve | 39,054,626 | 6 hrs agoMon, 17 Aug 2026 18:32:26 UTC | 0x9bfe…fc89 | IN | DENSITY Protocol | $0.000 ETH | 0.00000095 | |
| 0xab9a5c…492df8 | Approve | 39,053,129 | 6 hrs agoMon, 17 Aug 2026 18:29:57 UTC | 0x5eed…8ed4 | IN | DENSITY Protocol | $0.000 ETH | 0.00000093 | |
| 0x199baa…167038 | Approve | 39,050,044 | 6 hrs agoMon, 17 Aug 2026 18:24:46 UTC | 0xf472…d3ce | IN | DENSITY Protocol | $0.000 ETH | 0.00000094 | |
| 0x3d02b0…317420 | Approve | 39,048,781 | 6 hrs agoMon, 17 Aug 2026 18:22:40 UTC | 0xa8f7…a331 | IN | DENSITY Protocol | $0.000 ETH | 0.00000093 | |
| 0x8f02f5…ed1b77 | Approve | 39,047,300 | 6 hrs agoMon, 17 Aug 2026 18:20:11 UTC | 0xd1d1…ee3a | IN | DENSITY Protocol | $0.000 ETH | 0.00000093 | |
| 0xfc7814…248566 | Approve | 39,046,650 | 6 hrs agoMon, 17 Aug 2026 18:19:06 UTC | 0x116b…9dfc | IN | DENSITY Protocol | $0.000 ETH | 0.00000094 | |
| 0x7f1329…573bdd | Approve | 39,046,650 | 6 hrs agoMon, 17 Aug 2026 18:19:06 UTC | 0xd0cc…f377 | IN | DENSITY Protocol | $0.000 ETH | 0.00000094 | |
| 0x94d94f…8d7fdd | Approve | 39,045,980 | 6 hrs agoMon, 17 Aug 2026 18:18:00 UTC | 0x3172…3dfb | IN | DENSITY Protocol | $0.000 ETH | 0.00000094 | |
| 0x3c32ec…79a5db | Approve | 39,045,663 | 6 hrs agoMon, 17 Aug 2026 18:17:28 UTC | 0xad12…25ce | IN | DENSITY Protocol | $0.000 ETH | 0.00000095 | |
| 0x3fd8e1…00d9e0 | Approve | 39,045,612 | 6 hrs agoMon, 17 Aug 2026 18:17:23 UTC | 0x0ba7…23ca | IN | DENSITY Protocol | $0.000 ETH | 0.00000094 | |
| 0xe2b815…5c7530 | Approve | 39,045,545 | 6 hrs agoMon, 17 Aug 2026 18:17:16 UTC | 0x407a…4221 | IN | DENSITY Protocol | $0.000 ETH | 0.00000095 | |
| 0xb449e2…199e15 | Approve | 39,045,542 | 6 hrs agoMon, 17 Aug 2026 18:17:16 UTC | 0x4f91…855d | IN | DENSITY Protocol | $0.000 ETH | 0.00000094 | |
| 0x1d819f…17fecb | Approve | 39,045,542 | 6 hrs agoMon, 17 Aug 2026 18:17:16 UTC | 0xfcd7…ddb9 | IN | DENSITY Protocol | $0.000 ETH | 0.00000094 | |
| 0x9ea667…13bde9 | Approve | 39,045,542 | 6 hrs agoMon, 17 Aug 2026 18:17:16 UTC | 0xc5b4…d08c | IN | DENSITY Protocol | $0.000 ETH | 0.00000094 |
| Block | Age | Parent Transaction Hash | Type | Method | From | To | Value | |
|---|---|---|---|---|---|---|---|---|
| 39,039,315 | 7 hrs agoMon, 17 Aug 2026 18:06:51 UTC | 0xcbc36f…d45db8 | CREATE2 | createToken | 0x472a…6ebd | IN | 0x245f…1111 | 0 ETH |