// SPDX-License-Identifier: MIT
pragma solidity ^0.8.24;
import {IERC20} from "openzeppelin-contracts/contracts/token/ERC20/IERC20.sol";
import {SafeERC20} from "openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol";
import {Ownable} from "openzeppelin-contracts/contracts/access/Ownable.sol";
import {ReentrancyGuard} from "openzeppelin-contracts/contracts/utils/ReentrancyGuard.sol";
import {IActivationManager} from "../interfaces/IActivationManager.sol";
import {IBrokerTokenBound} from "../interfaces/IBrokerTokenBound.sol";
import {IStonkSwapRouter} from "../interfaces/IStonkSwapRouter.sol";
import {
ZeroAddress,
Unauthorized,
RouterNotAllowlisted,
StockListNotSet,
NoActiveWeight,
DropBelowThreshold,
DropRoundInProgress,
NoDropRoundInProgress,
PublicStartNotConfigured,
InvalidConfig
} from "../libs/Errors.sol";
import {Events} from "../libs/Events.sol";
/// @title StockBooster
/// @notice The pingable reward engine for StonkBrokers. Accrues ETH (70% of every Anvil-market
/// trade fee is forwarded here by StonkNFTAMMVault), and when triggered:
/// 1. swaps its ETH balance into the 3 owner-assigned stock tokens in EQUAL THIRDS through an
/// allowlisted router adapter (never arbitrary routers/calldata), then
/// 2. push-airdrops those stock tokens into the token-bound wallets of ACTIVATED brokers,
/// pro-rata by activation-tier weight, in bounded pages (never one unbounded loop).
///
/// Exactly 3 stock token addresses are always assigned; the owner can swap which three at any
/// time between drop rounds. Rewards go to the NFT's canonical ERC-6551 wallet (tokenWallet),
/// never to the holder's EOA, so the stock stays with the NFT if it is later sold.
///
/// A drop is a two-phase round to stay gas-bounded:
/// startDrop() — swap ETH -> 3 stocks, snapshot totalActiveWeight, open the round
/// continueDrop() — pay up to maxRecipients activated brokers per call until the round closes
/// Per-token round tags prevent double-payment even if the active set mutates between pages
/// (activations/transfers mid-round). Anything unpaid (dust, skipped tokens) simply rolls into
/// the next round's pot.
contract StockBooster is Ownable, ReentrancyGuard {
using SafeERC20 for IERC20;
uint8 public constant STOCK_COUNT = 3;
IBrokerTokenBound public immutable nft;
IActivationManager public immutable activation;
address[STOCK_COUNT] public stockTokens;
mapping(address => bool) public allowlistedRouters;
address public router;
/// @notice Minimum accrued ETH before a drop may start (keeper spam guard).
uint256 public minDropWei = 0.01 ether;
mapping(address => bool) public keepers;
/// @notice Owner-maintained slippage FLOOR for the permissionless start path, per stock:
/// the minimum stock-token wei that must come out per 1 ETH (1e18 wei) swapped in. It is the
/// on-chain guard that makes startDropPublic safe — a public caller cannot choose minOut, so
/// the swap can never be sandwiched below this rate. 0 = unset => startDropPublic disabled for
/// that stock (the keeper path is unaffected; it supplies its own off-chain-quoted minOuts).
/// Set conservatively (e.g. 90-98% of the live two-hop rate) and refresh as price drifts;
/// if it ever sits ABOVE the true rate the only effect is that public starts revert (no loss)
/// until refreshed — the keeper can always still start via startDrop.
mapping(address => uint256) public minStockPerEth;
// --- Drop round state ---
uint256 public currentRound; // 0 = never dropped; incremented when a round starts
bool public roundActive;
uint256 public roundTotalWeight;
uint256 public roundCursor;
address[STOCK_COUNT] public roundStocks;
uint256[STOCK_COUNT] public roundAmounts; // purchased this round
uint256[STOCK_COUNT] public roundRemaining; // still undistributed this round
/// @dev Last round each tokenId was paid in; guards double-pay across pages.
mapping(uint256 => uint256) public paidRound;
modifier onlyOwnerOrKeeper() {
if (msg.sender != owner() && !keepers[msg.sender]) revert Unauthorized();
_;
}
constructor(address nft_, address activation_, address owner_) Ownable(owner_) {
if (nft_ == address(0) || activation_ == address(0)) revert ZeroAddress();
nft = IBrokerTokenBound(nft_);
activation = IActivationManager(activation_);
}
/// @notice Accrues ETH fee shares forwarded by the AMM vault (or anyone topping up rewards).
receive() external payable {}
// ------------------------------------------------------------------
// Owner config
// ------------------------------------------------------------------
/// @notice Assigns the 3 stock token contracts drops are swapped into. Always exactly 3;
/// changeable any time between rounds.
function setStockTokens(address[STOCK_COUNT] calldata stocks) external onlyOwner {
if (roundActive) revert DropRoundInProgress();
for (uint256 i = 0; i < STOCK_COUNT; i++) {
if (stocks[i] == address(0)) revert ZeroAddress();
for (uint256 j = i + 1; j < STOCK_COUNT; j++) {
if (stocks[i] == stocks[j]) revert InvalidConfig(); // 3 distinct CAs required
}
}
stockTokens = stocks;
emit Events.StockTokensUpdated(stocks[0], stocks[1], stocks[2]);
}
function setRouterAllowlisted(address router_, bool allowed) external onlyOwner {
if (router_ == address(0)) revert ZeroAddress();
allowlistedRouters[router_] = allowed;
emit Events.RouterUpdated(router_, allowed);
}
/// @notice Selects the active router adapter; must already be allowlisted.
function setRouter(address router_) external onlyOwner {
if (roundActive) revert DropRoundInProgress();
if (!allowlistedRouters[router_]) revert RouterNotAllowlisted();
router = router_;
}
function setMinDropWei(uint256 minDropWei_) external onlyOwner {
minDropWei = minDropWei_;
}
function setKeeper(address keeper, bool enabled) external onlyOwner {
if (keeper == address(0)) revert ZeroAddress();
keepers[keeper] = enabled;
}
/// @notice Sets the permissionless-start slippage floor for `stock` (min stock wei out per
/// 1 ETH in). Setting all three assigned stocks to a non-zero rate enables startDropPublic;
/// setting any back to 0 disables it. Owner-only — the floor is the trust anchor for the
/// public start path, so only governance moves it.
function setMinStockPerEth(address stock, uint256 ratePerEth) external onlyOwner {
if (stock == address(0)) revert ZeroAddress();
minStockPerEth[stock] = ratePerEth;
emit Events.MinStockPerEthUpdated(stock, ratePerEth);
}
// ------------------------------------------------------------------
// Drop lifecycle
// ------------------------------------------------------------------
/// @notice Phase 1 (keeper/owner): swap the whole ETH balance into the 3 assigned stocks
/// (equal thirds, last leg takes the division remainder) and open a distribution round.
/// `minOuts` are the keeper's off-chain-quoted slippage floors for each leg. This path stays
/// gated because it trusts the caller's minOuts — see startDropPublic for the guarded open
/// anyone may call.
function startDrop(uint256[STOCK_COUNT] calldata minOuts, uint256 deadline)
public
onlyOwnerOrKeeper
nonReentrant
{
uint256[STOCK_COUNT] memory m;
for (uint256 i = 0; i < STOCK_COUNT; i++) {
m[i] = minOuts[i];
}
_openRound(m, deadline);
}
/// @notice Phase 1 (permissionless): identical swap-and-open, but the per-leg minOut is
/// derived ON-CHAIN from the owner-set `minStockPerEth` floor instead of trusting the caller.
/// This lets any participant (the frontend gates it to StonkBroker holders) kick off a drop
/// without the treasury being sandwichable: the caller has no slippage lever to zero out.
/// Reverts with PublicStartNotConfigured until the owner has set a floor for all 3 stocks.
function startDropPublic(uint256 deadline) external nonReentrant {
uint256 balance = address(this).balance;
uint256[STOCK_COUNT] memory legs = _legSplit(balance);
uint256[STOCK_COUNT] memory minOuts;
for (uint256 i = 0; i < STOCK_COUNT; i++) {
address stock = stockTokens[i];
uint256 rate = minStockPerEth[stock];
if (stock == address(0) || rate == 0) revert PublicStartNotConfigured();
minOuts[i] = (legs[i] * rate) / 1e18;
}
_openRound(minOuts, deadline);
}
/// @dev Equal-thirds split of `balance`; the last leg absorbs the division remainder. Shared
/// by _openRound (the actual swap amounts) and startDropPublic (the floor minOut base) so the
/// two can never drift apart.
function _legSplit(uint256 balance) internal pure returns (uint256[STOCK_COUNT] memory legs) {
uint256 third = balance / STOCK_COUNT;
legs[0] = third;
legs[1] = third;
legs[2] = balance - 2 * third;
}
/// @dev The swap-and-open core, shared by both start paths. `minOuts` are already resolved by
/// the caller (keeper quote) or by the on-chain floor (public path); everything else — the
/// round guards, the equal-thirds swap, the pot snapshot, and the round bookkeeping — is
/// identical, so both entrypoints share exactly one audited implementation.
function _openRound(uint256[STOCK_COUNT] memory minOuts, uint256 deadline) internal {
if (roundActive) revert DropRoundInProgress();
if (!allowlistedRouters[router]) revert RouterNotAllowlisted();
uint256 balance = address(this).balance;
if (balance < minDropWei || balance == 0) revert DropBelowThreshold();
uint256 totalWeight = activation.totalActiveWeight();
if (totalWeight == 0) revert NoActiveWeight();
uint256[STOCK_COUNT] memory legs = _legSplit(balance);
for (uint256 i = 0; i < STOCK_COUNT; i++) {
address stock = stockTokens[i];
if (stock == address(0)) revert StockListNotSet();
// Defense-in-depth: when a floor is configured, it backstops EVERY start path —
// even a misconfigured keeper quote of 0 can never swap below the owner-set rate.
uint256 floorOut = (legs[i] * minStockPerEth[stock]) / 1e18;
uint256 minOut = minOuts[i] >= floorOut ? minOuts[i] : floorOut;
IStonkSwapRouter(router).swapExactETHForTokens{value: legs[i]}(stock, minOut, address(this), deadline);
// Snapshot the full held balance (swap output + any dust left from prior rounds
// or direct donations) so nothing is ever stranded.
uint256 pot = IERC20(stock).balanceOf(address(this));
roundStocks[i] = stock;
roundAmounts[i] = pot;
roundRemaining[i] = pot;
}
currentRound += 1;
roundActive = true;
roundTotalWeight = totalWeight;
roundCursor = 0;
emit Events.DropStarted(currentRound, balance, totalWeight);
}
/// @notice Phase 2: pays up to `maxRecipients` activated brokers their pro-rata share of
/// this round's stock, into each NFT's token-bound wallet. Call repeatedly until the round
/// closes. Shares use tier weight over the snapshot total; per-token round tags prevent
/// double-pay if the active set shifts between pages, and transfers are capped at the
/// round's remaining pool so drift can never overdraw. Unpaid remainders roll forward.
///
/// @dev PERMISSIONLESS BY DESIGN: anyone may pay the gas to advance or finish an in-progress
/// round. This takes no price/slippage parameters (the swap already happened in startDrop),
/// cannot double-pay (the paidRound guard), and cannot overdraw (the roundRemaining cap), so
/// there is no economic decision a caller can abuse. Opening it (a) lets brokers claim their
/// own dividends without waiting on the keeper and (b) is a liveness backstop so a large or
/// keeper-stalled round can always be finished. Starting a round (the ETH->stock swap) stays
/// keeper/owner-gated because that IS a price-sensitive action — see startDrop/executeDrop.
function continueDrop(uint256 maxRecipients) public nonReentrant {
if (!roundActive) revert NoDropRoundInProgress();
if (maxRecipients == 0) revert InvalidConfig();
uint256 round = currentRound;
uint256 totalWeight = roundTotalWeight;
uint256 paid = 0;
while (paid < maxRecipients) {
uint256 count = activation.activeCount();
if (roundCursor >= count) break;
uint256 tokenId = activation.activeTokenAt(roundCursor);
roundCursor += 1;
if (paidRound[tokenId] == round) continue; // already paid this round (set shifted)
paidRound[tokenId] = round;
uint256 weight = activation.activeWeight(tokenId);
if (weight == 0) continue;
address wallet = nft.tokenWallet(tokenId);
if (wallet == address(0)) continue;
for (uint256 i = 0; i < STOCK_COUNT; i++) {
uint256 share = (roundAmounts[i] * weight) / totalWeight;
if (share > roundRemaining[i]) share = roundRemaining[i];
if (share == 0) continue;
// Non-reverting transfer (lesson from The Index's StockDistributor + fee hook
// stack on Robinhood Chain): real stock tokens can carry transfer restrictions,
// and one poisoned recipient must never brick the whole round. A failed leg is
// skipped and its share rolls into the next round's pot.
if (_tryTransfer(roundStocks[i], wallet, share)) {
roundRemaining[i] -= share;
} else {
emit Events.DropTransferSkipped(round, tokenId, roundStocks[i], share);
}
}
emit Events.DropPaid(round, tokenId, wallet);
paid += 1;
}
if (roundCursor >= activation.activeCount()) {
roundActive = false;
emit Events.DropFinished(round, roundCursor);
}
}
/// @notice Convenience one-call ping for small active sets: swap then distribute up to
/// `maxRecipients` in the same transaction (finish any remainder with continueDrop()).
function executeDrop(uint256[STOCK_COUNT] calldata minOuts, uint256 deadline, uint256 maxRecipients)
external
onlyOwnerOrKeeper
{
startDrop(minOuts, deadline);
continueDrop(maxRecipients);
}
// ------------------------------------------------------------------
// Emergency escape hatches (owner only)
// ------------------------------------------------------------------
/// @notice Aborts a stuck round (e.g. a stock token that reverts for every recipient).
/// Already-paid recipients keep what they got; the undistributed remainder stays here and
/// is swept into the next round's pot by the balance snapshot in startDrop.
function cancelRound() external onlyOwner {
if (!roundActive) revert NoDropRoundInProgress();
roundActive = false;
emit Events.DropCancelled(currentRound, roundCursor);
}
/// @notice Owner rescue for stranded ETH — mirrors StockDistributor.recoverExcess on
/// Robinhood Chain: an admin valve so funds can never be permanently stuck. Blocked
/// mid-round so it can't touch a round's committed pot.
function rescueEth(address to, uint256 amount) external onlyOwner {
if (roundActive) revert DropRoundInProgress();
if (to == address(0)) revert ZeroAddress();
(bool ok,) = payable(to).call{value: amount}("");
require(ok, "eth send failed");
emit Events.BoosterEthRescued(to, amount);
}
/// @notice Owner rescue for stranded ERC20s (delisted stock tokens, mistaken sends).
function rescueToken(address tokenAddr, address to, uint256 amount) external onlyOwner {
if (roundActive) revert DropRoundInProgress();
if (to == address(0)) revert ZeroAddress();
IERC20(tokenAddr).safeTransfer(to, amount);
emit Events.BoosterTokenRescued(tokenAddr, to, amount);
}
/// @dev safeTransfer semantics without the revert: returns false on a reverting or
/// false-returning token instead of aborting the page.
function _tryTransfer(address tokenAddr, address to, uint256 amount) internal returns (bool) {
(bool ok, bytes memory data) =
tokenAddr.call(abi.encodeWithSelector(IERC20.transfer.selector, to, amount));
return ok && (data.length == 0 || abi.decode(data, (bool)));
}
// ------------------------------------------------------------------
// Views
// ------------------------------------------------------------------
function pendingEth() external view returns (uint256) {
return address(this).balance;
}
function getStockTokens() external view returns (address[STOCK_COUNT] memory) {
return stockTokens;
}
function roundState()
external
view
returns (
uint256 round,
bool active,
uint256 cursor,
uint256 totalWeight,
uint256[STOCK_COUNT] memory amounts,
uint256[STOCK_COUNT] memory remaining
)
{
return (currentRound, roundActive, roundCursor, roundTotalWeight, roundAmounts, roundRemaining);
}
}[
{
"type": "constructor",
"inputs": [
{
"name": "nft_",
"type": "address",
"internalType": "address"
},
{
"name": "activation_",
"type": "address",
"internalType": "address"
},
{
"name": "owner_",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "nonpayable"
},
{
"name": "DropBelowThreshold",
"type": "error",
"inputs": []
},
{
"name": "DropRoundInProgress",
"type": "error",
"inputs": []
},
{
"name": "InvalidConfig",
"type": "error",
"inputs": []
},
{
"name": "NoActiveWeight",
"type": "error",
"inputs": []
},
{
"name": "NoDropRoundInProgress",
"type": "error",
"inputs": []
},
{
"name": "OwnableInvalidOwner",
"type": "error",
"inputs": [
{
"name": "owner",
"type": "address",
"internalType": "address"
}
]
},
{
"name": "OwnableUnauthorizedAccount",
"type": "error",
"inputs": [
{
"name": "account",
"type": "address",
"internalType": "address"
}
]
},
{
"name": "PublicStartNotConfigured",
"type": "error",
"inputs": []
},
{
"name": "ReentrancyGuardReentrantCall",
"type": "error",
"inputs": []
},
{
"name": "RouterNotAllowlisted",
"type": "error",
"inputs": []
},
{
"name": "SafeERC20FailedOperation",
"type": "error",
"inputs": [
{
"name": "token",
"type": "address",
"internalType": "address"
}
]
},
{
"name": "StockListNotSet",
"type": "error",
"inputs": []
},
{
"name": "Unauthorized",
"type": "error",
"inputs": []
},
{
"name": "ZeroAddress",
"type": "error",
"inputs": []
},
{
"name": "BoosterEthRescued",
"type": "event",
"inputs": [
{
"name": "to",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "amount",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "BoosterTokenRescued",
"type": "event",
"inputs": [
{
"name": "token",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "to",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "amount",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "DropCancelled",
"type": "event",
"inputs": [
{
"name": "round",
"type": "uint256",
"indexed": true,
"internalType": "uint256"
},
{
"name": "cursorAtCancel",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "DropFinished",
"type": "event",
"inputs": [
{
"name": "round",
"type": "uint256",
"indexed": true,
"internalType": "uint256"
},
{
"name": "recipients",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "DropPaid",
"type": "event",
"inputs": [
{
"name": "round",
"type": "uint256",
"indexed": true,
"internalType": "uint256"
},
{
"name": "tokenId",
"type": "uint256",
"indexed": true,
"internalType": "uint256"
},
{
"name": "wallet",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"name": "DropStarted",
"type": "event",
"inputs": [
{
"name": "round",
"type": "uint256",
"indexed": true,
"internalType": "uint256"
},
{
"name": "ethSpent",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "totalWeightSnapshot",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "DropTransferSkipped",
"type": "event",
"inputs": [
{
"name": "round",
"type": "uint256",
"indexed": true,
"internalType": "uint256"
},
{
"name": "tokenId",
"type": "uint256",
"indexed": true,
"internalType": "uint256"
},
{
"name": "stock",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "amount",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "MinStockPerEthUpdated",
"type": "event",
"inputs": [
{
"name": "stock",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "ratePerEth",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "OwnershipTransferred",
"type": "event",
"inputs": [
{
"name": "previousOwner",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "newOwner",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"name": "RouterUpdated",
"type": "event",
"inputs": [
{
"name": "router",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "allowed",
"type": "bool",
"indexed": false,
"internalType": "bool"
}
],
"anonymous": false
},
{
"name": "StockTokensUpdated",
"type": "event",
"inputs": [
{
"name": "a",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "b",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "c",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"name": "STOCK_COUNT",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint8",
"internalType": "uint8"
}
],
"stateMutability": "view"
},
{
"name": "activation",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "contract IActivationManager"
}
],
"stateMutability": "view"
},
{
"name": "allowlistedRouters",
"type": "function",
"inputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "view"
},
{
"name": "cancelRound",
"type": "function",
"inputs": [],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "continueDrop",
"type": "function",
"inputs": [
{
"name": "maxRecipients",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "currentRound",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "executeDrop",
"type": "function",
"inputs": [
{
"name": "minOuts",
"type": "uint256[3]",
"internalType": "uint256[3]"
},
{
"name": "deadline",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "maxRecipients",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "getStockTokens",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address[3]",
"internalType": "address[3]"
}
],
"stateMutability": "view"
},
{
"name": "keepers",
"type": "function",
"inputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "view"
},
{
"name": "minDropWei",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "minStockPerEth",
"type": "function",
"inputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "nft",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "contract IBrokerTokenBound"
}
],
"stateMutability": "view"
},
{
"name": "owner",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "paidRound",
"type": "function",
"inputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "pendingEth",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "renounceOwnership",
"type": "function",
"inputs": [],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "rescueEth",
"type": "function",
"inputs": [
{
"name": "to",
"type": "address",
"internalType": "address"
},
{
"name": "amount",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "rescueToken",
"type": "function",
"inputs": [
{
"name": "tokenAddr",
"type": "address",
"internalType": "address"
},
{
"name": "to",
"type": "address",
"internalType": "address"
},
{
"name": "amount",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "roundActive",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "view"
},
{
"name": "roundAmounts",
"type": "function",
"inputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "roundCursor",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "roundRemaining",
"type": "function",
"inputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "roundState",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "round",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "active",
"type": "bool",
"internalType": "bool"
},
{
"name": "cursor",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "totalWeight",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "amounts",
"type": "uint256[3]",
"internalType": "uint256[3]"
},
{
"name": "remaining",
"type": "uint256[3]",
"internalType": "uint256[3]"
}
],
"stateMutability": "view"
},
{
"name": "roundStocks",
"type": "function",
"inputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "roundTotalWeight",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "router",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "setKeeper",
"type": "function",
"inputs": [
{
"name": "keeper",
"type": "address",
"internalType": "address"
},
{
"name": "enabled",
"type": "bool",
"internalType": "bool"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "setMinDropWei",
"type": "function",
"inputs": [
{
"name": "minDropWei_",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "setMinStockPerEth",
"type": "function",
"inputs": [
{
"name": "stock",
"type": "address",
"internalType": "address"
},
{
"name": "ratePerEth",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "setRouter",
"type": "function",
"inputs": [
{
"name": "router_",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "setRouterAllowlisted",
"type": "function",
"inputs": [
{
"name": "router_",
"type": "address",
"internalType": "address"
},
{
"name": "allowed",
"type": "bool",
"internalType": "bool"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "setStockTokens",
"type": "function",
"inputs": [
{
"name": "stocks",
"type": "address[3]",
"internalType": "address[3]"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "startDrop",
"type": "function",
"inputs": [
{
"name": "minOuts",
"type": "uint256[3]",
"internalType": "uint256[3]"
},
{
"name": "deadline",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "startDropPublic",
"type": "function",
"inputs": [
{
"name": "deadline",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "stockTokens",
"type": "function",
"inputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "transferOwnership",
"type": "function",
"inputs": [
{
"name": "newOwner",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "receive",
"stateMutability": "payable"
}
]0x60c03461018157601f611f0d38819003918201601f19168301916001600160401b03831184841017610185578084926060946040528339810103126101815761004781610199565b9061005460208201610199565b906001600160a01b039061006a90604001610199565b1691821561016e575f80546001600160a01b031981168517825560405194916001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a360017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055662386f26fc100006006556001600160a01b03168015801561015d575b61014e576080526001600160a01b031660a052611d5f90816101ae8239608051818181610c0a015281816111770152611619015260a051818181610be401528181611151015281816117230152611a2a0152f35b63d92e233d60e01b5f5260045ffd5b506001600160a01b038216156100fa565b631e4fbdf760e01b5f525f60045260245ffd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036101815756fe6080604052600436101561001a575b3615610018575f80fd5b005b5f3560e01c8063016ef088146117b1578063027471b01461178f57806313de60bc146117525780633629c8de1461170e57806338df3583146116d85780633bbd64bc1461169b5780633ceec32a146116655780633d59613e1461164857806347ccca021461160457806347ee1c70146115d85780634c0c2be5146115bd5780635e1a28c6146110a25780636181192e14610ba55780636958791a14610b88578063710042b414610b6b578063715018a614610b1457806371f7158114610ae85780637dd5d0e514610a5457806382561890146108f657806386a594d01461088a5780638821bd86146107e55780638888e54a146107c45780638a19c8bc146107a75780638da363171461077d5780638da5cb5b14610756578063a60ca1b6146106e0578063a97b23d41461060f578063b11a0151146105f4578063c0d786551461057f578063d1b9e85314610538578063d7cc3d351461047f578063e0ba8cea14610397578063e5711e8b14610293578063e9eb0def1461025b578063f2fde38b146101d65763f887ea400361000e57346101d2575f3660031901126101d2576005546040516001600160a01b039091168152602090f35b5f80fd5b346101d25760203660031901126101d2576101ef611820565b6101f7611976565b6001600160a01b03168015610248575f80546001600160a01b03198116831782556001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a3005b631e4fbdf760e01b5f525f60045260245ffd5b346101d25760203660031901126101d2576001600160a01b0361027c611820565b165f526008602052602060405f2054604051908152f35b346101d25760603660031901126101d2576102ac611820565b6024356001600160a01b03811691908290036101d257604435906102ce611976565b60ff600a54166103885782156103795760018060a01b0316906040519063a9059cbb60e01b5f52836004528060245260205f60448180875af160015f511481161561035a575b826040521561034757816020917fa9658a94f26b6c41fc95a2c8eaccc5dc7bb2fe45a6da9c3d762ac954bc6b01449352a3005b82635274afe760e01b5f5260045260245ffd5b600181151661037057833b15153d151616610314565b823d5f823e3d90fd5b63d92e233d60e01b5f5260045ffd5b633a7cec4560e11b5f5260045ffd5b346101d2575f3660031901126101d2576060806040516103b7828261188c565b369037806040516103c8828261188c565b36903760095460ff600a541691600c5490600b549060405192836010905f905b60038210610469575050506103fd828561188c565b6040519560135f885b6003821061045357610140896104518c6104478c8c8c8c8c610428838861188c565b6040519889521515602089015260408801528601526080850190611865565b60e0830190611865565bf35b6001602081928554815201930191019091610406565b60016020819285548152019301910190916103e8565b346101d25760403660031901126101d257610498611820565b602435906104a4611976565b60ff600a5416610388576001600160a01b0316908115610379575f80808084865af16104ce611937565b50156105015760207fd2be3237eb4602b180587db4c530856a1d77da349e570a293fed5769446cf29491604051908152a2005b60405162461bcd60e51b815260206004820152600f60248201526e195d1a081cd95b990819985a5b1959608a1b6044820152606490fd5b346101d25761054636611836565b9061054f611976565b6001600160a01b031690811561037957610018915f52600760205260405f209060ff801983541691151516179055565b346101d25760203660031901126101d257610598611820565b6105a0611976565b60ff600a5416610388576001600160a01b03165f8181526004602052604090205460ff16156105e5576bffffffffffffffffffffffff60a01b60055416176005555f80f35b630528c62560e51b5f5260045ffd5b346101d2575f3660031901126101d257602060405160038152f35b346101d25760203660031901126101d25761062861199c565b61063147611cbe565b60405161063f60608261188c565b60603682375f5b60038110156106c15760018101546001600160a01b03165f8181526008602052604090205491901580156106b9575b6106aa57670de0b6b3a76400006106986001936106928488611912565b516118c2565b046106a38285611912565b5201610646565b63386a737160e11b5f5260045ffd5b508115610675565b6106cd600435836119d4565b60015f80516020611d0a83398151915255005b346101d2576106ee36611836565b906106f7611976565b6001600160a01b03169081156103795760207fab5814e9f0dc78998a367cdeb77f1143370431cce307f90adb6db02f49fd768a91835f526004825261074b8160405f209060ff801983541691151516179055565b6040519015158152a2005b346101d2575f3660031901126101d2575f546040516001600160a01b039091168152602090f35b346101d25760203660031901126101d2576004355f526016602052602060405f2054604051908152f35b346101d2575f3660031901126101d2576020600954604051908152f35b346101d25760203660031901126101d2576107dd611976565b600435600655005b346101d25760803660031901126101d257366064116101d2575f546001600160a01b031633141580610873575b6108655761081e61199c565b60405161082c60608261188c565b60603682375f5b60038110610847576106cd606435836119d4565b80610853600192611900565b3561085e8285611912565b5201610833565b6282b42960e81b5f5260045ffd5b50335f52600760205260ff60405f20541615610812565b346101d2575f3660031901126101d2576108a2611976565b600a5460ff8116156108e75760ff1916600a556009547fee24557ed18f80bf0717d3eef386db2452a0d0783f9ec985fd3355239628036f6020600c54604051908152a2005b631da3529960e31b5f5260045ffd5b346101d25760603660031901126101d257366064116101d257610917611976565b60ff600a5416610388575f5b600381106109bb5760045f5b600381106109a0576004356001600160a01b038116908181036101d257506024356001600160a01b038116908181036101d257506044356001600160a01b03811692908381036101d257507fa985bf539bd20a97bbd194956ed11015bd3d8322c5bcb92ec09e226aeacef6165f80a4005b60019060206109ae84611923565b930192818301550161092f565b6001600160a01b036109d46109cf83611900565b611923565b16156103795760018101808211610a40575b600381106109f75750600101610923565b610a036109cf83611900565b6001600160a01b03610a176109cf84611900565b6001600160a01b03909216911614610a31576001016109e6565b6306b7c75960e31b5f5260045ffd5b634e487b7160e01b5f52601160045260245ffd5b346101d2575f3660031901126101d257606080604051610a74828261188c565b36903760405160015f825b60038210610ac857505050610a94828261188c565b604051905f825b60038210610aa857505050f35b82516001600160a01b031681526020928301926001929092019101610a9b565b82546001600160a01b031681526001928301929190910190602001610a7f565b346101d25760203660031901126101d25760043560038110156101d25760209060130154604051908152f35b346101d2575f3660031901126101d257610b2c611976565b5f80546001600160a01b0319811682556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b346101d2575f3660031901126101d2576020600c54604051908152f35b346101d2575f3660031901126101d2576020600654604051908152f35b346101d25760203660031901126101d257600435610bc161199c565b60ff600a5416156108e7578015610a3157600954600b5490916001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116925f917f000000000000000000000000000000000000000000000000000000000000000016905b838310610cf5575b5050505060046020600c549260405192838092634331ed1f60e01b82525afa908115610cea575f91610cb8575b50811015610c7c5760015f80516020611d0a83398151915255005b60207ff37cd5e9c8e09ef905b10bb36512f016d147a88e3a5d850289ec0b41fb20eae89160ff19600a5416600a55604051908152a280806106cd565b90506020813d602011610ce2575b81610cd36020938361188c565b810103126101d2575183610c61565b3d9150610cc6565b6040513d5f823e3d90fd5b909294919360405195634331ed1f60e01b8752602087600481855afa968715610cea575f9761106f575b50600c54968710156110655760405163daf0e9c560e01b81526004810188905296602088602481865afa978815610cea575f98611032575b5060018101809111610a4057600c55865f5260166020528360405f20541461102857865f5260166020528360405f205560405191633745b93960e01b8352876004840152602083602481845afa928315610cea575f93610ff5575b508215610fea5760405163a6e62aef60e01b8152600481018990526020816024818a5afa908115610cea575f91610fa9575b506001600160a01b0316958615610f9c575f5b6003811015610f5a57610e1786610e128784601001546118c2565b6118d5565b905f81601301908154808511610f50575b508315610f455780610eab578c8a8c5f8087600d019260018060a01b038454169082604051602081019263a9059cbb60e01b845260248201528c604482015260448152610e7660648261188c565b51925af1610e82611937565b81610f05575b5015610ebf57505050610eab57610ea260019382546118f3565b90555b01610df7565b634e487b7160e01b5f52603260045260245ffd5b546040519687526001966001600160a01b039091169450919250907f25abab1d48e2c4ba1fbc16fe65ed99f5b5ad70a450bdce902c7fe59b35ca634c90602090a4610ea5565b8051801592508215610f1a575b50505f610e88565b9060209395508094508092500103126101d2576020015180151581036101d2578e918c915f80610f12565b505060019150610ea5565b9350505f8d610e28565b509591949790969250877f9ed1c1f58754141bbe67b1d5e2404b820034d670bf4e74251243ff100385c36d5f80a460018101809111610a4057915b9290610c2c565b9550959396509050610f95565b90506020813d8211610fe2575b81610fc36020938361188c565b810103126101d257516001600160a01b03811681036101d25789610de4565b3d9150610fb6565b959396509050610f95565b9092506020813d8211611020575b816110106020938361188c565b810103126101d257519188610db2565b3d9150611003565b9094929550610f95565b9097506020813d821161105d575b8161104d6020938361188c565b810103126101d257519688610d57565b3d9150611040565b5093829550610c34565b9096506020813d821161109a575b8161108a6020938361188c565b810103126101d257519587610d1f565b3d915061107d565b346101d25760a03660031901126101d257366064116101d2575f54608435906001600160a01b031633141580806115a6575b610865578061158f575b610865576110ea61199c565b6040516110f860608261188c565b60603682375f5b60038110611571575061111590606435906119d4565b60015f80516020611d0a8339815191525561112e61199c565b60ff600a5416156108e7578015610a3157600954600b5490916001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116925f917f000000000000000000000000000000000000000000000000000000000000000016905b8383106111e7575050505060046020600c549260405192838092634331ed1f60e01b82525afa908115610cea575f91610cb85750811015610c7c5760015f80516020611d0a83398151915255005b909294919360405195634331ed1f60e01b8752602087600481855afa968715610cea575f9761153e575b50600c54968710156110655760405163daf0e9c560e01b81526004810188905296602088602481865afa978815610cea575f9861150b575b5060018101809111610a4057600c55865f5260166020528360405f20541461150157865f5260166020528360405f205560405191633745b93960e01b8352876004840152602083602481845afa928315610cea575f936114ce575b5082156114c35760405163a6e62aef60e01b8152600481018990526020816024818a5afa908115610cea575f91611482575b506001600160a01b0316958615611475575f5b60038110156114335761130486610e128784601001546118c2565b905f81601301908154808511611429575b50831561141e5780610eab578c8a8c5f8087600d019260018060a01b038454169082604051602081019263a9059cbb60e01b845260248201528c60448201526044815261136360648261188c565b51925af161136f611937565b816113de575b501561139857505050610eab5761138f60019382546118f3565b90555b016112e9565b546040519687526001966001600160a01b039091169450919250907f25abab1d48e2c4ba1fbc16fe65ed99f5b5ad70a450bdce902c7fe59b35ca634c90602090a4611392565b80518015925082156113f3575b50505f611375565b9060209395508094508092500103126101d2576020015180151581036101d2578e918c915f806113eb565b505060019150611392565b9350505f8d611315565b509591949790969250877f9ed1c1f58754141bbe67b1d5e2404b820034d670bf4e74251243ff100385c36d5f80a460018101809111610a4057915b9290611199565b955095939650905061146e565b90506020813d82116114bb575b8161149c6020938361188c565b810103126101d257516001600160a01b03811681036101d257896112d6565b3d915061148f565b95939650905061146e565b9092506020813d82116114f9575b816114e96020938361188c565b810103126101d2575191886112a4565b3d91506114dc565b909492955061146e565b9097506020813d8211611536575b816115266020938361188c565b810103126101d257519688611249565b3d9150611519565b9096506020813d8211611569575b816115596020938361188c565b810103126101d257519587611211565b3d915061154c565b8061157d600192611900565b356115888285611912565b52016110ff565b50335f52600760205260ff60405f205416156110de565b50335f52600760205260ff60405f205416156110d4565b346101d2575f3660031901126101d257602047604051908152f35b346101d25760203660031901126101d25760043560038110156101d25760209060100154604051908152f35b346101d2575f3660031901126101d2576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346101d2575f3660031901126101d2576020600b54604051908152f35b346101d25760203660031901126101d25760043560038110156101d257600d01546040516001600160a01b039091168152602090f35b346101d25760203660031901126101d2576001600160a01b036116bc611820565b165f526007602052602060ff60405f2054166040519015158152f35b346101d25760203660031901126101d25760043560038110156101d257600101546040516001600160a01b039091168152602090f35b346101d2575f3660031901126101d2576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346101d25760203660031901126101d2576001600160a01b03611773611820565b165f526004602052602060ff60405f2054166040519015158152f35b346101d2575f3660031901126101d257602060ff600a54166040519015158152f35b346101d25760403660031901126101d2576117ca611820565b602435906117d6611976565b6001600160a01b03169081156103795760207fae42ba8c0c96dc15777d92c1ac8da0b8d5f05f82bbbe2107046149c98159f74191835f52600882528060405f2055604051908152a2005b600435906001600160a01b03821682036101d257565b60409060031901126101d2576004356001600160a01b03811681036101d2579060243580151581036101d25790565b905f905b6003821061187657505050565b6020806001928551815201930191019091611869565b90601f8019910116810190811067ffffffffffffffff8211176118ae57604052565b634e487b7160e01b5f52604160045260245ffd5b81810292918115918404141715610a4057565b81156118df570490565b634e487b7160e01b5f52601260045260245ffd5b91908203918211610a4057565b6003811015610eab5760051b60040190565b906003811015610eab5760051b0190565b356001600160a01b03811681036101d25790565b3d15611971573d9067ffffffffffffffff82116118ae5760405191611966601f8201601f19166020018461188c565b82523d5f602084013e565b606090565b5f546001600160a01b0316330361198957565b63118cdaa760e01b5f523360045260245ffd5b60025f80516020611d0a83398151915254146119c55760025f80516020611d0a83398151915255565b633ee5aeb560e01b5f5260045ffd5b909160ff600a5416610388576005546001600160a01b03165f9081526004602052604090205460ff16156105e557479160065483108015611cb6575b611ca7576040516345ace92560e01b8152916020836004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa928315610cea575f93611c73575b508215611c6457611a7284611cbe565b925f5b6003811015611c035760018101546001600160a01b0316908115611bf457670de0b6b3a7640000611abd611aa98389611912565b51845f52600860205260405f2054906118c2565b0480611ac98388611912565b5110611bef5750611ada8186611912565b515b6005546001600160a01b0316906020908a90608490611afb868c611912565b516040519586948593633843c49360e11b85528a6004860152602485015230604485015260648401525af18015610cea57611bc1575b506040516370a0823160e01b815230600482015291602083602481845afa908115610cea575f91611b8d575b6001935082600d01906bffffffffffffffffffffffff60a01b825416179055808260100155816013015501611a75565b90506020833d8211611bb9575b81611ba76020938361188c565b810103126101d2576001925190611b5d565b3d9150611b9a565b6020813d8211611be7575b81611bd96020938361188c565b810103126101d25751611b31565b3d9150611bcc565b611adc565b636f1e08ff60e11b5f5260045ffd5b509392509350506009549160018301809311610a40577fa27816b3a3cb796825a7e958970e31f0836574e1eb09ddc08f3dcf2d3adb483c9160409184600955600160ff19600a541617600a5580600b555f600c5582519182526020820152a2565b6398f199fd60e01b5f5260045ffd5b9092506020813d602011611c9f575b81611c8f6020938361188c565b810103126101d25751915f611a62565b3d9150611c82565b6339fa814760e21b5f5260045ffd5b508215611a10565b90604051611ccd60608261188c565b60603682376003830480825260208201819052909283916001600160ff1b0381168103610a4057604091611d049160011b906118f3565b91015256fe9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00a2646970667358221220ad47a55e1c5bb606e7c84a575334cb19f0069434ca77d477e30e7f34d36e072f64736f6c634300081a0033000000000000000000000000ba29669f3afc933b281cd3ec5873154d41c5983d0000000000000000000000009a42121a719ae9c3a3fa56cde843e110d6ce3cb6000000000000000000000000b668382cf44038a3e8140e789060f6a809787cda
0x6080604052600436101561001a575b3615610018575f80fd5b005b5f3560e01c8063016ef088146117b1578063027471b01461178f57806313de60bc146117525780633629c8de1461170e57806338df3583146116d85780633bbd64bc1461169b5780633ceec32a146116655780633d59613e1461164857806347ccca021461160457806347ee1c70146115d85780634c0c2be5146115bd5780635e1a28c6146110a25780636181192e14610ba55780636958791a14610b88578063710042b414610b6b578063715018a614610b1457806371f7158114610ae85780637dd5d0e514610a5457806382561890146108f657806386a594d01461088a5780638821bd86146107e55780638888e54a146107c45780638a19c8bc146107a75780638da363171461077d5780638da5cb5b14610756578063a60ca1b6146106e0578063a97b23d41461060f578063b11a0151146105f4578063c0d786551461057f578063d1b9e85314610538578063d7cc3d351461047f578063e0ba8cea14610397578063e5711e8b14610293578063e9eb0def1461025b578063f2fde38b146101d65763f887ea400361000e57346101d2575f3660031901126101d2576005546040516001600160a01b039091168152602090f35b5f80fd5b346101d25760203660031901126101d2576101ef611820565b6101f7611976565b6001600160a01b03168015610248575f80546001600160a01b03198116831782556001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a3005b631e4fbdf760e01b5f525f60045260245ffd5b346101d25760203660031901126101d2576001600160a01b0361027c611820565b165f526008602052602060405f2054604051908152f35b346101d25760603660031901126101d2576102ac611820565b6024356001600160a01b03811691908290036101d257604435906102ce611976565b60ff600a54166103885782156103795760018060a01b0316906040519063a9059cbb60e01b5f52836004528060245260205f60448180875af160015f511481161561035a575b826040521561034757816020917fa9658a94f26b6c41fc95a2c8eaccc5dc7bb2fe45a6da9c3d762ac954bc6b01449352a3005b82635274afe760e01b5f5260045260245ffd5b600181151661037057833b15153d151616610314565b823d5f823e3d90fd5b63d92e233d60e01b5f5260045ffd5b633a7cec4560e11b5f5260045ffd5b346101d2575f3660031901126101d2576060806040516103b7828261188c565b369037806040516103c8828261188c565b36903760095460ff600a541691600c5490600b549060405192836010905f905b60038210610469575050506103fd828561188c565b6040519560135f885b6003821061045357610140896104518c6104478c8c8c8c8c610428838861188c565b6040519889521515602089015260408801528601526080850190611865565b60e0830190611865565bf35b6001602081928554815201930191019091610406565b60016020819285548152019301910190916103e8565b346101d25760403660031901126101d257610498611820565b602435906104a4611976565b60ff600a5416610388576001600160a01b0316908115610379575f80808084865af16104ce611937565b50156105015760207fd2be3237eb4602b180587db4c530856a1d77da349e570a293fed5769446cf29491604051908152a2005b60405162461bcd60e51b815260206004820152600f60248201526e195d1a081cd95b990819985a5b1959608a1b6044820152606490fd5b346101d25761054636611836565b9061054f611976565b6001600160a01b031690811561037957610018915f52600760205260405f209060ff801983541691151516179055565b346101d25760203660031901126101d257610598611820565b6105a0611976565b60ff600a5416610388576001600160a01b03165f8181526004602052604090205460ff16156105e5576bffffffffffffffffffffffff60a01b60055416176005555f80f35b630528c62560e51b5f5260045ffd5b346101d2575f3660031901126101d257602060405160038152f35b346101d25760203660031901126101d25761062861199c565b61063147611cbe565b60405161063f60608261188c565b60603682375f5b60038110156106c15760018101546001600160a01b03165f8181526008602052604090205491901580156106b9575b6106aa57670de0b6b3a76400006106986001936106928488611912565b516118c2565b046106a38285611912565b5201610646565b63386a737160e11b5f5260045ffd5b508115610675565b6106cd600435836119d4565b60015f80516020611d0a83398151915255005b346101d2576106ee36611836565b906106f7611976565b6001600160a01b03169081156103795760207fab5814e9f0dc78998a367cdeb77f1143370431cce307f90adb6db02f49fd768a91835f526004825261074b8160405f209060ff801983541691151516179055565b6040519015158152a2005b346101d2575f3660031901126101d2575f546040516001600160a01b039091168152602090f35b346101d25760203660031901126101d2576004355f526016602052602060405f2054604051908152f35b346101d2575f3660031901126101d2576020600954604051908152f35b346101d25760203660031901126101d2576107dd611976565b600435600655005b346101d25760803660031901126101d257366064116101d2575f546001600160a01b031633141580610873575b6108655761081e61199c565b60405161082c60608261188c565b60603682375f5b60038110610847576106cd606435836119d4565b80610853600192611900565b3561085e8285611912565b5201610833565b6282b42960e81b5f5260045ffd5b50335f52600760205260ff60405f20541615610812565b346101d2575f3660031901126101d2576108a2611976565b600a5460ff8116156108e75760ff1916600a556009547fee24557ed18f80bf0717d3eef386db2452a0d0783f9ec985fd3355239628036f6020600c54604051908152a2005b631da3529960e31b5f5260045ffd5b346101d25760603660031901126101d257366064116101d257610917611976565b60ff600a5416610388575f5b600381106109bb5760045f5b600381106109a0576004356001600160a01b038116908181036101d257506024356001600160a01b038116908181036101d257506044356001600160a01b03811692908381036101d257507fa985bf539bd20a97bbd194956ed11015bd3d8322c5bcb92ec09e226aeacef6165f80a4005b60019060206109ae84611923565b930192818301550161092f565b6001600160a01b036109d46109cf83611900565b611923565b16156103795760018101808211610a40575b600381106109f75750600101610923565b610a036109cf83611900565b6001600160a01b03610a176109cf84611900565b6001600160a01b03909216911614610a31576001016109e6565b6306b7c75960e31b5f5260045ffd5b634e487b7160e01b5f52601160045260245ffd5b346101d2575f3660031901126101d257606080604051610a74828261188c565b36903760405160015f825b60038210610ac857505050610a94828261188c565b604051905f825b60038210610aa857505050f35b82516001600160a01b031681526020928301926001929092019101610a9b565b82546001600160a01b031681526001928301929190910190602001610a7f565b346101d25760203660031901126101d25760043560038110156101d25760209060130154604051908152f35b346101d2575f3660031901126101d257610b2c611976565b5f80546001600160a01b0319811682556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b346101d2575f3660031901126101d2576020600c54604051908152f35b346101d2575f3660031901126101d2576020600654604051908152f35b346101d25760203660031901126101d257600435610bc161199c565b60ff600a5416156108e7578015610a3157600954600b5490916001600160a01b037f0000000000000000000000009a42121a719ae9c3a3fa56cde843e110d6ce3cb68116925f917f000000000000000000000000ba29669f3afc933b281cd3ec5873154d41c5983d16905b838310610cf5575b5050505060046020600c549260405192838092634331ed1f60e01b82525afa908115610cea575f91610cb8575b50811015610c7c5760015f80516020611d0a83398151915255005b60207ff37cd5e9c8e09ef905b10bb36512f016d147a88e3a5d850289ec0b41fb20eae89160ff19600a5416600a55604051908152a280806106cd565b90506020813d602011610ce2575b81610cd36020938361188c565b810103126101d2575183610c61565b3d9150610cc6565b6040513d5f823e3d90fd5b909294919360405195634331ed1f60e01b8752602087600481855afa968715610cea575f9761106f575b50600c54968710156110655760405163daf0e9c560e01b81526004810188905296602088602481865afa978815610cea575f98611032575b5060018101809111610a4057600c55865f5260166020528360405f20541461102857865f5260166020528360405f205560405191633745b93960e01b8352876004840152602083602481845afa928315610cea575f93610ff5575b508215610fea5760405163a6e62aef60e01b8152600481018990526020816024818a5afa908115610cea575f91610fa9575b506001600160a01b0316958615610f9c575f5b6003811015610f5a57610e1786610e128784601001546118c2565b6118d5565b905f81601301908154808511610f50575b508315610f455780610eab578c8a8c5f8087600d019260018060a01b038454169082604051602081019263a9059cbb60e01b845260248201528c604482015260448152610e7660648261188c565b51925af1610e82611937565b81610f05575b5015610ebf57505050610eab57610ea260019382546118f3565b90555b01610df7565b634e487b7160e01b5f52603260045260245ffd5b546040519687526001966001600160a01b039091169450919250907f25abab1d48e2c4ba1fbc16fe65ed99f5b5ad70a450bdce902c7fe59b35ca634c90602090a4610ea5565b8051801592508215610f1a575b50505f610e88565b9060209395508094508092500103126101d2576020015180151581036101d2578e918c915f80610f12565b505060019150610ea5565b9350505f8d610e28565b509591949790969250877f9ed1c1f58754141bbe67b1d5e2404b820034d670bf4e74251243ff100385c36d5f80a460018101809111610a4057915b9290610c2c565b9550959396509050610f95565b90506020813d8211610fe2575b81610fc36020938361188c565b810103126101d257516001600160a01b03811681036101d25789610de4565b3d9150610fb6565b959396509050610f95565b9092506020813d8211611020575b816110106020938361188c565b810103126101d257519188610db2565b3d9150611003565b9094929550610f95565b9097506020813d821161105d575b8161104d6020938361188c565b810103126101d257519688610d57565b3d9150611040565b5093829550610c34565b9096506020813d821161109a575b8161108a6020938361188c565b810103126101d257519587610d1f565b3d915061107d565b346101d25760a03660031901126101d257366064116101d2575f54608435906001600160a01b031633141580806115a6575b610865578061158f575b610865576110ea61199c565b6040516110f860608261188c565b60603682375f5b60038110611571575061111590606435906119d4565b60015f80516020611d0a8339815191525561112e61199c565b60ff600a5416156108e7578015610a3157600954600b5490916001600160a01b037f0000000000000000000000009a42121a719ae9c3a3fa56cde843e110d6ce3cb68116925f917f000000000000000000000000ba29669f3afc933b281cd3ec5873154d41c5983d16905b8383106111e7575050505060046020600c549260405192838092634331ed1f60e01b82525afa908115610cea575f91610cb85750811015610c7c5760015f80516020611d0a83398151915255005b909294919360405195634331ed1f60e01b8752602087600481855afa968715610cea575f9761153e575b50600c54968710156110655760405163daf0e9c560e01b81526004810188905296602088602481865afa978815610cea575f9861150b575b5060018101809111610a4057600c55865f5260166020528360405f20541461150157865f5260166020528360405f205560405191633745b93960e01b8352876004840152602083602481845afa928315610cea575f936114ce575b5082156114c35760405163a6e62aef60e01b8152600481018990526020816024818a5afa908115610cea575f91611482575b506001600160a01b0316958615611475575f5b60038110156114335761130486610e128784601001546118c2565b905f81601301908154808511611429575b50831561141e5780610eab578c8a8c5f8087600d019260018060a01b038454169082604051602081019263a9059cbb60e01b845260248201528c60448201526044815261136360648261188c565b51925af161136f611937565b816113de575b501561139857505050610eab5761138f60019382546118f3565b90555b016112e9565b546040519687526001966001600160a01b039091169450919250907f25abab1d48e2c4ba1fbc16fe65ed99f5b5ad70a450bdce902c7fe59b35ca634c90602090a4611392565b80518015925082156113f3575b50505f611375565b9060209395508094508092500103126101d2576020015180151581036101d2578e918c915f806113eb565b505060019150611392565b9350505f8d611315565b509591949790969250877f9ed1c1f58754141bbe67b1d5e2404b820034d670bf4e74251243ff100385c36d5f80a460018101809111610a4057915b9290611199565b955095939650905061146e565b90506020813d82116114bb575b8161149c6020938361188c565b810103126101d257516001600160a01b03811681036101d257896112d6565b3d915061148f565b95939650905061146e565b9092506020813d82116114f9575b816114e96020938361188c565b810103126101d2575191886112a4565b3d91506114dc565b909492955061146e565b9097506020813d8211611536575b816115266020938361188c565b810103126101d257519688611249565b3d9150611519565b9096506020813d8211611569575b816115596020938361188c565b810103126101d257519587611211565b3d915061154c565b8061157d600192611900565b356115888285611912565b52016110ff565b50335f52600760205260ff60405f205416156110de565b50335f52600760205260ff60405f205416156110d4565b346101d2575f3660031901126101d257602047604051908152f35b346101d25760203660031901126101d25760043560038110156101d25760209060100154604051908152f35b346101d2575f3660031901126101d2576040517f000000000000000000000000ba29669f3afc933b281cd3ec5873154d41c5983d6001600160a01b03168152602090f35b346101d2575f3660031901126101d2576020600b54604051908152f35b346101d25760203660031901126101d25760043560038110156101d257600d01546040516001600160a01b039091168152602090f35b346101d25760203660031901126101d2576001600160a01b036116bc611820565b165f526007602052602060ff60405f2054166040519015158152f35b346101d25760203660031901126101d25760043560038110156101d257600101546040516001600160a01b039091168152602090f35b346101d2575f3660031901126101d2576040517f0000000000000000000000009a42121a719ae9c3a3fa56cde843e110d6ce3cb66001600160a01b03168152602090f35b346101d25760203660031901126101d2576001600160a01b03611773611820565b165f526004602052602060ff60405f2054166040519015158152f35b346101d2575f3660031901126101d257602060ff600a54166040519015158152f35b346101d25760403660031901126101d2576117ca611820565b602435906117d6611976565b6001600160a01b03169081156103795760207fae42ba8c0c96dc15777d92c1ac8da0b8d5f05f82bbbe2107046149c98159f74191835f52600882528060405f2055604051908152a2005b600435906001600160a01b03821682036101d257565b60409060031901126101d2576004356001600160a01b03811681036101d2579060243580151581036101d25790565b905f905b6003821061187657505050565b6020806001928551815201930191019091611869565b90601f8019910116810190811067ffffffffffffffff8211176118ae57604052565b634e487b7160e01b5f52604160045260245ffd5b81810292918115918404141715610a4057565b81156118df570490565b634e487b7160e01b5f52601260045260245ffd5b91908203918211610a4057565b6003811015610eab5760051b60040190565b906003811015610eab5760051b0190565b356001600160a01b03811681036101d25790565b3d15611971573d9067ffffffffffffffff82116118ae5760405191611966601f8201601f19166020018461188c565b82523d5f602084013e565b606090565b5f546001600160a01b0316330361198957565b63118cdaa760e01b5f523360045260245ffd5b60025f80516020611d0a83398151915254146119c55760025f80516020611d0a83398151915255565b633ee5aeb560e01b5f5260045ffd5b909160ff600a5416610388576005546001600160a01b03165f9081526004602052604090205460ff16156105e557479160065483108015611cb6575b611ca7576040516345ace92560e01b8152916020836004817f0000000000000000000000009a42121a719ae9c3a3fa56cde843e110d6ce3cb66001600160a01b03165afa928315610cea575f93611c73575b508215611c6457611a7284611cbe565b925f5b6003811015611c035760018101546001600160a01b0316908115611bf457670de0b6b3a7640000611abd611aa98389611912565b51845f52600860205260405f2054906118c2565b0480611ac98388611912565b5110611bef5750611ada8186611912565b515b6005546001600160a01b0316906020908a90608490611afb868c611912565b516040519586948593633843c49360e11b85528a6004860152602485015230604485015260648401525af18015610cea57611bc1575b506040516370a0823160e01b815230600482015291602083602481845afa908115610cea575f91611b8d575b6001935082600d01906bffffffffffffffffffffffff60a01b825416179055808260100155816013015501611a75565b90506020833d8211611bb9575b81611ba76020938361188c565b810103126101d2576001925190611b5d565b3d9150611b9a565b6020813d8211611be7575b81611bd96020938361188c565b810103126101d25751611b31565b3d9150611bcc565b611adc565b636f1e08ff60e11b5f5260045ffd5b509392509350506009549160018301809311610a40577fa27816b3a3cb796825a7e958970e31f0836574e1eb09ddc08f3dcf2d3adb483c9160409184600955600160ff19600a541617600a5580600b555f600c5582519182526020820152a2565b6398f199fd60e01b5f5260045ffd5b9092506020813d602011611c9f575b81611c8f6020938361188c565b810103126101d25751915f611a62565b3d9150611c82565b6339fa814760e21b5f5260045ffd5b508215611a10565b90604051611ccd60608261188c565b60603682376003830480825260208201819052909283916001600160ff1b0381168103610a4057604091611d049160011b906118f3565b91015256fe9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00a2646970667358221220ad47a55e1c5bb606e7c84a575334cb19f0069434ca77d477e30e7f34d36e072f64736f6c634300081a0033
| Token | Symbol | Balance | Price | Value |
|---|---|---|---|---|
Apple • Robinhood Token (AAPL) | AAPL | 0.000000 | $310.9 | $0 |
NVIDIA • Robinhood Token (NVDA) | NVDA | 0.000000 | $225.35 | $0 |
Amazon • Robinhood Token (AMZN) | AMZN | 0.000000 | — | — |
| Transaction Hash | Method | Block | Age | From | To | Type | Item | ||
|---|---|---|---|---|---|---|---|---|---|
| no NFT transfers for this address yet | |||||||||
| Type | Age | Block | Details |
|---|---|---|---|
| no cross-chain L1↔L2 transactions for this address | |||
| Txn Hash | Age | Event | Topics / Data |
|---|---|---|---|
| 0xc356ea…cc9996 | 29 days agoFri, 17 Jul 2026 18:21:04 UTC | 0xa985bf…f616 | [0] 0x000000000000…8f8a93f9 [1] 0x000000000000…e941bf54 [2] 0x000000000000…320d9eec |
| 0x03993e…6c4d0a | 29 days agoFri, 17 Jul 2026 18:21:01 UTC | 0xa985bf…f616 | [0] 0x000000000000…320d9eec [1] 0x000000000000…8f8a93f9 [2] 0x000000000000…e941bf54 |
| 0xc571a6…8fa6fb | 29 days agoFri, 17 Jul 2026 05:56:59 UTC | 0xf37cd5…eae8 | [0] 0x000000000000…00000002 data: 0x000000000000000000…00000004 |
| 0xc571a6…8fa6fb | 29 days agoFri, 17 Jul 2026 05:56:59 UTC | 0x9ed1c1…c36d | [0] 0x000000000000…00000002 [1] 0x000000000000…00000004 [2] 0x000000000000…76b95b42 |
| 0xc571a6…8fa6fb | 29 days agoFri, 17 Jul 2026 05:56:59 UTC | 0x9ed1c1…c36d | [0] 0x000000000000…00000002 [1] 0x000000000000…00000003 [2] 0x000000000000…f6bfff60 |
| 0xe56d35…2d96e6 | 29 days agoFri, 17 Jul 2026 05:56:58 UTC | 0x9ed1c1…c36d | [0] 0x000000000000…00000002 [1] 0x000000000000…00000002 [2] 0x000000000000…62da8b11 |
| 0xe56d35…2d96e6 | 29 days agoFri, 17 Jul 2026 05:56:58 UTC | 0x9ed1c1…c36d | [0] 0x000000000000…00000002 [1] 0x000000000000…00000001 [2] 0x000000000000…89b575c6 |
| 0xb937b5…201a80 | 29 days agoFri, 17 Jul 2026 05:56:57 UTC | 0xa27816…483c | [0] 0x000000000000…00000002 data: 0x000000000000000000…0000a08c |
| 0x82a228…168e02 | 29 days agoFri, 17 Jul 2026 05:48:35 UTC | 0xf37cd5…eae8 | [0] 0x000000000000…00000001 data: 0x000000000000000000…00000003 |
| 0x82a228…168e02 | 29 days agoFri, 17 Jul 2026 05:48:35 UTC | 0x9ed1c1…c36d | [0] 0x000000000000…00000001 [1] 0x000000000000…00000003 [2] 0x000000000000…f6bfff60 |
| 0xa4d3dd…33a4ef | 29 days agoFri, 17 Jul 2026 05:48:25 UTC | 0x9ed1c1…c36d | [0] 0x000000000000…00000001 [1] 0x000000000000…00000002 [2] 0x000000000000…62da8b11 |
| 0xa4d3dd…33a4ef | 29 days agoFri, 17 Jul 2026 05:48:25 UTC | 0x9ed1c1…c36d | [0] 0x000000000000…00000001 [1] 0x000000000000…00000001 [2] 0x000000000000…89b575c6 |
| 0x2876f7…c4f76b | 29 days agoFri, 17 Jul 2026 05:48:07 UTC | 0xa27816…483c | [0] 0x000000000000…00000001 data: 0x000000000000000000…0000797c |
| 0x30ccfb…cad6b7 | 29 days agoFri, 17 Jul 2026 05:44:11 UTC | 0xae42ba…f741 | [0] 0x000000000000…320d9eec data: 0x000000000000000000…89632600 |
| 0xdb6aa2…dd2ffa | 29 days agoFri, 17 Jul 2026 05:44:10 UTC | 0xae42ba…f741 | [0] 0x000000000000…e941bf54 data: 0x000000000000000000…2e13ff00 |
| 0xac4b67…940bbb | 29 days agoFri, 17 Jul 2026 05:44:09 UTC | 0xae42ba…f741 | [0] 0x000000000000…8f8a93f9 data: 0x000000000000000000…29846f80 |
| 0xb9c36c…43bc25 | 29 days agoFri, 17 Jul 2026 05:44:01 UTC | 0xa985bf…f616 | [0] 0x000000000000…8f8a93f9 [1] 0x000000000000…e941bf54 [2] 0x000000000000…320d9eec |
| 0x6d7753…f3bbb8 | 29 days agoFri, 17 Jul 2026 05:44:00 UTC | 0xab5814…768a | [0] 0x000000000000…fadb67e5 data: 0x000000000000000000…00000001 |
| 0x368f8c…3e4aed | 29 days agoFri, 17 Jul 2026 05:43:51 UTC | 0x8be007…57e0 | [0] 0x000000000000…00000000 [1] 0x000000000000…09787cda |
| Transaction Hash | Method ? | Block | Age | From | To | Amount | Txn Fee ? | ||
|---|---|---|---|---|---|---|---|---|---|
| 0xc356ea…cc9996 | setStockTokens | 12,330,270 | 29 days agoFri, 17 Jul 2026 18:21:04 UTC | 0xb668…7cda | IN | StockBooster | $0.000 ETH | 0.00000348 | |
| 0x03993e…6c4d0a | setStockTokens | 12,330,237 | 29 days agoFri, 17 Jul 2026 18:21:01 UTC | 0xb668…7cda | IN | StockBooster | $0.000 ETH | 0.00000346 | |
| 0xc571a6…8fa6fb | continueDrop | 11,885,553 | 29 days agoFri, 17 Jul 2026 05:56:59 UTC | 0x51e2…8e25 | IN | StockBooster | $0.000 ETH | 0.00002704 | |
| 0xe56d35…2d96e6 | continueDrop | 11,885,543 | 29 days agoFri, 17 Jul 2026 05:56:58 UTC | 0x51e2…8e25 | IN | StockBooster | $0.000 ETH | 0.00002282 | |
| 0xb937b5…201a80 | startDropPublic | 11,885,533 | 29 days agoFri, 17 Jul 2026 05:56:57 UTC | 0x51e2…8e25 | IN | StockBooster | $0.000 ETH | 0.00007612 | |
| 0x82a228…168e02 | continueDrop | 11,880,527 | 29 days agoFri, 17 Jul 2026 05:48:35 UTC | 0x51e2…8e25 | IN | StockBooster | $0.000 ETH | 0.00001738 | |
| 0xa4d3dd…33a4ef | continueDrop | 11,880,429 | 29 days agoFri, 17 Jul 2026 05:48:25 UTC | 0x51e2…8e25 | IN | StockBooster | $0.000 ETH | 0.00002628 | |
| 0x2876f7…c4f76b | startDropPublic | 11,880,251 | 29 days agoFri, 17 Jul 2026 05:48:07 UTC | 0x51e2…8e25 | IN | StockBooster | $0.000 ETH | 0.00009263 | |
| 0x10bc84…0c0550 | Transfer | 11,877,904 | 29 days agoFri, 17 Jul 2026 05:44:11 UTC | 0xb668…7cda | IN | StockBooster | $1.130.0006 ETH | 0.00000174 | |
| 0x30ccfb…cad6b7 | setMinStockPerEth | 11,877,900 | 29 days agoFri, 17 Jul 2026 05:44:11 UTC | 0xb668…7cda | IN | StockBooster | $0.000 ETH | 0.00000393 | |
| 0xdb6aa2…dd2ffa | setMinStockPerEth | 11,877,888 | 29 days agoFri, 17 Jul 2026 05:44:10 UTC | 0xb668…7cda | IN | StockBooster | $0.000 ETH | 0.00000392 | |
| 0xac4b67…940bbb | setMinStockPerEth | 11,877,878 | 29 days agoFri, 17 Jul 2026 05:44:09 UTC | 0xb668…7cda | IN | StockBooster | $0.000 ETH | 0.00000393 | |
| 0x7128ed…7b7f51 | setMinDropWei | 11,877,802 | 29 days agoFri, 17 Jul 2026 05:44:01 UTC | 0xb668…7cda | IN | StockBooster | $0.000 ETH | 0.00000242 | |
| 0xb9c36c…43bc25 | setStockTokens | 11,877,799 | 29 days agoFri, 17 Jul 2026 05:44:01 UTC | 0xb668…7cda | IN | StockBooster | $0.000 ETH | 0.00000806 | |
| 0x249189…73bc32 | setRouter | 11,877,795 | 29 days agoFri, 17 Jul 2026 05:44:00 UTC | 0xb668…7cda | IN | StockBooster | $0.000 ETH | 0.00000426 | |
| 0x6d7753…f3bbb8 | setRouterAllowlisted | 11,877,791 | 29 days agoFri, 17 Jul 2026 05:44:00 UTC | 0xb668…7cda | IN | StockBooster | $0.000 ETH | 0.00000401 |
| Transaction Hash | Method | Block | Age | From | To | Amount | Token | ||
|---|---|---|---|---|---|---|---|---|---|
| 0xc571a641…8fa6fb | Transfer | 11,885,553 | 29 days agoFri, 17 Jul 2026 05:56:59 UTC | 0xf501…b9ce | OUT | 0x19ab…5b42 | $0.050.000230 NVDA | NVIDIA • Robinhood Token (NVDA) | |
| 0xc571a641…8fa6fb | Transfer | 11,885,553 | 29 days agoFri, 17 Jul 2026 05:56:59 UTC | 0xf501…b9ce | OUT | 0x19ab…5b42 | 0.000188 AMZN | Amazon • Robinhood Token (AMZN) | |
| 0xc571a641…8fa6fb | Transfer | 11,885,553 | 29 days agoFri, 17 Jul 2026 05:56:59 UTC | 0xf501…b9ce | OUT | 0x19ab…5b42 | $0.040.000138 AAPL | Apple • Robinhood Token (AAPL) | |
| 0xc571a641…8fa6fb | Transfer | 11,885,553 | 29 days agoFri, 17 Jul 2026 05:56:59 UTC | 0xf501…b9ce | OUT | 0xbb90…ff60 | $0.050.000232 NVDA | NVIDIA • Robinhood Token (NVDA) | |
| 0xc571a641…8fa6fb | Transfer | 11,885,553 | 29 days agoFri, 17 Jul 2026 05:56:59 UTC | 0xf501…b9ce | OUT | 0xbb90…ff60 | 0.000190 AMZN | Amazon • Robinhood Token (AMZN) | |
| 0xc571a641…8fa6fb | Transfer | 11,885,553 | 29 days agoFri, 17 Jul 2026 05:56:59 UTC | 0xf501…b9ce | OUT | 0xbb90…ff60 | $0.040.000139 AAPL | Apple • Robinhood Token (AAPL) | |
| 0xe56d35e0…2d96e6 | Transfer | 11,885,543 | 29 days agoFri, 17 Jul 2026 05:56:58 UTC | 0xf501…b9ce | OUT | 0xc1ee…8b11 | $0.050.000230 NVDA | NVIDIA • Robinhood Token (NVDA) | |
| 0xe56d35e0…2d96e6 | Transfer | 11,885,543 | 29 days agoFri, 17 Jul 2026 05:56:58 UTC | 0xf501…b9ce | OUT | 0xc1ee…8b11 | 0.000188 AMZN | Amazon • Robinhood Token (AMZN) | |
| 0xe56d35e0…2d96e6 | Transfer | 11,885,543 | 29 days agoFri, 17 Jul 2026 05:56:58 UTC | 0xf501…b9ce | OUT | 0xc1ee…8b11 | $0.040.000138 AAPL | Apple • Robinhood Token (AAPL) | |
| 0xe56d35e0…2d96e6 | Transfer | 11,885,543 | 29 days agoFri, 17 Jul 2026 05:56:58 UTC | 0xf501…b9ce | OUT | 0xbeca…75c6 | $0.060.000253 NVDA | NVIDIA • Robinhood Token (NVDA) | |
| 0xe56d35e0…2d96e6 | Transfer | 11,885,543 | 29 days agoFri, 17 Jul 2026 05:56:58 UTC | 0xf501…b9ce | OUT | 0xbeca…75c6 | 0.000207 AMZN | Amazon • Robinhood Token (AMZN) | |
| 0xe56d35e0…2d96e6 | Transfer | 11,885,543 | 29 days agoFri, 17 Jul 2026 05:56:58 UTC | 0xf501…b9ce | OUT | 0xbeca…75c6 | $0.050.000152 AAPL | Apple • Robinhood Token (AAPL) | |
| 0xb937b56c…201a80 | Transfer | 11,885,533 | 29 days agoFri, 17 Jul 2026 05:56:57 UTC | 0x9417…67e5 | IN | 0xf501…b9ce | $0.210.000945 NVDA | NVIDIA • Robinhood Token (NVDA) | |
| 0xb937b56c…201a80 | Transfer | 11,885,533 | 29 days agoFri, 17 Jul 2026 05:56:57 UTC | 0x9417…67e5 | IN | 0xf501…b9ce | 0.000773 AMZN | Amazon • Robinhood Token (AMZN) | |
| 0xb937b56c…201a80 | Transfer | 11,885,533 | 29 days agoFri, 17 Jul 2026 05:56:57 UTC | 0x9417…67e5 | IN | 0xf501…b9ce | $0.180.000568 AAPL | Apple • Robinhood Token (AAPL) | |
| 0x82a22849…168e02 | Transfer | 11,880,527 | 29 days agoFri, 17 Jul 2026 05:48:35 UTC | 0xf501…b9ce | OUT | 0xbb90…ff60 | $0.220.000996 NVDA | NVIDIA • Robinhood Token (NVDA) | |
| 0x82a22849…168e02 | Transfer | 11,880,527 | 29 days agoFri, 17 Jul 2026 05:48:35 UTC | 0xf501…b9ce | OUT | 0xbb90…ff60 | 0.000814 AMZN | Amazon • Robinhood Token (AMZN) | |
| 0x82a22849…168e02 | Transfer | 11,880,527 | 29 days agoFri, 17 Jul 2026 05:48:35 UTC | 0xf501…b9ce | OUT | 0xbb90…ff60 | $0.190.000599 AAPL | Apple • Robinhood Token (AAPL) | |
| 0xa4d3ddc9…33a4ef | Transfer | 11,880,429 | 29 days agoFri, 17 Jul 2026 05:48:25 UTC | 0xf501…b9ce | OUT | 0xc1ee…8b11 | $0.220.000986 NVDA | NVIDIA • Robinhood Token (NVDA) | |
| 0xa4d3ddc9…33a4ef | Transfer | 11,880,429 | 29 days agoFri, 17 Jul 2026 05:48:25 UTC | 0xf501…b9ce | OUT | 0xc1ee…8b11 | 0.000806 AMZN | Amazon • Robinhood Token (AMZN) | |
| 0xa4d3ddc9…33a4ef | Transfer | 11,880,429 | 29 days agoFri, 17 Jul 2026 05:48:25 UTC | 0xf501…b9ce | OUT | 0xc1ee…8b11 | $0.180.000593 AAPL | Apple • Robinhood Token (AAPL) | |
| 0xa4d3ddc9…33a4ef | Transfer | 11,880,429 | 29 days agoFri, 17 Jul 2026 05:48:25 UTC | 0xf501…b9ce | OUT | 0xbeca…75c6 | $0.240.001085 NVDA | NVIDIA • Robinhood Token (NVDA) | |
| 0xa4d3ddc9…33a4ef | Transfer | 11,880,429 | 29 days agoFri, 17 Jul 2026 05:48:25 UTC | 0xf501…b9ce | OUT | 0xbeca…75c6 | 0.000886 AMZN | Amazon • Robinhood Token (AMZN) | |
| 0xa4d3ddc9…33a4ef | Transfer | 11,880,429 | 29 days agoFri, 17 Jul 2026 05:48:25 UTC | 0xf501…b9ce | OUT | 0xbeca…75c6 | $0.200.000652 AAPL | Apple • Robinhood Token (AAPL) | |
| 0x2876f739…c4f76b | Transfer | 11,880,251 | 29 days agoFri, 17 Jul 2026 05:48:07 UTC | 0x9417…67e5 | IN | 0xf501…b9ce | $0.690.003067 NVDA | NVIDIA • Robinhood Token (NVDA) |
| Block | Age | Parent Transaction Hash | Type | Method | From | To | Value | |
|---|---|---|---|---|---|---|---|---|
| 11,885,533 | 29 days agoFri, 17 Jul 2026 05:56:57 UTC | 0xb937b5…201a80 | CALL | startDropPublic | 0xf501…b9ce | OUT | 0x9417…67e5 | 0.00010 ETH |
| 11,885,533 | 29 days agoFri, 17 Jul 2026 05:56:57 UTC | 0xb937b5…201a80 | CALL | startDropPublic | 0xf501…b9ce | OUT | 0x9417…67e5 | 0.00010 ETH |
| 11,885,533 | 29 days agoFri, 17 Jul 2026 05:56:57 UTC | 0xb937b5…201a80 | CALL | startDropPublic | 0xf501…b9ce | OUT | 0x9417…67e5 | 0.00010 ETH |
| 11,884,841 | 29 days agoFri, 17 Jul 2026 05:55:48 UTC | 0x452c17…f95754 | CALL | buySpecificNFT | 0xc06c…3f64 | IN | 0xf501…b9ce | 0.00010 ETH |
| 11,884,821 | 29 days agoFri, 17 Jul 2026 05:55:46 UTC | 0xe6153d…fc2f8d | CALL | sellNFT | 0xc06c…3f64 | IN | 0xf501…b9ce | 0.00007 ETH |
| 11,884,799 | 29 days agoFri, 17 Jul 2026 05:55:44 UTC | 0xa96824…23175c | CALL | buyRandomNFT | 0xc06c…3f64 | IN | 0xf501…b9ce | 0.00007 ETH |
| 11,883,768 | 29 days agoFri, 17 Jul 2026 05:54:00 UTC | 0xb4c551…10d2e8 | CALL | sellNFT | 0xc06c…3f64 | IN | 0xf501…b9ce | 0.00007 ETH |
| 11,880,251 | 29 days agoFri, 17 Jul 2026 05:48:07 UTC | 0x2876f7…c4f76b | CALL | startDropPublic | 0xf501…b9ce | OUT | 0x9417…67e5 | 0.00034 ETH |
| 11,880,251 | 29 days agoFri, 17 Jul 2026 05:48:07 UTC | 0x2876f7…c4f76b | CALL | startDropPublic | 0xf501…b9ce | OUT | 0x9417…67e5 | 0.00034 ETH |
| 11,880,251 | 29 days agoFri, 17 Jul 2026 05:48:07 UTC | 0x2876f7…c4f76b | CALL | startDropPublic | 0xf501…b9ce | OUT | 0x9417…67e5 | 0.00034 ETH |
| 11,877,867 | 29 days agoFri, 17 Jul 2026 05:44:08 UTC | 0x79efa2…574814 | CALL | borrow | 0x81ec…4a7b | IN | 0xf501…b9ce | 0.00010 ETH |
| 11,877,864 | 29 days agoFri, 17 Jul 2026 05:44:07 UTC | 0x2523c5…5f2d84 | CALL | buySpecificNFT | 0xc06c…3f64 | IN | 0xf501…b9ce | 0.00010 ETH |
| 11,877,861 | 29 days agoFri, 17 Jul 2026 05:44:07 UTC | 0x1ed5e7…5b6eef | CALL | sellNFT | 0xc06c…3f64 | IN | 0xf501…b9ce | 0.00007 ETH |
| 11,877,857 | 29 days agoFri, 17 Jul 2026 05:44:07 UTC | 0x1120b9…fa3f6c | CALL | buyRandomNFT | 0xc06c…3f64 | IN | 0xf501…b9ce | 0.00007 ETH |
| 11,877,854 | 29 days agoFri, 17 Jul 2026 05:44:06 UTC | 0x8d1b96…d899f9 | CALL | sellNFT | 0xc06c…3f64 | IN | 0xf501…b9ce | 0.00007 ETH |