// SPDX-License-Identifier: MIT
pragma solidity 0.8.26;
import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
import {SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
import {ReentrancyGuardTransient} from "@openzeppelin/contracts/utils/ReentrancyGuardTransient.sol";
import {TickMath} from "v4-core/libraries/TickMath.sol";
import {Curve} from "./Curve.sol";
import {VaultManager} from "./VaultManager.sol";
import {IUniswapV3Pool, IUniswapV3SwapCallback, IWETH9} from "./interfaces/IUniswapV3.sol";
/// @notice The single trade interface for the loxley frontend. Routes every coin to its live
/// venue: the bonding curve before graduation, the canonical v3 WETH/coin pool (1% LP fee)
/// after. Native ETH both ways — WETH wrap/unwrap happens in here so traders never touch it.
/// Slippage + deadline on every path, immutable. Any residue created by the current call
/// (graduation-boundary partial-fill refunds included) is forwarded in the same tx; unrelated
/// ETH already sitting on the router is never gifted to a trader.
///
/// `quoteBuy` / `quoteSell` are non-view by v3-quoter necessity (quoting runs the real swap and
/// reverts out of the callback with the result); call them with eth_call. Pre-graduation they
/// proxy the curve's pure quote views.
contract LoxleyRouter is ReentrancyGuardTransient, IUniswapV3SwapCallback {
using SafeERC20 for IERC20;
Curve public immutable curve;
VaultManager public immutable vaultManager;
IWETH9 public immutable weth;
event RouterTrade(
address indexed coin, address indexed trader, bool isBuy, bool graduated, uint256 ethAmount, uint256 tokenAmount
);
error DeadlinePassed();
error SlippageExceeded();
error ZeroAmount();
error NotGraduated();
error NotCanonicalPool();
error EthTransferFailed();
error QuoteResult(uint256 amountOut); // control-flow revert carrying the simulated quote
constructor(address curve_, address vaultManager_, address weth_) {
curve = Curve(curve_);
vaultManager = VaultManager(payable(vaultManager_));
weth = IWETH9(weth_);
}
receive() external payable {} // curve refunds + WETH unwraps land here, forwarded same-tx
// ------------------------------------------------------------------
// trading
// ------------------------------------------------------------------
function buy(address coin, uint256 minTokensOut, uint256 deadline)
external
payable
nonReentrant
returns (uint256 tokensOut)
{
if (block.timestamp > deadline) revert DeadlinePassed();
if (msg.value == 0) revert ZeroAmount();
uint256 ethBefore = address(this).balance - msg.value;
bool graduated = curve.isGraduated(coin);
if (!graduated) {
tokensOut = curve.buy{value: msg.value}(coin, minTokensOut, deadline);
IERC20(coin).safeTransfer(msg.sender, tokensOut);
// graduation-boundary partial fills refund to us; pass it straight through
uint256 refund = _ethDelta(ethBefore);
if (refund > 0) _sendEth(msg.sender, refund);
} else {
tokensOut = _poolSwap(coin, true, msg.value, msg.sender);
if (tokensOut < minTokensOut) revert SlippageExceeded();
// exact-in on a full-range pool consumes everything; forward any dust anyway
uint256 residue = _ethDelta(ethBefore);
if (residue > 0) _sendEth(msg.sender, residue);
}
emit RouterTrade(coin, msg.sender, true, graduated, msg.value, tokensOut);
}
function sell(address coin, uint256 tokensIn, uint256 minEthOut, uint256 deadline)
external
nonReentrant
returns (uint256 ethOut)
{
if (block.timestamp > deadline) revert DeadlinePassed();
if (tokensIn == 0) revert ZeroAmount();
IERC20(coin).safeTransferFrom(msg.sender, address(this), tokensIn);
bool graduated = curve.isGraduated(coin);
if (!graduated) {
IERC20(coin).forceApprove(address(curve), tokensIn);
ethOut = curve.sell(coin, tokensIn, minEthOut, deadline);
_sendEth(msg.sender, ethOut);
} else {
ethOut = _poolSwap(coin, false, tokensIn, msg.sender);
if (ethOut < minEthOut) revert SlippageExceeded();
uint256 dust = IERC20(coin).balanceOf(address(this));
if (dust > 0) IERC20(coin).safeTransfer(msg.sender, dust);
}
emit RouterTrade(coin, msg.sender, false, graduated, ethOut, tokensIn);
}
// ------------------------------------------------------------------
// quotes (call with eth_call; non-view because v3 quoting runs the swap)
// ------------------------------------------------------------------
function quoteBuy(address coin, uint256 ethIn)
external
returns (uint256 tokensOut, uint256 taxBps, bool graduated)
{
graduated = curve.isGraduated(coin);
if (!graduated) {
(tokensOut,,,,) = curve.quoteBuy(coin, ethIn);
taxBps = curve.currentTaxBps(coin);
} else {
tokensOut = _simulate(coin, true, ethIn);
}
}
function quoteSell(address coin, uint256 tokensIn) external returns (uint256 ethOut, bool graduated) {
graduated = curve.isGraduated(coin);
if (!graduated) {
(ethOut,) = curve.quoteSell(coin, tokensIn);
} else {
ethOut = _simulate(coin, false, tokensIn);
}
}
// ------------------------------------------------------------------
// v3 plumbing
// ------------------------------------------------------------------
function _poolSwap(address coin, bool isBuy, uint256 amountIn, address recipient)
internal
returns (uint256 amountOut)
{
(address pool, bool coinIsToken0) = vaultManager.canonicalPoolOf(coin);
if (pool == address(0)) revert NotGraduated();
if (isBuy) {
weth.deposit{value: amountIn}();
// WETH in; the pool pays the coin straight to the trader
amountOut = _swap(pool, !coinIsToken0, amountIn, recipient, abi.encode(coin, address(weth), false));
} else {
// coin in; WETH comes here to unwrap
amountOut = _swap(pool, coinIsToken0, amountIn, address(this), abi.encode(coin, coin, false));
weth.withdraw(amountOut);
_sendEth(recipient, amountOut);
}
}
function _swap(address pool, bool zeroForOne, uint256 amountIn, address recipient, bytes memory data)
internal
returns (uint256 amountOut)
{
(int256 a0, int256 a1) = IUniswapV3Pool(pool).swap(
recipient,
zeroForOne,
int256(amountIn),
zeroForOne ? TickMath.MIN_SQRT_PRICE + 1 : TickMath.MAX_SQRT_PRICE - 1,
data
);
int256 outDelta = zeroForOne ? a1 : a0;
amountOut = outDelta < 0 ? uint256(-outDelta) : 0;
}
/// @dev Quoter pattern: run the real swap, then revert out of the callback with the result
/// before paying. The revert unwinds everything, so nothing needs funding or settling.
function _simulate(address coin, bool isBuy, uint256 amountIn) internal returns (uint256 amountOut) {
(address pool, bool coinIsToken0) = vaultManager.canonicalPoolOf(coin);
if (pool == address(0)) revert NotGraduated();
bool zeroForOne = isBuy ? !coinIsToken0 : coinIsToken0;
try IUniswapV3Pool(pool).swap(
address(this),
zeroForOne,
int256(amountIn),
zeroForOne ? TickMath.MIN_SQRT_PRICE + 1 : TickMath.MAX_SQRT_PRICE - 1,
abi.encode(coin, address(0), true)
) {
revert(); // the simulate branch always reverts; reaching here is impossible
} catch (bytes memory reason) {
bytes4 sel;
assembly ("memory-safe") {
sel := mload(add(reason, 0x20))
}
if (sel != QuoteResult.selector) _bubble(reason);
assembly ("memory-safe") {
amountOut := mload(add(reason, 0x24))
}
}
}
/// @dev Only the coin's canonical pool (per the VaultManager, never callback data) may
/// collect payment. Simulations revert out with the quote before anything is paid.
function uniswapV3SwapCallback(int256 amount0Delta, int256 amount1Delta, bytes calldata data) external {
(address coin, address tokenIn, bool simulate) = abi.decode(data, (address, address, bool));
(address pool,) = vaultManager.canonicalPoolOf(coin);
if (msg.sender != pool || pool == address(0)) revert NotCanonicalPool();
if (simulate) {
int256 outDelta = amount0Delta < 0 ? amount0Delta : amount1Delta;
revert QuoteResult(outDelta < 0 ? uint256(-outDelta) : 0);
}
uint256 owed = uint256(amount0Delta > 0 ? amount0Delta : amount1Delta);
if (owed > 0) IERC20(tokenIn).safeTransfer(msg.sender, owed);
}
function _sendEth(address to, uint256 amount) internal {
if (amount == 0) return;
(bool ok,) = to.call{value: amount}("");
if (!ok) revert EthTransferFailed();
}
function _ethDelta(uint256 ethBefore) internal view returns (uint256) {
uint256 bal = address(this).balance;
return bal > ethBefore ? bal - ethBefore : 0;
}
function _bubble(bytes memory reason) internal pure {
assembly ("memory-safe") {
revert(add(reason, 0x20), mload(reason))
}
}
}[
{
"type": "constructor",
"inputs": [
{
"name": "curve_",
"type": "address",
"internalType": "address"
},
{
"name": "vaultManager_",
"type": "address",
"internalType": "address"
},
{
"name": "weth_",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "nonpayable"
},
{
"name": "DeadlinePassed",
"type": "error",
"inputs": []
},
{
"name": "EthTransferFailed",
"type": "error",
"inputs": []
},
{
"name": "NotCanonicalPool",
"type": "error",
"inputs": []
},
{
"name": "NotGraduated",
"type": "error",
"inputs": []
},
{
"name": "QuoteResult",
"type": "error",
"inputs": [
{
"name": "amountOut",
"type": "uint256",
"internalType": "uint256"
}
]
},
{
"name": "ReentrancyGuardReentrantCall",
"type": "error",
"inputs": []
},
{
"name": "SafeERC20FailedOperation",
"type": "error",
"inputs": [
{
"name": "token",
"type": "address",
"internalType": "address"
}
]
},
{
"name": "SlippageExceeded",
"type": "error",
"inputs": []
},
{
"name": "ZeroAmount",
"type": "error",
"inputs": []
},
{
"name": "RouterTrade",
"type": "event",
"inputs": [
{
"name": "coin",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "trader",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "isBuy",
"type": "bool",
"indexed": false,
"internalType": "bool"
},
{
"name": "graduated",
"type": "bool",
"indexed": false,
"internalType": "bool"
},
{
"name": "ethAmount",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "tokenAmount",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "buy",
"type": "function",
"inputs": [
{
"name": "coin",
"type": "address",
"internalType": "address"
},
{
"name": "minTokensOut",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "deadline",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "tokensOut",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "payable"
},
{
"name": "curve",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "contract Curve"
}
],
"stateMutability": "view"
},
{
"name": "quoteBuy",
"type": "function",
"inputs": [
{
"name": "coin",
"type": "address",
"internalType": "address"
},
{
"name": "ethIn",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "tokensOut",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "taxBps",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "graduated",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "nonpayable"
},
{
"name": "quoteSell",
"type": "function",
"inputs": [
{
"name": "coin",
"type": "address",
"internalType": "address"
},
{
"name": "tokensIn",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "ethOut",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "graduated",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "nonpayable"
},
{
"name": "sell",
"type": "function",
"inputs": [
{
"name": "coin",
"type": "address",
"internalType": "address"
},
{
"name": "tokensIn",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "minEthOut",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "deadline",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "ethOut",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "nonpayable"
},
{
"name": "uniswapV3SwapCallback",
"type": "function",
"inputs": [
{
"name": "amount0Delta",
"type": "int256",
"internalType": "int256"
},
{
"name": "amount1Delta",
"type": "int256",
"internalType": "int256"
},
{
"name": "data",
"type": "bytes",
"internalType": "bytes"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "vaultManager",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "contract VaultManager"
}
],
"stateMutability": "view"
},
{
"name": "weth",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "contract IWETH9"
}
],
"stateMutability": "view"
},
{
"type": "receive",
"stateMutability": "payable"
}
]0x60e060405234801561000f575f80fd5b50604051611a7b380380611a7b83398101604081905261002e91610066565b6001600160a01b0392831660805290821660a0521660c0526100a6565b80516001600160a01b0381168114610061575f80fd5b919050565b5f805f60608486031215610078575f80fd5b6100818461004b565b925061008f6020850161004b565b915061009d6040850161004b565b90509250925092565b60805160a05160c05161193c61013f5f395f818160d9015281816111e201528181611263015261132701525f818161015701528181610b4f01528181610cbf015261114401525f818161012401528181610233015281816102e40152818161038a015281816104950152818161051601528181610588015281816107b101528181610867015281816109e30152610a92015261193c5ff3fe60806040526004361061007c575f3560e01c806392cdbac51161004c57806392cdbac514610179578063a59ac6dd146101a6578063d98b2f5c146101b9578063fa461e33146101ed575f80fd5b80630d7a94f6146100875780633fc8cef3146100c85780637165485d146101135780638a4adf2414610146575f80fd5b3661008357005b5f80fd5b348015610092575f80fd5b506100a66100a13660046115e9565b61020e565b6040805193845260208401929092521515908201526060015b60405180910390f35b3480156100d3575f80fd5b506100fb7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100bf565b34801561011e575f80fd5b506100fb7f000000000000000000000000000000000000000000000000000000000000000081565b348015610151575f80fd5b506100fb7f000000000000000000000000000000000000000000000000000000000000000081565b348015610184575f80fd5b50610198610193366004611613565b610415565b6040519081526020016100bf565b6101986101b436600461164b565b610738565b3480156101c4575f80fd5b506101d86101d33660046115e9565b6109c0565b604080519283529015156020830152016100bf565b3480156101f8575f80fd5b5061020c61020736600461167d565b610b17565b005b6040516368a4c8b760e01b81526001600160a01b0383811660048301525f91829182917f0000000000000000000000000000000000000000000000000000000000000000909116906368a4c8b790602401602060405180830381865afa15801561027a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061029e9190611706565b9050806103ff576040517f0d7a94f60000000000000000000000000000000000000000000000000000000081526001600160a01b038681166004830152602482018690527f00000000000000000000000000000000000000000000000000000000000000001690630d7a94f69060440160a060405180830381865afa158015610329573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061034d9190611721565b50506040517fa29a4f580000000000000000000000000000000000000000000000000000000081526001600160a01b0389811660048301529396507f00000000000000000000000000000000000000000000000000000000000000009093169263a29a4f5892506024019050602060405180830381865afa1580156103d4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103f8919061175d565b915061040e565b61040b85600186610c9a565b92505b9250925092565b5f61041e610ebf565b8142111561043f5760405163387b2e5560e11b815260040160405180910390fd5b835f0361045f57604051631f2a200560e01b815260040160405180910390fd5b6104746001600160a01b038616333087610f47565b6040516368a4c8b760e01b81526001600160a01b0386811660048301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906368a4c8b790602401602060405180830381865afa1580156104dc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105009190611706565b9050806106035761053b6001600160a01b0387167f000000000000000000000000000000000000000000000000000000000000000087610fc9565b6040517f92cdbac50000000000000000000000000000000000000000000000000000000081526001600160a01b0387811660048301526024820187905260448201869052606482018590527f000000000000000000000000000000000000000000000000000000000000000016906392cdbac5906084016020604051808303815f875af11580156105ce573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105f2919061175d565b91506105fe3383611086565b6106d1565b61060f865f873361111f565b91508382101561063257604051638199f5f360e01b815260040160405180910390fd5b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201525f906001600160a01b038816906370a0823190602401602060405180830381865afa15801561068f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106b3919061175d565b905080156106cf576106cf6001600160a01b038816338361139a565b505b604080515f815282151560208201529081018390526060810186905233906001600160a01b038816907fe8cda8b991461a1cd24b6d46c6d21549d08effc9a0c7ed72c7c175da11ab16919060800160405180910390a3506107306113cb565b949350505050565b5f610741610ebf565b814211156107625760405163387b2e5560e11b815260040160405180910390fd5b345f0361078257604051631f2a200560e01b815260040160405180910390fd5b5f61078d34476117a1565b6040516368a4c8b760e01b81526001600160a01b0387811660048301529192505f917f000000000000000000000000000000000000000000000000000000000000000016906368a4c8b790602401602060405180830381865afa1580156107f6573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061081a9190611706565b90508061090c576040517fa59ac6dd0000000000000000000000000000000000000000000000000000000081526001600160a01b03878116600483015260248201879052604482018690527f0000000000000000000000000000000000000000000000000000000000000000169063a59ac6dd90349060640160206040518083038185885af11580156108af573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906108d4919061175d565b92506108ea6001600160a01b038716338561139a565b5f6108f4836113f5565b90508015610906576109063382611086565b5061095a565b610919866001343361111f565b92508483101561093c57604051638199f5f360e01b815260040160405180910390fd5b5f610946836113f5565b90508015610958576109583382611086565b505b60408051600181528215156020820152348183015260608101859052905133916001600160a01b038916917fe8cda8b991461a1cd24b6d46c6d21549d08effc9a0c7ed72c7c175da11ab16919181900360800190a350506109b96113cb565b9392505050565b6040516368a4c8b760e01b81526001600160a01b0383811660048301525f9182917f000000000000000000000000000000000000000000000000000000000000000016906368a4c8b790602401602060405180830381865afa158015610a28573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a4c9190611706565b905080610b02576040517fd98b2f5c0000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152602482018590527f0000000000000000000000000000000000000000000000000000000000000000169063d98b2f5c906044016040805180830381865afa158015610ad6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610afa91906117b4565b509150610b10565b610b0d845f85610c9a565b91505b9250929050565b5f8080610b26848601866117d6565b604051631b19dccf60e01b81526001600160a01b03808516600483015293965091945092505f917f00000000000000000000000000000000000000000000000000000000000000001690631b19dccf906024016040805180830381865afa158015610b93573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bb7919061181e565b509050336001600160a01b038216141580610bd957506001600160a01b038116155b15610c10576040517f8b318a8900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8115610c63575f808912610c245787610c26565b885b90505f8112610c35575f610c3e565b610c3e81611856565b604051630b8406bf60e11b8152600401610c5a91815260200190565b60405180910390fd5b5f808913610c715787610c73565b885b90508015610c8f57610c8f6001600160a01b038516338361139a565b505050505050505050565b604051631b19dccf60e01b81526001600160a01b0384811660048301525f91829182917f000000000000000000000000000000000000000000000000000000000000000090911690631b19dccf906024016040805180830381865afa158015610d05573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d29919061181e565b90925090506001600160a01b038216610d555760405163d66173a560e01b815260040160405180910390fd5b5f85610d615781610d64565b81155b9050826001600160a01b031663128acb0830838885610da157610d9c600173fffd8963efd1fc6a506488495d951d5263988d2661188c565b610db1565b610db16401000276a360016118ab565b604080516001600160a01b038f1660208201525f91810191909152600160608201526080016040516020818303038152906040526040518663ffffffff1660e01b8152600401610e059594939291906118ca565b60408051808303815f875af1925050508015610e3e575060408051601f3d908101601f19168201909252610e3b918101906117b4565b60015b610083573d808015610e6b576040519150601f19603f3d011682016040523d82523d5f602084013e610e70565b606091505b5060208101517fffffffff000000000000000000000000000000000000000000000000000000008116630b8406bf60e11b14610eaf57610eaf8261140e565b5060240151979650505050505050565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005c15610f18576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610f4560017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005b90611416565b565b6040516001600160a01b038481166024830152838116604483015260648201839052610fc39186918216906323b872dd906084015b604051602081830303815290604052915060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505061141d565b50505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f095ea7b30000000000000000000000000000000000000000000000000000000017905261104884826114a2565b610fc3576040516001600160a01b0384811660248301525f604483015261107c91869182169063095ea7b390606401610f7c565b610fc3848261141d565b805f03611091575050565b5f826001600160a01b0316826040515f6040518083038185875af1925050503d805f81146110da576040519150601f19603f3d011682016040523d82523d5f602084013e6110df565b606091505b505090508061111a576040517f6d963f8800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050565b604051631b19dccf60e01b81526001600160a01b0385811660048301525f91829182917f000000000000000000000000000000000000000000000000000000000000000090911690631b19dccf906024016040805180830381865afa15801561118a573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111ae919061181e565b90925090506001600160a01b0382166111da5760405163d66173a560e01b815260040160405180910390fd5b85156112bf577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0866040518263ffffffff1660e01b81526004015f604051808303818588803b158015611239575f80fd5b505af115801561124b573d5f803e3d5ffd5b5050604080516001600160a01b03808d1660208301527f000000000000000000000000000000000000000000000000000000000000000016918101919091525f60608201526112b8935085925084159150889088906080015b6040516020818303038152906040526114ed565b9250611390565b604080516001600160a01b03891660208201819052918101919091525f60608201526112f59083908390889030906080016112a4565b6040517f2e1a7d4d000000000000000000000000000000000000000000000000000000008152600481018290529093507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690632e1a7d4d906024015f604051808303815f87803b158015611370575f80fd5b505af1158015611382573d5f803e3d5ffd5b505050506113908484611086565b5050949350505050565b6040516001600160a01b0383811660248301526044820183905261111a91859182169063a9059cbb90606401610f7c565b610f455f7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00610f3f565b5f47828111611404575f6109b9565b6109b983826117a1565b805160208201fd5b80825d5050565b5f8060205f8451602086015f885af18061143c576040513d5f823e3d81fd5b50505f513d91508115611453578060011415611460565b6001600160a01b0384163b155b15610fc3576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b0385166004820152602401610c5a565b5f805f8060205f8651602088015f8a5af192503d91505f5190508280156114e1575081156114d357806001146114e1565b5f866001600160a01b03163b115b93505050505b92915050565b5f805f876001600160a01b031663128acb088689898b61152b57611526600173fffd8963efd1fc6a506488495d951d5263988d2661188c565b61153b565b61153b6401000276a360016118ab565b896040518663ffffffff1660e01b815260040161155c9594939291906118ca565b60408051808303815f875af1158015611577573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061159b91906117b4565b915091505f876115ab57826115ad565b815b90505f81126115bc575f6115c5565b6115c581611856565b9998505050505050505050565b6001600160a01b03811681146115e6575f80fd5b50565b5f80604083850312156115fa575f80fd5b8235611605816115d2565b946020939093013593505050565b5f805f8060808587031215611626575f80fd5b8435611631816115d2565b966020860135965060408601359560600135945092505050565b5f805f6060848603121561165d575f80fd5b8335611668816115d2565b95602085013595506040909401359392505050565b5f805f8060608587031215611690575f80fd5b8435935060208501359250604085013567ffffffffffffffff8111156116b4575f80fd5b8501601f810187136116c4575f80fd5b803567ffffffffffffffff8111156116da575f80fd5b8760208284010111156116eb575f80fd5b949793965060200194505050565b80151581146115e6575f80fd5b5f60208284031215611716575f80fd5b81516109b9816116f9565b5f805f805f60a08688031215611735575f80fd5b5050835160208501516040860151606087015160809097015192989197509594509092509050565b5f6020828403121561176d575f80fd5b5051919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b818103818111156114e7576114e7611774565b5f80604083850312156117c5575f80fd5b505080516020909101519092909150565b5f805f606084860312156117e8575f80fd5b83356117f3816115d2565b92506020840135611803816115d2565b91506040840135611813816116f9565b809150509250925092565b5f806040838503121561182f575f80fd5b825161183a816115d2565b602084015190925061184b816116f9565b809150509250929050565b5f7f8000000000000000000000000000000000000000000000000000000000000000820361188657611886611774565b505f0390565b6001600160a01b0382811682821603908111156114e7576114e7611774565b6001600160a01b0381811683821601908111156114e7576114e7611774565b6001600160a01b038616815284151560208201528360408201526001600160a01b038316606082015260a060808201525f82518060a0840152806020850160c085015e5f60c0828501015260c0601f19601f830116840101915050969550505050505056fea164736f6c634300081a000a00000000000000000000000030b47cac1c54657f16e654364b537c618410ff29000000000000000000000000550fd3b81b429226768ec790172f45b8e03d1bd60000000000000000000000000bd7d308f8e1639fab988df18a8011f41eacad73
0x60806040526004361061007c575f3560e01c806392cdbac51161004c57806392cdbac514610179578063a59ac6dd146101a6578063d98b2f5c146101b9578063fa461e33146101ed575f80fd5b80630d7a94f6146100875780633fc8cef3146100c85780637165485d146101135780638a4adf2414610146575f80fd5b3661008357005b5f80fd5b348015610092575f80fd5b506100a66100a13660046115e9565b61020e565b6040805193845260208401929092521515908201526060015b60405180910390f35b3480156100d3575f80fd5b506100fb7f0000000000000000000000000bd7d308f8e1639fab988df18a8011f41eacad7381565b6040516001600160a01b0390911681526020016100bf565b34801561011e575f80fd5b506100fb7f00000000000000000000000030b47cac1c54657f16e654364b537c618410ff2981565b348015610151575f80fd5b506100fb7f000000000000000000000000550fd3b81b429226768ec790172f45b8e03d1bd681565b348015610184575f80fd5b50610198610193366004611613565b610415565b6040519081526020016100bf565b6101986101b436600461164b565b610738565b3480156101c4575f80fd5b506101d86101d33660046115e9565b6109c0565b604080519283529015156020830152016100bf565b3480156101f8575f80fd5b5061020c61020736600461167d565b610b17565b005b6040516368a4c8b760e01b81526001600160a01b0383811660048301525f91829182917f00000000000000000000000030b47cac1c54657f16e654364b537c618410ff29909116906368a4c8b790602401602060405180830381865afa15801561027a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061029e9190611706565b9050806103ff576040517f0d7a94f60000000000000000000000000000000000000000000000000000000081526001600160a01b038681166004830152602482018690527f00000000000000000000000030b47cac1c54657f16e654364b537c618410ff291690630d7a94f69060440160a060405180830381865afa158015610329573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061034d9190611721565b50506040517fa29a4f580000000000000000000000000000000000000000000000000000000081526001600160a01b0389811660048301529396507f00000000000000000000000030b47cac1c54657f16e654364b537c618410ff299093169263a29a4f5892506024019050602060405180830381865afa1580156103d4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103f8919061175d565b915061040e565b61040b85600186610c9a565b92505b9250925092565b5f61041e610ebf565b8142111561043f5760405163387b2e5560e11b815260040160405180910390fd5b835f0361045f57604051631f2a200560e01b815260040160405180910390fd5b6104746001600160a01b038616333087610f47565b6040516368a4c8b760e01b81526001600160a01b0386811660048301525f917f00000000000000000000000030b47cac1c54657f16e654364b537c618410ff29909116906368a4c8b790602401602060405180830381865afa1580156104dc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105009190611706565b9050806106035761053b6001600160a01b0387167f00000000000000000000000030b47cac1c54657f16e654364b537c618410ff2987610fc9565b6040517f92cdbac50000000000000000000000000000000000000000000000000000000081526001600160a01b0387811660048301526024820187905260448201869052606482018590527f00000000000000000000000030b47cac1c54657f16e654364b537c618410ff2916906392cdbac5906084016020604051808303815f875af11580156105ce573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105f2919061175d565b91506105fe3383611086565b6106d1565b61060f865f873361111f565b91508382101561063257604051638199f5f360e01b815260040160405180910390fd5b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201525f906001600160a01b038816906370a0823190602401602060405180830381865afa15801561068f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106b3919061175d565b905080156106cf576106cf6001600160a01b038816338361139a565b505b604080515f815282151560208201529081018390526060810186905233906001600160a01b038816907fe8cda8b991461a1cd24b6d46c6d21549d08effc9a0c7ed72c7c175da11ab16919060800160405180910390a3506107306113cb565b949350505050565b5f610741610ebf565b814211156107625760405163387b2e5560e11b815260040160405180910390fd5b345f0361078257604051631f2a200560e01b815260040160405180910390fd5b5f61078d34476117a1565b6040516368a4c8b760e01b81526001600160a01b0387811660048301529192505f917f00000000000000000000000030b47cac1c54657f16e654364b537c618410ff2916906368a4c8b790602401602060405180830381865afa1580156107f6573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061081a9190611706565b90508061090c576040517fa59ac6dd0000000000000000000000000000000000000000000000000000000081526001600160a01b03878116600483015260248201879052604482018690527f00000000000000000000000030b47cac1c54657f16e654364b537c618410ff29169063a59ac6dd90349060640160206040518083038185885af11580156108af573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906108d4919061175d565b92506108ea6001600160a01b038716338561139a565b5f6108f4836113f5565b90508015610906576109063382611086565b5061095a565b610919866001343361111f565b92508483101561093c57604051638199f5f360e01b815260040160405180910390fd5b5f610946836113f5565b90508015610958576109583382611086565b505b60408051600181528215156020820152348183015260608101859052905133916001600160a01b038916917fe8cda8b991461a1cd24b6d46c6d21549d08effc9a0c7ed72c7c175da11ab16919181900360800190a350506109b96113cb565b9392505050565b6040516368a4c8b760e01b81526001600160a01b0383811660048301525f9182917f00000000000000000000000030b47cac1c54657f16e654364b537c618410ff2916906368a4c8b790602401602060405180830381865afa158015610a28573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a4c9190611706565b905080610b02576040517fd98b2f5c0000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152602482018590527f00000000000000000000000030b47cac1c54657f16e654364b537c618410ff29169063d98b2f5c906044016040805180830381865afa158015610ad6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610afa91906117b4565b509150610b10565b610b0d845f85610c9a565b91505b9250929050565b5f8080610b26848601866117d6565b604051631b19dccf60e01b81526001600160a01b03808516600483015293965091945092505f917f000000000000000000000000550fd3b81b429226768ec790172f45b8e03d1bd61690631b19dccf906024016040805180830381865afa158015610b93573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bb7919061181e565b509050336001600160a01b038216141580610bd957506001600160a01b038116155b15610c10576040517f8b318a8900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8115610c63575f808912610c245787610c26565b885b90505f8112610c35575f610c3e565b610c3e81611856565b604051630b8406bf60e11b8152600401610c5a91815260200190565b60405180910390fd5b5f808913610c715787610c73565b885b90508015610c8f57610c8f6001600160a01b038516338361139a565b505050505050505050565b604051631b19dccf60e01b81526001600160a01b0384811660048301525f91829182917f000000000000000000000000550fd3b81b429226768ec790172f45b8e03d1bd690911690631b19dccf906024016040805180830381865afa158015610d05573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d29919061181e565b90925090506001600160a01b038216610d555760405163d66173a560e01b815260040160405180910390fd5b5f85610d615781610d64565b81155b9050826001600160a01b031663128acb0830838885610da157610d9c600173fffd8963efd1fc6a506488495d951d5263988d2661188c565b610db1565b610db16401000276a360016118ab565b604080516001600160a01b038f1660208201525f91810191909152600160608201526080016040516020818303038152906040526040518663ffffffff1660e01b8152600401610e059594939291906118ca565b60408051808303815f875af1925050508015610e3e575060408051601f3d908101601f19168201909252610e3b918101906117b4565b60015b610083573d808015610e6b576040519150601f19603f3d011682016040523d82523d5f602084013e610e70565b606091505b5060208101517fffffffff000000000000000000000000000000000000000000000000000000008116630b8406bf60e11b14610eaf57610eaf8261140e565b5060240151979650505050505050565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005c15610f18576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610f4560017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005b90611416565b565b6040516001600160a01b038481166024830152838116604483015260648201839052610fc39186918216906323b872dd906084015b604051602081830303815290604052915060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505061141d565b50505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f095ea7b30000000000000000000000000000000000000000000000000000000017905261104884826114a2565b610fc3576040516001600160a01b0384811660248301525f604483015261107c91869182169063095ea7b390606401610f7c565b610fc3848261141d565b805f03611091575050565b5f826001600160a01b0316826040515f6040518083038185875af1925050503d805f81146110da576040519150601f19603f3d011682016040523d82523d5f602084013e6110df565b606091505b505090508061111a576040517f6d963f8800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050565b604051631b19dccf60e01b81526001600160a01b0385811660048301525f91829182917f000000000000000000000000550fd3b81b429226768ec790172f45b8e03d1bd690911690631b19dccf906024016040805180830381865afa15801561118a573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111ae919061181e565b90925090506001600160a01b0382166111da5760405163d66173a560e01b815260040160405180910390fd5b85156112bf577f0000000000000000000000000bd7d308f8e1639fab988df18a8011f41eacad736001600160a01b031663d0e30db0866040518263ffffffff1660e01b81526004015f604051808303818588803b158015611239575f80fd5b505af115801561124b573d5f803e3d5ffd5b5050604080516001600160a01b03808d1660208301527f0000000000000000000000000bd7d308f8e1639fab988df18a8011f41eacad7316918101919091525f60608201526112b8935085925084159150889088906080015b6040516020818303038152906040526114ed565b9250611390565b604080516001600160a01b03891660208201819052918101919091525f60608201526112f59083908390889030906080016112a4565b6040517f2e1a7d4d000000000000000000000000000000000000000000000000000000008152600481018290529093507f0000000000000000000000000bd7d308f8e1639fab988df18a8011f41eacad736001600160a01b031690632e1a7d4d906024015f604051808303815f87803b158015611370575f80fd5b505af1158015611382573d5f803e3d5ffd5b505050506113908484611086565b5050949350505050565b6040516001600160a01b0383811660248301526044820183905261111a91859182169063a9059cbb90606401610f7c565b610f455f7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00610f3f565b5f47828111611404575f6109b9565b6109b983826117a1565b805160208201fd5b80825d5050565b5f8060205f8451602086015f885af18061143c576040513d5f823e3d81fd5b50505f513d91508115611453578060011415611460565b6001600160a01b0384163b155b15610fc3576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b0385166004820152602401610c5a565b5f805f8060205f8651602088015f8a5af192503d91505f5190508280156114e1575081156114d357806001146114e1565b5f866001600160a01b03163b115b93505050505b92915050565b5f805f876001600160a01b031663128acb088689898b61152b57611526600173fffd8963efd1fc6a506488495d951d5263988d2661188c565b61153b565b61153b6401000276a360016118ab565b896040518663ffffffff1660e01b815260040161155c9594939291906118ca565b60408051808303815f875af1158015611577573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061159b91906117b4565b915091505f876115ab57826115ad565b815b90505f81126115bc575f6115c5565b6115c581611856565b9998505050505050505050565b6001600160a01b03811681146115e6575f80fd5b50565b5f80604083850312156115fa575f80fd5b8235611605816115d2565b946020939093013593505050565b5f805f8060808587031215611626575f80fd5b8435611631816115d2565b966020860135965060408601359560600135945092505050565b5f805f6060848603121561165d575f80fd5b8335611668816115d2565b95602085013595506040909401359392505050565b5f805f8060608587031215611690575f80fd5b8435935060208501359250604085013567ffffffffffffffff8111156116b4575f80fd5b8501601f810187136116c4575f80fd5b803567ffffffffffffffff8111156116da575f80fd5b8760208284010111156116eb575f80fd5b949793965060200194505050565b80151581146115e6575f80fd5b5f60208284031215611716575f80fd5b81516109b9816116f9565b5f805f805f60a08688031215611735575f80fd5b5050835160208501516040860151606087015160809097015192989197509594509092509050565b5f6020828403121561176d575f80fd5b5051919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b818103818111156114e7576114e7611774565b5f80604083850312156117c5575f80fd5b505080516020909101519092909150565b5f805f606084860312156117e8575f80fd5b83356117f3816115d2565b92506020840135611803816115d2565b91506040840135611813816116f9565b809150509250925092565b5f806040838503121561182f575f80fd5b825161183a816115d2565b602084015190925061184b816116f9565b809150509250929050565b5f7f8000000000000000000000000000000000000000000000000000000000000000820361188657611886611774565b505f0390565b6001600160a01b0382811682821603908111156114e7576114e7611774565b6001600160a01b0381811683821601908111156114e7576114e7611774565b6001600160a01b038616815284151560208201528360408201526001600160a01b038316606082015260a060808201525f82518060a0840152806020850160c085015e5f60c0828501015260c0601f19601f830116840101915050969550505050505056fea164736f6c634300081a000a
| Token | Symbol | Balance | Price | Value |
|---|---|---|---|---|
| DIH | 1 | $0.0000102 | $0 | |
| American Hoodie (USHOODIE) | USHOODIE | 29 | — | — |
| 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 |
|---|---|---|---|
| 0x8f8be2…156fff | 32 days agoThu, 16 Jul 2026 12:47:33 UTC | 0xe8cda8…1691 | [0] 0x000000000000…1aa83fd1 [1] 0x000000000000…b7d907ad data: 0x000000000000000000…4da409fb |
| 0xba829d…032342 | 32 days agoThu, 16 Jul 2026 12:44:10 UTC | 0xe8cda8…1691 | [0] 0x000000000000…1aa83fd1 [1] 0x000000000000…a88d30ec data: 0x000000000000000000…2cd6e64d |
| 0xb95f3d…cc171a | 32 days agoThu, 16 Jul 2026 12:41:27 UTC | 0xe8cda8…1691 | [0] 0x000000000000…1aa83fd1 [1] 0x000000000000…a67bf1f1 data: 0x000000000000000000…45e47b8b |
| 0x5f7423…58fdac | 32 days agoThu, 16 Jul 2026 12:38:18 UTC | 0xe8cda8…1691 | [0] 0x000000000000…1aa83fd1 [1] 0x000000000000…de865ccd data: 0x000000000000000000…7ac4591a |
| 0x6121a3…defc6b | 32 days agoThu, 16 Jul 2026 12:37:23 UTC | 0xe8cda8…1691 | [0] 0x000000000000…1aa83fd1 [1] 0x000000000000…019fa18b data: 0x000000000000000000…7bc50c1f |
| 0xd1d100…392515 | 32 days agoThu, 16 Jul 2026 12:34:47 UTC | 0xe8cda8…1691 | [0] 0x000000000000…1aa83fd1 [1] 0x000000000000…cd259177 data: 0x000000000000000000…48b4930a |
| 0xebf395…0a775c | 32 days agoThu, 16 Jul 2026 12:31:26 UTC | 0xe8cda8…1691 | [0] 0x000000000000…1aa83fd1 [1] 0x000000000000…cbe738ba data: 0x000000000000000000…f6776cb8 |
| 0x0f8bde…ae253a | 32 days agoThu, 16 Jul 2026 12:28:39 UTC | 0xe8cda8…1691 | [0] 0x000000000000…1aa83fd1 [1] 0x000000000000…78008847 data: 0x000000000000000000…28333b14 |
| 0x705d36…a4eb1a | 32 days agoThu, 16 Jul 2026 12:26:07 UTC | 0xe8cda8…1691 | [0] 0x000000000000…1aa83fd1 [1] 0x000000000000…7aa41b77 data: 0x000000000000000000…a128fced |
| 0xf0bf24…3f41fb | 32 days agoThu, 16 Jul 2026 12:23:54 UTC | 0xe8cda8…1691 | [0] 0x000000000000…1aa83fd1 [1] 0x000000000000…6dabbdc4 data: 0x000000000000000000…b6cd99ab |
| 0xcf5ca7…91db32 | 32 days agoThu, 16 Jul 2026 12:21:09 UTC | 0xe8cda8…1691 | [0] 0x000000000000…1aa83fd1 [1] 0x000000000000…7504b5e5 data: 0x000000000000000000…f983aa11 |
| 0x094531…b19698 | 32 days agoThu, 16 Jul 2026 12:18:26 UTC | 0xe8cda8…1691 | [0] 0x000000000000…1aa83fd1 [1] 0x000000000000…460db98d data: 0x000000000000000000…99a1ffc2 |
| 0xa918d8…4e1607 | 32 days agoThu, 16 Jul 2026 12:16:52 UTC | 0xe8cda8…1691 | [0] 0x000000000000…1aa83fd1 [1] 0x000000000000…891a6c5c data: 0x000000000000000000…66811049 |
| 0x781d76…a3a2d5 | 32 days agoThu, 16 Jul 2026 12:14:32 UTC | 0xe8cda8…1691 | [0] 0x000000000000…1aa83fd1 [1] 0x000000000000…cd97bcfa data: 0x000000000000000000…c020f4d6 |
| 0xe7326f…edd29b | 32 days agoThu, 16 Jul 2026 12:12:36 UTC | 0xe8cda8…1691 | [0] 0x000000000000…1aa83fd1 [1] 0x000000000000…12ae6204 data: 0x000000000000000000…98a02d3d |
| 0x385694…812938 | 32 days agoThu, 16 Jul 2026 12:09:28 UTC | 0xe8cda8…1691 | [0] 0x000000000000…1aa83fd1 [1] 0x000000000000…6746d42c data: 0x000000000000000000…16c0726c |
| 0x3ba2e1…ffbcb6 | 32 days agoThu, 16 Jul 2026 12:08:30 UTC | 0xe8cda8…1691 | [0] 0x000000000000…1aa83fd1 [1] 0x000000000000…71846ab5 data: 0x000000000000000000…8ccf3463 |
| 0x17d148…af9f34 | 32 days agoThu, 16 Jul 2026 12:06:18 UTC | 0xe8cda8…1691 | [0] 0x000000000000…1aa83fd1 [1] 0x000000000000…e28a646b data: 0x000000000000000000…c8340194 |
| 0x974427…9af8e6 | 32 days agoThu, 16 Jul 2026 12:02:25 UTC | 0xe8cda8…1691 | [0] 0x000000000000…1aa83fd1 [1] 0x000000000000…3a432611 data: 0x000000000000000000…ed70b278 |
| 0xa03319…f9a5d2 | 32 days agoThu, 16 Jul 2026 11:58:45 UTC | 0xe8cda8…1691 | [0] 0x000000000000…1aa83fd1 [1] 0x000000000000…41284792 data: 0x000000000000000000…437dfb7c |
| 0x7872ce…9bb9fd | 32 days agoThu, 16 Jul 2026 11:56:57 UTC | 0xe8cda8…1691 | [0] 0x000000000000…1aa83fd1 [1] 0x000000000000…517e9bcd data: 0x000000000000000000…74949195 |
| 0x424829…690062 | 32 days agoThu, 16 Jul 2026 11:53:09 UTC | 0xe8cda8…1691 | [0] 0x000000000000…1aa83fd1 [1] 0x000000000000…e9566b73 data: 0x000000000000000000…9da485aa |
| 0xada860…8692cc | 32 days agoThu, 16 Jul 2026 11:50:50 UTC | 0xe8cda8…1691 | [0] 0x000000000000…1aa83fd1 [1] 0x000000000000…5913f206 data: 0x000000000000000000…3a808f85 |
| 0x1ad5fc…c5cce1 | 32 days agoThu, 16 Jul 2026 11:47:31 UTC | 0xe8cda8…1691 | [0] 0x000000000000…1aa83fd1 [1] 0x000000000000…330b7a60 data: 0x000000000000000000…55f162b2 |
| 0x78981a…b914eb | 32 days agoThu, 16 Jul 2026 11:44:23 UTC | 0xe8cda8…1691 | [0] 0x000000000000…1aa83fd1 [1] 0x000000000000…2924e033 data: 0x000000000000000000…f4e997d0 |
| Transaction Hash | Method ? | Block | Age | From | To | Amount | Txn Fee ? | ||
|---|---|---|---|---|---|---|---|---|---|
| 0x8f8be2…156fff | sell | 11,268,377 | 32 days agoThu, 16 Jul 2026 12:47:33 UTC | 0x2724…07ad | IN | LoxleyRouter | $0.000 ETH | 0.00000975 | |
| 0xba829d…032342 | sell | 11,266,335 | 32 days agoThu, 16 Jul 2026 12:44:10 UTC | 0x5302…30ec | IN | LoxleyRouter | $0.000 ETH | 0.00000966 | |
| 0xb95f3d…cc171a | sell | 11,264,713 | 32 days agoThu, 16 Jul 2026 12:41:27 UTC | 0x6a60…f1f1 | IN | LoxleyRouter | $0.000 ETH | 0.00000965 | |
| 0x5f7423…58fdac | sell | 11,262,829 | 32 days agoThu, 16 Jul 2026 12:38:18 UTC | 0xc634…5ccd | IN | LoxleyRouter | $0.000 ETH | 0.00000975 | |
| 0x6121a3…defc6b | sell | 11,262,277 | 32 days agoThu, 16 Jul 2026 12:37:23 UTC | 0x484f…a18b | IN | LoxleyRouter | $0.000 ETH | 0.00000975 | |
| 0xd1d100…392515 | sell | 11,260,725 | 32 days agoThu, 16 Jul 2026 12:34:47 UTC | 0x834a…9177 | IN | LoxleyRouter | $0.000 ETH | 0.00000968 | |
| 0xebf395…0a775c | sell | 11,258,711 | 32 days agoThu, 16 Jul 2026 12:31:26 UTC | 0x9ead…38ba | IN | LoxleyRouter | $0.000 ETH | 0.00000964 | |
| 0x0f8bde…ae253a | sell | 11,257,049 | 32 days agoThu, 16 Jul 2026 12:28:39 UTC | 0x56a5…8847 | IN | LoxleyRouter | $0.000 ETH | 0.00000963 | |
| 0x705d36…a4eb1a | sell | 11,255,527 | 32 days agoThu, 16 Jul 2026 12:26:07 UTC | 0x1a18…1b77 | IN | LoxleyRouter | $0.000 ETH | 0.00000972 | |
| 0xf0bf24…3f41fb | sell | 11,254,207 | 32 days agoThu, 16 Jul 2026 12:23:54 UTC | 0xaa6e…bdc4 | IN | LoxleyRouter | $0.000 ETH | 0.00001009 | |
| 0xcf5ca7…91db32 | sell | 11,252,564 | 32 days agoThu, 16 Jul 2026 12:21:09 UTC | 0x1104…b5e5 | IN | LoxleyRouter | $0.000 ETH | 0.00000968 | |
| 0x094531…b19698 | sell | 11,250,938 | 32 days agoThu, 16 Jul 2026 12:18:26 UTC | 0x1c75…b98d | IN | LoxleyRouter | $0.000 ETH | 0.00000967 | |
| 0xa918d8…4e1607 | sell | 11,250,002 | 32 days agoThu, 16 Jul 2026 12:16:52 UTC | 0x19a4…6c5c | IN | LoxleyRouter | $0.000 ETH | 0.00000972 | |
| 0x781d76…a3a2d5 | sell | 11,248,601 | 32 days agoThu, 16 Jul 2026 12:14:32 UTC | 0x7ddf…bcfa | IN | LoxleyRouter | $0.000 ETH | 0.00000964 | |
| 0xe7326f…edd29b | sell | 11,247,437 | 32 days agoThu, 16 Jul 2026 12:12:36 UTC | 0xf103…6204 | IN | LoxleyRouter | $0.000 ETH | 0.00000977 | |
| 0x385694…812938 | sell | 11,245,573 | 32 days agoThu, 16 Jul 2026 12:09:28 UTC | 0x47f6…d42c | IN | LoxleyRouter | $0.000 ETH | 0.00000981 | |
| 0x3ba2e1…ffbcb6 | sell | 11,244,991 | 32 days agoThu, 16 Jul 2026 12:08:30 UTC | 0xbd9a…6ab5 | IN | LoxleyRouter | $0.000 ETH | 0.00000966 | |
| 0x17d148…af9f34 | sell | 11,243,670 | 32 days agoThu, 16 Jul 2026 12:06:18 UTC | 0x6202…646b | IN | LoxleyRouter | $0.000 ETH | 0.00000969 | |
| 0x974427…9af8e6 | sell | 11,241,355 | 32 days agoThu, 16 Jul 2026 12:02:25 UTC | 0xde5f…2611 | IN | LoxleyRouter | $0.000 ETH | 0.00000970 | |
| 0xa03319…f9a5d2 | sell | 11,239,155 | 32 days agoThu, 16 Jul 2026 11:58:45 UTC | 0x2ca9…4792 | IN | LoxleyRouter | $0.000 ETH | 0.00000975 | |
| 0x7872ce…9bb9fd | sell | 11,238,080 | 32 days agoThu, 16 Jul 2026 11:56:57 UTC | 0x6f92…9bcd | IN | LoxleyRouter | $0.000 ETH | 0.00000973 | |
| 0x424829…690062 | sell | 11,235,798 | 32 days agoThu, 16 Jul 2026 11:53:09 UTC | 0x4425…6b73 | IN | LoxleyRouter | $0.000 ETH | 0.00000967 | |
| 0xada860…8692cc | sell | 11,234,412 | 32 days agoThu, 16 Jul 2026 11:50:50 UTC | 0x568e…f206 | IN | LoxleyRouter | $0.000 ETH | 0.00000975 | |
| 0x1ad5fc…c5cce1 | sell | 11,232,428 | 32 days agoThu, 16 Jul 2026 11:47:31 UTC | 0x7d14…7a60 | IN | LoxleyRouter | $0.000 ETH | 0.00000979 | |
| 0x78981a…b914eb | sell | 11,230,556 | 32 days agoThu, 16 Jul 2026 11:44:23 UTC | 0x581b…e033 | IN | LoxleyRouter | $0.000 ETH | 0.00000964 |
| Block | Age | Parent Transaction Hash | Type | Method | From | To | Value | |
|---|---|---|---|---|---|---|---|---|
| 11,268,377 | 32 days agoThu, 16 Jul 2026 12:47:33 UTC | 0x8f8be2…156fff | CALL | sell | 0xff07…789e | OUT | 0x2724…07ad | 0.00643 ETH |
| 11,268,377 | 32 days agoThu, 16 Jul 2026 12:47:33 UTC | 0x8f8be2…156fff | CALL | sell | 0x0bd7…ad73 | IN | 0xff07…789e | 0.00643 ETH |
| 11,266,335 | 32 days agoThu, 16 Jul 2026 12:44:10 UTC | 0xba829d…032342 | CALL | sell | 0xff07…789e | OUT | 0x5302…30ec | 0.00474 ETH |
| 11,266,335 | 32 days agoThu, 16 Jul 2026 12:44:10 UTC | 0xba829d…032342 | CALL | sell | 0x0bd7…ad73 | IN | 0xff07…789e | 0.00474 ETH |
| 11,264,713 | 32 days agoThu, 16 Jul 2026 12:41:27 UTC | 0xb95f3d…cc171a | CALL | sell | 0xff07…789e | OUT | 0x6a60…f1f1 | 0.00200 ETH |
| 11,264,713 | 32 days agoThu, 16 Jul 2026 12:41:27 UTC | 0xb95f3d…cc171a | CALL | sell | 0x0bd7…ad73 | IN | 0xff07…789e | 0.00200 ETH |
| 11,262,829 | 32 days agoThu, 16 Jul 2026 12:38:18 UTC | 0x5f7423…58fdac | CALL | sell | 0xff07…789e | OUT | 0xc634…5ccd | 0.00905 ETH |
| 11,262,829 | 32 days agoThu, 16 Jul 2026 12:38:18 UTC | 0x5f7423…58fdac | CALL | sell | 0x0bd7…ad73 | IN | 0xff07…789e | 0.00905 ETH |
| 11,262,277 | 32 days agoThu, 16 Jul 2026 12:37:23 UTC | 0x6121a3…defc6b | CALL | sell | 0xff07…789e | OUT | 0x484f…a18b | 0.00345 ETH |
| 11,262,277 | 32 days agoThu, 16 Jul 2026 12:37:23 UTC | 0x6121a3…defc6b | CALL | sell | 0x0bd7…ad73 | IN | 0xff07…789e | 0.00345 ETH |
| 11,260,725 | 32 days agoThu, 16 Jul 2026 12:34:47 UTC | 0xd1d100…392515 | CALL | sell | 0xff07…789e | OUT | 0x834a…9177 | 0.00634 ETH |
| 11,260,725 | 32 days agoThu, 16 Jul 2026 12:34:47 UTC | 0xd1d100…392515 | CALL | sell | 0x0bd7…ad73 | IN | 0xff07…789e | 0.00634 ETH |
| 11,258,711 | 32 days agoThu, 16 Jul 2026 12:31:26 UTC | 0xebf395…0a775c | CALL | sell | 0xff07…789e | OUT | 0x9ead…38ba | 0.02587 ETH |
| 11,258,711 | 32 days agoThu, 16 Jul 2026 12:31:26 UTC | 0xebf395…0a775c | CALL | sell | 0x0bd7…ad73 | IN | 0xff07…789e | 0.02587 ETH |
| 11,257,049 | 32 days agoThu, 16 Jul 2026 12:28:39 UTC | 0x0f8bde…ae253a | CALL | sell | 0xff07…789e | OUT | 0x56a5…8847 | 0.00313 ETH |
| 11,257,049 | 32 days agoThu, 16 Jul 2026 12:28:39 UTC | 0x0f8bde…ae253a | CALL | sell | 0x0bd7…ad73 | IN | 0xff07…789e | 0.00313 ETH |
| 11,255,527 | 32 days agoThu, 16 Jul 2026 12:26:07 UTC | 0x705d36…a4eb1a | CALL | sell | 0xff07…789e | OUT | 0x1a18…1b77 | 0.00723 ETH |
| 11,255,527 | 32 days agoThu, 16 Jul 2026 12:26:07 UTC | 0x705d36…a4eb1a | CALL | sell | 0x0bd7…ad73 | IN | 0xff07…789e | 0.00723 ETH |
| 11,254,207 | 32 days agoThu, 16 Jul 2026 12:23:54 UTC | 0xf0bf24…3f41fb | CALL | sell | 0xff07…789e | OUT | 0xaa6e…bdc4 | 0.01085 ETH |
| 11,254,207 | 32 days agoThu, 16 Jul 2026 12:23:54 UTC | 0xf0bf24…3f41fb | CALL | sell | 0x0bd7…ad73 | IN | 0xff07…789e | 0.01085 ETH |
| 11,252,564 | 32 days agoThu, 16 Jul 2026 12:21:09 UTC | 0xcf5ca7…91db32 | CALL | sell | 0xff07…789e | OUT | 0x1104…b5e5 | 0.00450 ETH |
| 11,252,564 | 32 days agoThu, 16 Jul 2026 12:21:09 UTC | 0xcf5ca7…91db32 | CALL | sell | 0x0bd7…ad73 | IN | 0xff07…789e | 0.00450 ETH |
| 11,250,938 | 32 days agoThu, 16 Jul 2026 12:18:26 UTC | 0x094531…b19698 | CALL | sell | 0xff07…789e | OUT | 0x1c75…b98d | 0.00427 ETH |
| 11,250,938 | 32 days agoThu, 16 Jul 2026 12:18:26 UTC | 0x094531…b19698 | CALL | sell | 0x0bd7…ad73 | IN | 0xff07…789e | 0.00427 ETH |
| 11,250,002 | 32 days agoThu, 16 Jul 2026 12:16:52 UTC | 0xa918d8…4e1607 | CALL | sell | 0xff07…789e | OUT | 0x19a4…6c5c | 0.00507 ETH |
| Transaction Hash | Method | Block | Age | From | To | Amount | Token | ||
|---|---|---|---|---|---|---|---|---|---|
| 0xe129d016…24f4dd | Transfer | 18,496,485 | 23 days agoFri, 24 Jul 2026 22:09:02 UTC | 0xcaf7…5d11 | IN | 0xff07…789e | $0.001 DIH | ||
| 0x8f8be2f0…156fff | Transfer | 11,268,377 | 32 days agoThu, 16 Jul 2026 12:47:33 UTC | 0xff07…789e | OUT | 0x0000…0000 | 0.006432 WETH | WETH (WETH) | |
| 0x8f8be2f0…156fff | Transfer | 11,268,377 | 32 days agoThu, 16 Jul 2026 12:47:33 UTC | 0xff07…789e | OUT | 0xb743…8e73 | $NaN5,746,978.108425 LOX | ||
| 0x8f8be2f0…156fff | Transfer | 11,268,377 | 32 days agoThu, 16 Jul 2026 12:47:33 UTC | 0xb743…8e73 | IN | 0xff07…789e | 0.006432 WETH | WETH (WETH) | |
| 0x8f8be2f0…156fff | Transfer | 11,268,377 | 32 days agoThu, 16 Jul 2026 12:47:33 UTC | 0x2724…07ad | IN | 0xff07…789e | $NaN5,746,978.108425 LOX | ||
| 0xba829d71…032342 | Transfer | 11,266,335 | 32 days agoThu, 16 Jul 2026 12:44:10 UTC | 0xff07…789e | OUT | 0x0000…0000 | 0.004741 WETH | WETH (WETH) | |
| 0xba829d71…032342 | Transfer | 11,266,335 | 32 days agoThu, 16 Jul 2026 12:44:10 UTC | 0xff07…789e | OUT | 0xb743…8e73 | $NaN4,188,719.955367 LOX | ||
| 0xba829d71…032342 | Transfer | 11,266,335 | 32 days agoThu, 16 Jul 2026 12:44:10 UTC | 0xb743…8e73 | IN | 0xff07…789e | 0.004741 WETH | WETH (WETH) | |
| 0xba829d71…032342 | Transfer | 11,266,335 | 32 days agoThu, 16 Jul 2026 12:44:10 UTC | 0x5302…30ec | IN | 0xff07…789e | $NaN4,188,719.955367 LOX | ||
| 0xb95f3d4f…cc171a | Transfer | 11,264,713 | 32 days agoThu, 16 Jul 2026 12:41:27 UTC | 0xff07…789e | OUT | 0x0000…0000 | 0.002009 WETH | WETH (WETH) | |
| 0xb95f3d4f…cc171a | Transfer | 11,264,713 | 32 days agoThu, 16 Jul 2026 12:41:27 UTC | 0xff07…789e | OUT | 0xb743…8e73 | $NaN1,763,311.037025 LOX | ||
| 0xb95f3d4f…cc171a | Transfer | 11,264,713 | 32 days agoThu, 16 Jul 2026 12:41:27 UTC | 0xb743…8e73 | IN | 0xff07…789e | 0.002009 WETH | WETH (WETH) | |
| 0xb95f3d4f…cc171a | Transfer | 11,264,713 | 32 days agoThu, 16 Jul 2026 12:41:27 UTC | 0x6a60…f1f1 | IN | 0xff07…789e | $NaN1,763,311.037025 LOX | ||
| 0x5f742323…58fdac | Transfer | 11,262,829 | 32 days agoThu, 16 Jul 2026 12:38:18 UTC | 0xff07…789e | OUT | 0x0000…0000 | 0.009054 WETH | WETH (WETH) | |
| 0x5f742323…58fdac | Transfer | 11,262,829 | 32 days agoThu, 16 Jul 2026 12:38:18 UTC | 0xff07…789e | OUT | 0xb743…8e73 | $NaN7,857,679.446903 LOX | ||
| 0x5f742323…58fdac | Transfer | 11,262,829 | 32 days agoThu, 16 Jul 2026 12:38:18 UTC | 0xb743…8e73 | IN | 0xff07…789e | 0.009054 WETH | WETH (WETH) | |
| 0x5f742323…58fdac | Transfer | 11,262,829 | 32 days agoThu, 16 Jul 2026 12:38:18 UTC | 0xc634…5ccd | IN | 0xff07…789e | $NaN7,857,679.446903 LOX | ||
| 0x6121a3a5…defc6b | Transfer | 11,262,277 | 32 days agoThu, 16 Jul 2026 12:37:23 UTC | 0xff07…789e | OUT | 0x0000…0000 | 0.003451 WETH | WETH (WETH) | |
| 0x6121a3a5…defc6b | Transfer | 11,262,277 | 32 days agoThu, 16 Jul 2026 12:37:23 UTC | 0xff07…789e | OUT | 0xb743…8e73 | $NaN2,958,068.992884 LOX | ||
| 0x6121a3a5…defc6b | Transfer | 11,262,277 | 32 days agoThu, 16 Jul 2026 12:37:23 UTC | 0xb743…8e73 | IN | 0xff07…789e | 0.003451 WETH | WETH (WETH) | |
| 0x6121a3a5…defc6b | Transfer | 11,262,277 | 32 days agoThu, 16 Jul 2026 12:37:23 UTC | 0x484f…a18b | IN | 0xff07…789e | $NaN2,958,068.992884 LOX | ||
| 0xd1d100f7…392515 | Transfer | 11,260,725 | 32 days agoThu, 16 Jul 2026 12:34:47 UTC | 0xff07…789e | OUT | 0x0000…0000 | 0.006341 WETH | WETH (WETH) | |
| 0xd1d100f7…392515 | Transfer | 11,260,725 | 32 days agoThu, 16 Jul 2026 12:34:47 UTC | 0xff07…789e | OUT | 0xb743…8e73 | $NaN5,383,074.444303 LOX | ||
| 0xd1d100f7…392515 | Transfer | 11,260,725 | 32 days agoThu, 16 Jul 2026 12:34:47 UTC | 0xb743…8e73 | IN | 0xff07…789e | 0.006341 WETH | WETH (WETH) | |
| 0xd1d100f7…392515 | Transfer | 11,260,725 | 32 days agoThu, 16 Jul 2026 12:34:47 UTC | 0x834a…9177 | IN | 0xff07…789e | $NaN5,383,074.444303 LOX |