// SPDX-License-Identifier: MIT
pragma solidity ^0.8.26;
import {ERC20CloneBase} from "./base/ERC20CloneBase.sol";
interface IERC20BalanceView {
function balanceOf(address account) external view returns (uint256);
}
/// @notice The launch factory callback the token constructor reads its params
/// from. Deployer-callback pattern (same trick as UniswapV3Pool): the
/// constructor takes NO arguments, so the CREATE2 init-code hash is a
/// CONSTANT — the in-browser vanity salt miner only ever needs the
/// creation-code hash, independent of name/symbol/metadata.
interface IStoxesFunSimpleTokenDeployer {
function launchParams()
external
view
returns (
string memory name,
string memory symbol,
string memory metaURI,
address devBuyer,
address weth
);
}
/// @title StoxesFunSimpleToken — the stoxes.fun NON-taxed launch token
/// @author stoxes.fun
/// @notice Immutable, plain ERC-20 launched straight into a Uniswap V3 pool
/// (bow.fun model). NO tax, NO owner, NO mint path, NO blacklist:
/// the full fixed supply is minted once to the launch factory, which
/// locks it single-sided into the V3 position held forever by the
/// Locker. Platform + creator revenue is the pool's 1% swap fee only.
///
/// The only transfer-time logic, both temporary or inert:
/// - Anti-snipe max-wallet: for a short window after launch, a
/// non-exempt wallet cannot hold more than 2% of supply. The
/// window expires by timestamp; after that the check is dead code.
/// The dev buy (launch creator) is exempt, like bow.fun.
/// - `declareMigrated()`: a PERMISSIONLESS, purely cosmetic latch
/// that flips `migrated` once the V3 pool holds >= 3.7 WETH.
/// It gates nothing on-chain — it exists so UIs/scanners can show
/// a "graduated" badge, mirroring bow.fun's latch.
///
/// Ownership is renounced from birth: `owner()` returns address(0)
/// forever. The immutable launch factory can wire the pool address +
/// max-wallet exemptions ONLY during the launch transaction (before
/// `setPool` finalizes the wiring) — afterwards nothing can change.
contract StoxesFunSimpleToken is ERC20CloneBase {
/// @notice Fixed launch supply: 1 billion tokens (matches the taxed side).
uint256 public constant MAX_SUPPLY = 1e9 ether;
/// @notice Anti-snipe max wallet: 2% of supply while the window is open.
uint256 public constant MAX_WALLET_BPS = 200;
/// @notice Anti-snipe window length after deploy.
uint256 public constant ANTI_SNIPE_DURATION = 10 minutes;
/// @notice V3 pool WETH depth at which the cosmetic `migrated` latch opens.
uint256 public constant GRADUATION_WETH = 3.7 ether;
/// @notice The stoxes.fun V3 launch factory that deployed this token.
/// Its ONLY power is one-shot wiring during the launch tx.
address public immutable factory;
/// @notice WETH on Robinhood Chain (read from the factory at deploy).
address public immutable WETH;
/// @notice Timestamp when the anti-snipe max-wallet check stops applying.
uint256 public immutable antiSnipeEndsAt;
/// @notice The token's Uniswap V3 pool (set once by the factory at launch).
address public pool;
/// @notice Cosmetic graduation latch (see `declareMigrated`).
bool public migrated;
/// @notice Off-chain metadata URI (socials, logo) — "stoxes.fun" branded.
string public metaURI;
/// @notice Wallets exempt from the anti-snipe max-wallet check (factory,
/// pool, locker, position manager, dev buyer, dead address).
mapping(address => bool) public maxWalletExempt;
event PoolSet(address indexed pool);
event MaxWalletExemptSet(address indexed account, bool exempt);
event Migrated(uint256 poolWethBalance);
error NotFactory();
error PoolAlreadySet();
error PoolNotSet();
error NotYetMigratable();
error AlreadyMigrated();
error MaxWalletExceeded(address account, uint256 wouldHold, uint256 cap);
error WiringFinalized();
error InvalidParams();
modifier onlyFactory() {
if (msg.sender != factory) revert NotFactory();
_;
}
/// @dev No constructor args (constant init-code hash for vanity mining):
/// everything comes from the deployer callback.
constructor() {
factory = msg.sender;
(
string memory name_,
string memory symbol_,
string memory metaURI_,
address devBuyer,
address weth_
) = IStoxesFunSimpleTokenDeployer(msg.sender).launchParams();
if (weth_ == address(0)) revert InvalidParams();
_initERC20(name_, symbol_);
metaURI = metaURI_;
WETH = weth_;
antiSnipeEndsAt = block.timestamp + ANTI_SNIPE_DURATION;
// Launch-infrastructure exemptions. The dev buy lands in the same
// transaction and is exempt from the max wallet, like bow.fun.
maxWalletExempt[msg.sender] = true;
if (devBuyer != address(0)) {
maxWalletExempt[devBuyer] = true;
emit MaxWalletExemptSet(devBuyer, true);
}
maxWalletExempt[address(0xdead)] = true;
_mint(msg.sender, MAX_SUPPLY);
}
/// @notice Ownership is renounced from birth: there is no owner, ever.
/// @dev Explicit view so explorers/scanners that probe `owner()` read
/// the token as renounced from block one.
function owner() public pure returns (address) {
return address(0);
}
// ------------------------------------------------------------------
// One-shot factory wiring (launch transaction only)
// ------------------------------------------------------------------
/// @notice Marks launch-infrastructure addresses max-wallet exempt.
/// Callable only by the factory and only BEFORE `setPool`
/// finalizes the wiring — after launch nothing can change.
function setMaxWalletExempt(address account, bool exempt) external onlyFactory {
if (pool != address(0)) revert WiringFinalized();
maxWalletExempt[account] = exempt;
emit MaxWalletExemptSet(account, exempt);
}
/// @notice Sets the V3 pool address ONCE. This is the LAST wiring call:
/// it permanently freezes the exemption list too.
function setPool(address pool_) external onlyFactory {
if (pool != address(0)) revert PoolAlreadySet();
if (pool_ == address(0)) revert InvalidParams();
pool = pool_;
maxWalletExempt[pool_] = true;
emit MaxWalletExemptSet(pool_, true);
emit PoolSet(pool_);
}
// ------------------------------------------------------------------
// Cosmetic graduation latch (permissionless)
// ------------------------------------------------------------------
/// @notice Latches `migrated` once the pool holds >= 3.7 WETH. Anyone can
/// call it; it changes NO transfer/economic behavior — it is a
/// badge for UIs, mirroring bow.fun's graduation latch.
function declareMigrated() external {
if (migrated) revert AlreadyMigrated();
address p = pool;
if (p == address(0)) revert PoolNotSet();
uint256 depth = IERC20BalanceView(WETH).balanceOf(p);
if (depth < GRADUATION_WETH) revert NotYetMigratable();
migrated = true;
emit Migrated(depth);
}
// ------------------------------------------------------------------
// Transfer hook: anti-snipe max wallet during the launch window only
// ------------------------------------------------------------------
function _transfer(address from, address to, uint256 amount) internal override {
if (block.timestamp < antiSnipeEndsAt && !maxWalletExempt[to]) {
uint256 cap = (MAX_SUPPLY * MAX_WALLET_BPS) / 10_000;
uint256 wouldHold = balanceOf(to) + amount;
if (wouldHold > cap) revert MaxWalletExceeded(to, wouldHold, cap);
}
_rawTransfer(from, to, amount);
}
}[
{
"type": "constructor",
"inputs": [],
"stateMutability": "nonpayable"
},
{
"name": "AlreadyMigrated",
"type": "error",
"inputs": []
},
{
"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": "from",
"type": "address",
"internalType": "address"
},
{
"name": "balance",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "needed",
"type": "uint256",
"internalType": "uint256"
}
]
},
{
"name": "ERC20InvalidReceiver",
"type": "error",
"inputs": [
{
"name": "receiver",
"type": "address",
"internalType": "address"
}
]
},
{
"name": "ERC20InvalidSender",
"type": "error",
"inputs": [
{
"name": "sender",
"type": "address",
"internalType": "address"
}
]
},
{
"name": "InvalidParams",
"type": "error",
"inputs": []
},
{
"name": "MaxWalletExceeded",
"type": "error",
"inputs": [
{
"name": "account",
"type": "address",
"internalType": "address"
},
{
"name": "wouldHold",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "cap",
"type": "uint256",
"internalType": "uint256"
}
]
},
{
"name": "NotFactory",
"type": "error",
"inputs": []
},
{
"name": "NotYetMigratable",
"type": "error",
"inputs": []
},
{
"name": "PoolAlreadySet",
"type": "error",
"inputs": []
},
{
"name": "PoolNotSet",
"type": "error",
"inputs": []
},
{
"name": "WiringFinalized",
"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": "MaxWalletExemptSet",
"type": "event",
"inputs": [
{
"name": "account",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "exempt",
"type": "bool",
"indexed": false,
"internalType": "bool"
}
],
"anonymous": false
},
{
"name": "Migrated",
"type": "event",
"inputs": [
{
"name": "poolWethBalance",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "PoolSet",
"type": "event",
"inputs": [
{
"name": "pool",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"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": "ANTI_SNIPE_DURATION",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "GRADUATION_WETH",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "MAX_SUPPLY",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "MAX_WALLET_BPS",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "WETH",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"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": "antiSnipeEndsAt",
"type": "function",
"inputs": [],
"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": "pure"
},
{
"name": "declareMigrated",
"type": "function",
"inputs": [],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "factory",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "maxWalletExempt",
"type": "function",
"inputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "view"
},
{
"name": "metaURI",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "string",
"internalType": "string"
}
],
"stateMutability": "view"
},
{
"name": "migrated",
"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": "owner",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "pure"
},
{
"name": "pool",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "setMaxWalletExempt",
"type": "function",
"inputs": [
{
"name": "account",
"type": "address",
"internalType": "address"
},
{
"name": "exempt",
"type": "bool",
"internalType": "bool"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"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"
}
]0x608060405234801561000f575f80fd5b5060043610610153575f3560e01c806370a08231116100bf578063ad5c464811610079578063ad5c4648146102ca578063b6efaa75146102f1578063b77107c9146102f9578063c45a015514610308578063c901f8e91461032f578063dd62ed3e14610356575f80fd5b806370a08231146102655780637537ccb61461028d5780638da5cb5b146102a057806395d89b41146102a657806395eae396146102ae578063a9059cbb146102b7575f80fd5b80632de156d6116101105780632de156d6146101fc578063313ce5671461020657806332cb6b0c146102155780634437152a146102285780634f0aad4e1461023b578063676057871461025d575f80fd5b806306fdde0314610157578063095ea7b31461017557806316f0115b1461019857806318160ddd146101c357806323b872dd146101d55780632c678c64146101e8575b5f80fd5b61015f61038e565b60405161016c9190610b53565b60405180910390f35b610188610183366004610ba3565b61041d565b604051901515815260200161016c565b6005546101ab906001600160a01b031681565b6040516001600160a01b03909116815260200161016c565b6002545b60405190815260200161016c565b6101886101e3366004610bcb565b610433565b60055461018890600160a01b900460ff1681565b6102046104d2565b005b6040516012815260200161016c565b6101c76b033b2e3c9fd0803ce800000081565b610204610236366004610c05565b61062f565b610188610249366004610c05565b60076020525f908152604090205460ff1681565b61015f61076c565b6101c7610273366004610c05565b6001600160a01b03165f9081526003602052604090205490565b61020461029b366004610c25565b6107f8565b5f6101ab565b61015f6108c9565b6101c761025881565b6101886102c5366004610ba3565b6108d8565b6101ab7f0000000000000000000000000bd7d308f8e1639fab988df18a8011f41eacad7381565b6101c760c881565b6101c76733590a6584f2000081565b6101ab7f000000000000000000000000f612b37d684b3eca3583121172764ab0ef8417fc81565b6101c77f000000000000000000000000000000000000000000000000000000006a59165681565b6101c7610364366004610c5e565b6001600160a01b039182165f90815260046020908152604080832093909416825291909152205490565b60605f805461039c90610c8f565b80601f01602080910402602001604051908101604052809291908181526020018280546103c890610c8f565b80156104135780601f106103ea57610100808354040283529160200191610413565b820191905f5260205f20905b8154815290600101906020018083116103f657829003601f168201915b5050505050905090565b5f6104293384846108e4565b5060015b92915050565b6001600160a01b0383165f9081526004602090815260408083203384529091528120545f1981146104bc578281101561049457604051637dc7a0d960e11b815233600482015260248101829052604481018490526064015b60405180910390fd5b6001600160a01b0385165f908152600460209081526040808320338452909152902083820390555b6104c7858585610944565b506001949350505050565b600554600160a01b900460ff16156104fd576040516332870f2f60e21b815260040160405180910390fd5b6005546001600160a01b03168061052757604051633c67586360e01b815260040160405180910390fd5b6040516370a0823160e01b81526001600160a01b0382811660048301525f917f0000000000000000000000000bd7d308f8e1639fab988df18a8011f41eacad73909116906370a0823190602401602060405180830381865afa15801561058f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105b39190610cc7565b90506733590a6584f200008110156105de576040516316c70d7160e21b815260040160405180910390fd5b6005805460ff60a01b1916600160a01b1790556040517fe4a25c0c2cbe89d6ad8b64c61a7dbdd20d1f781f6023f1ab94ebb7fe0aef6ab8906106239083815260200190565b60405180910390a15050565b336001600160a01b037f000000000000000000000000f612b37d684b3eca3583121172764ab0ef8417fc161461067857604051631966391b60e11b815260040160405180910390fd5b6005546001600160a01b0316156106a257604051632fc00d1f60e11b815260040160405180910390fd5b6001600160a01b0381166106c957604051635435b28960e11b815260040160405180910390fd5b600580546001600160a01b0319166001600160a01b0383169081179091555f81815260076020908152604091829020805460ff1916600190811790915591519182527fb6dc23005e717e1eda12837f11302b77ea2fdec3262f4ff8c059ac691b4a16ac910160405180910390a26040516001600160a01b038216907f025f89b99c8ce32af8da7624f4575b920a86ebf07870d85a9fb545fee349ddce905f90a250565b6006805461077990610c8f565b80601f01602080910402602001604051908101604052809291908181526020018280546107a590610c8f565b80156107f05780601f106107c7576101008083540402835291602001916107f0565b820191905f5260205f20905b8154815290600101906020018083116107d357829003601f168201915b505050505081565b336001600160a01b037f000000000000000000000000f612b37d684b3eca3583121172764ab0ef8417fc161461084157604051631966391b60e11b815260040160405180910390fd5b6005546001600160a01b03161561086b5760405163957cdddf60e01b815260040160405180910390fd5b6001600160a01b0382165f81815260076020908152604091829020805460ff191685151590811790915591519182527fb6dc23005e717e1eda12837f11302b77ea2fdec3262f4ff8c059ac691b4a16ac910160405180910390a25050565b60606001805461039c90610c8f565b5f610429338484610944565b6001600160a01b038381165f8181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b7f000000000000000000000000000000000000000000000000000000006a5916564210801561098b57506001600160a01b0382165f9081526007602052604090205460ff16155b15610a20575f6127106109ab60c86b033b2e3c9fd0803ce8000000610cf2565b6109b59190610d09565b90505f826109d7856001600160a01b03165f9081526003602052604090205490565b6109e19190610d28565b905081811115610a1d576040516304a43e8b60e51b81526001600160a01b0385166004820152602481018290526044810183905260640161048b565b50505b610a2b838383610a30565b505050565b6001600160a01b038316610a6257604051634b637e8f60e11b81526001600160a01b038416600482015260240161048b565b6001600160a01b038216610a945760405163ec442f0560e01b81526001600160a01b038316600482015260240161048b565b6001600160a01b0383165f9081526003602052604090205481811015610ae65760405163391434e360e21b81526001600160a01b0385166004820152602481018290526044810183905260640161048b565b6001600160a01b038085165f8181526003602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610b459086815260200190565b60405180910390a350505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b0381168114610b9e575f80fd5b919050565b5f8060408385031215610bb4575f80fd5b610bbd83610b88565b946020939093013593505050565b5f805f60608486031215610bdd575f80fd5b610be684610b88565b9250610bf460208501610b88565b929592945050506040919091013590565b5f60208284031215610c15575f80fd5b610c1e82610b88565b9392505050565b5f8060408385031215610c36575f80fd5b610c3f83610b88565b915060208301358015158114610c53575f80fd5b809150509250929050565b5f8060408385031215610c6f575f80fd5b610c7883610b88565b9150610c8660208401610b88565b90509250929050565b600181811c90821680610ca357607f821691505b602082108103610cc157634e487b7160e01b5f52602260045260245ffd5b50919050565b5f60208284031215610cd7575f80fd5b5051919050565b634e487b7160e01b5f52601160045260245ffd5b808202811582820484141761042d5761042d610cde565b5f82610d2357634e487b7160e01b5f52601260045260245ffd5b500490565b8082018082111561042d5761042d610cde56fea2646970667358221220c8f82db466a1e10ff2e3a882e621b9926a94d3b797c5d573c7f3ab326d0c2f4764736f6c634300081a0033
| Token | Symbol | Balance | Price | Value |
|---|---|---|---|---|
| DIH | 1 | $0.0000106 | $0 |
| Type | Age | Block | Details |
|---|---|---|---|
| no cross-chain L1↔L2 transactions for this address | |||
| Transaction Hash | Method ? | Block | Age | From | To | Amount | Txn Fee ? | ||
|---|---|---|---|---|---|---|---|---|---|
| 0x068a24…8ee07b | Approve | 18,186,868 | 23 days agoFri, 24 Jul 2026 13:32:14 UTC | 0x9c8f…33ee | IN | Rowan | $0.000 ETH | 0.00000512 | |
| 0x09c841…0defac | Approve | 16,467,924 | 25 days agoWed, 22 Jul 2026 13:39:34 UTC | 0xa1bb…5ce7 | IN | Rowan | $0.000 ETH | 0.00000348 | |
| 0x5ebd0a…0b3210 | Approve | 13,426,944 | 28 days agoSun, 19 Jul 2026 00:55:29 UTC | 0x8c1f…543a | IN | Rowan | $0.000 ETH | 0.00000154 | |
| 0xdbf6cd…a1be10 | Approve | 12,100,153 | 30 days agoFri, 17 Jul 2026 11:56:31 UTC | 0x9070…cf42 | IN | Rowan | $0.000 ETH | 0.00000347 | |
| 0x5e302e…104e58 | Approve | 11,770,357 | 30 days agoFri, 17 Jul 2026 02:44:26 UTC | 0x93ee…68a8 | IN | Rowan | $0.000 ETH | 0.00000389 | |
| 0xe28d50…c1184a | Approve | 11,615,716 | 30 days agoThu, 16 Jul 2026 22:26:26 UTC | 0xb3cb…640c | IN | Rowan | $0.000 ETH | 0.00000365 | |
| 0xada654…177eb6 | Approve | 11,521,967 | 30 days agoThu, 16 Jul 2026 19:50:02 UTC | 0x1a36…81fd | IN | Rowan | $0.000 ETH | 0.00000344 | |
| 0x3aad34…363271 | Approve | 11,458,403 | 31 days agoThu, 16 Jul 2026 18:04:03 UTC | 0x8c1f…543a | IN | Rowan | $0.000 ETH | 0.00000324 | |
| 0xefbaa9…9812ba | Approve | 11,449,604 | 31 days agoThu, 16 Jul 2026 17:49:22 UTC | 0xa0da…c49f | IN | Rowan | $0.000 ETH | 0.00000318 | |
| 0xf9b928…ff8646 | Approve | 11,441,358 | 31 days agoThu, 16 Jul 2026 17:35:36 UTC | 0x1925…1b18 | IN | Rowan | $0.000 ETH | 0.00000324 | |
| 0x6a24f0…6f4fcb | Approve | 11,438,515 | 31 days agoThu, 16 Jul 2026 17:30:52 UTC | 0x7137…d5d4 | IN | Rowan | $0.000 ETH | 0.00000317 | |
| 0x0c7ab5…a5b009 | Approve | 11,438,186 | 31 days agoThu, 16 Jul 2026 17:30:19 UTC | 0xa2ba…eee9 | IN | Rowan | $0.000 ETH | 0.00000326 | |
| 0xc3e26d…b1c864 | Approve | 11,436,133 | 31 days agoThu, 16 Jul 2026 17:26:54 UTC | 0xf50b…b487 | IN | Rowan | $0.000 ETH | 0.00000325 | |
| 0x639826…f54577 | Approve | 11,436,122 | 31 days agoThu, 16 Jul 2026 17:26:53 UTC | 0x5211…e000 | IN | Rowan | $0.000 ETH | 0.00000324 | |
| 0xc230cf…a7b58c | Approve | 11,436,122 | 31 days agoThu, 16 Jul 2026 17:26:53 UTC | 0xbf53…ced4 | IN | Rowan | $0.000 ETH | 0.00000324 | |
| 0x7b7c6c…47a274 | Approve | 11,436,122 | 31 days agoThu, 16 Jul 2026 17:26:53 UTC | 0x8fbf…2a22 | IN | Rowan | $0.000 ETH | 0.00000324 | |
| 0x6a2c20…a1f02a | Approve | 11,435,877 | 31 days agoThu, 16 Jul 2026 17:26:28 UTC | 0xebc4…3d08 | IN | Rowan | $0.000 ETH | 0.00000326 | |
| 0x5c5fca…07cabc | Approve | 11,435,620 | 31 days agoThu, 16 Jul 2026 17:26:03 UTC | 0xd335…2676 | IN | Rowan | $0.000 ETH | 0.00000316 | |
| 0x7bcd74…bfe842 | Approve | 11,435,613 | 31 days agoThu, 16 Jul 2026 17:26:02 UTC | 0xd837…8bf4 | IN | Rowan | $0.000 ETH | 0.00000320 | |
| 0x4fad92…d3100d | Approve | 11,435,609 | 31 days agoThu, 16 Jul 2026 17:26:02 UTC | 0xe5c8…21e4 | IN | Rowan | $0.000 ETH | 0.00000325 | |
| 0xdaf5fa…8c3cf3 | Approve | 11,435,598 | 31 days agoThu, 16 Jul 2026 17:26:00 UTC | 0xc5b4…d08c | IN | Rowan | $0.000 ETH | 0.00000323 | |
| 0x628629…b7e4b3 | Approve | 11,435,598 | 31 days agoThu, 16 Jul 2026 17:26:00 UTC | 0xec4b…3ed5 | IN | Rowan | $0.000 ETH | 0.00000323 | |
| 0x7c76b1…59afe8 | Approve | 11,435,594 | 31 days agoThu, 16 Jul 2026 17:26:00 UTC | 0x323c…a2b3 | IN | Rowan | $0.000 ETH | 0.00000319 | |
| 0x6d2175…b08aa0 | Approve | 11,435,594 | 31 days agoThu, 16 Jul 2026 17:26:00 UTC | 0x0343…b661 | IN | Rowan | $0.000 ETH | 0.00000319 | |
| 0xb074ba…8ae757 | Approve | 11,435,594 | 31 days agoThu, 16 Jul 2026 17:26:00 UTC | 0x1b6c…5f91 | IN | Rowan | $0.000 ETH | 0.00000319 |
| Txn Hash | Age | Event | Topics / Data |
|---|---|---|---|
| 0xb4608e…cd44da | 7 days agoSun, 09 Aug 2026 13:09:09 UTC | Transfer | [0] 0x000000000000…cdbf1c2a [1] 0x000000000000…cc1e16b8 data: 0x000000000000000000…137d7d5d |
| 0xb4608e…cd44da | 7 days agoSun, 09 Aug 2026 13:09:09 UTC | Approval | [0] 0x000000000000…cdbf1c2a [1] 0x000000000000…6e967445 data: 0x000000000000000000…137d7d5d |
| 0x895b40…aa0fcd | 7 days agoSun, 09 Aug 2026 12:26:03 UTC | Transfer | [0] 0x000000000000…cc1e16b8 [1] 0x000000000000…cdbf1c2a data: 0x000000000000000000…137d7d5d |
| 0xde841c…c789e7 | 8 days agoSat, 08 Aug 2026 13:55:07 UTC | Approval | [0] 0x000000000000…ecb16f76 [1] 0x000000000000…74568dd4 data: 0x000000000000000000…00000000 |
| 0xde841c…c789e7 | 8 days agoSat, 08 Aug 2026 13:55:07 UTC | Transfer | [0] 0x000000000000…ecb16f76 [1] 0x000000000000…cc1e16b8 data: 0x000000000000000000…b0bf2a96 |
| 0xde841c…c789e7 | 8 days agoSat, 08 Aug 2026 13:55:07 UTC | Approval | [0] 0x000000000000…ecb16f76 [1] 0x000000000000…74568dd4 data: 0x000000000000000000…b0bf2a96 |
| 0xde841c…c789e7 | 8 days agoSat, 08 Aug 2026 13:55:07 UTC | Transfer | [0] 0x000000000000…b820cf42 [1] 0x000000000000…ecb16f76 data: 0x000000000000000000…b0bf2a96 |
| 0xc6d4ff…c3a253 | 23 days agoFri, 24 Jul 2026 13:32:19 UTC | Transfer | [0] 0x000000000000…172bb7fe [1] 0x000000000000…cc1e16b8 data: 0x000000000000000000…7697fc8d |
| 0xc6d4ff…c3a253 | 23 days agoFri, 24 Jul 2026 13:32:19 UTC | Approval | [0] 0x000000000000…172bb7fe [1] 0x000000000000…74568dd4 data: 0x000000000000000000…7697fc8d |
| 0xc6d4ff…c3a253 | 23 days agoFri, 24 Jul 2026 13:32:19 UTC | Transfer | [0] 0x000000000000…4c6233ee [1] 0x000000000000…172bb7fe data: 0x000000000000000000…7697fc8d |
| 0x068a24…8ee07b | 23 days agoFri, 24 Jul 2026 13:32:14 UTC | Approval | [0] 0x000000000000…4c6233ee [1] 0x000000000000…172bb7fe data: 0xffffffffffffffffff…ffffffff |
| 0x3d75ff…6bcdd4 | 25 days agoWed, 22 Jul 2026 13:39:34 UTC | Transfer | [0] 0x000000000000…2e2e5ce7 [1] 0x000000000000…cc1e16b8 data: 0x000000000000000000…1db04a25 |
| 0x09c841…0defac | 25 days agoWed, 22 Jul 2026 13:39:34 UTC | Approval | [0] 0x000000000000…2e2e5ce7 [1] 0x000000000000…262c40dc data: 0xffffffffffffffffff…ffffffff |
| 0x5ebd0a…0b3210 | 28 days agoSun, 19 Jul 2026 00:55:29 UTC | Approval | [0] 0x000000000000…ca01543a [1] 0x000000000000…262c40dc data: 0x000000000000000000…00000000 |
| 0xa61af0…83fe58 | 30 days agoFri, 17 Jul 2026 13:58:21 UTC | Approval | [0] 0x000000000000…ecb16f76 [1] 0x000000000000…74568dd4 data: 0x000000000000000000…00000000 |
| 0xa61af0…83fe58 | 30 days agoFri, 17 Jul 2026 13:58:21 UTC | Transfer | [0] 0x000000000000…ecb16f76 [1] 0x000000000000…cc1e16b8 data: 0x000000000000000000…13a37682 |
| 0xa61af0…83fe58 | 30 days agoFri, 17 Jul 2026 13:58:21 UTC | Approval | [0] 0x000000000000…ecb16f76 [1] 0x000000000000…74568dd4 data: 0x000000000000000000…13a37682 |
| 0xa61af0…83fe58 | 30 days agoFri, 17 Jul 2026 13:58:21 UTC | Transfer | [0] 0x000000000000…b820cf42 [1] 0x000000000000…ecb16f76 data: 0x000000000000000000…13a37682 |
| 0xca8d99…b4a572 | 30 days agoFri, 17 Jul 2026 13:58:18 UTC | Approval | [0] 0x000000000000…ecb16f76 [1] 0x000000000000…74568dd4 data: 0x000000000000000000…00000000 |
| 0xca8d99…b4a572 | 30 days agoFri, 17 Jul 2026 13:58:18 UTC | Transfer | [0] 0x000000000000…ecb16f76 [1] 0x000000000000…cc1e16b8 data: 0x000000000000000000…87992e58 |
| 0xca8d99…b4a572 | 30 days agoFri, 17 Jul 2026 13:58:18 UTC | Approval | [0] 0x000000000000…ecb16f76 [1] 0x000000000000…74568dd4 data: 0x000000000000000000…87992e58 |
| 0xca8d99…b4a572 | 30 days agoFri, 17 Jul 2026 13:58:18 UTC | Transfer | [0] 0x000000000000…b820cf42 [1] 0x000000000000…ecb16f76 data: 0x000000000000000000…87992e58 |
| 0x0a37b7…b86350 | 30 days agoFri, 17 Jul 2026 13:58:15 UTC | Approval | [0] 0x000000000000…ecb16f76 [1] 0x000000000000…74568dd4 data: 0x000000000000000000…00000000 |
| 0x0a37b7…b86350 | 30 days agoFri, 17 Jul 2026 13:58:15 UTC | Transfer | [0] 0x000000000000…ecb16f76 [1] 0x000000000000…cc1e16b8 data: 0x000000000000000000…24e3170c |
| 0x0a37b7…b86350 | 30 days agoFri, 17 Jul 2026 13:58:15 UTC | Approval | [0] 0x000000000000…ecb16f76 [1] 0x000000000000…74568dd4 data: 0x000000000000000000…24e3170c |
| Transaction Hash | Method | Block | Age | From | To | Type | Item | ||
|---|---|---|---|---|---|---|---|---|---|
| no NFT transfers for this address yet | |||||||||
| Transaction Hash | Method | Block | Age | From | To | Amount | Token | ||
|---|---|---|---|---|---|---|---|---|---|
| 0x0b94337a…352dcd | Transfer | 19,808,640 | 21 days agoSun, 26 Jul 2026 10:44:41 UTC | 0xcaf7…5d11 | IN | 0xacf7…5afe | $0.001 DIH |
| Block | Age | Parent Transaction Hash | Type | Method | From | To | Value | |
|---|---|---|---|---|---|---|---|---|
| 11,435,176 | 31 days agoThu, 16 Jul 2026 17:25:18 UTC | 0x26d417…05754d | CREATE2 | launch | 0xf612…17fc | IN | 0xacf7…5afe | 0 ETH |