// https://trustlessetf.fi/
// SPDX-License-Identifier: MIT
pragma solidity >=0.8.29;
import { ERC20 } from "@openzeppelin/contracts/token/ERC20/ERC20.sol";
import { ITrustlessETFToken } from "src/interfaces/ITrustlessETFToken.sol";
import { TrustlessETFTypes } from "src/types/TrustlessETFTypes.sol";
contract TrustlessETFToken is ERC20, ITrustlessETFToken {
address internal constant DEAD_ADDRESS = 0x000000000000000000000000000000000000dEaD;
event TWABBootstrapAuthorityHandedOff(address indexed previousAuthority, address indexed newAuthority);
address public override twabBootstrapAuthority;
uint48 public override twabActivationTime;
mapping(address account => bool excluded) public override isTWABExcluded;
bool private _twabInitialized;
mapping(address account => TrustlessETFTypes.Observation[] observations) private _accountObservations;
TrustlessETFTypes.Observation[] private _eligibleSupplyObservations;
constructor(
string memory name_,
string memory symbol_,
uint256 initialSupply,
address initialHolder,
address twabBootstrapAuthority_
)
ERC20(name_, symbol_)
{
require(twabBootstrapAuthority_ != address(0), "TrustlessETFToken: zero authority");
twabBootstrapAuthority = twabBootstrapAuthority_;
_mint(initialHolder, initialSupply);
}
function handoffTWABBootstrapAuthority(address newAuthority) external {
address previousAuthority = twabBootstrapAuthority;
require(msg.sender == previousAuthority && previousAuthority != address(0), "TrustlessETFToken: unauthorized");
require(!_twabInitialized, "TrustlessETFToken: TWAB initialized");
require(newAuthority != address(0) && newAuthority.code.length != 0, "TrustlessETFToken: invalid authority");
twabBootstrapAuthority = newAuthority;
emit TWABBootstrapAuthorityHandedOff(previousAuthority, newAuthority);
}
function initializeTWAB(address[] calldata excludedAccounts, uint48 activationTime) external override {
require(msg.sender == twabBootstrapAuthority, "TrustlessETFToken: unauthorized");
require(activationTime >= uint48(block.timestamp), "TrustlessETFToken: past activation");
uint256 excludedSupply = balanceOf(DEAD_ADDRESS);
for (uint256 i; i < excludedAccounts.length; ++i) {
address account = excludedAccounts[i];
require(account != address(0), "TrustlessETFToken: zero exclusion");
for (uint256 j; j < i; ++j) {
require(excludedAccounts[j] != account, "TrustlessETFToken: duplicate exclusion");
}
if (account != DEAD_ADDRESS) excludedSupply += balanceOf(account);
isTWABExcluded[account] = true;
}
isTWABExcluded[address(0)] = true;
isTWABExcluded[DEAD_ADDRESS] = true;
twabActivationTime = activationTime;
twabBootstrapAuthority = address(0);
_twabInitialized = true;
_writeObservation(_eligibleSupplyObservations, totalSupply() - excludedSupply, uint48(block.timestamp));
emit TWABConfigured(activationTime, excludedAccounts);
}
function accountObservationCount(address account) external view override returns (uint256) {
return _accountObservations[account].length;
}
function accountObservation(
address account,
uint256 index
)
external
view
override
returns (TrustlessETFTypes.Observation memory)
{
return _accountObservations[account][index];
}
function eligibleSupplyObservationCount() external view override returns (uint256) {
return _eligibleSupplyObservations.length;
}
function eligibleSupplyObservation(uint256 index)
external
view
override
returns (TrustlessETFTypes.Observation memory)
{
return _eligibleSupplyObservations[index];
}
function eligibleBalanceSeconds(
address account,
uint48 startTime,
uint48 endTime
)
external
view
override
returns (uint256)
{
require(endTime > startTime, "TrustlessETFToken: invalid interval");
if (!_twabInitialized || isTWABExcluded[account]) return 0;
(uint48 clippedStart, bool empty) = _clipToActivation(startTime, endTime);
if (empty) return 0;
return _cumulativeAt(_accountObservations[account], endTime)
- _cumulativeAt(_accountObservations[account], clippedStart);
}
function totalEligibleBalanceSeconds(uint48 startTime, uint48 endTime) external view override returns (uint256) {
require(endTime > startTime, "TrustlessETFToken: invalid interval");
if (!_twabInitialized) return 0;
(uint48 clippedStart, bool empty) = _clipToActivation(startTime, endTime);
if (empty) return 0;
return
_cumulativeAt(_eligibleSupplyObservations, endTime)
- _cumulativeAt(_eligibleSupplyObservations, clippedStart);
}
function _update(address from, address to, uint256 value) internal override {
bool updateEligibleSupply = _twabInitialized && value != 0 && _isEligible(from) != _isEligible(to);
uint256 eligibleSupply;
if (updateEligibleSupply) {
eligibleSupply = _eligibleSupplyObservations[_eligibleSupplyObservations.length - 1].balance;
}
super._update(from, to, value);
if (value == 0) return;
uint48 timestamp = uint48(block.timestamp);
if (from != address(0)) _writeObservation(_accountObservations[from], balanceOf(from), timestamp);
if (to != address(0)) _writeObservation(_accountObservations[to], balanceOf(to), timestamp);
if (updateEligibleSupply) {
if (_isEligible(to)) eligibleSupply += value;
else eligibleSupply -= value;
_writeObservation(_eligibleSupplyObservations, eligibleSupply, timestamp);
}
}
function _isEligible(address account) private view returns (bool) {
return account != address(0) && !isTWABExcluded[account];
}
function _clipToActivation(uint48 startTime, uint48 endTime)
private
view
returns (uint48 clippedStart, bool empty)
{
uint48 activationTime = twabActivationTime;
if (endTime <= activationTime) return (activationTime, true);
return (startTime < activationTime ? activationTime : startTime, false);
}
function _writeObservation(
TrustlessETFTypes.Observation[] storage observations,
uint256 balance,
uint48 timestamp
)
private
{
uint256 count = observations.length;
if (count == 0) {
observations.push(
TrustlessETFTypes.Observation({ timestamp: timestamp, balance: balance, cumulativeBalanceSeconds: 0 })
);
return;
}
TrustlessETFTypes.Observation storage previous = observations[count - 1];
uint256 cumulativeBalanceSeconds =
previous.cumulativeBalanceSeconds + previous.balance * uint256(timestamp - previous.timestamp);
if (previous.timestamp == timestamp) {
previous.balance = balance;
previous.cumulativeBalanceSeconds = cumulativeBalanceSeconds;
} else {
observations.push(
TrustlessETFTypes.Observation({
timestamp: timestamp,
balance: balance,
cumulativeBalanceSeconds: cumulativeBalanceSeconds
})
);
}
}
function _cumulativeAt(
TrustlessETFTypes.Observation[] storage observations,
uint48 timestamp
)
private
view
returns (uint256)
{
uint256 count = observations.length;
if (count == 0 || observations[0].timestamp > timestamp) return 0;
uint256 low;
uint256 high = count;
while (low < high) {
uint256 middle = (low + high) / 2;
if (observations[middle].timestamp <= timestamp) low = middle + 1;
else high = middle;
}
TrustlessETFTypes.Observation storage observation = observations[low - 1];
return observation.cumulativeBalanceSeconds + observation.balance * uint256(timestamp - observation.timestamp);
}
}[
{
"type": "constructor",
"inputs": [
{
"name": "name_",
"type": "string",
"internalType": "string"
},
{
"name": "symbol_",
"type": "string",
"internalType": "string"
},
{
"name": "initialSupply",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "initialHolder",
"type": "address",
"internalType": "address"
},
{
"name": "twabBootstrapAuthority_",
"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": "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": "TWABBootstrapAuthorityHandedOff",
"type": "event",
"inputs": [
{
"name": "previousAuthority",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "newAuthority",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"name": "TWABConfigured",
"type": "event",
"inputs": [
{
"name": "activationTime",
"type": "uint48",
"indexed": true,
"internalType": "uint48"
},
{
"name": "excludedAccounts",
"type": "address[]",
"indexed": false,
"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": "accountObservation",
"type": "function",
"inputs": [
{
"name": "account",
"type": "address",
"internalType": "address"
},
{
"name": "index",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "tuple",
"components": [
{
"name": "timestamp",
"type": "uint48",
"internalType": "uint48"
},
{
"name": "balance",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "cumulativeBalanceSeconds",
"type": "uint256",
"internalType": "uint256"
}
],
"internalType": "struct TrustlessETFTypes.Observation"
}
],
"stateMutability": "view"
},
{
"name": "accountObservationCount",
"type": "function",
"inputs": [
{
"name": "account",
"type": "address",
"internalType": "address"
}
],
"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": "decimals",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint8",
"internalType": "uint8"
}
],
"stateMutability": "view"
},
{
"name": "eligibleBalanceSeconds",
"type": "function",
"inputs": [
{
"name": "account",
"type": "address",
"internalType": "address"
},
{
"name": "startTime",
"type": "uint48",
"internalType": "uint48"
},
{
"name": "endTime",
"type": "uint48",
"internalType": "uint48"
}
],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "eligibleSupplyObservation",
"type": "function",
"inputs": [
{
"name": "index",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "tuple",
"components": [
{
"name": "timestamp",
"type": "uint48",
"internalType": "uint48"
},
{
"name": "balance",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "cumulativeBalanceSeconds",
"type": "uint256",
"internalType": "uint256"
}
],
"internalType": "struct TrustlessETFTypes.Observation"
}
],
"stateMutability": "view"
},
{
"name": "eligibleSupplyObservationCount",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "handoffTWABBootstrapAuthority",
"type": "function",
"inputs": [
{
"name": "newAuthority",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "initializeTWAB",
"type": "function",
"inputs": [
{
"name": "excludedAccounts",
"type": "address[]",
"internalType": "address[]"
},
{
"name": "activationTime",
"type": "uint48",
"internalType": "uint48"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "isTWABExcluded",
"type": "function",
"inputs": [
{
"name": "account",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "excluded",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "view"
},
{
"name": "name",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "string",
"internalType": "string"
}
],
"stateMutability": "view"
},
{
"name": "symbol",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "string",
"internalType": "string"
}
],
"stateMutability": "view"
},
{
"name": "totalEligibleBalanceSeconds",
"type": "function",
"inputs": [
{
"name": "startTime",
"type": "uint48",
"internalType": "uint48"
},
{
"name": "endTime",
"type": "uint48",
"internalType": "uint48"
}
],
"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"
},
{
"name": "twabActivationTime",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint48",
"internalType": "uint48"
}
],
"stateMutability": "view"
},
{
"name": "twabBootstrapAuthority",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
}
]0x6080604052346103e357611f3b8038038061001981610406565b92833981019060a0818303126103e35780516001600160401b0381116103e3578261004591830161042b565b602082015190926001600160401b0382116103e35761006591830161042b565b91604082015190610084608061007d6060860161047c565b940161047c565b815190916001600160401b0382116102e65760035490600182811c921680156103d9575b60208310146102c85781601f84931161036b575b50602090601f8311600114610305575f926102fa575b50508160011b915f199060031b1c1916176003555b83516001600160401b0381116102e657600454600181811c911680156102dc575b60208210146102c857601f8111610265575b50602094601f8211600114610202579481929394955f926101f7575b50508160011b915f199060031b1c1916176004555b6001600160a01b031680156101a857600580546001600160a01b0319169190911790556001600160a01b0382161561019557610186916104de565b6040516116a1908161089a8239f35b63ec442f0560e01b5f525f60045260245ffd5b60405162461bcd60e51b815260206004820152602160248201527f54727573746c657373455446546f6b656e3a207a65726f20617574686f7269746044820152607960f81b6064820152608490fd5b015190505f80610136565b601f1982169560045f52805f20915f5b88811061024d57508360019596979810610235575b505050811b0160045561014b565b01515f1960f88460031b161c191690555f8080610227565b91926020600181928685015181550194019201610212565b60045f527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b601f830160051c810191602084106102be575b601f0160051c01905b8181106102b3575061011a565b5f81556001016102a6565b909150819061029d565b634e487b7160e01b5f52602260045260245ffd5b90607f1690610108565b634e487b7160e01b5f52604160045260245ffd5b015190505f806100d2565b60035f9081528281209350601f198516905b818110610353575090846001959493921061033b575b505050811b016003556100e7565b01515f1960f88460031b161c191690555f808061032d565b92936020600181928786015181550195019301610317565b60035f529091507fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b601f840160051c810191602085106103cf575b90601f859493920160051c01905b8181106103c157506100bc565b5f81558493506001016103b4565b90915081906103a6565b91607f16916100a8565b5f80fd5b60405190606082016001600160401b038111838210176102e657604052565b6040519190601f01601f191682016001600160401b038111838210176102e657604052565b81601f820112156103e3578051906001600160401b0382116102e65761045a601f8301601f1916602001610406565b92828452602083830101116103e357815f9260208093018386015e8301015290565b51906001600160a01b03821682036103e357565b80548210156104a9575f52600360205f20910201905f90565b634e487b7160e01b5f52603260045260245ffd5b919082018092116104ca57565b634e487b7160e01b5f52601160045260245ffd5b60ff600754169081610663575b81610642575b5f9290826105f8575b610506826002546104bd565b6002556001600160a01b0381168015939084156105e25783600254036002555b805f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6020604051888152a383156105da5765ffffffffffff42168095156105b1575b5050610576575b50505050565b61057f9061066d565b1561059f5761059190610596936104bd565b610702565b5f808080610570565b82039182116104ca5761059691610702565b816105d3925f52600860205260405f20905f525f60205260405f2054906107cf565b5f84610569565b505050505050565b805f525f60205260405f20848154019055610526565b92506009545f1981019081116104ca576009548110156104a95760095f526003027f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7b00154926104fa565b905061064d5f61066d565b6106568261066d565b15159015151415906104f1565b82151591506104eb565b6001600160a01b03168015159081610683575090565b90505f52600660205260ff60405f2054161590565b8054680100000000000000008110156102e6576106ba91600182018155610490565b9190916106ef5760408165ffffffffffff600293511665ffffffffffff19855416178455602081015160018501550151910155565b634e487b7160e01b5f525f60045260245ffd5b60095480156107a4575f1981019081116104ca57610721906009610490565b509060028201918254600182019165ffffffffffff80845492541696169186830365ffffffffffff81116104ca5765ffffffffffff16918281029281840414901517156104ca578291610773916104bd565b950361077e57505555565b925050916107a29261078e6103e7565b928352602083015260408201526009610698565b565b50906107a29165ffffffffffff6107b96103e7565b9216825260208201525f60408201526009610698565b908154801561086f575f1981019081116104ca576107ed9083610490565b506002810192835490600183019265ffffffffffff80855492541697169287840365ffffffffffff81116104ca5765ffffffffffff16918281029281840414901517156104ca57839161083f916104bd565b960361084b5750505555565b929093506107a294915061085d6103e7565b93845260208401526040830152610698565b50906107a2929165ffffffffffff6108856103e7565b9316835260208301525f604083015261069856fe6080806040526004361015610012575f80fd5b5f3560e01c90816306fdde0314610c0357508063095ea7b314610b815780631649d6f5146109ef57806318160ddd146109d25780631c1bea56146109aa5780632042793a1461096a57806323b872dd1461083a578063313ce5671461081f57806370a08231146107e8578063758e491d146107cb57806395d89b41146106cb578063a56d68af146106a0578063a9059cbb1461066f578063ae1ac2d014610630578063c7b5209014610268578063d961ddd214610242578063dd62ed3e146101ee578063e848d7e6146101b1578063f8611b8a146101345763fea865d7146100f8575f80fd5b34610130576020366003190112610130576001600160a01b03610119610ce5565b165f526008602052602060405f2054604051908152f35b5f80fd5b34610130576040366003190112610130576001600160a01b03610155610ce5565b61015d610efb565b50165f5260086020526101ad61018161017b60243560405f20610f5b565b50610f74565b60408051825165ffffffffffff1681526020808401519082015291810151908201529081906060820190565b0390f35b34610130576020366003190112610130576001600160a01b036101d2610ce5565b165f526006602052602060ff60405f2054166040519015158152f35b3461013057604036600319011261013057610207610ce5565b6001600160a01b03610217610cfb565b91165f5260016020526001600160a01b0360405f2091165f52602052602060405f2054604051908152f35b34610130575f3660031901126101305760206001600160a01b0360055416604051908152f35b346101305760403660031901126101305760043567ffffffffffffffff8111610130573660238201121561013057806004013567ffffffffffffffff8111610130576024820191602436918360051b010111610130576102c6610d11565b916102dd6001600160a01b03600554163314610d78565b65ffffffffffff421665ffffffffffff8416938185106105c65761dead5f525f60205260405f2054905f5b858110610455575060066020527f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f8805460ff19908116600190811790925561dead5f527f1aecba4ebe7a4e0673e4891b2b092b2228e4322380b579fb494fad3da8586e228054821683179055600580547fffffffffffff00000000000000000000000000000000000000000000000000001660a09490941b79ffffffffffff00000000000000000000000000000000000000001693909317909255600780549092161790556002546103e392916103de91610e34565b6112fc565b60405191806020840160208552526040830191905f905b80821061042a57857fc996b078bb42253446309677ab010ec87e92fb260640b0bc0a3c004ff0e554df86860387a2005b9091928335906001600160a01b038216809203610130576020816001938293520194019201906103fa565b6001600160a01b0361047061046b838989610ff3565b611003565b16801561055c575f5b8281106104cd575061dead81036104aa575b906001915f52600660205260405f208260ff1982541617905501610308565b92906104c4600192855f525f60205260405f205490611017565b9390915061048b565b816001600160a01b036104e461046b848c8c610ff3565b16146104f257600101610479565b608460405162461bcd60e51b815260206004820152602660248201527f54727573746c657373455446546f6b656e3a206475706c69636174652065786360448201527f6c7573696f6e00000000000000000000000000000000000000000000000000006064820152fd5b608460405162461bcd60e51b815260206004820152602160248201527f54727573746c657373455446546f6b656e3a207a65726f206578636c7573696f60448201527f6e000000000000000000000000000000000000000000000000000000000000006064820152fd5b608460405162461bcd60e51b815260206004820152602260248201527f54727573746c657373455446546f6b656e3a207061737420616374697661746960448201527f6f6e0000000000000000000000000000000000000000000000000000000000006064820152fd5b346101305760403660031901126101305760043565ffffffffffff8116810361013057610667602091610661610d11565b90610fa4565b604051908152f35b346101305760403660031901126101305761069561068b610ce5565b602435903361120f565b602060405160018152f35b34610130576020366003190112610130576106b9610efb565b506101ad61018161017b600435610f19565b34610130575f366003190112610130576040515f6004548060011c906001811680156107c1575b6020831081146107ad57828552908115610789575060011461072b575b6101ad8361071f81850382610d56565b60405191829182610cbb565b91905060045f527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b915f905b80821061076f5750909150810160200161071f61070f565b919260018160209254838588010152019101909291610757565b60ff191660208086019190915291151560051b8401909101915061071f905061070f565b634e487b7160e01b5f52602260045260245ffd5b91607f16916106f2565b34610130575f366003190112610130576020600954604051908152f35b34610130576020366003190112610130576001600160a01b03610809610ce5565b165f525f602052602060405f2054604051908152f35b34610130575f36600319011261013057602060405160128152f35b3461013057606036600319011261013057610853610ce5565b61085b610cfb565b604435906001600160a01b03831692835f52600160205260405f206001600160a01b0333165f5260205260405f20545f19811061089e575b50610695935061120f565b83811061093657841561090a5733156108de57610695945f52600160205260405f206001600160a01b0333165f526020528360405f209103905584610893565b7f94280d62000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b7fe602df05000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b83907ffb8f41b2000000000000000000000000000000000000000000000000000000005f523360045260245260445260645ffd5b3461013057606036600319011261013057610983610ce5565b61098b610d11565b9060443565ffffffffffff811681036101305760209261066792610e55565b34610130575f36600319011261013057602065ffffffffffff60055460a01c16604051908152f35b34610130575f366003190112610130576020600254604051908152f35b3461013057602036600319011261013057610a08610ce5565b6005546001600160a01b0381169081331480610b78575b610a2890610d78565b60ff60075416610b0e576001600160a01b038316928315159081610b03575b5015610a9a577fffffffffffffffffffffffff00000000000000000000000000000000000000001682176005557f78d91da04cc5a43cabb2f797945fa36f2464f9ab56ca6306c6a1ca0082f1f46a5f80a3005b608460405162461bcd60e51b8152602060048201526024808201527f54727573746c657373455446546f6b656e3a20696e76616c696420617574686f60448201527f72697479000000000000000000000000000000000000000000000000000000006064820152fd5b90503b151584610a47565b608460405162461bcd60e51b815260206004820152602360248201527f54727573746c657373455446546f6b656e3a205457414220696e697469616c6960448201527f7a656400000000000000000000000000000000000000000000000000000000006064820152fd5b50811515610a1f565b3461013057604036600319011261013057610b9a610ce5565b60243590331561090a576001600160a01b03169081156108de57335f52600160205260405f20825f526020528060405f20556040519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b34610130575f366003190112610130575f6003548060011c90600181168015610cb1575b6020831081146107ad578285529081156107895750600114610c53576101ad8361071f81850382610d56565b91905060035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b915f905b808210610c975750909150810160200161071f61070f565b919260018160209254838588010152019101909291610c7f565b91607f1691610c27565b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b038216820361013057565b602435906001600160a01b038216820361013057565b6024359065ffffffffffff8216820361013057565b6060810190811067ffffffffffffffff821117610d4257604052565b634e487b7160e01b5f52604160045260245ffd5b90601f8019910116810190811067ffffffffffffffff821117610d4257604052565b15610d7f57565b606460405162461bcd60e51b815260206004820152601f60248201527f54727573746c657373455446546f6b656e3a20756e617574686f72697a6564006044820152fd5b15610dca57565b608460405162461bcd60e51b815260206004820152602360248201527f54727573746c657373455446546f6b656e3a20696e76616c696420696e74657260448201527f76616c00000000000000000000000000000000000000000000000000000000006064820152fd5b91908203918211610e4157565b634e487b7160e01b5f52601160045260245ffd5b9190610e7265ffffffffffff821665ffffffffffff841611610dc3565b60ff60075416158015610edc575b610ed55781610e8e91611024565b929092610ed557610ed292610ebb6001600160a01b03610ecc931693845f52600860205260405f2061116c565b925f52600860205260405f2061116c565b90610e34565b90565b5050505f90565b506001600160a01b0383165f52600660205260ff60405f205416610e80565b60405190610f0882610d26565b5f6040838281528260208201520152565b600954811015610f355760095f52600360205f20910201905f90565b634e487b7160e01b5f52603260045260245ffd5b805415610f35575f5260205f20905f90565b8054821015610f35575f52600360205f20910201905f90565b90604051610f8181610d26565b60406002829465ffffffffffff8154168452600181015460208501520154910152565b610fbf65ffffffffffff821665ffffffffffff841611610dc3565b60ff6007541615610fed5781610fd491611024565b610fed57610ecc610fe7610ed293611093565b91611093565b50505f90565b9190811015610f355760051b0190565b356001600160a01b03811681036101305790565b91908201809211610e4157565b65ffffffffffff918260055460a01c1692839116111561105b578165ffffffffffff8216105f146110555750905f90565b915f9150565b5090600190565b9065ffffffffffff8091169116039065ffffffffffff8211610e4157565b81810292918115918404141715610e4157565b6009549081158015611143575b610fed575f915b8083106110f857505f198201918211610e41576110f26110cb610ed2936009610f5b565b5065ffffffffffff6110eb60028301549482600185015494541690611062565b1690611080565b90611017565b916111038382611017565b60011c9065ffffffffffff611119836009610f5b565b50541665ffffffffffff84161061113c575060018101809111610e4157916110a7565b92506110a7565b5060095415610f355760095f5265ffffffffffff60205f20541665ffffffffffff8216106110a0565b908154801580156111ec575b610ed5575f905b8082106111a257505f198101908111610e41576110cb6110f291610ed294610f5b565b906111ad8282611017565b60011c9065ffffffffffff6111c28387610f5b565b50541665ffffffffffff8516106111e5575060018101809111610e41579061117f565b915061117f565b5065ffffffffffff6111fd84610f49565b50541665ffffffffffff831610611178565b91906001600160a01b03831615611266576001600160a01b0381161561123a576112389261145f565b565b7fec442f05000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b7f96c6fd1e000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b805468010000000000000000811015610d42576112b491600182018155610f5b565b9190916112e95760408165ffffffffffff600293511665ffffffffffff19855416178455602081015160018501550151910155565b634e487b7160e01b5f525f60045260245ffd5b600954801561137f575f198101908111610e415761131b906009610f5b565b5090600282019182549065ffffffffffff61134960018301936110f283865495541694846110eb878c611062565b951690810361135757505555565b92505091611238926040519261136c84610d26565b8352602083015260408201526009611292565b50906112389165ffffffffffff6040519261139984610d26565b16825260208201525f60408201526009611292565b9081548015611431575f198101908111610e41576113cc9083610f5b565b5091600283019283549165ffffffffffff6113fa60018401946110f283875496541695846110eb888d611062565b96169182036114095750505555565b929093506112389491506040519361142085610d26565b845260208401526040830152611292565b5090611238929165ffffffffffff6040519361144c85610d26565b16835260208301525f6040830152611292565b91909160ff60075416908161165f575b8161163e575b9181925f92611610575b6001600160a01b031692831580156115b55761149d83600254611017565b6002555b6001600160a01b038616908115801561159f5784600254036002555b82877fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6020604051898152a384156115955765ffffffffffff4216968780931561156c575b505015611543575b5050611517575b50505050565b61152361153194611669565b1561153a576103de91611017565b5f808080611511565b6103de91610e34565b81611565925f52600860205260405f20905f525f60205260405f2054906113ae565b5f8461150a565b8161158e925f52600860205260405f20905f525f60205260405f2054906113ae565b5f82611502565b5050505050505050565b825f525f60205260405f208581540190556114bd565b845f525f60205260405f20548381106115dc578390865f525f6020520360405f20556114a1565b8390867fe450d38c000000000000000000000000000000000000000000000000000000005f5260045260245260445260645ffd5b91506009545f198101908111610e415760016116336001600160a01b0392610f19565b50015492905061147f565b905061164981611669565b61165284611669565b1515901515141590611475565b821515915061146f565b6001600160a01b0316801515908161167f575090565b90505f52600660205260ff60405f205416159056fea164736f6c634300081d000a00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000033b2e3c9fd0803ce80000000000000000000000000000001a58057915a9ed90f072eb9fc45142809ed955eb0000000000000000000000001a58057915a9ed90f072eb9fc45142809ed955eb000000000000000000000000000000000000000000000000000000000000000d54727573746c657373204554460000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034554460000000000000000000000000000000000000000000000000000000000
0x6080806040526004361015610012575f80fd5b5f3560e01c90816306fdde0314610c0357508063095ea7b314610b815780631649d6f5146109ef57806318160ddd146109d25780631c1bea56146109aa5780632042793a1461096a57806323b872dd1461083a578063313ce5671461081f57806370a08231146107e8578063758e491d146107cb57806395d89b41146106cb578063a56d68af146106a0578063a9059cbb1461066f578063ae1ac2d014610630578063c7b5209014610268578063d961ddd214610242578063dd62ed3e146101ee578063e848d7e6146101b1578063f8611b8a146101345763fea865d7146100f8575f80fd5b34610130576020366003190112610130576001600160a01b03610119610ce5565b165f526008602052602060405f2054604051908152f35b5f80fd5b34610130576040366003190112610130576001600160a01b03610155610ce5565b61015d610efb565b50165f5260086020526101ad61018161017b60243560405f20610f5b565b50610f74565b60408051825165ffffffffffff1681526020808401519082015291810151908201529081906060820190565b0390f35b34610130576020366003190112610130576001600160a01b036101d2610ce5565b165f526006602052602060ff60405f2054166040519015158152f35b3461013057604036600319011261013057610207610ce5565b6001600160a01b03610217610cfb565b91165f5260016020526001600160a01b0360405f2091165f52602052602060405f2054604051908152f35b34610130575f3660031901126101305760206001600160a01b0360055416604051908152f35b346101305760403660031901126101305760043567ffffffffffffffff8111610130573660238201121561013057806004013567ffffffffffffffff8111610130576024820191602436918360051b010111610130576102c6610d11565b916102dd6001600160a01b03600554163314610d78565b65ffffffffffff421665ffffffffffff8416938185106105c65761dead5f525f60205260405f2054905f5b858110610455575060066020527f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f8805460ff19908116600190811790925561dead5f527f1aecba4ebe7a4e0673e4891b2b092b2228e4322380b579fb494fad3da8586e228054821683179055600580547fffffffffffff00000000000000000000000000000000000000000000000000001660a09490941b79ffffffffffff00000000000000000000000000000000000000001693909317909255600780549092161790556002546103e392916103de91610e34565b6112fc565b60405191806020840160208552526040830191905f905b80821061042a57857fc996b078bb42253446309677ab010ec87e92fb260640b0bc0a3c004ff0e554df86860387a2005b9091928335906001600160a01b038216809203610130576020816001938293520194019201906103fa565b6001600160a01b0361047061046b838989610ff3565b611003565b16801561055c575f5b8281106104cd575061dead81036104aa575b906001915f52600660205260405f208260ff1982541617905501610308565b92906104c4600192855f525f60205260405f205490611017565b9390915061048b565b816001600160a01b036104e461046b848c8c610ff3565b16146104f257600101610479565b608460405162461bcd60e51b815260206004820152602660248201527f54727573746c657373455446546f6b656e3a206475706c69636174652065786360448201527f6c7573696f6e00000000000000000000000000000000000000000000000000006064820152fd5b608460405162461bcd60e51b815260206004820152602160248201527f54727573746c657373455446546f6b656e3a207a65726f206578636c7573696f60448201527f6e000000000000000000000000000000000000000000000000000000000000006064820152fd5b608460405162461bcd60e51b815260206004820152602260248201527f54727573746c657373455446546f6b656e3a207061737420616374697661746960448201527f6f6e0000000000000000000000000000000000000000000000000000000000006064820152fd5b346101305760403660031901126101305760043565ffffffffffff8116810361013057610667602091610661610d11565b90610fa4565b604051908152f35b346101305760403660031901126101305761069561068b610ce5565b602435903361120f565b602060405160018152f35b34610130576020366003190112610130576106b9610efb565b506101ad61018161017b600435610f19565b34610130575f366003190112610130576040515f6004548060011c906001811680156107c1575b6020831081146107ad57828552908115610789575060011461072b575b6101ad8361071f81850382610d56565b60405191829182610cbb565b91905060045f527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b915f905b80821061076f5750909150810160200161071f61070f565b919260018160209254838588010152019101909291610757565b60ff191660208086019190915291151560051b8401909101915061071f905061070f565b634e487b7160e01b5f52602260045260245ffd5b91607f16916106f2565b34610130575f366003190112610130576020600954604051908152f35b34610130576020366003190112610130576001600160a01b03610809610ce5565b165f525f602052602060405f2054604051908152f35b34610130575f36600319011261013057602060405160128152f35b3461013057606036600319011261013057610853610ce5565b61085b610cfb565b604435906001600160a01b03831692835f52600160205260405f206001600160a01b0333165f5260205260405f20545f19811061089e575b50610695935061120f565b83811061093657841561090a5733156108de57610695945f52600160205260405f206001600160a01b0333165f526020528360405f209103905584610893565b7f94280d62000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b7fe602df05000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b83907ffb8f41b2000000000000000000000000000000000000000000000000000000005f523360045260245260445260645ffd5b3461013057606036600319011261013057610983610ce5565b61098b610d11565b9060443565ffffffffffff811681036101305760209261066792610e55565b34610130575f36600319011261013057602065ffffffffffff60055460a01c16604051908152f35b34610130575f366003190112610130576020600254604051908152f35b3461013057602036600319011261013057610a08610ce5565b6005546001600160a01b0381169081331480610b78575b610a2890610d78565b60ff60075416610b0e576001600160a01b038316928315159081610b03575b5015610a9a577fffffffffffffffffffffffff00000000000000000000000000000000000000001682176005557f78d91da04cc5a43cabb2f797945fa36f2464f9ab56ca6306c6a1ca0082f1f46a5f80a3005b608460405162461bcd60e51b8152602060048201526024808201527f54727573746c657373455446546f6b656e3a20696e76616c696420617574686f60448201527f72697479000000000000000000000000000000000000000000000000000000006064820152fd5b90503b151584610a47565b608460405162461bcd60e51b815260206004820152602360248201527f54727573746c657373455446546f6b656e3a205457414220696e697469616c6960448201527f7a656400000000000000000000000000000000000000000000000000000000006064820152fd5b50811515610a1f565b3461013057604036600319011261013057610b9a610ce5565b60243590331561090a576001600160a01b03169081156108de57335f52600160205260405f20825f526020528060405f20556040519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b34610130575f366003190112610130575f6003548060011c90600181168015610cb1575b6020831081146107ad578285529081156107895750600114610c53576101ad8361071f81850382610d56565b91905060035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b915f905b808210610c975750909150810160200161071f61070f565b919260018160209254838588010152019101909291610c7f565b91607f1691610c27565b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b038216820361013057565b602435906001600160a01b038216820361013057565b6024359065ffffffffffff8216820361013057565b6060810190811067ffffffffffffffff821117610d4257604052565b634e487b7160e01b5f52604160045260245ffd5b90601f8019910116810190811067ffffffffffffffff821117610d4257604052565b15610d7f57565b606460405162461bcd60e51b815260206004820152601f60248201527f54727573746c657373455446546f6b656e3a20756e617574686f72697a6564006044820152fd5b15610dca57565b608460405162461bcd60e51b815260206004820152602360248201527f54727573746c657373455446546f6b656e3a20696e76616c696420696e74657260448201527f76616c00000000000000000000000000000000000000000000000000000000006064820152fd5b91908203918211610e4157565b634e487b7160e01b5f52601160045260245ffd5b9190610e7265ffffffffffff821665ffffffffffff841611610dc3565b60ff60075416158015610edc575b610ed55781610e8e91611024565b929092610ed557610ed292610ebb6001600160a01b03610ecc931693845f52600860205260405f2061116c565b925f52600860205260405f2061116c565b90610e34565b90565b5050505f90565b506001600160a01b0383165f52600660205260ff60405f205416610e80565b60405190610f0882610d26565b5f6040838281528260208201520152565b600954811015610f355760095f52600360205f20910201905f90565b634e487b7160e01b5f52603260045260245ffd5b805415610f35575f5260205f20905f90565b8054821015610f35575f52600360205f20910201905f90565b90604051610f8181610d26565b60406002829465ffffffffffff8154168452600181015460208501520154910152565b610fbf65ffffffffffff821665ffffffffffff841611610dc3565b60ff6007541615610fed5781610fd491611024565b610fed57610ecc610fe7610ed293611093565b91611093565b50505f90565b9190811015610f355760051b0190565b356001600160a01b03811681036101305790565b91908201809211610e4157565b65ffffffffffff918260055460a01c1692839116111561105b578165ffffffffffff8216105f146110555750905f90565b915f9150565b5090600190565b9065ffffffffffff8091169116039065ffffffffffff8211610e4157565b81810292918115918404141715610e4157565b6009549081158015611143575b610fed575f915b8083106110f857505f198201918211610e41576110f26110cb610ed2936009610f5b565b5065ffffffffffff6110eb60028301549482600185015494541690611062565b1690611080565b90611017565b916111038382611017565b60011c9065ffffffffffff611119836009610f5b565b50541665ffffffffffff84161061113c575060018101809111610e4157916110a7565b92506110a7565b5060095415610f355760095f5265ffffffffffff60205f20541665ffffffffffff8216106110a0565b908154801580156111ec575b610ed5575f905b8082106111a257505f198101908111610e41576110cb6110f291610ed294610f5b565b906111ad8282611017565b60011c9065ffffffffffff6111c28387610f5b565b50541665ffffffffffff8516106111e5575060018101809111610e41579061117f565b915061117f565b5065ffffffffffff6111fd84610f49565b50541665ffffffffffff831610611178565b91906001600160a01b03831615611266576001600160a01b0381161561123a576112389261145f565b565b7fec442f05000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b7f96c6fd1e000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b805468010000000000000000811015610d42576112b491600182018155610f5b565b9190916112e95760408165ffffffffffff600293511665ffffffffffff19855416178455602081015160018501550151910155565b634e487b7160e01b5f525f60045260245ffd5b600954801561137f575f198101908111610e415761131b906009610f5b565b5090600282019182549065ffffffffffff61134960018301936110f283865495541694846110eb878c611062565b951690810361135757505555565b92505091611238926040519261136c84610d26565b8352602083015260408201526009611292565b50906112389165ffffffffffff6040519261139984610d26565b16825260208201525f60408201526009611292565b9081548015611431575f198101908111610e41576113cc9083610f5b565b5091600283019283549165ffffffffffff6113fa60018401946110f283875496541695846110eb888d611062565b96169182036114095750505555565b929093506112389491506040519361142085610d26565b845260208401526040830152611292565b5090611238929165ffffffffffff6040519361144c85610d26565b16835260208301525f6040830152611292565b91909160ff60075416908161165f575b8161163e575b9181925f92611610575b6001600160a01b031692831580156115b55761149d83600254611017565b6002555b6001600160a01b038616908115801561159f5784600254036002555b82877fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6020604051898152a384156115955765ffffffffffff4216968780931561156c575b505015611543575b5050611517575b50505050565b61152361153194611669565b1561153a576103de91611017565b5f808080611511565b6103de91610e34565b81611565925f52600860205260405f20905f525f60205260405f2054906113ae565b5f8461150a565b8161158e925f52600860205260405f20905f525f60205260405f2054906113ae565b5f82611502565b5050505050505050565b825f525f60205260405f208581540190556114bd565b845f525f60205260405f20548381106115dc578390865f525f6020520360405f20556114a1565b8390867fe450d38c000000000000000000000000000000000000000000000000000000005f5260045260245260445260645ffd5b91506009545f198101908111610e415760016116336001600160a01b0392610f19565b50015492905061147f565b905061164981611669565b61165284611669565b1515901515141590611475565b821515915061146f565b6001600160a01b0316801515908161167f575090565b90505f52600660205260ff60405f205416159056fea164736f6c634300081d000a
| Token | Symbol | Balance | Price | Value |
|---|---|---|---|---|
| no token holdings | ||||
| Type | Age | Block | Details |
|---|---|---|---|
| no cross-chain L1↔L2 transactions for this address | |||
| Txn Hash | Age | Event | Topics / Data |
|---|---|---|---|
| 0x06a158…fd7d84 | 4 days agoThu, 13 Aug 2026 22:37:41 UTC | Transfer | [0] 0x000000000000…43e40951 [1] 0x000000000000…83339acd data: 0x000000000000000000…68cfc204 |
| 0x2053a3…ad98c5 | 5 days agoWed, 12 Aug 2026 01:30:57 UTC | Transfer | [0] 0x000000000000…db8c0904 [1] 0x000000000000…43e40951 data: 0x000000000000000000…7651a688 |
| 0x2053a3…ad98c5 | 5 days agoWed, 12 Aug 2026 01:30:57 UTC | Transfer | [0] 0x000000000000…31c40a63 [1] 0x000000000000…db8c0904 data: 0x000000000000000000…7651a688 |
| 0xf0b1b2…3b1182 | 6 days agoTue, 11 Aug 2026 20:40:23 UTC | Transfer | [0] 0x000000000000…db8c0904 [1] 0x000000000000…43e40951 data: 0x000000000000000000…751b8000 |
| 0xf0b1b2…3b1182 | 6 days agoTue, 11 Aug 2026 20:40:23 UTC | Transfer | [0] 0x000000000000…f7c6c49c [1] 0x000000000000…db8c0904 data: 0x000000000000000000…751b8000 |
| 0xffff64…8ef372 | 6 days agoTue, 11 Aug 2026 20:04:10 UTC | Transfer | [0] 0x000000000000…c578ba32 [1] 0x000000000000…43e40951 data: 0x000000000000000000…a98efc00 |
| 0x818d67…346094 | 6 days agoTue, 11 Aug 2026 20:04:04 UTC | Approval | [0] 0x000000000000…c578ba32 [1] 0x000000000000…72c22734 data: 0x000000000000000000…a98efc00 |
| 0x03ea35…07494f | 6 days agoTue, 11 Aug 2026 19:25:03 UTC | Transfer | [0] 0x000000000000…43e40951 [1] 0x000000000000…1ad40774 data: 0x000000000000000000…b81f6565 |
| 0x338218…62dbca | 6 days agoTue, 11 Aug 2026 15:01:41 UTC | Transfer | [0] 0x000000000000…71f84d4a [1] 0x000000000000…43e40951 data: 0x000000000000000000…ea1e3d13 |
| 0xdf632f…468cf4 | 6 days agoTue, 11 Aug 2026 15:01:34 UTC | Approval | [0] 0x000000000000…71f84d4a [1] 0x000000000000…262c40dc data: 0xffffffffffffffffff…ffffffff |
| 0xfe32b4…6b011b | 6 days agoTue, 11 Aug 2026 14:00:07 UTC | Transfer | [0] 0x000000000000…e9b05d31 [1] 0x000000000000…43e40951 data: 0x000000000000000000…af7ec631 |
| 0xfe32b4…6b011b | 6 days agoTue, 11 Aug 2026 14:00:07 UTC | Transfer | [0] 0x000000000000…881d8ac5 [1] 0x000000000000…e9b05d31 data: 0x000000000000000000…af7ec631 |
| 0x0d0f70…faec7a | 6 days agoTue, 11 Aug 2026 14:00:06 UTC | Approval | [0] 0x000000000000…881d8ac5 [1] 0x000000000000…e1a4f53d data: 0xffffffffffffffffff…ffffffff |
| 0x6941d1…cd3216 | 6 days agoTue, 11 Aug 2026 00:09:12 UTC | Transfer | [0] 0x000000000000…43e40951 [1] 0x000000000000…2a26f4ca data: 0x000000000000000000…ec5fe95d |
| 0x17d6ae…c9d44d | 7 days agoMon, 10 Aug 2026 21:24:28 UTC | Approval | [0] 0x000000000000…5f36f468 [1] 0x000000000000…72c22734 data: 0x000000000000000000…00000000 |
| 0x666aae…3d1d78 | 7 days agoMon, 10 Aug 2026 02:01:42 UTC | Transfer | [0] 0x000000000000…e9b05d31 [1] 0x000000000000…43e40951 data: 0x000000000000000000…12d5c9b5 |
| 0x666aae…3d1d78 | 7 days agoMon, 10 Aug 2026 02:01:42 UTC | Transfer | [0] 0x000000000000…d2427f66 [1] 0x000000000000…e9b05d31 data: 0x000000000000000000…12d5c9b5 |
| 0xe33bb1…0e1fe6 | 7 days agoMon, 10 Aug 2026 02:01:42 UTC | Approval | [0] 0x000000000000…d2427f66 [1] 0x000000000000…e1a4f53d data: 0xffffffffffffffffff…ffffffff |
| 0x5cdbb6…c0587e | 8 days agoSun, 09 Aug 2026 22:40:17 UTC | Transfer | [0] 0x000000000000…36cda6c3 [1] 0x000000000000…43e40951 data: 0x000000000000000000…7262f0f5 |
| 0x5cdbb6…c0587e | 8 days agoSun, 09 Aug 2026 22:40:17 UTC | Transfer | [0] 0x000000000000…a800e01c [1] 0x000000000000…36cda6c3 data: 0x000000000000000000…7262f0f5 |
| 0x19bd96…ad2aae | 8 days agoSun, 09 Aug 2026 22:40:16 UTC | Approval | [0] 0x000000000000…a800e01c [1] 0x000000000000…6275a323 data: 0x000000000000000000…7262f0f5 |
| 0xbf2199…c92cc7 | 8 days agoSun, 09 Aug 2026 11:11:31 UTC | Transfer | [0] 0x000000000000…e9b05d31 [1] 0x000000000000…43e40951 data: 0x000000000000000000…1c689476 |
| 0xbf2199…c92cc7 | 8 days agoSun, 09 Aug 2026 11:11:31 UTC | Transfer | [0] 0x000000000000…fa0c755b [1] 0x000000000000…e9b05d31 data: 0x000000000000000000…1c689476 |
| 0x0995ac…ab86dd | 8 days agoSun, 09 Aug 2026 11:11:31 UTC | Approval | [0] 0x000000000000…fa0c755b [1] 0x000000000000…e1a4f53d data: 0xffffffffffffffffff…ffffffff |
| 0x3ab380…6fce00 | 8 days agoSun, 09 Aug 2026 10:26:48 UTC | Transfer | [0] 0x000000000000…43e40951 [1] 0x000000000000…fa0c755b data: 0x000000000000000000…134f788f |
| Block | Age | Parent Transaction Hash | Type | Method | From | To | Value | |
|---|---|---|---|---|---|---|---|---|
| no internal transactions found for this address yet (traced blocks + on-demand) | ||||||||
| Transaction Hash | Method | Block | Age | From | To | Amount | Token | ||
|---|---|---|---|---|---|---|---|---|---|
| no token transfers for this address yet | |||||||||
| Transaction Hash | Method | Block | Age | From | To | Type | Item | ||
|---|---|---|---|---|---|---|---|---|---|
| no NFT transfers for this address yet | |||||||||
| Transaction Hash | Method ? | Block | Age | From | To | Amount | Txn Fee ? | ||
|---|---|---|---|---|---|---|---|---|---|
| 0x818d67…346094 | Approve | 33,935,377 | 6 days agoTue, 11 Aug 2026 20:04:04 UTC | 0xd7bd…ba32 | IN | Trustless ETF | $0.000 ETH | 0.00000135 | |
| 0xdf632f…468cf4 | Approve | 33,753,540 | 6 days agoTue, 11 Aug 2026 15:01:34 UTC | 0x0259…4d4a | IN | Trustless ETF | $0.000 ETH | 0.00000124 | |
| 0x0d0f70…faec7a | Approve | 33,716,667 | 6 days agoTue, 11 Aug 2026 14:00:06 UTC | 0x558c…8ac5 | IN | Trustless ETF | $0.000 ETH | 0.00000125 | |
| 0x17d6ae…c9d44d | Approve | 33,119,730 | 7 days agoMon, 10 Aug 2026 21:24:28 UTC | 0x471f…f468 | IN | Trustless ETF | $0.000 ETH | 0.00000066 | |
| 0xe33bb1…0e1fe6 | Approve | 32,423,311 | 7 days agoMon, 10 Aug 2026 02:01:42 UTC | 0xcab2…7f66 | IN | Trustless ETF | $0.000 ETH | 0.00000132 | |
| 0x19bd96…ad2aae | Approve | 32,302,548 | 8 days agoSun, 09 Aug 2026 22:40:16 UTC | 0xe465…e01c | IN | Trustless ETF | $0.000 ETH | 0.00000130 | |
| 0x0995ac…ab86dd | Approve | 31,889,838 | 8 days agoSun, 09 Aug 2026 11:11:31 UTC | 0x24d5…755b | IN | Trustless ETF | $0.000 ETH | 0.00000128 | |
| 0xaf23e8…98ca0b | Approve | 31,277,814 | 9 days agoSat, 08 Aug 2026 18:09:30 UTC | 0x1bf7…88e7 | IN | Trustless ETF | $0.000 ETH | 0.00000131 | |
| 0x543e86…3eb25f | Approve | 31,240,156 | 9 days agoSat, 08 Aug 2026 17:06:42 UTC | 0xbad1…cd0f | IN | Trustless ETF | $0.000 ETH | 0.00000131 | |
| 0x606961…93ea9d | Approve | 31,226,604 | 9 days agoSat, 08 Aug 2026 16:44:04 UTC | 0x9c0f…2ea3 | IN | Trustless ETF | $0.000 ETH | 0.00000131 | |
| 0x6f847e…ba834a | Approve | 31,163,338 | 9 days agoSat, 08 Aug 2026 14:58:35 UTC | 0xbc40…28e8 | IN | Trustless ETF | $0.000 ETH | 0.00000134 | |
| 0xabb50d…b68b6d | Approve | 31,158,424 | 9 days agoSat, 08 Aug 2026 14:50:23 UTC | 0x3f46…85d0 | IN | Trustless ETF | $0.000 ETH | 0.00000130 | |
| 0x97ba5e…abf7a6 | Approve | 31,158,424 | 9 days agoSat, 08 Aug 2026 14:50:23 UTC | 0x8046…3cb7 | IN | Trustless ETF | $0.000 ETH | 0.00000130 | |
| 0x4f9f3a…6e1164 | Approve | 31,158,424 | 9 days agoSat, 08 Aug 2026 14:50:23 UTC | 0x027d…eafb | IN | Trustless ETF | $0.000 ETH | 0.00000130 | |
| 0x3a3cce…a79817 | Approve | 31,114,568 | 9 days agoSat, 08 Aug 2026 13:37:08 UTC | 0x9c0f…2ea3 | IN | Trustless ETF | $0.000 ETH | 0.00000129 | |
| 0x295d3e…7e27e6 | Approve | 31,066,719 | 9 days agoSat, 08 Aug 2026 12:17:16 UTC | 0xd285…0a63 | IN | Trustless ETF | $0.000 ETH | 0.00000134 | |
| 0xf05fff…8925b5 | Approve | 31,034,375 | 9 days agoSat, 08 Aug 2026 11:23:11 UTC | 0x2cc9…9722 | IN | Trustless ETF | $0.000 ETH | 0.00000134 | |
| 0x87f609…0367cf | Approve | 31,027,886 | 9 days agoSat, 08 Aug 2026 11:12:20 UTC | 0x9c0f…2ea3 | IN | Trustless ETF | $0.000 ETH | 0.00000133 | |
| 0xcd7b2c…6bff93 | Approve | 31,005,256 | 9 days agoSat, 08 Aug 2026 10:34:30 UTC | 0xc631…9acd | IN | Trustless ETF | $0.000 ETH | 0.00000135 | |
| 0xe57056…aed23a | Approve | 31,004,831 | 9 days agoSat, 08 Aug 2026 10:33:48 UTC | 0xedb5…0e9f | IN | Trustless ETF | $0.000 ETH | 0.00000134 | |
| 0x3f679e…9db7c1 | Approve | 30,926,794 | 9 days agoSat, 08 Aug 2026 08:23:20 UTC | 0x05de…669e | IN | Trustless ETF | $0.000 ETH | 0.00000141 | |
| 0xe6fa2b…4a2b63 | Approve | 30,910,081 | 9 days agoSat, 08 Aug 2026 07:55:24 UTC | 0xc36b…4e46 | IN | Trustless ETF | $0.000 ETH | 0.00000138 | |
| 0xa82818…e4b05a | Approve | 30,899,229 | 9 days agoSat, 08 Aug 2026 07:37:16 UTC | 0x8a54…e0f9 | IN | Trustless ETF | $0.000 ETH | 0.00000140 | |
| 0xe96af3…9725c0 | Approve | 30,896,100 | 9 days agoSat, 08 Aug 2026 07:32:01 UTC | 0xf5c4…6157 | IN | Trustless ETF | $0.000 ETH | 0.00000142 | |
| 0x0f98fb…e23a23 | Approve | 30,891,496 | 9 days agoSat, 08 Aug 2026 07:24:20 UTC | 0x6dd1…c04f | IN | Trustless ETF | $0.000 ETH | 0.00000140 |