A Snowman is a wallet that makes markets and keeps what it earns.
Three existing pieces, wired together in a way that makes the NFT the beneficiary rather than the receipt.
Pons v2 pairs
Pons v2 is the launchpad. A creator launches a token against a quote asset. On Robinhood Chain that quote asset can be USDG, or a tokenized stock. The important detail for Snow Pons: Pons v2 pays creator fees in the quote asset, not converted to ETH. A $JENSEN/NVDA pair pays its creator in NVDA.
Verified on-chain: approvedPairTokens() returns true for USDG, AAPL, NVDA and TSLA; creator fees accrue in the quote asset and are pulled with claim() / claimToken(); base fee 1%, creator tax capped at 10%. Snow Pons sets the creator-fee recipient to a Snowball controller instead of a person. “Snowball” is our name for it, not a Pons contract.
Snowball controller
The controller is a small contract that runs once per epoch, or whenever anyone calls it:
fees = quote.balanceOf(controller) for each gene g: share = fees * allocation[g] tokenSide = swap(share * g.buyToken → token) quoteSide = share * g.lp - tokenSide (paired) reserve = share * g.reserve position = pool.addLiquidity(tokenSide, quoteSide) distribute(position, reserve) → globes with gene g, pro-rata
Nothing leaves. Instead of sell pressure, every trade deepens the pool. The controller has no admin key after launch and no way to withdraw. It can only route.
ERC-6551 wallets
Every Snowman has a token-bound account: a smart contract wallet whose owner is whoever holds the NFT. The controller credits assets to these accounts. When the NFT moves, the wallet moves. There is no redeem, unwrap or claim step to transfer the economic object; the ERC-721 transfer is the transfer.
Ownership rules follow the standard registry at 0x000000006551c19487814612e58FE06813775758, which is already deployed on Robinhood Chain along with the proxy, implementation and guardian. A Snowman wallet can hold ERC-20s, the pool's LP position, and anything else sent to it.
Onchain art
The image is rendered from the wallet, not from a trait table. Each number has one visual job:
- Assets under NFToverall size: small, medium, big, monster
- LP position sharebelly width
- Quote reserve sharesnow on the ground
- Unclaimed feesfalling snow
- Mergessnowballs stacked; a merge adds one
- Generationcoal buttons
- P&L vs minta smile in profit, a frown in loss
- Age over 120 daysnight sky with stars
- Monster tieran aurora
- Genethe hat: beanie, top hat, bowler, party hat
- Pairscarf colour
- Token ideyes, nose, arms, accessory, ridgeline, cloud field
The whole thing animates: snow falls at a rate set by unclaimed fees, clouds drift, the arms wave, and hovering shakes it. Because it is deterministic, two people can verify the same picture from the same balances. Rarity is not assigned; it is the consequence of what happened.
Merge
Any holder of two Snowmen on the same pair can merge them. The donor's wallet executes a sweep of every balance and LP position to the survivor's wallet, then the donor NFT is burned. Supply never increases. Each pair starts with 1,000 globes and only trends down.
A merged Snowman keeps the survivor's gene and id, adds one to generation, and increments its merge count. It gains a snowball.
Two rules the merge contract enforces because ERC-6551 does not: a burned id is never re-mintable (its account address would be the same, and would inherit anything left behind), and the sweep checks post-transfer balances rather than the boolean execute() returns, which an uninitialised account reports as success while moving nothing.
Genes
Each globe is minted with one of four genes that decides how the controller allocates its fees. HODLER buys token. MM is almost all LP. BOOMER keeps the tokenized stock. DEGEN concentrates liquidity and compounds aggressively. Genes are fixed. The only way to change your exposure is to merge into a globe with a different gene, and lose yours.
What can go wrong
- The token goes to zero. The LP position is then mostly token, and the globe is worth its quote reserve.
- Impermanent loss. Globes are market makers; they underperform holding when price moves a lot in either direction.
- Tokenized stocks trade on market hours. Price gaps at open can be sharp.
- The controller is code. It will be audited and open source. That is not the same as safe.
- Pons can move the fee stream. Pons v2 lets the protocol change any token's
creatorFeeRecipientbehind a three-day timelock (pendingCreatorFeeRecipientis readable on-chain). If that ever points away from the Snowball controller, fees stop flowing to Snowmen. The controller watches for the pending change and surfaces it here. - Pons v2 itself is unaudited at time of writing, and its factory, hook and locker share one admin key that also gates the approved quote-asset list.
- Tokenized stocks are 18-decimal and carry a
uiMultiplierthat is not always exactly 1e18 (AAPL's isn't); USDG is 6-decimal. Valuations shown here apply both.
vs. mynt.lol, Everpool, HOODIES
| Project | What the NFT is |
|---|---|
| mynt.lol | Sets a shared vault as the Pons creator-fee recipient; anyone can call claimPonsFees(); 30% protocol / 70% to a floor. Pooled, not per-NFT, no merge |
| Everpool | Wraps Uniswap pools that already autocompound; its burn vault has never executed on-chain |
| HOODIES | ERC-6551 NFTs on Robinhood Chain: the wallet exists, nothing runs inside it |
| Snow Pons | An ERC-6551 wallet that is itself a compounding market maker, with art drawn from its balance sheet, that can merge |