Main tradeoff
The issuer's side of the contract freezes at launch and the venue's side does not. "The `bagsConfigType` is set once when creating the fee share config and cannot be changed after the token is launched" — the fee mode is permanent. But Bags' own powers over an already-launched token are retained and live: BagsBondingCurve and BagsFeeShare are beacon proxies where a single `upgradeTo` "retargets **all** curves at once" / "retargets **all** fee-shares at once", i.e. one transaction rewrites the trading and fee-claiming logic of every token ever launched on the chain simultaneously. I read `factory.owner()` on the deployed BagsFactory and it returned 0xDEf671F11C8a30818eb3D9Cc9476EEEc805f9058, which has no bytecode — a plain EOA, not a multisig, holding that key. Second discovery: the published fee is not the fee. Docs state creationFee "default 0.02 ETH"; the live `factory.creationFee()` returns 0, and `factory.graduationThreshold()` returns 5 ETH, a figure the docs never state. The docs concede this themselves — "Always read these live from the contracts before rendering or signing — never hardcode" — so a buyer budgeting from the page is working off numbers the vendor disclaims. Third: on Solana, the flagship product, the disposition of the SPL mint, freeze and update authorities is never stated anywhere in the 103-page developer corpus. Fourth, found on verification: Bags answers the question of whether you can ever change who receives your fees TWICE, in opposite directions. The developer docs sell it as a feature — `bags config update` "requires admin authority", `bags config transfer-admin --new-admin` moves the key. The consumer help centre refuses it as policy: "We cannot allow changes to royalty recipients, as doing so would undermine trust and integrity within our community… That's why this policy is in place" (support.bags.fm/en/articles/13434866-change-royalty-recipient). Both were live on 2026-08-27.
Verify before signup
PUBLISHED, and on two surfaces, not one. Solana trade fees, https://docs.bags.fm/how-to-guides/customize-token-fees (read 2026-08-27): "There are seven available fee modes. If you don't specify a `bagsConfigType`, the **Default** mode is used." Default mode table: "Pre-migration | 2% | 1% | 1% | —" and "Post-migration | 2% | 0.75% | 0.75% | 0.5%" (columns: Total Fee | Protocol | Creator | Compounding). The seven published modes span 0.25%, 1%, 2% and 10% total fees; the "2% Base with 96% Supply Locked" mode publishes a post-migration decay "starting at 2% and decaying to a 0.5% floor". CORRECTION TO THE FIRST DRAFT, which asserted "NO creation cost is published anywhere for the Solana path": the Solana cost to launch IS published — not in the developer docs, but on the vendor's own help centre. https://support.bags.fm/en/articles/13434740-sol-needed-to-launch (read 2026-08-27): "To launch a token on Bags, you'll need approximately 0.2 SOL to cover network fees and transaction costs. We recommend keeping a little extra in your wallet just in case the Solana network is busy." Corroborated at https://support.bags.fm/en/articles/13434607-taking-sol-but-not-creating-token: "Please make sure to have around 0.2 SOL for the launch on your wallet for a smooth launch experience." Bags attributes that 0.2 SOL to network and transaction cost, not to a platform charge; no Bags-charged creation fee for the Solana path appears anywhere in the 103-page developer corpus, which is a finding at equal weight to a price. Robinhood Chain, https://docs.bags.fm/robinhood/overview (read 2026-08-27): "A flat **2% fee is charged on the ETH/WETH leg of every trade, in both phases**", creator half 1%, protocol half 1%; plus "There is also a one-time **launch fee** (`creationFee`, default 0.02 ETH) paid to the vault when a token is created." That published EVM launch fee is not currently charged: `factory.creationFee()` on the deployed BagsFactory (0xe8Cc4431adF8b5A847C113EF0c6af9043219Cb37, chain 4663, block 47,695,550, 2026-08-27) returns 0, while `factory.graduationThreshold()` returns 5 ETH — a figure the docs never print. The docs disclaim their own numbers: "Always read these live from the contracts before rendering or signing — never hardcode." The bags.fm app publishes nothing readable — https://bags.fm/, /fees, /docs and /terms all return HTTP 200 with between 0 and 16 readable characters after stripping scripts and tags (/terms' entire readable content is the string "Terms of Service") — but SECOND CORRECTION TO THE FIRST DRAFT: bags.fm returns the same ~52.9KB shell for ANY path, including https://bags.fm/zzz-nonexistent-xyz, so this is a client-rendered application, not a suppressed fees page, and the draft's use of "https://bags.fm/fees returns HTTP 200" as evidence of an empty fees page does not hold. The readable consumer surface is https://support.bags.fm (18 articles).