// SPDX-License-Identifier: MIT
pragma solidity ^0.8.24;
import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";
import {DexLaunchRules} from "./libraries/DexLaunchRules.sol";
import {DexSwapFees} from "./libraries/DexSwapFees.sol";
import {IBondingCurve} from "./interfaces/IBondingCurve.sol";
/// @title HoodxToken - Curve + V3 creator fees in one bucket (claim: 80% burn / 20% ETH to creator)
contract HoodxToken is ERC20 {
uint256 public constant TOTAL_SUPPLY = 1_000_000_000 * 1e18;
address public constant BURN_ADDRESS = 0x000000000000000000000000000000000000dEaD;
uint256 public constant FEE_BURN_BPS = 8000;
uint256 public constant FEE_CREATOR_BPS = 2000;
struct DexLaunchConfig {
address pool;
address creator;
address v3SwapRouter;
address weth;
uint24 v3PoolFee;
uint16 maxWalletBps;
uint16 maxTxBps;
uint32 restrictionBlocks;
}
address public immutable curve;
DexLaunchRules.Config private _dexCfg;
DexSwapFees.Config private _feeCfg;
mapping(address => uint256) private _originBought;
bool public dexLaunchEnabled;
bool public swapFeeEnabled;
bool private _processingFees;
uint256 public totalFeeTokensBurned;
event DexLaunchConfigured(
address indexed pool, address indexed creator, uint256 launchBlock, uint256 restrictionEndBlock
);
event CreatorFeesClaimed(
address indexed caller, uint256 tokensBurned, uint256 tokensSwapped, uint256 ethToCreator
);
event FeeTokensBurned(uint256 amount, address indexed burnAddress, uint256 totalBurned);
constructor(string memory name_, string memory symbol_, address curve_) ERC20(name_, symbol_) {
require(curve_ != address(0), "Invalid curve");
curve = curve_;
_mint(curve_, TOTAL_SUPPLY);
}
/// @notice The token has no admin — all parameters are fixed at deploy or set once by the curve
/// at graduation. Returning the zero address advertises "ownership renounced" to
/// explorers and honeypot scanners (there is no privileged owner that can rug holders).
function owner() external pure returns (address) {
return address(0);
}
function dexPool() external view returns (address) {
return _dexCfg.dexPool;
}
function feeRecipient() external view returns (address) {
return IBondingCurve(curve).creator();
}
function launchBlock() external view returns (uint256) {
return _dexCfg.launchBlock;
}
function restrictionEndBlock() external view returns (uint256) {
return _dexCfg.restrictionEndBlock;
}
function maxWalletAmount() external view returns (uint256) {
return _dexCfg.maxWalletAmount;
}
function maxTxAmount() external view returns (uint256) {
return _dexCfg.maxTxAmount;
}
function accumulatedCreatorFees() external view returns (uint256) {
return balanceOf(address(this));
}
function previewCreatorFeeClaim()
external
view
returns (uint256 burnAmount, uint256 swapAmount)
{
return DexSwapFees.splitClaimAmount(balanceOf(address(this)));
}
/// @notice Anyone can claim curve + V3 creator fees — 80% burn, 20% ETH/WETH to creator.
function claimCreatorFees() external {
uint256 balance = balanceOf(address(this));
require(balance > 0, "Nothing to claim");
address creator = IBondingCurve(curve).creator();
(uint256 burnAmount, uint256 swapAmount) = DexSwapFees.splitClaimAmount(balance);
_processingFees = true;
if (burnAmount > 0) {
_burnFeeTokens(burnAmount);
}
uint256 ethToCreator = 0;
if (swapAmount > 0) {
if (swapFeeEnabled) {
ethToCreator = DexSwapFees.swapTokensForCreatorEth(_feeCfg, swapAmount);
} else {
_update(address(this), curve, swapAmount);
ethToCreator = IBondingCurve(curve).sellFeeTokensForEth(swapAmount);
(bool sent,) = creator.call{value: ethToCreator}("");
require(sent, "Creator payout failed");
}
}
_processingFees = false;
emit CreatorFeesClaimed(msg.sender, burnAmount, swapAmount, ethToCreator);
}
function _burnFeeTokens(uint256 amount) internal {
require(amount > 0, "Nothing to burn");
_update(address(this), BURN_ADDRESS, amount);
totalFeeTokensBurned += amount;
emit FeeTokensBurned(amount, BURN_ADDRESS, totalFeeTokensBurned);
}
function configureDexLaunch(DexLaunchConfig calldata cfg) external {
require(msg.sender == curve, "Only curve");
require(!dexLaunchEnabled, "Already configured");
require(cfg.pool != address(0) && cfg.creator != address(0), "Invalid config");
require(cfg.v3SwapRouter != address(0) && cfg.weth != address(0), "Invalid router");
_dexCfg = DexLaunchRules.Config({
dexPool: cfg.pool,
curve: curve,
creator: cfg.creator,
launchBlock: block.number,
restrictionEndBlock:
cfg.restrictionBlocks == 0 ? block.number : block.number + cfg.restrictionBlocks,
maxWalletAmount: (TOTAL_SUPPLY * cfg.maxWalletBps) / 10_000,
maxTxAmount: (TOTAL_SUPPLY * cfg.maxTxBps) / 10_000
});
_feeCfg = DexSwapFees.Config({
token: address(this),
dexPool: cfg.pool,
creator: cfg.creator,
v3SwapRouter: cfg.v3SwapRouter,
weth: cfg.weth,
v3PoolFee: cfg.v3PoolFee
});
dexLaunchEnabled = true;
swapFeeEnabled = true;
emit DexLaunchConfigured(cfg.pool, cfg.creator, _dexCfg.launchBlock, _dexCfg.restrictionEndBlock);
}
function _update(address from, address to, uint256 amount) internal override {
if (dexLaunchEnabled) {
DexLaunchRules.enforce(
_dexCfg, _originBought, from, to, amount, to == address(0) ? 0 : balanceOf(to)
);
}
if (
DexSwapFees.shouldTaxTransfer(
_feeCfg, _processingFees, swapFeeEnabled, from, to, BURN_ADDRESS
) && from != curve
) {
uint256 fee = DexSwapFees.feeAmount(amount);
if (fee > 0) {
super._update(from, address(this), fee);
super._update(from, to, amount - fee);
return;
}
}
super._update(from, to, amount);
}
receive() external payable {}
}[
{
"type": "constructor",
"inputs": [
{
"name": "name_",
"type": "string",
"internalType": "string"
},
{
"name": "symbol_",
"type": "string",
"internalType": "string"
},
{
"name": "curve_",
"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": "LaunchBlockBuyBlocked",
"type": "error",
"inputs": [
{
"name": "account",
"type": "address",
"internalType": "address"
}
]
},
{
"name": "MaxTxExceeded",
"type": "error",
"inputs": [
{
"name": "account",
"type": "address",
"internalType": "address"
},
{
"name": "amount",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "maxTx",
"type": "uint256",
"internalType": "uint256"
}
]
},
{
"name": "MaxWalletExceeded",
"type": "error",
"inputs": [
{
"name": "account",
"type": "address",
"internalType": "address"
},
{
"name": "balanceAfter",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "maxWallet",
"type": "uint256",
"internalType": "uint256"
}
]
},
{
"name": "SafeERC20FailedOperation",
"type": "error",
"inputs": [
{
"name": "token",
"type": "address",
"internalType": "address"
}
]
},
{
"name": "Approval",
"type": "event",
"inputs": [
{
"name": "owner",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "spender",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "value",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "CreatorFeesClaimed",
"type": "event",
"inputs": [
{
"name": "caller",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "tokensBurned",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "tokensSwapped",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "ethToCreator",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "DexLaunchConfigured",
"type": "event",
"inputs": [
{
"name": "pool",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "creator",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "launchBlock",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "restrictionEndBlock",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "FeeTokensBurned",
"type": "event",
"inputs": [
{
"name": "amount",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "burnAddress",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "totalBurned",
"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": "BURN_ADDRESS",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "FEE_BURN_BPS",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "FEE_CREATOR_BPS",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "TOTAL_SUPPLY",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "accumulatedCreatorFees",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "allowance",
"type": "function",
"inputs": [
{
"name": "owner",
"type": "address",
"internalType": "address"
},
{
"name": "spender",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "approve",
"type": "function",
"inputs": [
{
"name": "spender",
"type": "address",
"internalType": "address"
},
{
"name": "value",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "nonpayable"
},
{
"name": "balanceOf",
"type": "function",
"inputs": [
{
"name": "account",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "claimCreatorFees",
"type": "function",
"inputs": [],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "configureDexLaunch",
"type": "function",
"inputs": [
{
"name": "cfg",
"type": "tuple",
"components": [
{
"name": "pool",
"type": "address",
"internalType": "address"
},
{
"name": "creator",
"type": "address",
"internalType": "address"
},
{
"name": "v3SwapRouter",
"type": "address",
"internalType": "address"
},
{
"name": "weth",
"type": "address",
"internalType": "address"
},
{
"name": "v3PoolFee",
"type": "uint24",
"internalType": "uint24"
},
{
"name": "maxWalletBps",
"type": "uint16",
"internalType": "uint16"
},
{
"name": "maxTxBps",
"type": "uint16",
"internalType": "uint16"
},
{
"name": "restrictionBlocks",
"type": "uint32",
"internalType": "uint32"
}
],
"internalType": "struct HoodxToken.DexLaunchConfig"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "curve",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "decimals",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint8",
"internalType": "uint8"
}
],
"stateMutability": "view"
},
{
"name": "dexLaunchEnabled",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "view"
},
{
"name": "dexPool",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "feeRecipient",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "launchBlock",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "maxTxAmount",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "maxWalletAmount",
"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": "owner",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "pure"
},
{
"name": "previewCreatorFeeClaim",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "burnAmount",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "swapAmount",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "restrictionEndBlock",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "swapFeeEnabled",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "view"
},
{
"name": "symbol",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "string",
"internalType": "string"
}
],
"stateMutability": "view"
},
{
"name": "totalFeeTokensBurned",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"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"
},
{
"type": "receive",
"stateMutability": "payable"
}
]0x6080604081815260049182361015610022575b505050361561002057600080fd5b005b600092833560e01c91826306fdde0314610e3a575081630861ac6114610e1b578163095ea7b314610d7157816318160ddd14610d5257816323b872dd14610c5e5781632d28719114610c3a5781632d2ccb3e14610c1d578163313ce56714610c01578163351fee461461095c5781633d2fa2d214610933578163469048401461088d57816359eedafd146108665781636c0a6f471461083b57816370a08231146107f85781637165485d146107b45781638c0b5e22146107955781638da5cb5b1461077a578163902d55a51461075357816395d89b411461064e578163984e87721461062f578163a9059cbb146105fe578163aa4bde28146105df578163b531f24b146105ab578163c5d5ec9b1461058e578163d00efb2f1461056f578163dc7d5cda146101cd57508063dd62ed3e146101855763fccc2813146101665780610012565b346101815781600319360112610181576020905161dead8152f35b5080fd5b5034610181578060031936011261018157806020926101a2610f78565b6101aa610f93565b6001600160a01b0391821683526001865283832091168252845220549051908152f35b9190503461056b5761010036600319011261056b576001600160a01b03917f0000000000000000000000007fbfdd25a055b0f0486fca6c99b4c7bd9b1114268316913383900361053b5760125460ff8116610503578461022b611112565b161515806104f1575b156104bd578461024261113e565b161515806104ab575b1561047757610258611112565b93610261611128565b9363ffffffff8061027061116a565b1661045e575043955b60a43561ffff9283821680920361045a576b033b2e3c9fd0803ce8000000908282029282840403610443576127108093049460c4359081168091036104565780830292830403610443575004928360c08a808951956102d787610fa9565b16998a8652846020870152169384898201524360608201528a60808201528560a082015201526bffffffffffffffffffffffff60a01b968760055416176005558660065416176006558560075416176007554360085585600955600a55600b5561033f611112565b90610348611128565b9361035161113e565b9261035a611154565b6084359262ffffff84169586850361043f577fcba57da5feefd031542bef32eef50b11d46cee2600224adfda26350f0435fe8c986101019760a08d808c95818088519b6103a68d610fdb565b308d5216968760208d01521680978b015216968760608a0152169687608082015201523083600c541617600c5582600d541617600d5581600e541617600e55600f541617600f556010549162ffffff60a01b9060a01b169168ffffffffffffffffff60b81b16171760105561ffff191617601255610422611112565b938061042c611128565b835195438752602087015216941692a380f35b8b80fd5b634e487b7160e01b8c526011905260248bfd5b8c80fd5b8a80fd5b6104719061046a61116a565b164361117d565b95610279565b815162461bcd60e51b8152602081850152600e60248201526d24b73b30b634b2103937baba32b960911b6044820152606490fd5b50846104b5611154565b16151561024b565b815162461bcd60e51b8152602081850152600e60248201526d496e76616c696420636f6e66696760901b6044820152606490fd5b50846104fb611128565b161515610234565b815162461bcd60e51b81526020818501526012602482015271105b1c9958591e4818dbdb999a59dd5c995960721b6044820152606490fd5b906020606492519162461bcd60e51b8352820152600a6024820152694f6e6c7920637572766560b01b6044820152fd5b8280fd5b5050346101815781600319360112610181576020906008549051908152f35b50503461018157816003193601126101815760209051611f408152f35b8284346105dc57806003193601126105dc57816105d091308152806020522054611203565b82519182526020820152f35b80fd5b505034610181578160031936011261018157602090600a549051908152f35b50503461018157806003193601126101815760209061062861061e610f78565b60243590336111a0565b5160018152f35b5050346101815781600319360112610181576020906013549051908152f35b83833461018157816003193601126101815780519180938054916001908360011c9260018516948515610749575b60209586861081146107365785895290811561071257506001146106ba575b6106b687876106ac828c0383610ff7565b5191829182610f2f565b0390f35b81529295507f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b8284106106ff57505050826106b6946106ac9282010194868061069b565b80548685018801529286019281016106e1565b60ff19168887015250505050151560051b83010192506106ac826106b6868061069b565b634e487b7160e01b845260228352602484fd5b93607f169361067c565b505034610181578160031936011261018157602090516b033b2e3c9fd0803ce80000008152f35b50503461018157816003193601126101815751908152602090f35b505034610181578160031936011261018157602090600b549051908152f35b505034610181578160031936011261018157517f0000000000000000000000007fbfdd25a055b0f0486fca6c99b4c7bd9b1114266001600160a01b03168152602090f35b50503461018157602036600319011261018157602090610834610819610f78565b6001600160a01b031660009081526020819052604090205490565b9051908152f35b5050346101815781600319360112610181573060009081526020818152604090912054909190610834565b50503461018157816003193601126101815760209060ff60125460081c1690519015158152f35b9190503461056b578260031936011261056b5780516302d05d3f60e01b8152916001600160a01b0391906020908490817f0000000000000000000000007fbfdd25a055b0f0486fca6c99b4c7bd9b11142686165afa92831561092957602094936108fa575b505191168152f35b61091b919350843d8611610922575b6109138183610ff7565b810190611019565b91386108f2565b503d610909565b81513d86823e3d90fd5b50503461018157816003193601126101815760055490516001600160a01b039091168152602090f35b9190503461056b578260031936011261056b57308352602090838252808420548015610bcc5781516302d05d3f60e01b81527f0000000000000000000000007fbfdd25a055b0f0486fca6c99b4c7bd9b1114266001600160a01b0381169590949192828483818a5afa938415610bc2578894610b9f575b506109dd90611203565b9390968862ff000019936201000085601254161760125589158015610b11575b50819887610a46575b50505050506012541660125582519485528401528201527f5c0244eed6965417b3a6bf8a8f7d0f39a05e2c1c362b34d9bc88f936b7905b7160603392a280f35b9091929394985060ff60125460081c16600014610a7f575050505050610a7382610a6e6110bc565b61149e565b935b3880888180610a06565b60248692610a928980949c989c30611368565b848a519687948593635179f4bd60e01b85528401525af1918215610b05578192610ad6575b5080808084610ad1959a5af1610acb611038565b50611078565b610a75565b91508382813d8311610afe575b610aed8183610ff7565b810103126105dc5790519080610ab7565b503d610ae3565b508551903d90823e3d90fd5b909150610b6a578990610b248a30611229565b61dead7fc45982425e2b93472c6a1370da34d8a8af9798a5e16e211e14357666d0d58d05898c610b568160135461117d565b8060135582519182528a820152a2386109fd565b865162461bcd60e51b8152908101859052600f60248201526e2737ba3434b733903a3790313ab93760891b6044820152606490fd5b6109dd919450610bbb90843d8611610922576109138183610ff7565b93906109d3565b85513d8a823e3d90fd5b505162461bcd60e51b815291820152601060248201526f4e6f7468696e6720746f20636c61696d60801b604482015260649150fd5b5050346101815781600319360112610181576020905160128152f35b505034610181578160031936011261018157602090516107d08152f35b50503461018157816003193601126101815760209060ff6012541690519015158152f35b905082346105dc5760603660031901126105dc57610c7a610f78565b610c82610f93565b916044359360018060a01b038316808352600160205286832033845260205286832054916000198310610cbe575b6020886106288989896111a0565b868310610d26578115610d0f573315610cf85750825260016020908152868320338452815291869020908590039055829061062887610cb0565b8751634a1406b160e11b8152908101849052602490fd5b875163e602df0560e01b8152908101849052602490fd5b8751637dc7a0d960e11b8152339181019182526020820193909352604081018790528291506060010390fd5b5050346101815781600319360112610181576020906002549051908152f35b90503461056b578160031936011261056b57610d8b610f78565b602435903315610e04576001600160a01b0316918215610ded57508083602095338152600187528181208582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b8351634a1406b160e11b8152908101859052602490fd5b835163e602df0560e01b8152808401869052602490fd5b5050346101815781600319360112610181576020906009549051908152f35b92915034610f2b5783600319360112610f2b57600354600181811c9186908281168015610f21575b6020958686108214610f0e5750848852908115610eec5750600114610e93575b6106b686866106ac828b0383610ff7565b929550600383527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b828410610ed957505050826106b6946106ac928201019438610e82565b8054868501880152928601928101610ebc565b60ff191687860152505050151560051b83010192506106ac826106b638610e82565b634e487b7160e01b845260229052602483fd5b93607f1693610e62565b8380fd5b6020808252825181830181905290939260005b828110610f6457505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501610f42565b600435906001600160a01b0382168203610f8e57565b600080fd5b602435906001600160a01b0382168203610f8e57565b60e0810190811067ffffffffffffffff821117610fc557604052565b634e487b7160e01b600052604160045260246000fd5b60c0810190811067ffffffffffffffff821117610fc557604052565b90601f8019910116810190811067ffffffffffffffff821117610fc557604052565b90816020910312610f8e57516001600160a01b0381168103610f8e5790565b3d15611073573d9067ffffffffffffffff8211610fc55760405191611067601f8201601f191660200184610ff7565b82523d6000602084013e565b606090565b1561107f57565b60405162461bcd60e51b815260206004820152601560248201527410dc99585d1bdc881c185e5bdd5d0819985a5b1959605a1b6044820152606490fd5b604051906110c982610fdb565b600c546001600160a01b039081168352600d5481166020840152600e5481166040840152600f5481166060840152601054908116608084015260a090811c62ffffff1690830152565b6004356001600160a01b0381168103610f8e5790565b6024356001600160a01b0381168103610f8e5790565b6044356001600160a01b0381168103610f8e5790565b6064356001600160a01b0381168103610f8e5790565b60e43563ffffffff81168103610f8e5790565b9190820180921161118a57565b634e487b7160e01b600052601160045260246000fd5b91906001600160a01b03808416156111dd578116156111c4576111c292611368565b565b60405163ec442f0560e01b815260006004820152602490fd5b604051634b637e8f60e11b815260006004820152602490fd5b9190820391821161118a57565b90611f4080830290838204148315171561118a57612710611226910480936111f6565b90565b60125460ff600091166112f6575b6112588260125460ff808260081c169160101c166112536110bc565b611c2d565b806112bf575b61126e575b50906111c291611d44565b6064830290838204606414841517156112ab57506127109004801561126357806111c2936112a06112a5933086611e06565b6111f6565b90611d44565b634e487b7160e01b81526011600452602490fd5b506001600160a01b038281167f0000000000000000000000007fbfdd25a055b0f0486fca6c99b4c7bd9b111426909116141561125e565b50600061dead6000526000602052611363604060002054848460405161131b81610fa9565b6005546001600160a01b0390811682526006548116602083015260075416604082015260085460608201526009546080820152600a5460a0820152600b5460c0820152611792565b611237565b919060ff6012541661141e575b611397818460125460ff808260081c169160101c166113926110bc565b611cb6565b806113e7575b6113ab575b6111c292611e06565b606482028281046064148315171561118a576127109004806113cd57506113a2565b806111c294936112a06113e1933087611e06565b91611e06565b506001600160a01b038381167f0000000000000000000000007fbfdd25a055b0f0486fca6c99b4c7bd9b111426909116141561139d565b6114886001600160a01b0383838681841660008161148d5750506000935b6040519061144982610fa9565b806005541682528060065416602083015260075416604082015260085460608201526009546080820152600a5460a0820152600b5460c08201526119e9565b611375565b60409181528060205220549361143c565b9190600090801561178d57835160608501805160405163095ea7b360e01b86526001600160a01b03918216600481905260248690528695949092169060208660448180865af16001875114811615611780575b81604052156116a1575b50509051865160808801805160a08a01516040519296602096506001600160a01b039586169560e49591939181169262ffffff16911661153a85610fa9565b8285528785019081526040808601928352606086019384526080860194855260a086018b815260c087018c815291516304e45aaf60e01b815296516001600160a01b039081166004890152925183166024880152925162ffffff166044870152925181166064860152925160848501525160a4840152511660c48201529586928391905af192831561166257829361166d575b50516001600160a01b0316803b1561018157818091602460405180948193632e1a7d4d60e01b83528860048401525af1801561166257611636575b5081938261161557505050565b604001516111c2928291829182916001600160a01b03165af1610acb611038565b67ffffffffffffffff811161164e5760405238611608565b634e487b7160e01b82526041600452602482fd5b6040513d84823e3d90fd5b9092506020813d602011611699575b8161168960209383610ff7565b81010312610181575191386115cd565b3d915061167c565b90919293945063095ea7b360e01b8652826004528560245260208660448180865af16001875114811615611761575b816040521561174d57506040519163095ea7b360e01b86526004528360245260208560448180855af1600186511481161561172e575b82604052156117195780859493926114fb565b635274afe760e01b8252600482015260249150fd5b600181151661174457813b15153d151616611706565b823d87823e3d90fd5b602491635274afe760e01b82526004820152fd5b600181151661177757823b15153d1516166116d0565b503d86823e3d90fd5b823b15153d1516166114f1565b509150565b80519093916001600160a01b039182169190821580156119e1575b6117fd578116801592831593846119d9575b6119d057606087015180431490431191826119c1575b8115806119b9575b6119ae57816119a4575b5080611992575b80611980575b61196657611805575b505050505050565b818651161480611954575b80611942575b6118b5575b816118a1575b8161188d575b8161187d575b5061183b575b8080806117fd565b60a0916118479161117d565b9101518082116118575780611833565b60649250604051916304a43e8b60e51b835261dead600484015260248301526044820152fd5b905083511661dead14153861182d565b80915060408501511661dead141590611827565b80915060208501511661dead141590611821565b600032815260116020526118cd85604083205461117d565b90328152601160205281604082205560c087015190612af8918281029281840414901517156112ab575061271090049081158015611939575b61191157505061181b565b6040516334e5f8b760e21b815232600482015260248101919091526044810191909152606490fd5b50818111611906565b508060408601511661dead1415611816565b508060208601511661dead1415611810565b6040516385234f9760e01b815261dead6004820152602490fd5b508260408801511661dead14156117f4565b508260208801511661dead14156117ee565b90508214386117e7565b505050505050505050565b5082156117dd565b608089015143111592506117d5565b50505050505050565b5060006117bf565b5084156117ad565b80519094929392916001600160a01b03918216919082158015611c25575b6119d057811680159283159384611c1b575b611c115760608801518043149043119182611c02575b811580611bfa575b611bee5781611be4575b5080611bd2575b80611bc0575b611ba657611a5f5750505050505050565b818751161480611b94575b80611b82575b611b1d575b81611b09575b81611af5575b81611ae4575b50611a95575b8080806119d0565b60a091611aa19161117d565b920151808311611ab15780611a8d565b6040516304a43e8b60e51b81526001600160a01b0392909216600483015260248201929092526044810191909152606490fd5b809150855116908416141538611a87565b809150604086015116818516141590611a81565b809150602086015116818516141590611a7b565b60003281526011602052611b3585604083205461117d565b90328152601160205281604082205560c088015190612af8918281029281840414901517156112ab575061271090049081158015611b79575b611911575050611a75565b50818111611b6e565b50806040870151168186161415611a70565b50806020870151168186161415611a6a565b6040516385234f9760e01b81528388166004820152602490fd5b50826040890151168388161415611a4e565b50826020890151168388161415611a48565b9050821438611a41565b50505050505050505050565b508215611a37565b60808a01514311159250611a2f565b5050505050505050565b5082871615611a19565b508415611a07565b929115908115611cae575b50611ca7576001600160a01b039081169182158015611c9f575b611c835781815116808414908115611c93575b50611c835761dead83148015611c8b575b611c835760200151161490565b505050600090565b506001611c76565b905061dead1438611c65565b506000611c52565b5050600090565b905038611c38565b9115908115611d3c575b50611c83576001600160a01b039182169283158015611d32575b611d1d5782825116808514908115611d26575b50611d1d5761dead83818614928315611d11575b505050611c835760200151161490565b16149050388381611d01565b50505050600090565b90508382161438611ced565b5082811615611cda565b905038611cc0565b6001600160a01b0381169081611da85750611d618260025461117d565b6002555b7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602061dead9384600052600082526040600020818154019055604051908152a3565b60009082825281602052604082205490848210611dd45750836040918484528360205203912055611d65565b60405163391434e360e21b81526001600160a01b03919091166004820152602481019190915260448101849052606490fd5b6001600160a01b0380821692909183611e8057507fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91602091611e4b8660025461117d565b6002555b169384611e685780600254036002555b604051908152a3565b84600052600082526040600020818154019055611e5f565b60009084825281602052604082205490868210611ed157509181604087602095887fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef98965283875203912055611e4f565b60405163391434e360e21b81526001600160a01b03919091166004820152602481019190915260448101869052606490fdfea2646970667358221220ae58ac88673187ca21b076b83dbf5bd0a24c2ddbdd92349e8ad717971e56bea164736f6c63430008180033
| Token | Symbol | Balance | Price | Value |
|---|---|---|---|---|
| DIH | 1 | $0.0000102 | $0 |
| Transaction Hash | Method | Block | Age | From | To | Type | Item | ||
|---|---|---|---|---|---|---|---|---|---|
| no NFT transfers for this address yet | |||||||||
| Txn Hash | Age | Event | Topics / Data |
|---|---|---|---|
| 0xd806f6…a093c3 | 25 days agoThu, 23 Jul 2026 21:33:12 UTC | 0x5c0244…5b71 | [0] 0x000000000000…2a3341af data: 0x000000000000000000…4d3c2c82 |
| 0xd806f6…a093c3 | 25 days agoThu, 23 Jul 2026 21:33:12 UTC | Transfer | [0] 0x000000000000…efe08000 [1] 0x000000000000…9b111426 data: 0x000000000000000000…f3b38653 |
| 0xd806f6…a093c3 | 25 days agoThu, 23 Jul 2026 21:33:12 UTC | 0xc45982…8d05 | [0] 0x000000000000…0000dead data: 0x000000000000000000…cece194b |
| 0xd806f6…a093c3 | 25 days agoThu, 23 Jul 2026 21:33:12 UTC | Transfer | [0] 0x000000000000…efe08000 [1] 0x000000000000…0000dead data: 0x000000000000000000…cece194b |
| 0x042bef…fdd8b6 | 30 days agoSat, 18 Jul 2026 15:13:14 UTC | Transfer | [0] 0x000000000000…9b111426 [1] 0x000000000000…efe08000 data: 0x000000000000000000…694866fa |
| 0x042bef…fdd8b6 | 30 days agoSat, 18 Jul 2026 15:13:14 UTC | Transfer | [0] 0x000000000000…2a3341af [1] 0x000000000000…9b111426 data: 0x000000000000000000…20483a02 |
| 0x63a2a0…63f66e | 30 days agoSat, 18 Jul 2026 15:13:10 UTC | Approval | [0] 0x000000000000…2a3341af [1] 0x000000000000…9b111426 data: 0xffffffffffffffffff…ffffffff |
| 0x512211…2e0d54 | 30 days agoSat, 18 Jul 2026 15:12:32 UTC | Transfer | [0] 0x000000000000…9b111426 [1] 0x000000000000…2a3341af data: 0x000000000000000000…8afd25e0 |
| 0x512211…2e0d54 | 30 days agoSat, 18 Jul 2026 15:12:32 UTC | Transfer | [0] 0x000000000000…9b111426 [1] 0x000000000000…efe08000 data: 0x000000000000000000…2ac71511 |
| 0xd72cbb…d04ee3 | 30 days agoSat, 18 Jul 2026 12:17:30 UTC | Transfer | [0] 0x000000000000…9b111426 [1] 0x000000000000…2a3341af data: 0x000000000000000000…f623c229 |
| 0xd72cbb…d04ee3 | 30 days agoSat, 18 Jul 2026 12:17:30 UTC | Transfer | [0] 0x000000000000…9b111426 [1] 0x000000000000…efe08000 data: 0x000000000000000000…2e722393 |
| 0xd72cbb…d04ee3 | 30 days agoSat, 18 Jul 2026 12:17:30 UTC | Transfer | [0] 0x000000000000…00000000 [1] 0x000000000000…9b111426 data: 0x000000000000000000…e8000000 |
| Type | Age | Block | Details |
|---|---|---|---|
| no cross-chain L1↔L2 transactions for this address | |||
| Transaction Hash | Method ? | Block | Age | From | To | Amount | Txn Fee ? | ||
|---|---|---|---|---|---|---|---|---|---|
| 0xd806f6…a093c3 | claimCreatorFees | 17,613,638 | 25 days agoThu, 23 Jul 2026 21:33:12 UTC | 0xcdd6…41af | IN | asim | $0.000 ETH | 0.00001584 | |
| 0x63a2a0…63f66e | Approve | 13,078,724 | 30 days agoSat, 18 Jul 2026 15:13:10 UTC | 0xcdd6…41af | IN | asim | $0.000 ETH | 0.00000303 |
| Transaction Hash | Method | Block | Age | From | To | Amount | Token | ||
|---|---|---|---|---|---|---|---|---|---|
| 0x903a7eb3…63b235 | Transfer | 18,583,129 | 24 days agoSat, 25 Jul 2026 00:33:51 UTC | 0xcaf7…5d11 | IN | 0x6214…8000 | $0.001 DIH | ||
| 0xd806f6c4…a093c3 | Transfer | 17,613,638 | 25 days agoThu, 23 Jul 2026 21:33:12 UTC | 0x6214…8000 | OUT | 0x7fbf…1426 | 971.447369 ASIM | asim (ASIM) | |
| 0xd806f6c4…a093c3 | Transfer | 17,613,638 | 25 days agoThu, 23 Jul 2026 21:33:12 UTC | 0x6214…8000 | OUT | 0x0000…dead | 3,885.789478 ASIM | asim (ASIM) | |
| 0x042bef9e…fdd8b6 | Transfer | 13,078,763 | 30 days agoSat, 18 Jul 2026 15:13:14 UTC | 0x7fbf…1426 | IN | 0x6214…8000 | 963.660216 ASIM | asim (ASIM) | |
| 0x51221186…2e0d54 | Transfer | 13,078,352 | 30 days agoSat, 18 Jul 2026 15:12:32 UTC | 0x7fbf…1426 | IN | 0x6214…8000 | 353.844743 ASIM | asim (ASIM) | |
| 0xd72cbb18…d04ee3 | Transfer | 12,973,707 | 30 days agoSat, 18 Jul 2026 12:17:30 UTC | 0x7fbf…1426 | IN | 0x6214…8000 | 3,539.731888 ASIM | asim (ASIM) |
| Block | Age | Parent Transaction Hash | Type | Method | From | To | Value | |
|---|---|---|---|---|---|---|---|---|
| 17,613,638 | 25 days agoThu, 23 Jul 2026 21:33:12 UTC | 0xd806f6…a093c3 | CALL | claimCreatorFees | 0x6214…8000 | OUT | 0xcdd6…41af | 0.00002 ETH |
| 17,613,638 | 25 days agoThu, 23 Jul 2026 21:33:12 UTC | 0xd806f6…a093c3 | CALL | claimCreatorFees | 0x7fbf…1426 | IN | 0x6214…8000 | 0.00002 ETH |
| 12,973,707 | 30 days agoSat, 18 Jul 2026 12:17:30 UTC | 0xd72cbb…d04ee3 | CREATE2 | createLaunch | 0x7fbf…1426 | IN | 0x6214…8000 | 0 ETH |