Contracts
Everything the protocol runs on, deployed and verified. Supply splits, fee routing and burns are enforced in code — not by us.
How the pieces fit together
One coin's full lifecycle, and which contract owns each step.
- 1 · ProposeCreator pays 0.0004 ETH to NomsTreasury and escrows their first-block buy in NomsEscrow. The proposal opens in NomsProposals with a 24h clock.
- 2 · ProveVoters each post a refundable ~$1 stake and commit $10–$200. Pass = 100 unique voters AND $4,500 committed before the clock runs out.
- 3 · LaunchAnyone can call the launch. NomsLauncher mints supply, initialises the pool, locks 97% as single-sided liquidity, seeds 3% to staking, then runs the creator's escrowed buy in the same transaction.
- 4 · TradeNomsRouter and NomsQuoter power in-app buys and sells against the 1% pool. Every trade generates fees on the locked position.
- 5 · SplitFeeSplitter collects those fees and routes 60% creator / 10% stakers / 30% treasury, minus the creator's burn share.
- 6 · CompoundStakingFeeRouter swaps the staker slice into the coin and drips it through NomsStaking over a rolling 30 days. Failed proposals instead refund every stake and the escrowed buy.
Security hardening
Fixes applied in the current deployment after a full review of the suite.
- Vote stakes are refunded at the exact amount each wallet paid, so a fee-parameter change can never over- or under-refund.
- The fee crank is price-bounded to a 10% move from spot — a permissionless call cannot be sandwiched for profit.
- The router's swap callback validates the caller against the Uniswap V3 factory, so spoofed pools cannot pull funds.
- launch() is callable only by NomsProposals, so no coin can go live without clearing its window.
- Reward rates are 1e18-scaled so even tiny fee top-ups accrue instead of truncating to zero.
- Treasury signers are immutable and all three must sign; the LP NFT has no transfer path at all.
Protocol addresses
Robinhood ChainThe 24h proof window
Where every coin starts. propose() charges the flat 0.0004 ETH fee (to the treasury) and escrows the creator's first-block buy. Each voter pays a refundable ~$1-worth of ETH anti-bot stake and commits $10–$200. A proposal passes only when it clears 100 unique voters AND $4,500 committed inside 24h — then anyone can trigger the launch. Miss it and every stake and the escrowed buy are refundable in full.
- Holds
- Vote stakes (refundable) + a pointer to each creator's escrowed buy
- Who can call it
- propose: creators · vote: anyone · finalize/launch: permissionless · refunds: the payer
0x2ee940744c98d64b42d0111affaca4ea99f19a36ExplorerThe factory — go-live in one transaction
Mints the fixed 1,000,000,000 supply, creates and initialises the coin/WETH V3 pool at the start tick that was committed on-chain when the proposal was created (the launch caller cannot change the opening price), deposits 97% of supply as a single-sided token-only range (so the pool needs zero seeded ETH), seeds the coin's staking vault with the other 3%, deploys that coin's FeeSplitter and StakingFeeRouter through NomsPeriphery, and finally executes the creator's escrowed first-block buy behind a price limit — all before any outside wallet can trade. The LP NFT stays in this contract forever: there is no transfer, burn or withdraw path, so liquidity is permanently locked while fees keep flowing.
- Holds
- Every coin's LP position NFT — permanently, with no exit function
- Who can call it
- launch: only NomsProposals (or the owner before wiring)
0x38af135550f5683e0ffa2bec9117f60e7601cf16ExplorerPer-coin contract factory
Deploys each coin's staking vault, fee crank and fee splitter on the launcher's behalf, keeping NomsLauncher under the 24 KB contract-size limit. It is callable only by the launcher, holds no funds and has no privileges over any coin once the contracts exist.
- Holds
- Nothing
- Who can call it
- Only NomsLauncher
0xe337a266f8df470d200710e66012810161b70d64Explorer3-of-3 platform multisig
The only destination for platform money: the 0.0004 ETH proposal fee and the 30% protocol slice of trading fees. Signers are fixed at deploy and cannot be added, removed or rotated. ETH or any ERC-20 leaves only when all three signers confirm the exact same withdrawal — one compromised key moves nothing.
- Holds
- Platform fee revenue in ETH and WETH
- Who can call it
- propose/withdraw: anyone can pay in, only 3-of-3 can pay out
0xc3914ebbe26d5c6370eb2e8ccbfb115e24362c7bExplorerTagged vault for creator first-block buys
Holds each creator's launch buy against a (proposal id, creator wallet) tag. The funds have exactly two possible destinations, both hard-coded: spent on that specific coin at launch, or refunded to the depositing wallet after a failed proposal. Nobody — including us — can redirect them anywhere else.
- Holds
- Creator first-block buy ETH, tagged per proposal
- Who can call it
- deposit: creators · release: only NomsProposals · refund: the depositor
0x4eb28fc6c0cabecfb6cc7c0d5cb7c72aa2d858c9ExplorerIn-app buy / sell
Swaps ETH ⇄ coin directly against each coin's 1% V3 pool so you never leave the site. Stateless: it holds no balances between transactions and its swap callback verifies the calling pool is a canonical Uniswap V3 factory pool, so a fake pool cannot trick it into moving funds.
- Holds
- Nothing — funds pass through inside a single transaction
- Who can call it
- Anyone
0x56dded9d4839a1bcb711ebdbb50859452bf6b5a6ExplorerRead-only price quotes
Simulates a swap and reverts inside the callback to return the exact output, which is what powers the live price, slippage and impact numbers in the trade box. It can never hold or move tokens.
- Holds
- Nothing — view-only
- Who can call it
- Anyone (read)
0x65d67c6c94bf846af7250af1193295edc151e0a3ExplorerProtocol buy-&-burn sink
The end of the line for every abandoned balance in NOMS°: creator fees left unclaimed for 30 days, vote stakes never reclaimed 30 days after a proposal resolves, and first-block escrow a creator never pulled back. Anyone (or the daily cron) can trigger it — the contract wraps whatever ETH it holds, market-buys RICE through the deepest canonical V3 pool with a 10% price bound, and sends the coins straight to the burn address. The target coin and the burn destination are immutable, so a swept balance can only ever end up destroyed.
- Holds
- Swept ETH and WETH, briefly, until the next burn
- Who can call it
- Anyone — permissionless, plus a daily cron
0xff17a6a8a7bebd45f0bc9a269967d72d4fa13b0dExplorerThe coin itself
Plain fixed-supply ERC-20 minted once, in full, at launch. No mint function, no owner, no pause, no blacklist, no transfer tax. What exists at block one is all that will ever exist.
- Holds
- Nothing beyond holder balances
- Who can call it
- Standard ERC-20 — anyone
Deployed per coin by NomsLauncherTrading-fee routing
Collects the locked LP position's accrued fees (it is approved to collect fees only — never to touch liquidity) and applies the immutable 60 / 10 / 30 split: creator, staking vault, platform treasury. The creator's chosen burn share is peeled off and routed into buy-&-burn.
- Holds
- Fees in transit for one collect call
- Who can call it
- claim: anyone — the split is hard-coded, so a stranger cranking it just pays everyone
Deployed per coin by NomsLauncherFee → staking rewards crank
Takes the WETH slice (10% stakers plus the creator's burn points), swaps it into the coin on its own pool, streams the staker portion into the vault and burns the rest. Permissionless, with the swap price-bounded to a 10% move from spot so the crank cannot be sandwiched.
- Holds
- Pending fee WETH until someone cranks it
- Who can call it
- crank / crankMin: anyone — destinations are hard-coded
Deployed per coin by NomsLauncherPer-coin reward vault
Lock tiers flexible / 7 / 14 / 30 / 45 / 180 days carrying 1x–5x reward weight, with a mandatory 7-day cooldown on every withdrawal (the principal, not the rewards — rewards are claimable at any time). Funded by the 3% supply seed plus the 10% fee stream, and every inflow is spread as a rolling 30-day linear drip so the pool can't be drained on day one.
- Holds
- Staked coins + the undistributed reward pool
- Who can call it
- stake / claim / requestWithdraw / withdraw: stakers · sync: anyone
Deployed per coin by NomsLauncherPool creation
Creates the coin/WETH pool at the 1% fee tier — the source of every fee the protocol splits.
- Holds
- Nothing
- Who can call it
- NomsLauncher
0x1f7d7550B1b028f7571E69A784071F0205FD2EfAExplorerLP position NFT
Mints and custodies the single-sided liquidity position. The NFT owner is NomsLauncher, which has no path to move it, so the lock is structural rather than a promise.
- Holds
- The locked LP position for every coin
- Who can call it
- NomsLauncher (mint) · FeeSplitter (collect fees only)
0x73991a25C818Bf1f1128dEAaB1492D45638DE0D3ExplorerPair asset
Every NOMS pool is coin/WETH. Fees accrue in WETH before they are split.
- Holds
- Wrapped ETH
- Who can call it
- Anyone
0x0Bd7D308f8E1639FAb988df18A8011f41EAcAD73Explorer