Independent On-Chain Analysis · 2026-09-06

ZEAL Token Due Diligence — Robinhood Chain

Phase 2 (RPC-first) · contract 0x9fa1c5e9...a5ffdc · chain ID 4663 · every finding sourced from direct JSON-RPC calls, not a block explorer

Executive Summary

Conditional Not investment advice

Phase 1 found the ZEAL token contract itself clean against raw bytecode — no mint, no admin gate, no blacklist, no tax, not a proxy — but left three questions as flat unknowns: holder concentration, who controls the LP, and the deployer's history. This phase answers all three directly from the chain's own RPC (eth_getLogs, eth_call, eth_getCode) — no block explorer was used as a source, only as later corroboration.

The answers cut both ways. Top-10 holders control 31.67% of supply (20.28% excluding the pool manager and the LP-holding vault). The main pool's $127k liquidity was traced end-to-end to a specific vault contract whose entire bytecode was read — no withdrawal function was found, but that is a "not found," not a certified permanent lock. And the deployer turns out to have shipped a second contract, a "Zeal Wrapped Zcash" (zZEC) token, that resolves phase 1's biggest red flag (the website's wrap/reserve claim) as real — but introduces a new one: its mint() is gated to a single EOA with no visible on-chain deposit proof.

Net effect on the phase-1 verdict: a wash, not a clear upgrade or downgrade. Still conditional. Still not a pass.

Key Metrics

31.67%
Top-10 holder share
20.28%
Top-8 excl. infra
27,195
Transfer logs replayed
19/20
Balances verified live
0
Withdraw fns found in LP vault
29
EIP-7702 accts in top 60
7
Contracts deployer shipped
$127k
Main pool liquidity (ph.1)

Data Overview

Method: everything below comes from direct JSON-RPC calls to https://rpc.mainnet.chain.robinhood.com (the default Python/urllib User-Agent gets a bare 403 from this endpoint — a curl-style header fixed it; no other workaround needed). Block explorers were used only to corroborate, never as a primary source.

ItemValue
Token contract0x9fa1c5e90a11294f83a9f135b81ad1b537a5ffdc
ChainRobinhood Chain, chainId 0x1237 = 4663
Token deploy block (found by binary search)53,539,580 · 2026-09-03 15:59:53 UTC
Main pool init block53,550,438 (~67 min after token deploy)
Phase-2 scan snapshot block56,099,994
Phase-2 pinned "live" block56,117,502 · 2026-09-06 16:23:25 UTC
Deployer EOA0x1c083f2f85acadae452c7512c45cd7c8a3ddbf03
Total supply1,000,000,000 ZEAL (18 decimals), fixed at deploy

Keccak-256 (evm_hash.py from the evm-token-due-diligence skill) was verified byte-for-byte against pycryptodome on two known vectors before use. A hand-written, stdlib-only CREATE-address derivation was verified against a known reference vector before being trusted for the deployer-history check.

Key Insights

Constructor minted 100% to the bonding-curve escrow, not the deployer: the token's first-ever Transfer event moved the entire 1B supply to 0x3c9d54ed...be1fc, which then forwarded 23,028,611 ZEAL (2.30%) to the deployer in the same transaction. Both addresses are now drained to zero — the bonding curve has fully graduated.
Top-10 concentration verified at 31.67%: reconstructed from 27,195 replayed Transfer events, cross-checked against live balanceOf for the top 20 (19/20 exact match; the one mismatch is the PoolManager, which trades continuously — expected drift, not an error).
29 of the top 60 holders are EIP-7702 smart-contract wallets, 23 of them delegated to the same ERC-4337-style implementation. This looks like mainstream smart-wallet software adoption, not proven common ownership — flagged, not treated as a red flag on its own.
LP custody traced end to end: Uniswap V4 PoolManager identified (13/14 canonical selectors matched), the main pool's LP position NFT located, and the vault contract holding that NFT read in full (1,969 bytes) — no function to move, burn, or decrease that position was found anywhere in it.
The "wrap ZEC" product is real — just not in the ZEAL contract. The deployer separately shipped a "Zeal Wrapped Zcash" (zZEC) token whose mint() is gated to that single EOA, with no visible on-chain proof-of-deposit check found. This resolves phase 1's biggest red flag as half-true and introduces a new one.
ZEAL itself was not created by the deployer's own CREATE nonce sequence — it was deployed via CREATE2 by a factory, consistent with the Pons launchpad architecture (the deployer is the transaction's tx.origin, not the direct CREATE caller).

Detailed Analysis

1. Holder concentration

Scanned every Transfer event for the token from deploy block 53,539,580 to a snapshot at 56,099,994 (27,195 events, 2,572 addresses touched), chunking eth_getLogs adaptively — this RPC caps results at 10,000 logs/call and separately times out on wide, log-sparse ranges. Balances were reconstructed by replay; summing every non-zero address plus the 0x0 mint sink nets to exactly zero, confirming no log was missed or double-counted.

RankAddressZEAL% supplyType
10x267444d0...495281,632,6538.163%Contract — holds main pool's LP-position NFT (see §2)
20x6df61024...4c7738,763,5683.876%EIP-7702 smart-account wallet
30x28018862...b34b36,171,5923.617%EOA
40xd52f99a1...b77133,719,1273.372%EOA
50x8366a39c...095132,250,991 (live ~34.2M)3.225%Uniswap V4 PoolManager (confirmed)
60x5808c09d...4aee20,168,3222.017%EOA
70x5fede549...773e20,085,9632.009%EOA
80x0580537b...ea7518,761,7121.876%EOA
90xbfb567a8...b4d118,098,5501.810%EIP-7702 smart-account wallet
100x686ada61...525517,000,0001.700%EIP-7702 smart-account wallet

Deployer's current balance: 315,623 ZEAL (0.0316%) — matches phase-1 GoPlus exactly, cross-validating the whole reconstruction. Excluding the two clearly-infrastructure addresses (#1 the LP vault, #5 the PoolManager), the remaining top-8 wallets still hold 20.28% of supply.

EIP-7702 pattern: 29 of the top 60 holders carry a 7702 delegation (bytecode 0xef0100 + 20-byte implementation address). 23 of those delegate to the same implementation, 0xe6cae83b...8555b, whose selectors (entryPoint(), execute(address,uint256,bytes), isValidSignature / ERC-1271, ERC-721/1155 receiver hooks) match standard ERC-4337 smart-account software — consistent with mainstream wallet upgrades post-Pectra, not proof of one operator controlling 23 wallets. Confirming common ownership would need each account's owner-key storage slot, under an unconfirmed layout — not attempted.

2. LP custody

Uniswap V4 PoolManager identified with high confidence at 0x8366a39c...0951 — 13 of 14 canonical IPoolManager selectors matched (computed independently via keccak256, not looked up): unlock, initialize, modifyLiquidity, swap, donate, sync, take, settle, settleFor, clear, mint/burn (ERC-6909), collectProtocolFees. Holds 32.25M ZEAL (rising, live) and 13,565+ native ETH. Not at Ethereum mainnet's canonical PoolManager address — this chain has its own independent V4 deployment (Permit2, by contrast, is at the canonical mainnet address).

10 pools exist for ZEAL (vs. 6 visible on DexScreener, which apparently only surfaces pools with meaningful activity). Only the main pool carries the "PonsV2: MemeHook" (0xe5e70264...e044) — Ownable2Step, owner 0x263ed295...019dd, live and not renounced. The hook's own bytecode does not contain the modifyLiquidity selector — it cannot itself add or remove liquidity.

StepFinding
1ModifyLiquidity fired exactly once for this pool, ever, same tx as Initialize — never touched since
2Caller = 0x58daec31...4fa7, confirmed via ERC-721 selector set to be the Uniswap V4 PositionManager periphery contract
3PositionManager minted the position NFT (tokenId 1,652,966) to 0x267444d0...4952 in that same tx
4Live ownerOf() confirms that address still holds the NFT today — not burned, not moved to a locker
5That same address is independently the #1 ZEAL holder (8.16% of supply) — one contract, both the LP position and the largest token bag
6Read its entire 1,969-byte bytecode: Ownable2Step, owner = the same key that owns the hook, not renounced; a second privileged setter is gated on the launchpad factory address, not on owner
7Searched the entire bytecode for any call construction toward PositionManager's removal surface or PoolManager's modifyLiquidity: none found. The only outgoing call built anywhere is a generic ERC-20 transferFrom that pulls tokens in, not out

Conclusion: no working on-chain lever was found, in this contract, for its owner or the factory to pull the ~$127k of main-pool liquidity. That is a "not found," not a certified permanent lock — it's a read of what the deployed bytecode contains, not an audit guarantee.

3. Deployer history

Enumerated deterministic CREATE addresses for nonces 0–44 (address = keccak256(rlp([sender, nonce]))[-20:], self-tested against a known vector first). Found 7 contracts directly deployed by this EOA (nonces 0, 5, 8, 9, 16, 38, 40) — ZEAL itself is not among them (deployed via CREATE2 by a factory).

Nonce 9 (0x0b151ff7...e402) is "Zeal Wrapped Zcash" (zZEC, 8 decimals, supply 0.98858567). This is exactly the wrap/reserve product zealtoken.com describes and phase 1 could not find in the ZEAL token's own code — it exists, in this separate contract. owner() is the deployer EOA directly; calling mint() from a non-owner address reverts with a custom error, confirming the gate. Whether mint() internally requires proof of a real ZEC deposit was not fully traced.

Three more deployer-owned contracts (nonces 16, 38, 40) are Ownable with the same owner but were not further characterized. Nonces 0, 5, 8 do not expose a plain owner() and were not characterized either.

Recommendations

This is factual due diligence, not investment advice — nothing here is a recommendation to buy or sell. Read as risk framing only:

  • The phase-1 verdict stands: standard token-contract rug vectors are absent, but residual risk sits almost entirely off the token contract, and that residual risk is now better evidenced, not smaller.
  • 31.67% top-10 concentration (20.28% excluding infrastructure) is a real, verified number for a token 3 days old — treat it as a material concentration risk regardless of the contract's cleanliness.
  • The zZEC "wrap" product's supply integrity currently depends on trusting one private key. If the zealtoken.com narrative is a decision factor, that dependency — not the ZEAL contract — is the thing to weigh.
  • "No withdrawal function found" for the LP vault is reassuring but not a locked-forever guarantee; it reflects what one contract's bytecode contains, not a formal audit.

Next Steps

Could not verify (explicit — unknown is not a pass):

  • Whether the 23 shared-implementation EIP-7702 accounts are independently owned or commonly controlled.
  • Whether zZEC.mint() has any internal check tied to a verifiable real-ZEC deposit, beyond the confirmed onlyOwner gate.
  • The purpose of the deployer's other 5 directly-deployed contracts (nonces 0, 5, 8, 16, 38, 40).
  • The meaning of two duration constants (7 days / 2 days) found in the zZEC contract's storage.
  • Absolute certainty that no path anywhere can withdraw the main pool's LP position — only that none was found in the one contract that holds the NFT.

▶ Slides View

Present the key findings as a slide deck — arrow keys or buttons to navigate, fullscreen recommended.

On-Chain Analysis · 2026-09-06

ZEAL Token Due Diligence

Robinhood Chain, phase 2 (RPC-first): holder concentration, LP custody, and deployer history — everything sourced from direct JSON-RPC, not a block explorer.

Key insights

Three unknowns, now answered

  • Top-10 holders control 31.67% of supply — verified via 27,195 replayed Transfer events, cross-checked live.
  • LP custody traced end to end — PoolManager, hook, PositionManager, and the NFT-holding vault all identified; no withdrawal function found in the vault.
  • ⚠️The "wrap ZEC" product is real — found in a separate deployer contract, but its mint() is gated to one EOA with no visible deposit proof.
  • ⚠️29 of the top 60 holders are EIP-7702 smart wallets — 23 share one implementation; common ownership not provable either way.
Holder concentration

Top 5 of 10 holders

RankZEAL%Type
181,632,6538.163%LP-vault contract
238,763,5683.876%EIP-7702 wallet
336,171,5923.617%EOA
433,719,1273.372%EOA
532,250,9913.225%Uniswap V4 PoolManager
LP custody

Who can pull the $127k?

  • 🔎PoolManager confirmed by matching 13/14 canonical selectors independently via keccak256.
  • 🔎LP position is an NFT minted by the standard PositionManager to one vault contract, still held today.
  • Read the vault's entire 1,969-byte bytecode: no call to any liquidity-removal function found anywhere.
  • ⚠️Not a certified permanent lock — a "not found," not an audit guarantee.
Deployer history

"Zeal Wrapped Zcash" is real

  • 📦Deployer directly shipped 7 contracts (CREATE nonces 0–44); ZEAL itself came via CREATE2 from a factory.
  • ⚠️Nonce 9 is "Zeal Wrapped Zcash" (zZEC, 8 decimals) — the wrap/reserve product from zealtoken.com, confirmed on-chain.
  • ⚠️Its mint() is gated to the deployer EOA alone — no on-chain deposit-proof mechanism found.
Could not verify

Unknown is not a pass

Common ownership of the 23 shared EIP-7702 wallets; whether zZEC's mint() checks a real deposit; purpose of 5 other deployer contracts; the zZEC contract's two timelock constants; absolute certainty no path anywhere can withdraw the LP position.