The fee only applies on swaps
SnowballToken charges its fee only when a transfer touches a registered AMM pair (isPair[from] || isPair[to]): a buy or a sell. Wallet-to-wallet transfers are free. The fee itself is capped in code:
Burn vs. buyback: these are different operations
The marketing copy says “automatic buybacks.” What actually happens depends on whether the fee token is the thing being burned:
- SnowballToken's own fee: it's already collected in $SNOWBALL, so
FeeRouterjust burns it directly (token == burnTarget). Routing it through a swap first would burn gas and slippage for no reason. There's nothing to “buy back.” - Any other registered token's fee: its fee is swapped token → BNB → $SNOWBALL, then burned. That is a genuine buyback: $SNOWBALL demand funded by another token's volume. This is the “ecosystem-wide buy-and-burn” the roadmap describes.
Copy accuracy note
Burn / auto-liquidity split
Each registered token has a configurable split between the amount burned outright and the amount paired into liquidity. The default the deploy script uses for $SNOWBALL itself:
The LP portion is split in half again: half swapped for BNB, then paired with the remaining half via addLiquidityETH. The resulting LP tokens go to a configurable lpSink, which defaults to the burn address (0x...dEaD) for a trustless, permanent lock; the owner can point it at a real locker contract instead.
Who can trigger a burn
swapAndBurn(token) is permissionless by design (it's never dependent on one keeper going offline), but is gated behind onlyKeeperOrOwner until the owner calls setPermissionlessSwaps(true). See Security Model for why that gate exists.
Why the registry doesn't force fee routing
SnowballRegistry.register() is permissionless precisely because it can't compel an already-deployed, externally-owned ERC-20 to send it fees. Registering a token is a discovery/listing action; actually routing a token's fees through FeeRouter requires the platform owner to explicitly call configureToken(...) for it. Registry listing and fee routing are independent on purpose.