Skip to content

Yeetful/contracts

Repository files navigation

x402-launch — token-per-MCP launchpad (Yeetful)

Own a piece of the AI revolution — earn fees as the agents work.

Each MCP service can have its own token. People buy it on a bonding curve, it graduates to a Uniswap pool on Base, and stakers earn USDC streamed from that MCP's real x402 call fees. That last part — real revenue, not just trading-fee reflexivity — is the whole thesis and the part nobody else does. Yeetful can prove the usage is real (the spend ledger), so the token is collateralized by actual settled flow.

Direction decisions (locked 2026-06-18)

  • Fee accrual: stake-and-distribute. Holders stake the MCP token, earn pro-rata USDC from that MCP's call fees. (Note: most security-like design — crypto-counsel review of token structure required before mainnet.)
  • Reserve / reward asset: USDC on Base. Coherent end-to-end: agents pay USDC, curve is USDC-denominated, fees distribute in USDC.
  • Fork base: Flaunch (MIT) — Uniswap v4 hooks, fair-launch curve, revenue-share-to-holders + buybacks on Base. Single source for launch + curve + AMM + trading-fee share.
  • Base first, contracts behind interfaces so a second chain is config.

Two fee streams (why we fork and build)

  1. Trading fees — swap fees on the token's AMM. Flaunch handles this; we fork it.
  2. x402 call fees — a cut of the real USDC an agent pays to use the MCP, routed to stakers. Novel. This is what we build (StakingRewards + an off-chain→on-chain FeeRouter).

What's built

  • src/YeetfulStaking.sol — one per MCP token. Accumulated-fee-per-share accounting (O(1) stake/unstake/claim). routeFees(amount) is called by the x402 FeeRouter when a call settles; splits USDC pro-rata across stakers. No stakers yet → escrows to treasury, so the fee path never reverts.
  • src/YeetfulLaunchFactory.sollaunch(mcpId, name, symbol, creator) mints the token via the launchpad adapter and stands up its YeetfulStaking vault in one call (feeRouter wired, creator set as treasury, protocol owns the vault). Registry: mcpById + stakingForToken.
  • 11/11 Foundry tests green (forge test).

Fork → integrate (finding 2026-06-18)

Flaunch is ETH/flETH-native and large (~11k files: Uniswap v4-core/periphery

  • optimism + solady + permit2). So we don't vendor-and-modify it. Instead:
  • The curve + AMM trade against the launchpad's native asset (ETH/flETH) — we use Flaunch's already-deployed, audited Base contracts via a thin ILaunchpadAdapter. No flETH→USDC surgery.
  • Rev share is separate and always USDC (YeetfulStaking), independent of the curve asset. This is the part nobody else has.

Roadmap (mirrors the Yeetful Autopilot board)

  • M1 Scaffold + fork-license verification (Flaunch = MIT ✓)
  • M2 YeetfulStaking rev-share distributor
  • M3a YeetfulLaunchFactory + ILaunchpadAdapter (token + vault in one launch)
  • M3b FlaunchAdapter + script/Deploy.s.sol — deployed + wired on Base Sepolia ✓
  • M3c Live launch via FastFlaunchZap — a real token (YT1) launched on Base Sepolia
  • M4a YeetfulFeeRouter (on-chain: route a call-fee cut → the MCP's vault)
  • M4b Off-chain wiring: split a cut in website/lib/x402.ts payAndFetchrouteForMcp
  • M5 MCP ownership claim: GitHub OAuth + repo verify + wallet bind (website)
  • M6 Launchpad UI: per-/servers/[slug] MCap chart + graduation bar + stake/buy
  • M7 Chain abstraction (multi-chain deploy)

Contracts (all 16 Foundry tests green)

YeetfulStaking · YeetfulLaunchFactory · FlaunchAdapter · YeetfulFeeRouter. Proven end-to-end in tests: launch → stake → settle a call → fee routes → staker earns USDC.

Deployed — Base Sepolia (chain 84532), 2026-06-18

Contract Address
YeetfulLaunchFactory 0x6bFeAD6c2Bc71a06226b8b0eB9D9422086c3fc95
FlaunchAdapter (FastFlaunch) 0x4ff99D98D7D31558E396D4992FA1D999f752e536
YeetfulFeeRouter 0xA8f494EBF2CA4eeD0a5C7999dd8a12B1F5675d17
USDC (Circle) 0x036CbD53842c5426634e7929541eC2318f3dCF7e
Flaunch FastFlaunchZap 0x821d9F6075E7971Cc71C379081DE9D532F5f9957

Owner/deployer 0x57DE…BF12. Wiring verified on-chain.

Live launch works ✓factory.launch via FastFlaunchZap (the raw PositionManager reverted on empty initialPriceParams; FastFlaunchZap fills the price/fairlaunch/fee defaults). First token launched on-chain: "Yeetful Test One" (YT1) 0xe95f6aF310ae3e2070b3f73d6d7099b18159a848, vault 0xC5cD987d293CA9A2f6Fc240d74a93Cc06e104381, registered as yeetful-test-1. The factory's adapter is now owner-swappable (setLaunchpadAdapter) so we can move to a full-FlaunchZap adapter (creator-fee control) later without losing the registry.

Dev

forge build
forge test -vv

Foundry + OpenZeppelin v5. Testnet (Base Sepolia) only until counsel sign-off and an explicit go from the owner — no mainnet deploys, no real funds.

About

Token-per-MCP launchpad — fair-launch MCP tokens (Flaunch fork) + stake-and-distribute USDC rev share from real x402 call fees. Base. Testnet only.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors