// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
import "./chirps/Chirp.sol";
import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";
import {Ownable} from "solady/src/auth/Ownable.sol";
import {IStartableToken} from "./chirps/IStartableToken.sol";
/// @title Chirps token
/// @notice ERC20 token that syncs Chirps (pixel robin NFTs) with balances.
/// OZ ERC20 (scanner-safe) + solady Ownable (renounce pattern).
/// - Mints Chirps on transfers from the pool (with generated art traits)
/// - Burns Chirps when sending to the pool or zero address
/// - Transfers Chirps 1:1 on user-to-user transfers
contract Chirps is Chirp, ERC20, Ownable, IStartableToken {
error AddressCanNotReceiveChirp();
uint256 public constant UNIT_PER_CHIRP = 1e18;
uint256 public constant INITIAL_SUPPLY = 10_000e18;
uint256 constant MAX_BUY_PRECISION = 100000;
uint256 constant _startMaxBuyCount = (INITIAL_SUPPLY * 500) / MAX_BUY_PRECISION;
uint256 constant _addMaxBuyPercentPerSec = 3;
address immutable _notMintableAccount;
uint256 _startTime;
address public hook;
address public pool;
constructor(address owner_) ERC20("Chirps", "CHIRPS") {
_initializeOwner(owner_);
_mint(owner_, INITIAL_SUPPLY);
_notMintableAccount = owner_;
}
modifier canReceiveChirps(address addr) {
if (!_canReceiveChirps(addr)) revert AddressCanNotReceiveChirp();
_;
}
modifier onlyHook() {
require(msg.sender == hook, "only for hook");
_;
}
function setHook(address newHook) external onlyOwner {
hook = newHook;
}
function setImageParamsProvider(address imageParamsProvider) public onlyOwner {
_setImageParamsProvider(imageParamsProvider);
}
function setRandomSeedProvider(address _randomSeedProvider) public onlyOwner {
_setRandomSeedProvider(_randomSeedProvider);
}
function start(address newPool) external onlyHook {
pool = newPool;
_startTime = block.timestamp;
}
function isStarted() public view returns (bool) {
return pool != address(0);
}
function maxBuy() public view returns (uint256) {
if (!isStarted()) return 0;
uint256 count = _startMaxBuyCount +
(INITIAL_SUPPLY * (block.timestamp - _startTime) * _addMaxBuyPercentPerSec) /
MAX_BUY_PRECISION;
if (count > INITIAL_SUPPLY) count = INITIAL_SUPPLY;
return count;
}
// ---- ERC20 hooks (OZ uses _update) ----
function _update(address from, address to, uint256 amount) internal override {
super._update(from, to, amount);
if (pool == address(0)) return;
_onTokenTransfer(from, to, amount, createRandom());
}
function _onTokenTransfer(
address from, address to, uint256 amount, Random memory random
) internal {
if (pool == address(0)) return;
// pool -> user: mint chirps with generated traits
if (from == pool && to != address(0)) {
if (_notMintableAccount == to) return;
require(isStarted(), "not started");
require(amount <= maxBuy(), "buy limit");
_mintChirps(to, amount / UNIT_PER_CHIRP, random);
return;
}
uint256 from_max_allowed = balanceOf(from) / UNIT_PER_CHIRP;
uint256 from_count = this.OwnerChirpsCount(from);
uint256 from_remove_count = from_count > from_max_allowed
? from_count - from_max_allowed
: 0;
uint256 to_max_allowed = balanceOf(to) / UNIT_PER_CHIRP;
uint256 to_count = this.OwnerChirpsCount(to);
uint256 to_receive_allowed = to_count < to_max_allowed
? to_max_allowed - to_count
: 0;
if (from_remove_count == 0) return;
if (!_canReceiveChirps(to)) {
to_receive_allowed = 0;
}
uint256 move_qty = from_remove_count < to_receive_allowed
? from_remove_count
: to_receive_allowed;
if (move_qty > 0) _moveChirps(from, to, move_qty);
_burnChirps(from, from_remove_count - move_qty);
}
function _mintChirps(address user, uint256 qty, Random memory random) internal {
for (uint256 i = 0; i < qty; i++) {
_mintChirp(user, random);
}
}
function _burnChirps(address user, uint256 qty) internal {
for (uint256 i = 0; i < qty; i++) {
uint count = this.OwnerChirpsCount(user);
if (count == 0) break;
uint lastIdx = count - 1;
uint chirpId = this.OwnerChirp(user, lastIdx).id;
_burnChirp(user, chirpId);
}
}
function _moveChirps(address from, address to, uint256 qty) internal canReceiveChirps(to) {
for (uint256 i = 0; i < qty; i++) {
uint count = this.OwnerChirpsCount(from);
if (count == 0) break;
uint lastIdx = count - 1;
uint chirpId = this.OwnerChirp(from, lastIdx).id;
_transferChirp(from, to, chirpId);
}
}
function _canReceiveChirps(address addr) internal view returns (bool) {
return addr != pool && addr != address(0);
}
function transferChirp(address to, uint chirpId) external override {
require(_owns[msg.sender][chirpId], "not owner");
_transferChirp(msg.sender, to, chirpId);
_transfer(msg.sender, to, UNIT_PER_CHIRP);
}
function transferChirpsList(address to, uint[] calldata chirpIds) external override {
for (uint i = 0; i < chirpIds.length; i++) {
require(_owns[msg.sender][chirpIds[i]], "not owner");
_transferChirp(msg.sender, to, chirpIds[i]);
}
_transfer(msg.sender, to, UNIT_PER_CHIRP * chirpIds.length);
}
}[
{
"type": "constructor",
"inputs": [
{
"name": "owner_",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "nonpayable"
},
{
"name": "AddressCanNotReceiveChirp",
"type": "error",
"inputs": []
},
{
"name": "AlreadyInitialized",
"type": "error",
"inputs": []
},
{
"name": "ChirpIndexOutOfRange",
"type": "error",
"inputs": []
},
{
"name": "ERC20InsufficientAllowance",
"type": "error",
"inputs": [
{
"name": "spender",
"type": "address",
"internalType": "address"
},
{
"name": "allowance",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "needed",
"type": "uint256",
"internalType": "uint256"
}
]
},
{
"name": "ERC20InsufficientBalance",
"type": "error",
"inputs": [
{
"name": "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": "NewOwnerIsZeroAddress",
"type": "error",
"inputs": []
},
{
"name": "NoHandoverRequest",
"type": "error",
"inputs": []
},
{
"name": "NotChirpOwner",
"type": "error",
"inputs": []
},
{
"name": "Unauthorized",
"type": "error",
"inputs": []
},
{
"name": "Approval",
"type": "event",
"inputs": [
{
"name": "owner",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "spender",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "value",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "OnChirpBurned",
"type": "event",
"inputs": [
{
"name": "owner",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "chirpId",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "OnChirpMinted",
"type": "event",
"inputs": [
{
"name": "owner",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "chirpId",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "OnChirpTransfer",
"type": "event",
"inputs": [
{
"name": "from",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "to",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "chirpId",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "OwnershipHandoverCanceled",
"type": "event",
"inputs": [
{
"name": "pendingOwner",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"name": "OwnershipHandoverRequested",
"type": "event",
"inputs": [
{
"name": "pendingOwner",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"name": "OwnershipTransferred",
"type": "event",
"inputs": [
{
"name": "oldOwner",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "newOwner",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"name": "Transfer",
"type": "event",
"inputs": [
{
"name": "from",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "to",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "value",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "ChirpsTotalCount",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "Holder",
"type": "function",
"inputs": [
{
"name": "index",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "HolderNumber",
"type": "function",
"inputs": [
{
"name": "owner",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "HoldersCount",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "INITIAL_SUPPLY",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "IsHolder",
"type": "function",
"inputs": [
{
"name": "owner",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "view"
},
{
"name": "OwnerChirp",
"type": "function",
"inputs": [
{
"name": "owner",
"type": "address",
"internalType": "address"
},
{
"name": "index",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "tuple",
"components": [
{
"name": "id",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "seed",
"type": "uint256",
"internalType": "uint256"
}
],
"internalType": "struct ChirpSeedData"
}
],
"stateMutability": "view"
},
{
"name": "OwnerChirpIndex",
"type": "function",
"inputs": [
{
"name": "owner",
"type": "address",
"internalType": "address"
},
{
"name": "chirpId",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "index",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "OwnerChirpsCount",
"type": "function",
"inputs": [
{
"name": "owner",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "OwnerChirpsPage",
"type": "function",
"inputs": [
{
"name": "owner",
"type": "address",
"internalType": "address"
},
{
"name": "page",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "pageSize",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "chirps",
"type": "tuple[]",
"components": [
{
"name": "id",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "seed",
"type": "uint256",
"internalType": "uint256"
}
],
"internalType": "struct ChirpSeedData[]"
}
],
"stateMutability": "view"
},
{
"name": "OwnerOwns",
"type": "function",
"inputs": [
{
"name": "owner",
"type": "address",
"internalType": "address"
},
{
"name": "chirpId",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "view"
},
{
"name": "ReorderChirp",
"type": "function",
"inputs": [
{
"name": "chirpId",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "newIndex",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "ReorderChirpPair",
"type": "function",
"inputs": [
{
"name": "chirpId",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "newIndex",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "UNIT_PER_CHIRP",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "allowance",
"type": "function",
"inputs": [
{
"name": "owner",
"type": "address",
"internalType": "address"
},
{
"name": "spender",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "approve",
"type": "function",
"inputs": [
{
"name": "spender",
"type": "address",
"internalType": "address"
},
{
"name": "value",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "nonpayable"
},
{
"name": "balanceOf",
"type": "function",
"inputs": [
{
"name": "account",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "cancelOwnershipHandover",
"type": "function",
"inputs": [],
"outputs": [],
"stateMutability": "payable"
},
{
"name": "completeOwnershipHandover",
"type": "function",
"inputs": [
{
"name": "pendingOwner",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "payable"
},
{
"name": "decimals",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint8",
"internalType": "uint8"
}
],
"stateMutability": "view"
},
{
"name": "hook",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "imageParams",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "contract IImageParams"
}
],
"stateMutability": "view"
},
{
"name": "isStarted",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "view"
},
{
"name": "maxBuy",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "name",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "string",
"internalType": "string"
}
],
"stateMutability": "view"
},
{
"name": "owner",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "result",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "ownershipHandoverExpiresAt",
"type": "function",
"inputs": [
{
"name": "pendingOwner",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "result",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "pool",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "randomSeedProvider",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "contract IRandomSeedProvider"
}
],
"stateMutability": "view"
},
{
"name": "renounceOwnership",
"type": "function",
"inputs": [],
"outputs": [],
"stateMutability": "payable"
},
{
"name": "requestOwnershipHandover",
"type": "function",
"inputs": [],
"outputs": [],
"stateMutability": "payable"
},
{
"name": "setHook",
"type": "function",
"inputs": [
{
"name": "newHook",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "setImageParamsProvider",
"type": "function",
"inputs": [
{
"name": "imageParamsProvider",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "setRandomSeedProvider",
"type": "function",
"inputs": [
{
"name": "_randomSeedProvider",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "start",
"type": "function",
"inputs": [
{
"name": "newPool",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "symbol",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "string",
"internalType": "string"
}
],
"stateMutability": "view"
},
{
"name": "totalSupply",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "transfer",
"type": "function",
"inputs": [
{
"name": "to",
"type": "address",
"internalType": "address"
},
{
"name": "value",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "nonpayable"
},
{
"name": "transferChirp",
"type": "function",
"inputs": [
{
"name": "to",
"type": "address",
"internalType": "address"
},
{
"name": "chirpId",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "transferChirpsList",
"type": "function",
"inputs": [
{
"name": "to",
"type": "address",
"internalType": "address"
},
{
"name": "chirpIds",
"type": "uint256[]",
"internalType": "uint256[]"
}
],
"outputs": [],
"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": "transferOwnership",
"type": "function",
"inputs": [
{
"name": "newOwner",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "payable"
}
]0x6080806040526004361015610012575f80fd5b5f3560e01c90816306fdde0314610e8857508063095ea7b314610e0657806316f0115b14610dde57806318160ddd14610dc15780631a77321014610d8f5780631b65d6a014610d5757806323b872dd14610c785780632569296214610c2f578063288a7f0714610b3f5780632ff2e9dc14610b1b578063313ce56714610b005780633dfd387314610abd5780634292da0b14610a7457806344fe6eac14610a4c578063544736e614610a2257806354d1f13d146109de5780635d82a2541461097a5780636151683a14610937578063678ad605146108ff57806368fab262146108d757806370a082311461089f57806370db69d61461087d578063715018a61461083457806377bc64441461081757806378628cdf146107815780637f5a7c7b1461075957806387191d501461070f5780638c979559146106f25780638da5cb5b146106c65780638f6533cd1461063f57806395d89b411461053b5780639df83b56146104d3578063a9059cbb146104a2578063b5d4515f1461045e578063c5477a591461041b578063dd0b281e14610395578063dd62ed3e14610345578063e2dae630146102cc578063e5fe3589146102aa578063f04e283e1461025d578063f2fde38b146102205763fee81cf4146101ea575f80fd5b3461021c57602036600319011261021c57610203610f6a565b63389a75e1600c525f52602080600c2054604051908152f35b5f80fd5b602036600319011261021c57610234610f6a565b61023c61151d565b8060601b156102505761024e90611539565b005b637448fbae5f526004601cfd5b602036600319011261021c57610271610f6a565b61027961151d565b63389a75e1600c52805f526020600c20908154421161029d575f61024e9255611539565b636f5e88185f526004601cfd5b3461021c575f36600319011261021c576020604051670de0b6b3a76400008152f35b3461021c57606036600319011261021c576102f56102e8610f6a565b6044359060243590611366565b6040518091602082016020835281518091526020604084019201905f5b818110610320575050500390f35b8251805185526020908101518186015286955060409094019390920191600101610312565b3461021c57604036600319011261021c5761035e610f6a565b610366610f80565b6001600160a01b039182165f908152600c60209081526040808320949093168252928352819020549051908152f35b3461021c57602036600319011261021c576103ae610f6a565b6011546001600160a01b031633036103e657601280546001600160a01b0319166001600160a01b039290921691909117905542601055005b60405162461bcd60e51b815260206004820152600d60248201526c6f6e6c7920666f7220686f6f6b60981b6044820152606490fd5b3461021c57602036600319011261021c57610434610f6a565b61043c61151d565b600a80546001600160a01b0319166001600160a01b0392909216919091179055005b3461021c57602036600319011261021c57602061049861047c610f6a565b6001600160a01b03165f90815260066020526040902054151590565b6040519015158152f35b3461021c57604036600319011261021c576104c86104be610f6a565b60243590336114a1565b602060405160018152f35b3461021c576104e136610f96565b335f52600460205260405f20825f5260205260ff60405f2054161561052c57335f52600160205260405f205481101561051d5761024e916111bb565b6370144c8360e11b5f5260045ffd5b6350f12e7d60e11b5f5260045ffd5b3461021c575f36600319011261021c576040515f600f548060011c90600181168015610635575b602083108114610621578285529081156105fd575060011461059f575b61059b8361058f81850382610ff8565b60405191829182610f40565b0390f35b919050600f5f527f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac802915f905b8082106105e35750909150810160200161058f61057f565b9192600181602092548385880101520191019092916105cb565b60ff191660208086019190915291151560051b8401909101915061058f905061057f565b634e487b7160e01b5f52602260045260245ffd5b91607f1691610562565b3461021c57604036600319011261021c57610658610f6a565b602435906106646111a3565b506001600160a01b03165f8181526001602052604090205482101561051d575f52600260205260405f20905f526020526040805f2054805f525f602052815f2054602083516106b281610fac565b838152019081528251918252516020820152f35b3461021c575f36600319011261021c57638b78c6d819546040516001600160a01b039091168152602090f35b3461021c575f36600319011261021c576020600854604051908152f35b3461021c5761071d36610f96565b335f52600460205260405f20825f5260205260ff60405f2054161561052c57335f52600160205260405f205481101561051d5761024e91611131565b3461021c575f36600319011261021c576011546040516001600160a01b039091168152602090f35b3461021c57604036600319011261021c5761079a610f6a565b6107c9602435335f52600460205260405f20815f526020526107c260ff60405f20541661103e565b82336114cc565b3315610804576001600160a01b038116156107f157670de0b6b3a764000061024e9133611576565b63ec442f0560e01b5f525f60045260245ffd5b634b637e8f60e11b5f525f60045260245ffd5b3461021c575f36600319011261021c576020600754604051908152f35b5f36600319011261021c5761084761151d565b5f638b78c6d819547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a35f638b78c6d81955005b3461021c575f36600319011261021c576020610897611090565b604051908152f35b3461021c57602036600319011261021c576001600160a01b036108c0610f6a565b165f52600b602052602060405f2054604051908152f35b3461021c575f36600319011261021c576009546040516001600160a01b039091168152602090f35b3461021c57602036600319011261021c576001600160a01b03610920610f6a565b165f526006602052602060405f2054604051908152f35b3461021c57602036600319011261021c57610950610f6a565b61095861151d565b600980546001600160a01b0319166001600160a01b0392909216919091179055005b3461021c57604036600319011261021c57610993610f6a565b6024359060018060a01b0316805f52600460205260405f20825f5260205260ff60405f2054161561052c575f52600360205260405f20905f52602052602060405f2054604051908152f35b5f36600319011261021c5763389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2005b3461021c575f36600319011261021c576012546040516001600160a01b0390911615158152602090f35b3461021c575f36600319011261021c57600a546040516001600160a01b039091168152602090f35b3461021c57604036600319011261021c576001600160a01b03610a95610f6a565b165f52600460205260405f206024355f52602052602060ff60405f2054166040519015158152f35b3461021c57602036600319011261021c57610ad6610f6a565b610ade61151d565b601180546001600160a01b0319166001600160a01b0392909216919091179055005b3461021c575f36600319011261021c57602060405160128152f35b3461021c575f36600319011261021c57602060405169021e19e0c9bab24000008152f35b3461021c57604036600319011261021c57610b58610f6a565b60243567ffffffffffffffff811161021c573660238201121561021c5780600401359067ffffffffffffffff821161021c576024810190602436918460051b01011161021c575f5b828110610be357505080670de0b6b3a76400000290670de0b6b3a7640000820403610bcf5761024e91336114a1565b634e487b7160e01b5f52601160045260245ffd5b600190335f52600460205260405f20610bfd82868661101a565b355f52602052610c1360ff60405f20541661103e565b610c29610c2182868661101a565b3586336114cc565b01610ba0565b5f36600319011261021c5763389a75e1600c52335f526202a30042016020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a2005b3461021c57606036600319011261021c57610c91610f6a565b610c99610f80565b6001600160a01b0382165f818152600c60209081526040808320338452909152902054909260443592915f198110610cd7575b506104c893506114a1565b838110610d3c578415610d29573315610d16576104c8945f52600c60205260405f2060018060a01b0333165f526020528360405f209103905584610ccc565b634a1406b160e11b5f525f60045260245ffd5b63e602df0560e01b5f525f60045260245ffd5b8390637dc7a0d960e11b5f523360045260245260445260645ffd5b3461021c57602036600319011261021c576001600160a01b03610d78610f6a565b165f526001602052602060405f2054604051908152f35b3461021c57602036600319011261021c576004355f526005602052602060018060a01b0360405f205416604051908152f35b3461021c575f36600319011261021c576020600d54604051908152f35b3461021c575f36600319011261021c576012546040516001600160a01b039091168152602090f35b3461021c57604036600319011261021c57610e1f610f6a565b602435903315610d29576001600160a01b0316908115610d1657335f52600c60205260405f20825f526020528060405f20556040519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b3461021c575f36600319011261021c575f600e548060011c90600181168015610f36575b602083108114610621578285529081156105fd5750600114610ed85761059b8361058f81850382610ff8565b919050600e5f527fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd915f905b808210610f1c5750909150810160200161058f61057f565b919260018160209254838588010152019101909291610f04565b91607f1691610eac565b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b038216820361021c57565b602435906001600160a01b038216820361021c57565b604090600319011261021c576004359060243590565b6040810190811067ffffffffffffffff821117610fc857604052565b634e487b7160e01b5f52604160045260245ffd5b60c0810190811067ffffffffffffffff821117610fc857604052565b90601f8019910116810190811067ffffffffffffffff821117610fc857604052565b919081101561102a5760051b0190565b634e487b7160e01b5f52603260045260245ffd5b1561104557565b60405162461bcd60e51b81526020600482015260096024820152683737ba1037bbb732b960b91b6044820152606490fd5b91908203918211610bcf57565b91908201809211610bcf57565b6012546001600160a01b03161561112d576110ad60105442611076565b8069021e19e0c9bab2400000029069021e19e0c9bab240000082048103610bcf5769065a4da25d3016c00000029080820460031490151715610bcf57620186a090046802b5e3af16b188000001806802b5e3af16b188000011610bcf5769021e19e0c9bab2400000811161111e5790565b5069021e19e0c9bab240000090565b5f90565b335f52600360205260405f20815f5260205260405f20549182811461119e57335f8181526002602090815260408083208584528083528184208054908890559484526003835281842096845286835281842095909555868352938152838220839055918152929052902055565b505050565b604051906111b082610fac565b5f6020838281520152565b335f52600360205260405f20905f5260205260405f20548082146112f157335f52600260205260405f20815f5260205260405f2054908083105f14611289575b82811161123557505b335f52600260205260405f20825f526020528060405f2055335f52600360205260405f20905f5260205260405f2055565b335f52600260205260405f20905f19810191818311610bcf575f83815260209182526040808220543380845260028552828420868552855282842082905583526003845281832090835290925220556111fb565b8281106112965750611204565b335f52600260205260405f20906001810191828211610bcf575f928352602090815260408084205433808652600284528286208587528452828620829055855260038352818520908552909152909120819055600101611289565b5050565b67ffffffffffffffff8111610fc85760051b60200190565b6040519061131c602083610ff8565b5f80835282815b82811061132f57505050565b60209060405161133e81610fac565b5f81525f8382015282828501015201611323565b805182101561102a5760209160051b010190565b6001600160a01b03165f818152600160205260409020549193909290919080156114915780850294808604821490151715610bcf5781851015611491576113c1916113b2869283611083565b90808211611489575b50611076565b6113ca816112f5565b6113d76040519182610ff8565b818152601f196113e6836112f5565b015f5b81811061146657505080935f5b8381106114065750505050909150565b8061141360019289611083565b835f52600260205260405f20905f5260205260405f2054805f525f60205260405f20546040519161144383610fac565b825260208201526114548286611352565b5261145f8185611352565b50016113f6565b60209060405161147581610fac565b5f81525f83820152828286010152016113e9565b90505f6113bb565b505091505061149e61130d565b90565b91906001600160a01b03831615610804576001600160a01b038116156107f1576114ca92611576565b565b919060207f982f79f8a29465d82cbc8543e4a91e8e040ee5231914b49319fc8ab782105d13916114fc84866116ee565b61150684826118e5565b6040519384526001600160a01b03908116941692a3565b638b78c6d81954330361152c57565b6382b429005f526004601cfd5b60018060a01b031680638b78c6d819547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3638b78c6d81955565b90916001600160a01b038216806116a05761159382600d54611083565b600d555b6001600160a01b03841690816116895782600d5403600d555b7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6020604051858152a36012546001600160a01b03161561119e576004926115f66111a3565b50600954604051630b747d9160e01b81529460209186919082906001600160a01b03165afa92831561167e575f93611648575b6114ca94506040519361163b85610fac565b84525f60208501526119cd565b92506020843d602011611676575b8161166360209383610ff8565b8101031261021c576114ca935192611629565b3d9150611656565b6040513d5f823e3d90fd5b815f52600b60205260405f208381540190556115b0565b805f52600b60205260405f20548281106116c9578290825f52600b6020520360405f2055611597565b9063391434e360e21b5f5260045260245260445260645ffd5b8015610bcf575f190190565b60018060a01b03811691825f52600360205260405f20815f5260205260405f2054835f52600160205260405f2054905f198201918211610bcf5781810361188b575b50835f52600260205260405f20905f526020525f6040812055825f52600360205260405f20815f526020525f6040812055825f52600160205260405f2061177781546116e2565b9055825f52600460205260405f20905f5260205260405f2060ff198154169055815f52600160205260405f205415908161186b575b506117b45750565b805f52600660205260405f20545f19810190808211610bcf576008545f19810192908311610bcf57828103611823575b50505f52600560205260405f206bffffffffffffffffffffffff60a01b81541690555f5260066020525f604081205561181e6008546116e2565b600855565b5f8381526005602090815260408083205493835280832080546001600160a01b0319166001600160a01b039590951694851790559282526006905290812091909155806117e4565b6001600160a01b03165f90815260066020526040812054151591506117ac565b845f52600260205260405f20825f5260205260405f2054855f52600260205260405f20825f526020528060405f2055855f52600360205260405f20905f5260205260405f20555f611730565b5f198114610bcf5760010190565b6001600160a01b0381165f8181526002602090815260408083206001808452828520805486529184528285208890558585528154600385528386208987528552928520839055938590529290915291936119829392909190611946906118d7565b9055835f52600460205260405f20905f5260205260405f20600160ff1982541617905560018060a01b03165f52600660205260405f2054151590565b1561198a5750565b6008545f52600560205260405f20816bffffffffffffffffffffffff60a01b8254161790556119ba6008546118d7565b90816008555f52600660205260405f2055565b9260018060a01b0360125416928315611d28576001600160a01b038516938414806120bc575b611da5575050815f52600b602052670de0b6b3a764000060405f2054046040519062db2eb560e51b8252836004830152602082602481305afa91821561167e575f92611d71575b5080821115611d6957611a4c91611076565b60018060a01b038216805f52600b602052670de0b6b3a764000060405f205404906040519062db2eb560e51b82526004820152602081602481305afa90811561167e575f91611d37575b5081811015611d2f57611aa891611076565b8115611d2857611ab7836120ce565b15611d21575b80821015611d1b575080915b82611c0a575b5090611ada91611076565b905f5b828110611aeb575b50505050565b60405162db2eb560e51b81526004810183905290602082602481305afa91821561167e575f92611bd7575b508115611bd1575f198201918211610bcf5760408051638f6533cd60e01b81526001600160a01b0387166004820152602481019390935282604481305afa91821561167e577f8596e3c10b1af02917669ae184d041588081b68612d361c399fb8f4e1a37be56602060019486935f91611ba3575b5051611b96818a6116ee565b604051908152a201611add565b611bc4915060403d8111611bca575b611bbc8183610ff8565b8101906120f2565b5f611b8a565b503d611bb2565b50611ae5565b9091506020813d8211611c02575b81611bf260209383610ff8565b8101031261021c5751905f611b16565b3d9150611be5565b611c13816120ce565b15611d0c575f5b838110611c28575b50611acf565b60405162db2eb560e51b81526004810186905290602082602481305afa91821561167e575f92611cd9575b508115611cd3575f198201918211610bcf5760408051638f6533cd60e01b81526001600160a01b0389166004820152602481019390935282604481305afa91821561167e57600192611caf915f91611cb5575b505184896114cc565b01611c1a565b611ccd915060403d8111611bca57611bbc8183610ff8565b5f611ca6565b50611c22565b9091506020813d8211611d04575b81611cf460209383610ff8565b8101031261021c5751905f611c53565b3d9150611ce7565b6324b8b71f60e01b5f5260045ffd5b91611ac9565b505f611abd565b5050505050565b50505f611aa8565b90506020813d602011611d61575b81611d5260209383610ff8565b8101031261021c57515f611a96565b3d9150611d45565b50505f611a4c565b9091506020813d602011611d9d575b81611d8d60209383610ff8565b8101031261021c5751905f611a3a565b3d9150611d80565b9093509091507f0000000000000000000000008319cc4c99b1b17ccae52a3d861412abd47e0cd96001600160a01b039081169083161461119e576012546001600160a01b03161561208957611df8611090565b811161205857670de0b6b3a76400009004915f5b838110611e195750505050565b600a5460405163f68de33d60e01b8152919060c090839060049082906001600160a01b03165afa801561167e575f90611fbb575b6001925065ff000000000060a060405192611e6784610fdc565b5f845263ff000000602085015f815262ff000060408701915f835260608801945f86525f60808a01525f878a015260ff611ea78d82604085015116612128565b16895260ff611eb98d82845116612128565b16825260ff611ece8d82602085015116612128565b16845260ff611ee38d82606085015116612128565b168652888c60ff89840151166064611efa83612147565b0610611f98575b5061ff00915060ff905116915160081b1617915160101b1617915160181b161764ff00000000608085015160201b161792015160281b1617611f446007546118d7565b9081600755815f525f60205260405f2055611f5f81866118e5565b6040519081527f6d70fdc5613039daeaf3532c9fd4f559118377a63084b62dfe76608f8e4ac04a6020848060a01b03871692a201611e0c565b60ff608081948f82611fae960152015116612128565b16868901525f888c611f01565b5060c0823d8211612050575b81611fd460c09383610ff8565b8101031261021c5760019161204660a060405192611ff184610fdc565b611ffa8161211a565b84526120086020820161211a565b60208501526120196040820161211a565b604085015261202a6060820161211a565b606085015261203b6080820161211a565b60808501520161211a565b60a0820152611e4d565b3d9150611fc7565b60405162461bcd60e51b8152602060048201526009602482015268189d5e481b1a5b5a5d60ba1b6044820152606490fd5b60405162461bcd60e51b815260206004820152600b60248201526a1b9bdd081cdd185c9d195960aa1b6044820152606490fd5b506001600160a01b03831615156119f3565b6012546001600160a01b03918216911681141590816120eb575090565b9050151590565b9081604091031261021c5760206040519161210c83610fac565b805183520151602082015290565b519060ff8216820361021c57565b60ff1680156121415761213c60ff92612147565b061690565b50505f90565b60208151910161215781516118d7565b8091526040519060208201928352604082015260408152612179606082610ff8565b5190209056fea2646970667358221220cf069e7f926687e243fdbded259ed122fce5cfc7c94873b758a8072dc390d62764736f6c634300081c0033
| Token | Symbol | Balance | Price | Value |
|---|---|---|---|---|
| DIH | 1 | $0.0000106 | $0 | |
| banana cat (bcat) | bcat | 15 | — | — |
| 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 | |||||||||
| Block | Age | Parent Transaction Hash | Type | Method | From | To | Value | |
|---|---|---|---|---|---|---|---|---|
| no internal transactions found for this address yet (traced blocks + on-demand) | ||||||||
| Txn Hash | Age | Event | Topics / Data |
|---|---|---|---|
| 0x6717ed…8bf56d | 2 days agoThu, 13 Aug 2026 03:11:05 UTC | 0x8596e3…be56 | [0] 0x000000000000…3bab4f46 data: 0x000000000000000000…000091c1 |
| 0x6717ed…8bf56d | 2 days agoThu, 13 Aug 2026 03:11:05 UTC | 0x8596e3…be56 | [0] 0x000000000000…3bab4f46 data: 0x000000000000000000…000091c2 |
| 0x6717ed…8bf56d | 2 days agoThu, 13 Aug 2026 03:11:05 UTC | 0x8596e3…be56 | [0] 0x000000000000…3bab4f46 data: 0x000000000000000000…000091c3 |
| 0x6717ed…8bf56d | 2 days agoThu, 13 Aug 2026 03:11:05 UTC | 0x8596e3…be56 | [0] 0x000000000000…3bab4f46 data: 0x000000000000000000…000091c4 |
| 0x6717ed…8bf56d | 2 days agoThu, 13 Aug 2026 03:11:05 UTC | 0x8596e3…be56 | [0] 0x000000000000…3bab4f46 data: 0x000000000000000000…000091c5 |
| 0x6717ed…8bf56d | 2 days agoThu, 13 Aug 2026 03:11:05 UTC | Transfer | [0] 0x000000000000…3bab4f46 [1] 0x000000000000…43e40951 data: 0x000000000000000000…330b6f80 |
| 0xe1f9f3…b44795 | 3 days agoWed, 12 Aug 2026 13:53:35 UTC | Approval | [0] 0x000000000000…19c7028d [1] 0x000000000000…e5d8eb13 data: 0x000000000000000000…00000000 |
| 0xe1f9f3…b44795 | 3 days agoWed, 12 Aug 2026 13:53:35 UTC | 0x8596e3…be56 | [0] 0x000000000000…1c5d8efa data: 0x000000000000000000…000077cc |
| 0xe1f9f3…b44795 | 3 days agoWed, 12 Aug 2026 13:53:35 UTC | 0x8596e3…be56 | [0] 0x000000000000…1c5d8efa data: 0x000000000000000000…000077cb |
| 0xe1f9f3…b44795 | 3 days agoWed, 12 Aug 2026 13:53:35 UTC | 0x8596e3…be56 | [0] 0x000000000000…1c5d8efa data: 0x000000000000000000…000077ca |
| 0xe1f9f3…b44795 | 3 days agoWed, 12 Aug 2026 13:53:35 UTC | 0x8596e3…be56 | [0] 0x000000000000…1c5d8efa data: 0x000000000000000000…000077c9 |
| 0xe1f9f3…b44795 | 3 days agoWed, 12 Aug 2026 13:53:35 UTC | 0x8596e3…be56 | [0] 0x000000000000…1c5d8efa data: 0x000000000000000000…000077c8 |
| 0xe1f9f3…b44795 | 3 days agoWed, 12 Aug 2026 13:53:35 UTC | 0x8596e3…be56 | [0] 0x000000000000…1c5d8efa data: 0x000000000000000000…000077c7 |
| 0xe1f9f3…b44795 | 3 days agoWed, 12 Aug 2026 13:53:35 UTC | 0x8596e3…be56 | [0] 0x000000000000…1c5d8efa data: 0x000000000000000000…000077c6 |
| 0xe1f9f3…b44795 | 3 days agoWed, 12 Aug 2026 13:53:35 UTC | 0x8596e3…be56 | [0] 0x000000000000…1c5d8efa data: 0x000000000000000000…000077c5 |
| 0xe1f9f3…b44795 | 3 days agoWed, 12 Aug 2026 13:53:35 UTC | 0x8596e3…be56 | [0] 0x000000000000…1c5d8efa data: 0x000000000000000000…000077c4 |
| 0xe1f9f3…b44795 | 3 days agoWed, 12 Aug 2026 13:53:35 UTC | 0x8596e3…be56 | [0] 0x000000000000…1c5d8efa data: 0x000000000000000000…000077c3 |
| 0xe1f9f3…b44795 | 3 days agoWed, 12 Aug 2026 13:53:35 UTC | 0x8596e3…be56 | [0] 0x000000000000…1c5d8efa data: 0x000000000000000000…000077c2 |
| 0xe1f9f3…b44795 | 3 days agoWed, 12 Aug 2026 13:53:35 UTC | 0x8596e3…be56 | [0] 0x000000000000…1c5d8efa data: 0x000000000000000000…000077c1 |
| 0xe1f9f3…b44795 | 3 days agoWed, 12 Aug 2026 13:53:35 UTC | Transfer | [0] 0x000000000000…1c5d8efa [1] 0x000000000000…43e40951 data: 0x000000000000000000…bcb0b80b |
| 0xe1f9f3…b44795 | 3 days agoWed, 12 Aug 2026 13:53:35 UTC | 0x982f79…5d13 | [0] 0x000000000000…19c7028d [1] 0x000000000000…1c5d8efa data: 0x000000000000000000…000077c1 |
| 0xe1f9f3…b44795 | 3 days agoWed, 12 Aug 2026 13:53:35 UTC | 0x982f79…5d13 | [0] 0x000000000000…19c7028d [1] 0x000000000000…1c5d8efa data: 0x000000000000000000…000077c2 |
| 0xe1f9f3…b44795 | 3 days agoWed, 12 Aug 2026 13:53:35 UTC | 0x982f79…5d13 | [0] 0x000000000000…19c7028d [1] 0x000000000000…1c5d8efa data: 0x000000000000000000…000077c3 |
| 0xe1f9f3…b44795 | 3 days agoWed, 12 Aug 2026 13:53:35 UTC | 0x982f79…5d13 | [0] 0x000000000000…19c7028d [1] 0x000000000000…1c5d8efa data: 0x000000000000000000…000077c4 |
| 0xe1f9f3…b44795 | 3 days agoWed, 12 Aug 2026 13:53:35 UTC | 0x982f79…5d13 | [0] 0x000000000000…19c7028d [1] 0x000000000000…1c5d8efa data: 0x000000000000000000…000077c5 |
| Transaction Hash | Method | Block | Age | From | To | Amount | Token | ||
|---|---|---|---|---|---|---|---|---|---|
| 0x7a4d0f09…b449ed | Transfer | 17,307,088 | 23 days agoThu, 23 Jul 2026 13:01:17 UTC | 0xcaf7…5d11 | IN | 0x84a5…5545 | $0.001 DIH | ||
| 0xf04f5b4f…90d92d | Transfer | 9,708,342 | 32 days agoTue, 14 Jul 2026 17:26:41 UTC | 0xd2e4…b70c | IN | 0x84a5…5545 | 15 bcat | banana cat (bcat) |
| Transaction Hash | Method ? | Block | Age | From | To | Amount | Txn Fee ? | ||
|---|---|---|---|---|---|---|---|---|---|
| 0xb2383c…39eaea | Approve | 34,526,357 | 3 days agoWed, 12 Aug 2026 12:24:53 UTC | 0x3696…f5ed | IN | Chirps | $0.000 ETH | 0.00000235 | |
| 0xafdeae…6b8fe9 | Approve | 32,329,421 | 6 days agoSun, 09 Aug 2026 23:25:06 UTC | 0x7bec…ff05 | IN | Chirps | $0.000 ETH | 0.00000128 | |
| 0xd59fb4…91440e | Approve | 30,928,650 | 7 days agoSat, 08 Aug 2026 08:26:27 UTC | 0xe246…6004 | IN | Chirps | $0.000 ETH | 0.00000071 | |
| 0xa5295a…37638c | Approve | 29,767,298 | 9 days agoFri, 07 Aug 2026 00:07:05 UTC | 0x36f2…aee7 | IN | Chirps | $0.000 ETH | 0.00000147 | |
| 0x1f1209…9f7177 | Approve | 27,763,400 | 11 days agoTue, 04 Aug 2026 16:20:48 UTC | 0xea13…8a37 | IN | Chirps | $0.000 ETH | 0.00000095 | |
| 0xe82648…1b14c4 | Approve | 24,259,103 | 15 days agoFri, 31 Jul 2026 14:45:07 UTC | 0xd8d9…b1a6 | IN | Chirps | $0.000 ETH | 0.00000092 | |
| 0xb49315…8ea206 | Approve | 23,832,786 | 15 days agoFri, 31 Jul 2026 02:52:41 UTC | 0x8653…1a3d | IN | Chirps | $0.000 ETH | 0.00000094 | |
| 0x05ceca…1199fa | Approve | 23,367,683 | 16 days agoThu, 30 Jul 2026 13:55:55 UTC | 0x9f9d…8bb3 | IN | Chirps | $0.000 ETH | 0.00000101 | |
| 0x46c2ee…b89c4b | Approve | 23,070,877 | 16 days agoThu, 30 Jul 2026 05:39:30 UTC | 0x9cd2…9ee3 | IN | Chirps | $0.000 ETH | 0.00000048 | |
| 0xed5e85…8fc3bd | Approve | 23,070,813 | 16 days agoThu, 30 Jul 2026 05:39:24 UTC | 0xa2f3…443b | IN | Chirps | $0.000 ETH | 0.00000092 | |
| 0x6e132a…3d970c | Approve | 22,949,636 | 16 days agoThu, 30 Jul 2026 02:16:45 UTC | 0xa308…ab79 | IN | Chirps | $0.000 ETH | 0.00000050 | |
| 0xd1ecb4…74fd0d | Approve | 21,188,551 | 19 days agoTue, 28 Jul 2026 01:13:18 UTC | 0x6f2d…c370 | IN | Chirps | $0.000 ETH | 0.00000165 | |
| 0x2fa36e…98a5e0 | Approve | 20,302,386 | 20 days agoMon, 27 Jul 2026 00:29:33 UTC | 0xe6a3…4280 | IN | Chirps | $0.000 ETH | 0.00000111 | |
| 0xd90f99…ad29e6 | Approve | 20,025,301 | 20 days agoSun, 26 Jul 2026 16:46:46 UTC | 0x2c3c…5c9f | IN | Chirps | $0.000 ETH | 0.00000239 | |
| 0xd5b6ea…8b7b72 | Approve | 19,159,453 | 21 days agoSat, 25 Jul 2026 16:38:44 UTC | 0x5ac2…1d48 | IN | Chirps | $0.000 ETH | 0.00000187 | |
| 0xef4dc4…fb11ba | Approve | 18,775,555 | 21 days agoSat, 25 Jul 2026 05:56:01 UTC | 0x159f…e87d | IN | Chirps | $0.000 ETH | 0.00000443 | |
| 0xa98983…65ad3a | Approve | 18,218,540 | 22 days agoFri, 24 Jul 2026 14:25:06 UTC | 0xd39b…3a06 | IN | Chirps | $0.000 ETH | 0.00000509 | |
| 0x21c54d…a7e518 | Approve | 18,213,900 | 22 days agoFri, 24 Jul 2026 14:17:21 UTC | 0xff95…9a40 | IN | Chirps | $0.000 ETH | 0.00000508 | |
| 0x6847ae…3ba365 | Approve | 18,093,831 | 22 days agoFri, 24 Jul 2026 10:56:30 UTC | 0xf344…9e2e | IN | Chirps | $0.000 ETH | 0.00000510 | |
| 0xa3f19c…b55b96 | Approve | 17,829,171 | 22 days agoFri, 24 Jul 2026 03:33:36 UTC | 0x2c3c…5c9f | IN | Chirps | $0.000 ETH | 0.00000557 | |
| 0x6510ce…62565f | Approve | 17,822,430 | 22 days agoFri, 24 Jul 2026 03:22:19 UTC | 0x3e7d…2a42 | IN | Chirps | $0.000 ETH | 0.00000554 | |
| 0xe9d06e…784e86 | Approve | 17,468,986 | 23 days agoThu, 23 Jul 2026 17:31:47 UTC | 0xf266…e165 | IN | Chirps | $0.000 ETH | 0.00000545 | |
| 0x2a1770…6a3892 | Approve | 17,439,471 | 23 days agoThu, 23 Jul 2026 16:42:23 UTC | 0xba86…8a6a | IN | Chirps | $0.000 ETH | 0.00000534 | |
| 0x31c2c9…efa35d | Approve | 17,382,168 | 23 days agoThu, 23 Jul 2026 15:06:40 UTC | 0xb18b…6d99 | IN | Chirps | $0.000 ETH | 0.00000274 | |
| 0xfe7ead…65bf60 | Approve | 17,188,147 | 23 days agoThu, 23 Jul 2026 09:42:26 UTC | 0x5dff…6b69 | IN | Chirps | $0.000 ETH | 0.00000477 |