{
  "address": "0xff0fa3799686ac47e3aff62aa2210a8441737cc3",
  "chain": "Robinhood Chain (4663)",
  "official_bully_contract": "0xff0fa3799686ac47e3aff62aa2210a8441737cc3",
  "is_official_bully_contract": true,
  "report": [
    "Contract check for 0xff0fa3799686ac47e3aff62aa2210a8441737cc3 (read from a public Robinhood Chain RPC node: robinhood.rpc.pinax.network).",
    "Code: present (3248 bytes).",
    "Name: AMERICAN BULLY",
    "Symbol: BULLY",
    "Decimals: 18",
    "Total supply: 1,000,000,000",
    "Proxy pattern: none of the tested patterns found. Tested: EIP-1967 implementation, beacon and admin storage slots, EIP-1822 slot, legacy OpenZeppelin slot, EIP-1167 minimal-proxy bytecode prefix, and the DELEGATECALL opcode byte (0xf4). The byte 0xf4 appears in the code, but it can also be data or part of another instruction, so this is not a finding. Custom upgrade designs can still exist, so this does not prove the contract is not upgradeable or is a plain non-proxy token.",
    "owner(): not available or not a standard owner function.",
    "Byte patterns matching these 4-byte selectors were detected: none of the 34 checked. A matching pattern is not proof the function exists or is callable (the bytes can be data or a collision, and a proxy implementation is not visible here). Absence is not proof a function is missing. This is a simple pattern scan, not an audit.",
    "paused(): not available (the contract has no standard paused() function, or the call reverted).",
    "Supply held at the zero address: 0.0000%; at 0x000...dEaD: 0.0004% (a common burn address). Other burn addresses are not checked.",
    "Source verification: no match found on Sourcify (sourcify.dev). That says nothing about other explorers.",
    "Function names in verified source: not available, no Sourcify source match for this address.",
    "ON-CHAIN LIQUIDITY AND POOL READS (read from chain or computed from chain logs, with the checks and limits stated line by line; Uniswap v4 only):",
    "All pool reads, position logs and owner reads below are pinned to block 104158304.",
    "Uniswap v4 pools found on-chain: 7 (showing the 6 most recent; the rest are not listed) (the node answered the pool-creation log query without error; a node could still cap results). Uniswap v4 pools have no contract address of their own: each lives inside the PoolManager contract 0x8366a39cc670b4001a1121b8f6a443a643e40951 and is identified by a 32-byte pool ID. Source for the PoolManager address: developers.uniswap.org/docs/protocols/v4/deployments. Each line says whether it is read from chain or computed by this tool from chain logs.",
    "Pool 1: ID 0x61b4381e849279a5af156d780756d0f270f8a4bffb96455f080fd6cafe97392a, pair native ETH / this token, fee setting 60%, tick spacing 6000, hook none, created 2026-10-31 17:17 UTC.",
    "  Pool state now: on-chain pool price 1 ETH = 38,733,925.55 tokens; 1 token = 0.000000025817161202 ETH (pool math, no USD); in-range liquidity 1,632,095,997,950,580,677 raw units (not a dollar value).",
    "  Liquidity positions (from ModifyLiquidity logs, all 1 log from the pool creation block to now): 1 open position with net liquidity above zero.",
    "   - 100% of the net liquidity of the position logs read for this pool (not the total project liquidity, and not a lock), ticks -882000 to 882000, added by 0x58daec3116aae6d93017baaea7749052e8a04fa7 (the Uniswap v4 PositionManager; the position is an NFT, token ID 4116531); NFT owner 0xc6312da2663570a2aee12b27a0c6da4683339acd (no runtime code returned there).",
    "  Initial liquidity (first add in block 102719306, 1 add event in that block, net liquidity 1,632,095,997,950,580,677 raw units): about 0.000262 ETH and 10,158 tokens at the pool opening price. Checked: in the pool's own event log for that block (all PoolManager events carrying this pool ID: swaps, donations, fee updates, removals and adds), nothing other than liquidity adds sits between the pool opening and the last add, so no swap changed the price and no liquidity was removed in that stretch. Adds in later blocks are not counted as initial. This is this tool's own arithmetic from the logged liquidity, tick range and price, not a value read from a contract.",
    "  Liquidity in open positions now: about 0.000262 ETH and 10,158 tokens, from this tool's arithmetic over the net positions in the logs and the current pool price (accrued fees and any hook-held funds are not included; not read from a contract). Compare the in-range raw liquidity above, which is read from the pool.",
    "  This shows who holds the liquidity position NFTs. It does not prove liquidity is locked: an owner that is an ordinary account can withdraw, and a contract owner may or may not enforce a lock. Burn-address ownership is not checked beyond 0x0 and 0xdEaD.",
    "  Simulation for pool 1:",
    "  Round-trip swap simulation (read-only eth_simulateV1 at the latest block, from a synthetic address with an overridden ETH balance, via the Uniswap Universal Router 0x8876789976decbfcbbbe364623c63652db8c0904; no transaction was sent and no wallet was used): bought with 0.0005 ETH (balance change of 4392449669106194878205 raw token units); a wallet-to-wallet transfer of half arrived in full (no transfer fee observed). Then sold the remaining half in a second swap: the sale succeeded, returning 0.000061042626415265 ETH, which is 24.41% of the pro-rata share of the 0.0005 ETH buy cost for the tokens sold (the gas price is 0 in the simulation, so no gas cost is included) (tokens left at the synthetic address afterwards: 0). Buy leg: the token transfer events credited exactly the balance change.",
    "  This is one simulated round trip at the latest block from a synthetic address, at one small size. It cannot see per-address blacklists, larger-size limits, time-based rules, or rule changes after this block. It is not a guarantee that selling will work for anyone, and it is not a safety verdict.",
    "Pool 2: ID 0x2189fe9e96848e5be777bd8940c9ec40b9d7d81861df1a149fda4927e1e57867, pair USDG token 0x5fc5360d0400a0fd4f2af552add042d716f1d168 / this token, fee setting 50%, tick spacing 5000, hook none, created 2026-10-31 06:40 UTC.",
    "  Pool state now: price not converted for this pair; in-range liquidity 88,196,148,513,434 raw units (not a dollar value).",
    "  Liquidity positions (from ModifyLiquidity logs, all 1 log from the pool creation block to now): 1 open position with net liquidity above zero.",
    "   - 100% of the net liquidity of the position logs read for this pool (not the total project liquidity, and not a lock), ticks -885000 to 885000, added by 0x58daec3116aae6d93017baaea7749052e8a04fa7 (the Uniswap v4 PositionManager; the position is an NFT, token ID 4111554); NFT owner 0x8de04c99005a95a173057b5d54c3a4c848bd5513 (runtime code present there, for example a locker, vault or multisig; not inspected).",
    "  Source check for 0x8de04c99005a95a173057b5d54c3a4c848bd5513: no match on Sourcify (sourcify.dev). That says nothing about other explorers; the code there is unread.",
    "  Deeper lock evidence 1 (NFT transfer history, from the PositionManager Transfer logs up to the pinned block): 1 transfer of NFT 4111554 found; the latest moved it to 0x8de04c99005a95a173057b5d54c3a4c848bd5513 at block 102356826. No transfer out of 0x8de04c99005a95a173057b5d54c3a4c848bd5513 appears in these logs, meaning it has held the NFT since it received it, as of the pinned block. That is history only; it does not say what the contract could do next.",
    "  Deeper lock evidence 2 (approval on the NFT): getApproved(4111554) = the zero address (no third party is approved to move it). Operator-wide approvals are not checked.",
    "  Deeper lock evidence 3 (opcode scan of the owner contract's runtime code, 23 bytes, PUSH data skipped, trailing compiler metadata cut off when recognised, jump targets not resolved; counts are instruction bytes seen, not proof the instruction is reachable): DELEGATECALL 0, CALLCODE 0, SELFDESTRUCT 0, CREATE 0, CREATE2 0, CALL 1, distinct 4-byte function selectors pushed 0. No instruction-level delegatecall, callcode or selfdestruct was found, so a code-replacement or self-destruct path is not seen in this contract's own code. It does contain CALL instructions, which any contract needs to move assets, so a withdrawal route can not be ruled out from this scan alone.",
    "  Lock evidence level: this ladder shows history and code features only. It does not prove the position can never be withdrawn; that needs a full code review, and this tool is not an audit.",
    "  Initial and current liquidity amounts: not computed for this pair. Amounts are only calculated for pools pairing native ETH with this token, so a pool against another token (or with this token as the other side) shows raw liquidity only.",
    "  This shows who holds the liquidity position NFTs. It does not prove liquidity is locked: an owner that is an ordinary account can withdraw, and a contract owner may or may not enforce a lock. Burn-address ownership is not checked beyond 0x0 and 0xdEaD.",
    "Pool 3: ID 0x216ab2162c1b8bc7fcf2ed8d327d34713e4eff836d6d86a03ec717edf07e104e, pair USDG token 0x5fc5360d0400a0fd4f2af552add042d716f1d168 / this token, fee setting 82%, tick spacing 8200, hook none, created 2026-10-31 03:44 UTC.",
    "  Pool state now: price not converted for this pair; in-range liquidity 132,461,316,299,186 raw units (not a dollar value).",
    "  Liquidity positions (from ModifyLiquidity logs, all 1 log from the pool creation block to now): 1 open position with net liquidity above zero.",
    "   - 100% of the net liquidity of the position logs read for this pool (not the total project liquidity, and not a lock), ticks -885600 to 885600, added by 0x58daec3116aae6d93017baaea7749052e8a04fa7 (the Uniswap v4 PositionManager; the position is an NFT, token ID 4110251); NFT owner 0x5fcda743e1c91755265be3cf1833d1d94ace7d55 (no runtime code returned there).",
    "  Initial and current liquidity amounts: not computed for this pair. Amounts are only calculated for pools pairing native ETH with this token, so a pool against another token (or with this token as the other side) shows raw liquidity only.",
    "  This shows who holds the liquidity position NFTs. It does not prove liquidity is locked: an owner that is an ordinary account can withdraw, and a contract owner may or may not enforce a lock. Burn-address ownership is not checked beyond 0x0 and 0xdEaD.",
    "Pool 4: ID 0x331ea4c51b257523fa88ea3f45486759b0892b085ebef88ccd44b90a55563c1f, pair native ETH / this token, fee setting 0%, tick spacing 200, hook 0xe5e702641ea86f4ae6cc3cdaed2b886f976be044, created 2026-10-31 02:21 UTC.",
    "  Pool state now: on-chain pool price 1 ETH = 48,810,228.67 tokens; 1 token = 0.000000020487509015 ETH (pool math, no USD); in-range liquidity 29,277,002,188,455,995,609,171 raw units (not a dollar value).",
    "  Hook: runtime code present (15167 bytes, not inspected). Permissions encoded in the hook address: beforeInitialize, afterSwap, afterSwapReturnsDelta. These flags only say when the PoolManager is allowed to call the hook and whether the hook may adjust amounts. They are not proof of what the hook does. The hook code was not read; see the simulation observation below, where available.",
    "  Source check for 0xe5e702641ea86f4ae6cc3cdaed2b886f976be044: Sourcify has a source match (match), contract name PonsV2MemeHook. State-changing functions in its ABI (who may call each was not determined by this tool, and the source was not audited): acceptOwnership, afterAddLiquidity, afterDonate, afterInitialize, afterRemoveLiquidity, afterSwap, beforeAddLiquidity, beforeDonate, beforeInitialize, beforeRemoveLiquidity, beforeSwap, registerPool, rescuePoolFees, setBuybackBurnBps, setBuybackEnabled, setBuybackVault, setCreatorFeeRecipient, setFactory, setFeeSweepOperator, setHookFeeBps, setMaxInternalPriceImpactBps, setProtocolFeeRecipient, setProtocolFeeShareBps, sweepPoolFees, transferOwnership, unlockCallback.",
    "  Hook owner() read now: 0x263ed295dafae1d9aadd6e56c4b6f9f38ee019dd (what that owner may change is defined by the source above; not analysed).",
    "  This hook's own record for this pool (launches(poolId), read now): hookFeeBps 100, creatorTaxBps 0, protocolFeeShareBps 3000, buybackBurnBps 5000. Values the hook reports about itself. The 1% seen in the simulation matches hookFeeBps 100 (basis points).",
    "  Liquidity positions (from ModifyLiquidity logs, all 1 log from the pool creation block to now): 1 open position with net liquidity above zero.",
    "   - 100% of the net liquidity of the position logs read for this pool (not the total project liquidity, and not a lock), full price range, added by 0x58daec3116aae6d93017baaea7749052e8a04fa7 (the Uniswap v4 PositionManager; the position is an NFT, token ID 4109430); NFT owner 0x267444d099b10fb5ed7c3cc7b7c767adca574952 (runtime code present there, for example a locker, vault or multisig; not inspected).",
    "  Source check for 0x267444d099b10fb5ed7c3cc7b7c767adca574952: Sourcify has a source match (match), contract name RobinFunFiV2LaunchLocker. State-changing functions in its ABI (who may call each was not determined by this tool, and the source was not audited): acceptOwnership, lockPosition, lockTokenSupply, setFactory, transferOwnership.",
    "  Source text scan of 0x267444d099b10fb5ed7c3cc7b7c767adca574952 (the project's own files: RobinFunFiV2LaunchLocker.sol, ILaunchpadV2.sol; libraries and comments excluded): found safeTransferFrom or transferFrom calls (1); not found safeTransfer or transfer calls; approve or setApprovalForAll calls; low-level call or delegatecall; selfdestruct; modifyLiquidities or burn of a position; upgrade functions. A text scan only shows which calls are written in the source. It does not show who may trigger them or that the deployed contract behaves that way, and a pattern that appears may be an unrelated token transfer.",
    "  Upgrade check for 0x267444d099b10fb5ed7c3cc7b7c767adca574952: the EIP-1967 implementation slot is empty (no sign of that proxy pattern; other designs are not tested).",
    "  Deeper lock evidence 1 (NFT transfer history, from the PositionManager Transfer logs up to the pinned block): 1 transfer of NFT 4109430 found; the latest moved it to 0x267444d099b10fb5ed7c3cc7b7c767adca574952 at block 102211156. No transfer out of 0x267444d099b10fb5ed7c3cc7b7c767adca574952 appears in these logs, meaning it has held the NFT since it received it, as of the pinned block. That is history only; it does not say what the contract could do next.",
    "  Deeper lock evidence 2 (approval on the NFT): getApproved(4109430) = the zero address (no third party is approved to move it). Operator-wide approvals are not checked.",
    "  Deeper lock evidence 3 (opcode scan of the owner contract's runtime code, 1916 bytes, PUSH data skipped, trailing compiler metadata cut off when recognised, jump targets not resolved; counts are instruction bytes seen, not proof the instruction is reachable): DELEGATECALL 0, CALLCODE 0, SELFDESTRUCT 0, CREATE 0, CREATE2 0, CALL 1, distinct 4-byte function selectors pushed 26. No instruction-level delegatecall, callcode or selfdestruct was found, so a code-replacement or self-destruct path is not seen in this contract's own code. It does contain CALL instructions, which any contract needs to move assets, so a withdrawal route can not be ruled out from this scan alone.",
    "  Lock evidence level: this ladder shows history and code features only. It does not prove the position can never be withdrawn; that needs a full code review, and this tool is not an audit.",
    "  Reads on that NFT owner contract: isLocked(this token) = true; lockedPositions(this token) = 4109430 (matches NFT token ID 4109430). These are values that contract reports about itself. Whether the position can be withdrawn depends on that contract's code, which this tool did not analyse; read the source link above before relying on any lock.",
    "  Initial liquidity (first add in block 102211156, 1 add event in that block, net liquidity 29,277,002,188,455,995,609,171 raw units): about 4.20 ETH and 204,081,633 tokens at the pool opening price. Checked: in the pool's own event log for that block (all PoolManager events carrying this pool ID: swaps, donations, fee updates, removals and adds), nothing other than liquidity adds sits between the pool opening and the last add, so no swap changed the price and no liquidity was removed in that stretch. Adds in later blocks are not counted as initial. This is this tool's own arithmetic from the logged liquidity, tick range and price, not a value read from a contract.",
    "  Liquidity in open positions now: about 4.19 ETH and 204,541,778 tokens, from this tool's arithmetic over the net positions in the logs and the current pool price (accrued fees and any hook-held funds are not included; not read from a contract). Compare the in-range raw liquidity above, which is read from the pool.",
    "  This shows who holds the liquidity position NFTs. It does not prove liquidity is locked: an owner that is an ordinary account can withdraw, and a contract owner may or may not enforce a lock. Burn-address ownership is not checked beyond 0x0 and 0xdEaD.",
    "  Simulation for pool 4:",
    "  Round-trip swap simulation (read-only eth_simulateV1 at the latest block, from a synthetic address with an overridden ETH balance, via the Uniswap Universal Router 0x8876789976decbfcbbbe364623c63652db8c0904; no transaction was sent and no wallet was used): bought with 0.0005 ETH (balance change of 24158180735535648498919 raw token units); a wallet-to-wallet transfer of half arrived in full (no transfer fee observed). Then sold the remaining half in a second swap: the sale succeeded, returning 0.000245039763011124 ETH, which is 98.01% of the pro-rata share of the 0.0005 ETH buy cost for the tokens sold (the gas price is 0 in the simulation, so no gas cost is included) (tokens left at the synthetic address afterwards: 0). Buy leg: the token transfer events credited exactly the balance change.",
    "  Observed in this simulation (not read from hook code): the hook address received 244022027631673217160 raw token units during the buy (0.999% of what the pool paid out) and 2475149121324 wei of ETH during the sell (0.999% of what the pool paid out). That is what happened at this block for this swap size, not a promise about future swaps.",
    "  This is one simulated round trip at the latest block from a synthetic address, at one small size. It cannot see per-address blacklists, larger-size limits, time-based rules, or rule changes after this block. It is not a guarantee that selling will work for anyone, and it is not a safety verdict.",
    "Pool 5: ID 0x64efec9450026b70b91ea9da4869ef59d4081c5c441b61c23d549600b7789a06, pair native ETH / this token, fee setting 79%, tick spacing 60, hook none, created 2026-10-30 22:45 UTC.",
    "  Pool state now: on-chain pool price 1 ETH = 26,016,027.93 tokens; 1 token = 0.000000038437843108 ETH (pool math, no USD); in-range liquidity 807,533,514,479,173,664 raw units (not a dollar value).",
    "  Liquidity positions (from ModifyLiquidity logs, all 2 logs from the pool creation block to now): 1 open position with net liquidity above zero.",
    "   - 100% of the net liquidity of the position logs read for this pool (not the total project liquidity, and not a lock), full price range, added by 0x58daec3116aae6d93017baaea7749052e8a04fa7 (the Uniswap v4 PositionManager; the position is an NFT, token ID 4106601); NFT owner 0xfd2a475d7ce02ec077867d72177063b5c2ab01b6 (no runtime code returned there).",
    "  Initial liquidity (first add in block 102086651, 1 add event in that block, net liquidity 807,533,514,479,173,664 raw units): about 0.0000400 ETH and 16,303 tokens at the pool opening price. Checked: in the pool's own event log for that block (all PoolManager events carrying this pool ID: swaps, donations, fee updates, removals and adds), nothing other than liquidity adds sits between the pool opening and the last add, so no swap changed the price and no liquidity was removed in that stretch. Adds in later blocks are not counted as initial. This is this tool's own arithmetic from the logged liquidity, tick range and price, not a value read from a contract.",
    "  Liquidity in open positions now: about 0.000158 ETH and 4,119 tokens, from this tool's arithmetic over the net positions in the logs and the current pool price (accrued fees and any hook-held funds are not included; not read from a contract). Compare the in-range raw liquidity above, which is read from the pool.",
    "  This shows who holds the liquidity position NFTs. It does not prove liquidity is locked: an owner that is an ordinary account can withdraw, and a contract owner may or may not enforce a lock. Burn-address ownership is not checked beyond 0x0 and 0xdEaD.",
    "  Simulation for pool 5:",
    "  Round-trip swap simulation (read-only eth_simulateV1 at the latest block, from a synthetic address with an overridden ETH balance, via the Uniswap Universal Router 0x8876789976decbfcbbbe364623c63652db8c0904; no transaction was sent and no wallet was used): bought with 0.0005 ETH (balance change of 1641430991541719352954 raw token units); a wallet-to-wallet transfer of half arrived in full (no transfer fee observed). Then sold the remaining half in a second swap: the sale succeeded, returning 0.000017104206368237 ETH, which is 6.84% of the pro-rata share of the 0.0005 ETH buy cost for the tokens sold (the gas price is 0 in the simulation, so no gas cost is included) (tokens left at the synthetic address afterwards: 0). Buy leg: the token transfer events credited exactly the balance change.",
    "  This is one simulated round trip at the latest block from a synthetic address, at one small size. It cannot see per-address blacklists, larger-size limits, time-based rules, or rule changes after this block. It is not a guarantee that selling will work for anyone, and it is not a safety verdict.",
    "Pool 6: ID 0x57b16c59e029dc047a208d5bc2f0fca9291518a5dd650c342458743227377e48, pair USDG token 0x5fc5360d0400a0fd4f2af552add042d716f1d168 / this token, fee setting 70%, tick spacing 7000, hook none, created 2026-10-30 22:10 UTC.",
    "  Pool state now: price not converted for this pair; in-range liquidity 43,389,241,726,582 raw units (not a dollar value).",
    "  Liquidity positions (from ModifyLiquidity logs, all 2 logs from the pool creation block to now): 1 open position with net liquidity above zero.",
    "   - 100% of the net liquidity of the position logs read for this pool (not the total project liquidity, and not a lock), ticks -882000 to 882000, added by 0x58daec3116aae6d93017baaea7749052e8a04fa7 (the Uniswap v4 PositionManager; the position is an NFT, token ID 4106254); NFT owner 0x1af0a8f2516044ed01d595cdeb3a69e2470d654c (no runtime code returned there).",
    "  Initial and current liquidity amounts: not computed for this pair. Amounts are only calculated for pools pairing native ETH with this token, so a pool against another token (or with this token as the other side) shows raw liquidity only.",
    "  This shows who holds the liquidity position NFTs. It does not prove liquidity is locked: an owner that is an ordinary account can withdraw, and a contract owner may or may not enforce a lock. Burn-address ownership is not checked beyond 0x0 and 0xdEaD.",
    "Simulation selection rule: the up to 3 most recently created native-ETH pools with non-zero in-range liquidity among those listed. Raw liquidity units are not compared across pools (they depend on each pool's price and range), so no pool is called the deepest.",
    "LAUNCH WINDOW: FIRST 60 SECONDS AFTER THE FIRST RECORDED MINT (read from token Transfer logs on chain; separate from the pool data above):",
    "Age since the first recorded mint: about 7 days (this is not a proven token age or deployment date) (block 97776055, 2026-10-25 17:58:11 UTC). Read from chain.",
    "First-mint transaction 0xc180f7bc6eaac76035414155cb1e32a1216c9fa3709123c2f4801dcf332e63a8 was sent by 0x34eadad425a02f28ee3db60ba27bbe07e2af74bb as a call to 0xe33e9e479df8802cb0866d5d05258bec4cf62948, not as a contract-creation transaction. This transaction called a contract rather than directly deploying one. It does not establish the token's deployment transaction or deployer. The sender is only the wallet that sent this call.",
    "Anchor: the token's first mint (Transfer from the zero address) at block 97776055, 2026-10-25 17:58:11 UTC, tx 0xc180f7bc6eaac76035414155cb1e32a1216c9fa3709123c2f4801dcf332e63a8, 1,000,000,000 tokens minted to 0xecb9b1461de27609572052f4d3dc3b37436cfa2c. Window: blocks 97776055 to 97776634 (the last block at or before 60 seconds after the anchor block's timestamp), 17 transfer logs.",
    "In the first-mint transaction itself: 46,897,737.23 tokens (4.6897% of the minted amount) moved from 0xecb9b1461de27609572052f4d3dc3b37436cfa2c to 0x34eadad425a02f28ee3db60ba27bbe07e2af74bb. That is not included in the first-minute figures below, and this tool does not know who or what that address is.",
    "Tokens that left 0xecb9b1461de27609572052f4d3dc3b37436cfa2c in the first 60 seconds, outside the first-mint transaction: 68,903,364.88 (6.8903% of the minted amount) over 9 transactions, received by 9 addresses (counted per transaction by net balance change, so a router that passed tokens on in the same transaction is not counted as a receiving address). Tokens sent back to 0xecb9b1461de27609572052f4d3dc3b37436cfa2c in the same window: 17,272,636.77 (1.7272%). Gross minus returned: 51,630,728.11 (5.163%).",
    "Balances as of block 104158359 (2026-11-02 10:49:59 UTC) for the 9 largest receiving addresses (they received 68,903,364.88 in total). Sum of their actual balances: 21,193,721.45 (2.1193% of the minted amount). Same sum with each balance capped at what that address received in the window: 21,193,721.45 (2.1193%). The cap removes tokens an address got from other sources.",
    "  0xfa38c4dd85342d72fec4cb1f9aadac73e85d1b8f received 21,193,721.45 (2.1193%), balance now 21,193,721.45 (2.1193%)",
    "  0x19f7c1292ba348829470b21c8fd78ffcc717d3c8 received 15,584,672.11 (1.5584%), balance now 0 (0%)",
    "  0x0d98cd3b94085fe4c149762abbceb5fbc24c32da received 13,217,431.12 (1.3217%), balance now 0 (0%)",
    "  0x5136067ccc0065c20ac16cd7191d08564e19d71e received 8,486,574.26 (0.8486%), balance now 0 (0%)",
    "  0x2abdd72b5bb40ba0df894d33d40aee918da551ae received 8,174,214.27 (0.8174%), balance now 0 (0%)",
    "  0x5373fb35432768b1f5eba51fd480d1a2ecb1287b received 1,133,274.39 (0.1133%), balance now 0 (0%)",
    "  0x468a9b75a683edcb56999f8fdf3b32fff3487c3e received 519,697 (0.0519%), balance now 0 (0%)",
    "  0x811e8c8fbc6bc65af99c20a4ef13f682404b5ddf received 501,629.01 (0.0501%), balance now 0 (0%)",
    "  0x93b0790287720a922bb7e3cf0712062c1669847d received 92,151.22 (0.0092%), balance now 0 (0%)",
    "Limits: this follows token Transfer logs on this chain only. A balance of zero means that address no longer holds tokens; it does not say where they went, and a balance now is not proof of the same tokens. The first holder may be a launchpad or bonding-curve contract, an exchange router or an account, and this tool does not label it. These transfers are not shown to be purchases, and the receiving addresses are not labelled as snipers or insiders; nothing here says what anyone intended. A node could still return incomplete logs. Compare the anchor time with the pool creation times above: a token can trade somewhere else before a Uniswap v4 pool exists.",
    "HOLDER CONCENTRATION (computed by this agent from Transfer logs, with the checks listed below):",
    "Replayed from 5229 Transfer logs from block 0 to block 104158304 (one eth_getLogs request for the whole block range, no pagination, all logs returned by the RPC node). Checks that passed: replayed balances add up to totalSupply, and each of the top 10 balances equals a direct balanceOf read at that block. Addresses holding more than zero: 273.",
    "Top 10 balances hold 51.36% of supply together: 0x8366a39cc670b4001a1121b8f6a443a643e40951 20.45% (contract, the Uniswap v4 PoolManager that holds tokens for v4 pools); 0x267444d099b10fb5ed7c3cc7b7c767adca574952 8.16% (contract); 0x34eadad425a02f28ee3db60ba27bbe07e2af74bb 4.68% (no contract code at that block); 0x9e8f506d78b16c5546a989e51ac93528f6846b8a 3.29% (no contract code at that block); 0x09cb9960c0133ed89b124a9e28bdd9be49472347 2.53% (contract); 0x9c22b9a2d18908adcb2e9b44269c42beebfdee59 2.51% (contract); 0xe75d49c99b1228853d8883492603dd4c8432ec3f 2.47% (contract); 0x92d71485f221756661295bca2c53521e95bc0ea9 2.45% (no contract code at that block); 0x9485aec16cf21ae2532aae22ae870c85a392807c 2.41% (no contract code at that block); 0xb1ba395af5f384d59d430922c3a0e64d62355b36 2.36% (no contract code at that block).",
    "Zero-address handling: tokens sent from the zero address are counted as minted, and tokens sent to the zero address are not credited to any holder, so they are treated as removed from supply (the sum check then holds only if totalSupply fell by the same amount). The 0x...dEaD address is counted as an ordinary address that holds tokens. Limits: matching totalSupply does not prove the log list is complete, because a missing pair of balanced transfers would leave the sum unchanged, and the balanceOf check covers only the top 10, so an omitted smaller holder could be missed. The node is a single public provider and its completeness is not independently confirmed. Labels are addresses, not people, and the Uniswap v4 PoolManager holds tokens for many pools, so it is not one investor. Contract balances (pools, lockers, routers) are not people, and one person can use several addresses, so this is not a count of owners. Holders are not identified.",
    "THIRD-PARTY MARKET OBSERVATIONS (not verified by this agent):",
    "Market data below comes from third-party APIs (DexScreener, GeckoTerminal). It is not verified by this agent and can be delayed, incomplete or wrong.",
    "DexScreener: 1 pool listed. Largest by reported liquidity: uniswap v4 (pool 0x331ea4c51b257523fa88ea3f45486759b0892b085ebef88ccd44b90a55563c1f), price $0.00004670, liquidity $19,107, 24h volume $2,504, 24h transactions 1927 buys / 13 sells, pool created 2026-10-31.",
    "GeckoTerminal pools: unknown (HTTP 429).",
    "Holders: unknown (GeckoTerminal answered HTTP 429).",
    "GoPlus Security: unknown (GoPlus is rate limiting free keyless requests, so this tool is not asking it again for at least 5 minutes; no result for this address).",
    "Third-party sources can label the same pool differently or disagree on figures. Check them yourself before relying on any number.",
    "Official match: YES. This is the official $BULLY contract published at abullycoin.com/press.",
    "SIGNAL CHECKLIST (a list of items looked at, not a safety score or rating): 10 items. Seen: 2. Not seen: 4. Numbers or information only: 2. Unknown: 2. The count is not weighted, items differ in importance, 'not seen' is not proof of absence, and a token can be harmful with zero items seen.",
    "  - Mint, pause, blacklist, fee or upgrade function patterns in the bytecode | not seen | this agent, byte scan of 34 patterns",
    "  - Upgrade (proxy) pattern | not seen | this agent, 6 tested patterns",
    "  - An owner() function that answered | not seen | this agent",
    "  - Verified source code on Sourcify | unknown | this agent; not found there, other explorers not checked",
    "  - Top 10 balances share of supply (pools, lockers and routers included) | number: 51.36% | this agent, replayed from Transfer logs",
    "  - Who holds the liquidity position NFT | seen: an ordinary account | this agent, an account can usually withdraw; 6 of 6 owners decoded (4 ordinary, 2 contract, 0 burn)",
    "  - Hook permission that lets the hook adjust swap or liquidity amounts | seen | this agent, from hook address bits (not proof of behaviour)",
    "  - Simulated small buy then sell | not seen: worked | this agent, read-only simulation; real wallets can be treated differently",
    "  - Share of minted supply that left the first holder in the first 60 seconds | number: 6.8903% | this agent, transfer logs",
    "  - Flags raised by GoPlus Security | unknown | third-party, no usable answer",
    "  = ATTENTION MODEL v1 (a transparent rule list, NOT a safety score or prediction): 8 attention points observed in what was read. Weight fully read: 24 of 27. Coverage 89% of the weight was fully read, so unknown or partial items could still add points; zero for a partial item means none seen in what was read, not none present. Weights are hand-chosen by this agent and have not been fitted to or validated against real outcomes. A low number does not mean safe and a high number does not mean a scam; it only shows how many of these items deserve a closer look. Computed from the checklist above at the time of this check.",
    "  + Mint, pause, blacklist, fee or upgrade function patterns | 0 of 3 | source: this agent, byte scan of 34 patterns",
    "  + Upgrade (proxy) pattern | 0 of 4 | source: this agent, 6 tested patterns",
    "  + An owner() function that answered | 0 of 1 | source: this agent",
    "  + Top 10 balances share of supply | 2 of 3 | source: this agent, replayed from Transfer logs",
    "  + Liquidity position NFT held by an ordinary account | 4 of 4 | source: this agent, an account can usually withdraw; 6 of 6 owners decoded (4 ordinary, 2 contract, 0 burn)",
    "  + Hook can adjust swap or liquidity amounts | 2 of 2 | source: this agent, from hook address bits (not proof of behaviour)",
    "  + Simulated buy then sell failed | 0 of 5 | source: this agent, read-only simulation; real wallets can be treated differently",
    "  + Large share left the first holder in 60 seconds | 0 of 2 | source: this agent, transfer logs",
    "  + Flags raised by GoPlus (third-party) | not scored: unknown | max 3",
    "Not checked by this agent: pools on DEX designs other than Uniswap v4, simulation sizes other than 0.0005 ETH, whether liquidity is locked or burned beyond the position ownership and the source text scan shown, who can use the functions listed above, identities of holders, the hook contract's code, internal calls of the creation transaction. Nothing here is a safety verdict or a guarantee. See https://abullycoin.com/guide for the five checks, and open the address on https://robinhoodchain.blockscout.com/address/0xff0fa3799686ac47e3aff62aa2210a8441737cc3"
  ],
  "note": "Read-only facts from a public RPC node, plus labelled third-party market data. Not a safety verdict."
}