Skip to content
Takshak Mudgal
Solana programs

Token launches on Robinhood Chain and Solana

A one-transaction launch on Robinhood Chain, simulated before the wallet signs and re-verified on the server, plus a Solana launcher on Meteora's bonding curve and the 2025 Anchor presale program.

Status
Shipped
When
2025 and 2026
Role
Integrations, the Solana launcher and the presale program
Team
A small team; the Robinhood launch factory was a teammate's
Stack
TypeScript, viem, Next.js, Rust, Anchor, Meteora DBC
11
transaction to create the token, its Uniswap v4 pool, the lock, vesting and the first buy
282
merged pull requests across four stories.fun repositories
600k3
compute units requested per server-built Solana transaction to land under congestion

Summary

stories.fun lets creators publish stories and launch tokens around them. I worked with the team twice. In early 2025 I wrote its Anchor presale program on Solana. From April 2026 I built a Solana launcher on Meteora's bonding curve, integrated a launch flow on Robinhood Chain, and then wrote Zyora, which has its own write-up.

The Robinhood Chain launch factory was a teammate's contract. My part was everything around it: building the launch transaction, simulating it before the wallet signs and refusing to publish anything the chain does not confirm.

A launch that the server re-checks

On Robinhood Chain one call to the factory creates the token, opens its Uniswap v4 pool, locks the liquidity, sets up creator vesting and makes the first buy1. The app simulates that call before asking the wallet to sign, so a launch that would revert fails in the browser with a reason instead of on chain with a fee.

The server does not take the client's word for any of it. It waits for the receipt, then checks that the creator is one of the wallets linked to the signed-in account, that the transaction went to the factory from that creator, and that the decoded calldata matches every launch setting and the liquidity unlock time the policy allows. Only then does it read the token back from the factory, save it and publish the story. A launch left pending recovers after a refresh.

Wallet and appRobinhood ChainServer
  1. 1Simulates launch() before signing

  2. 2Sends one launch transaction

  3. 3Asks the server to confirm the launch

  4. 4Waits for the receipt, reads the transaction

  5. 5Checks creator, sender, target and every setting

    The creator must be a wallet linked to the signed-in account.

  6. 6Reads the token back from the factory

  7. 7Saves the token, publishes the story

Fig. 1. The launch path. Nothing is written to the database until the server has the receipt and has re-derived the launch from chain data.

Around that integration I added launch settings that admins change in the database instead of in code, permissionless Solana launches through Meteora's bonding curve, fee and migration settings, and support for any ERC-20 as the quote token2.

The Solana launcher

Before that, I built a one-click launcher on Meteora's Dynamic Bonding Curve: AI-written token metadata, images on IPFS, launch state in a key-value store, a daily cron and command-line tools for the operators. Three problems from its commit history:

  • Launches failed under mainnet congestion. The blockhash expired before the config transaction landed. Every transaction the server builds now carries compute-budget instructions, 600,000 compute units and a priority fee, and an expired blockhash triggers one rebuild and re-sign3.
  • Fees with a refund floor. Forty minutes after a launch, collected fees up to the creator's first buy go back to the creator, and only the profit above that is split. I verified the split on devnet before it shipped.
  • Referrals people could not game. Self-referral is blocked in the interface, in the API and in the command-line tool, because blocking it in one place only moves the exploit to another.

The 2025 presale program

My first work for stories.fun was its Anchor presale program, all fourteen commits of it: initializing a presale, buying into it, ending it after the deadline, and graduating the token by minting the unsold supply into the presale's own token account for the DEX listing. I also shipped seven pull requests to the web app that year, from wallet integration to the smart contract hookup and a TypeScript migration2.

Sources

  1. 1.stories-v2 pull request #1, Robinhood Chain launchpad integration, merged 25 Aug 2026. Private repository; +2,855 and -211 lines.
  2. 2.GitHub search: merged pull requests by takshakmudgal in the stories-fun organization. 28 on 16 Oct 2026.
  3. 3.stories-token-launcher commit history, Apr to Aug 2026. Private repository.