How it works

Launch a coin for someone who has never heard of it, and the blockchain holds their earnings until they turn up.

01
Pick a creator

Type any X, Twitch, YouTube or GitHub handle. They don't need a wallet, an account here, or any idea the coin exists. The handle is hashed into a routeKey — keccak256(platform, handle) — computed identically on-chain and off.

02
Launch the coin

A real ERC-20 is minted and a real Uniswap v4 pool opens on Robinhood Chain via pools.trade. You choose how much of the 1% swap fee goes to the creator, up to 90%. The rest is yours as launcher.

03
Fees accrue on-chain

Every trade pays the fee to a contract bound to that routeKey. Nobody can redirect it — not the launcher, not us. It sits there earning against the creator's identity whether or not they ever show up.

04
The creator claims

They log in with the social account that owns the handle. Privy verifies it and generates a wallet for them. The backend signs an EIP-712 attestation, the contract permanently binds routeKey → wallet, and everything accrued transfers at once. From then on, fees stream straight to them.

Fee split
Swap fee, every trade1.00%
To the creator0–0.90%
To the launcherthe remainder

There is no protocol cut. The launcher sets the creator's share at launch and it can never be changed afterwards.

Worked example

A coin launched at an 80% creator cut, on a day it trades $42,000 of volume:

Volume$42,000.00
Swap fee (1%)$420.00
To the creator (80%)$336.00
To the launcher (20%)$84.00

Illustration, not live data. Fees are paid and held in ETH; dollar figures here are just for scale.

Platforms
X@vitalikbuterinX login (twitter_oauth)
Twitchttv/pokimaneTwitch login
GitHubgh/torvaldsGitHub login
YouTubeyt/mkbhdNot yet claimable — see below

Handles are lowercased and stripped of their prefix before hashing, so @Vitalik and vitalik are the same route. ASCII only: a–z, 0–9, underscore, dot and hyphen, up to 64 characters.

What's guaranteed by the contracts
The split is set once

creatorCutBps is an argument to the launch transaction. The adapter rejects anything above 9000 (90%), and there is no setter afterwards — not for the launcher, not for an admin.

Fees are bound to a hash, not an account

The router never stores a creator's wallet at launch time, because there isn't one yet. It stores the routeKey. A wallet gets bound only when someone proves they own the handle behind it.

Claiming is one-way

Once routeKey → wallet is bound on-chain, it's permanent. A second person logging in with the same handle cannot rebind it, and neither can we.

We never hold the money

There is no custodial balance anywhere in this system. Fees live in the FeeRouter contract from the moment a swap pays them until the moment a claim withdraws them.

Edge cases, honestly
What if nobody ever claims a handle?

The balance stays in the router indefinitely. There's no expiry and no sweep — a coin launched for a creator who never turns up simply keeps accruing against their handle.

What if someone launches a coin for a creator who doesn't want it?

The creator is never obligated to claim, and a coin carrying their handle is not an endorsement by them. Handles can be added to a denylist, which blocks future launches routing to them.

Can a launcher point fees at their own handle?

Yes, and plenty will — it's a legitimate way to launch a coin that pays you. The mechanism doesn't care whether launcher and creator are the same person.

Why can't YouTube handles be claimed yet?

A Google login returns an email address, not a YouTube channel handle, so it can't prove ownership of yt/name. Fees still accrue to those routes — they just can't be released until channel verification is wired up.

Costs
Launching a coin~0.00007 ETH in gas
Claiming feesgas only
Platform feenone

Robinhood Chain is an Arbitrum Orbit L2, so gas is paid in ETH and a launch costs a fraction of a cent at typical prices.

Launch a coinClaim your feesRead the docs