---
name: snowball-launchpad
description: Snowball (snowballcapital.fun), the Robinhood Chain launchpad that welds every launched coin's Pons V2 creator fees into permanently locked full-range liquidity. Mechanism verified in bytecode, addresses, pad scale, the SNOWBALL ticker collision, and why the pad's own coin was launched on Pons directly. Read before screening SNOWBALL or any coin whose page is on snowballcapital.fun.
sources: [cowork]
aliases: [snowball, snowballcapital, snowballcapital.fun, snowball capital, SNOWBALL, snowball factory, snowball vault]
---

# Snowball (snowballcapital.fun) — screened 7 Sep 2026, pad ~4 hours old

Sister pad to [[nest-launchpad]]: both are Pons V2 creator-fee redirectors on Robinhood Chain. Nest routes fees into a stock basket. Snowball routes fees into the coin's own liquidity, permanently.

## Addresses
| thing | address |
|---|---|
| SNOWBALL token (real) | 0xb19f5a6e22f9057980b08ff05b7f5a6878ab0c8a |
| SNOWBALL token (COPYCAT, not theirs) | 0x3FBf37267A7a0f54B9062a465A997e4698925910 |
| Snowball factory | 0xf9C93Dc0c2A4A5848A588D8123c42e62173cE71E |
| Team wallet / SNOWBALL fee recipient | 0x0645dd2a0309ab8f6de8d0aec3b295d27588911a |
| SNOWBALL Pons curve | 0x7d0f414a99d4db9aeaf8e9186fbfadd1adb449e0 |
| Pons permanent locker (shared, all Pons coins) | 0x267444d099b10fb5ed7c3cc7b7c767adca574952 |
| SNOW vault (pad idx 1) | 0x1115e684d5b6bc058b1040797d5772bed740acd2 |
| LIQUITITTY vault (pad idx 12) | 0x0f62ac0e0ea857aeb69e60ce47c176944a4b5dff |
| dev burn tx | 0xfe66bcddf3b23563ed118f7b747a8c8a09c5314ee53f2c65d12ba5b14a1204e7 |

Pons V2 factory, escrow, hook and the V4 PoolManager are the same ones listed in [[nest-launchpad]].

## Mechanism, verified in bytecode not docs
- Launch through the factory is one transaction: it deploys the coin on Pons, deploys a vault, and sets the coin's Pons creatorFeeRecipient to that vault before anyone trades.
- `roll()` claims creator fees from the Pons escrow, pays the caller `ROLLER_BPS()` = **50 bps (0.50%)**, swaps and mints the other **99.5% as full-range Uniswap V4 liquidity owned by the vault**. `MIN_ROLL()` = 0.0005 ETH.
- `TICK_LOWER()` = -887200, `TICK_UPPER()` = +887200, tickSpacing 200. Maximum full range.
- `pm()` = the V4 PoolManager singleton, so the position is minted directly into PoolManager, **not as an NFT**. There is no token to transfer and no NFT to sell.
- Vault selector scan: **PRESENT** roll(), withdraw(), unlockCallback(bytes), owed(address), owedTotal(), pending(), totalRolled(), totalClaimed(), rolls(), lastRoll(), liquidityAdded(), poolLiquidity(), poolId(), key(), graduated(), token(), launchpad(), pons(), escrow(), hook(), pm(), tickSpacing(), TICK_LOWER(), TICK_UPPER(), ROLLER_BPS(), MIN_ROLL(). **ABSENT** owner(), transferOwnership, sweep, rescue, removeLiquidity, migrate, upgradeTo, pause, initialize. `withdraw()` only pays the roller's own owed 0.5%.
- **Factory `owner()` reverts. No owner.** Factory `pons()` returns the Pons V2 factory.
- Conclusion: the "liquidity is locked and cannot be pulled" claim is TRUE and structural, verified at the bytecode level.

## Pad scale, 7 Sep 2026 (~4h old)
- `count()` = 37 launches. **Only 2 have ever rolled.** 99 rolls total.
- Total permanently locked liquidity created: **11.9954 ETH = $30,117** at ETH $2,510.75. Owed to rollers unclaimed 0.0366 ETH.
- SNOW (0x6da093d30dccbda36f7a722acc75d8ab8ef625b5) 34 rolls, 6.3166 ETH. LIQUITITTY (0x421eb6dde5064642ca206f129bc79efa7d68c748) 65 rolls, 5.6788 ETH.
- Pad is full of duplicate tickers of its own (4x GLACIER, 4x LIQUIDTITTY variants, 3x SNOWBUNNY, 3x TEST).

## THE KEY FINDING — why SNOWBALL launched on Pons directly
The site says its own coin "was launched on pons directly rather than through the factory, so it has no vault and its creator fees are not rolled." Verified: `factory.vaultOf(SNOWBALL)` returns the zero address.
- The factory takes **no launch fee, no cut of any roll, and has no owner to receive one**. There is no other revenue line in the design.
- So if SNOWBALL had launched through its own factory, its fees would be welded into its own liquidity forever and the team would earn **nothing at all** from the entire enterprise.
- Instead SNOWBALL's Pons creatorFeeRecipient is the team EOA. Measured live: **Pons escrow `balanceOf(0x0645dd2a...)` = 0.5686 ETH ($1,428) claimable, accrued in ~4 hours.** That is the whole business model.
- **Both readings of the question are the same fact:** they keep the coin's fees as income, AND that is precisely why the pad can honestly take nothing from the coins launched on it.
- **Implication: SNOWBALL the token captures nothing from the pad's growth IN ANY DEPLOYED CONTRACT.** No fee share, no vault, no burn, no staking, no SNOWBALL-denominated launch fee. Same structural shape as PAR, PAIR and NUDES today. See the roadmap section below, which is the qualifier that "captures nothing" needs.
- The sting worth repeating: SNOWBALL is the one coin on the pad that does not get the treatment the pad sells.

## CORRECTION 7 Sep 2026 — the roadmap DOES point at SNOWBALL
Ben pushed back on "captures nothing" with a screenshot of roadmap deck **DOC-009** ("nine things to build, and the loop they close"). **My miss: I scraped the homepage and app.js but not the docs deck**, which is not linked from the homepage (homepage nav is only #/how, #/launch, #/roll, #/log). Lesson: on any project with a docs deck, hunt the deck separately; the homepage is the pitch, the deck is the roadmap.
- Three of the nine items would give SNOWBALL a fee route: **"launch fee in $SNOWBALL: every launch buys $SNOWBALL and locks it"**, **"the roller's choice: take the 0.5% in $SNOWBALL, every roll is a bid"**, **"first press: holders get a head start"**. The other six are pad mechanics (custom splits 0-50% to the launcher, referrals, seeded launches, keeper bot, graduation bounty, embeddable roll button).
- **NONE of it is deployed.** Verified: factory bytecode (13,371 bytes) does NOT contain the string b19f5a6e22f9057980b08ff05b7f5a6878ab0c8a; vault bytecode does not either; live factory charges no launch fee; `roll()` has no holder gate; `owed()` pays ETH only.
- **The roadmap's own footer is the load-bearing line: "each is a new contract new coins opt into, because the deployed ones cannot be changed by anybody."** So the same immutability that makes the vaults safe means **the 37 already-launched coins can NEVER route a cent to SNOWBALL.** It needs a SECOND factory and the flywheel restarts at zero coins on the day it ships.
- Team's own words on X the same day: 03:36 UTC **"Working on the flywheel mechanism and tax pooling to funnel the main coin now."** 04:31 UTC **"planned work on the launchpad. six things about why a coin gets launched here rather than anywhere else, three about giving $snowball something to do."** "Giving $snowball something to do" is their admission that today it does nothing.
- Argument that it ships: a launch fee denominated in SNOWBALL is paid by launchers, not by the team, so unlike a fee share it costs them nothing. That is the strongest structural reason to expect it.
- **WATCH TRIGGER: a second factory address on the pad whose bytecode contains 0xb19f5a6e22f9057980b08ff05b7f5a6878ab0c8a.** Until then every SNOWBALL fee claim is a plan.

## THE PINNED TWEET IS FALSE — credibility finding
X: **@snowballcapfun**, created 6 Sep 2026, 708 followers, 38 posts, blue check, 1 following.
- Pinned post 7 Sep 01:31:08 UTC: *"a launchpad on robinhood chain where a coin's creator fees roll back into its own locked liquidity. anyone can press roll. **this is the launchpad's own coin, launched through it.** CA: 0xb19f5a6e22f9057980b08ff05b7f5a6878ab0c8a"* — 4.4K+ views.
- **It was not launched through the factory.** `factory.vaultOf(SNOWBALL)` = zero address. SNOWBALL's `deployer()` = the team EOA 0x0645dd2a0309ab8f6de8d0aec3b295d27588911a, whereas every real pad coin's `deployer()` = the factory 0xf9c93dc0c2a4a5848a588d8123c42e62173ce71e.
- **Their own site contradicts the tweet three times** in app.js: "launched on pons directly, not through the factory" / "no vault. launched on pons directly, so its fees are not rolled" / "The launchpad's own coin was launched on pons directly rather than through the factory, so it has no vault and its creator fees are not rolled."
- Charitable: the tweet was written from the pre-launch plan (the static HTML fallback still reads "The launchpad's own coin has not been launched yet. When it is, it goes through the factory like any other coin") and never corrected. Either way it stayed pinned and wrong through three site rebuilds.
- **Method note: X API (twitterapi.io) returned zero tweets for this account** on both `user/last_tweets` and `advanced_search` — the account is <48h old and not in X's search index. The Chrome bridge worked: `get_page_text` returns only ONE article, so use `javascript_tool` with a scroll-and-collect loop over `document.querySelectorAll('article')` reading `[data-testid="tweetText"]`, keyed on `time[datetime]`. Keep the Map on `window` between calls; a single long-running scroll loop times out CDP at 45s.

## SNOWBALL token book (traced from full Transfer history, 106,850 logs, launch block 56441916)
- Supply 1,000,000,000, 18 decimals. 3,833 holders, 10,371 addresses touched, in 4 hours.
- **Dev allocation burned.** Curve sent 20,000,000 (2%) to the team wallet at the launch block; team sent all 20,000,000 to 0x...dead ~5 min later. **Team holds zero SNOWBALL.**
- 8.163% sits in the Pons shared permanent locker 0x267444d099b10fb5ed7c3cc7b7c767adca574952 — that locker holds exactly 8.163% of SNOW and LIQUITITTY too, matching the "8.16% permanently locked" line in [[nest-launchpad]]. **Not Snowball's, not a per-coin overhang.** It has `owner()` = 0x263ed295dafae1d9aadd6e56c4b6f9f38ee019dd and no ERC20 transfer selector; 3 selectors (0x292d5732, 0x732e78e4, 0xb8a0d7ab) never resolved.
- 7.779% in the V4 PoolManager = pool inventory, not a holder.
- Excluding pool + Pons lock + burn: **top 20 real holders = 18.61%, largest single 1.714%.** No whale. Most large holders are Robinhood smart-contract accounts, which is what retail looks like on this chain.
- One early bundle: 0x3143ecb69ef6eea5257642a7404a54c25fe93df8 took 250,000,000 (25%) in the block after launch and routed all of it out through 0xb06983db4fad9cd94efbf9088c364ebcacde1214 in 14 pieces. Holds nothing now.

## TICKER COLLISION — two live SNOWBALLs, both "snowball capital", same day
Ben's DexScreener link (pair 0xEb0995022Dce9e26629D70F6D39a8fe553Ab38B8) was the **copycat**, not the pad's coin.
| | real 0xb19f5a6e... | copycat 0x3FBf3726... |
|---|---|---|
| launchFactory() | Pons V2 | absent |
| venue | Uniswap V4 + Pons hook | Uniswap V2 fork, factory 0x8bceaa40b9acdfaedf85adf4ff01f5ad6517937f |
| decimals | 18 | 9 |
| first pool | 01:31:49 | 02:22:21 |
| pairs | 30 | 1 |
| mcap / liq / 24h vol | $1,051,821 / $220,345 / $7,174,698 | $1,988,289 / $150,299 / $1,277,134 |
| 1h price, 5m buys:sells | -4.78%, 17:32 | +104%, 90:10 |
| socials | none on DexScreener | x.com/SNOWBALLRH_X |
- Copycat is a hand-written ERC20 with a `rescue` function ("Cannot rescue own token" string), `owner()` = zero (renounced), LP 100% at 0x...dead.
- **The copycat was winning the tape.** Narrative migration fired in the unusual direction: flow moving TO the shell.

### 8 Sep 2026, +24h: THE COPYCAT HAS A SELL LIMIT. The real one does not. Outcome scored.
- [stated] Ben: "one of them, the one that you originally gave me was a scam that couldn't be exited. Sales were limited." **He had the two the wrong way round.** The sell limit is in the COPYCAT, which was HIS original DexScreener link and the one I told him to avoid.
- **COPYCAT 0x3FBf37267A7a0f54B9062a465A997e4698925910, selector scan + bytecode strings:** `owner()`, `renounceOwnership()`, `enableTrading()`, `maxTxAmount()`, `maxWalletSize()`, `taxWallet()`, `totalTaxCollected()`, `0x791ac947` (swapExactTokensForETHSupportingFeeOnTransferTokens). Revert strings include **"Sell limit per block exceeded"**, "Max wallet size exceeded", "Max transaction amount exceeded", "Cannot rescue own token".
  - Live reads: `maxTxAmount()` and `maxWalletSize()` both = 100% of supply (not binding), `owner()` = 0x0 (renounced), but three unlabelled getters carry the live sell throttle: **`0x38fbf04d` = 5** (sells per block), **`0x40b0c56e` = 20,000,000 tokens = 2% of supply**, **`0x8f3d6e04` = 1,000,000 tokens = 0.1% of supply**.
  - Tape confirms it: **12,743 buys against 2,595 sells in 24h, a 4.9:1 ratio.** That is the honeypot signature, not sentiment.
- **REAL 0xb19f5a6e22f9057980b08ff05b7f5a6878ab0c8a is clean, re-verified by selector scan:** only allowance, approve, balanceOf, burn, burnFrom, curve, decimals, deployer, launchFactory, name, symbol, totalSupply, transfer, transferFrom. **NO owner, NO pause, NO blacklist, NO maxWallet, NO maxTx, NO trading flag, NO tax, NO sell limit.** Tape: **14,945 buys against 13,928 sells in 24h, 1.07:1.** People exit it freely.
- **The bot already catches this.** `scam_veto()` in /opt/launchwatch/launchwatch.py run against both: real -> `None`, copycat -> **`contract: a limit on SELLING ('sell limit')`**. Reusable one-liner for any future "can I get out" question: load launchwatch.py with importlib and call `lw.scam_veto(ca)`.
- **OUTCOME SCORE, +24h.** Real SNOWBALL: $1,051,821 -> **$40,885 mcap** (-96%), liq $18,872. Copycat: $1,988,289 -> **$6,763,769 mcap** (+277,248% on 24h), liq $337,039. **The honeypot 165x'd and the clean coin died.** Identity call was right, direction call was wrong. Lesson worth holding: on a ticker collision, "which one is real" and "which one pays" are two separate questions and the answer can be opposite. Screen both, say which is real AND which has the bid, and say plainly that the one with the bid may be the one you cannot sell.

## Method notes
- snowballcapital.fun is a single inline-JS page + `app.js` (89,630 bytes) talking straight to the RPC. **The factory address is only in app.js: `FACTORY: "0xf9C93..."`.** The site HTML alone shows only the four Pons addresses.
- app.js contains a `demoSeed()` block with hardhat test addresses (GLACIER/SLUSH/DRIFT/AVAL/YETI/FROST). **It is gated behind `?demo`** and is never live. Do not mistake it for pad data.
- Robinhood RPC `eth_getLogs` works and is the way to do holder forensics on this chain: cap is 10,000 logs per query, ~20k block spans are safe near launch, and it 429s under concurrency (serialise with ~1s sleeps and retry). Block time is 0.102s, so 1 hour ≈ 35,000 blocks.
- `getTokenLargestAccounts`-style shortcuts do not exist here; rebuild balances from Transfer logs.
- Could NOT determine who deployed the Snowball factory — RPC is not an archive node and the creation tx is out of reach. CREATE-address prediction from the fee wallet at nonces 0-59 does not match.
