Overview
RAIL is a launchpad built on pump.fun. When you launch a token, you name one to 6 recipients (X, GitHub, Telegram, Twitch, YouTube, Kick or Reddit accounts, Solana wallets or verified charities) and the percentage each of them receives. The token's creator fees are permanently routed to the RAIL treasury, claimed on-chain every 15 minutes, and credited to those accounts.
Recipients do not need to do anything up front, or even know the token exists. Social accounts sign in on Claim whenever they choose, connect a Solana wallet and withdraw their balance in SOL. Wallets and charities are paid automatically. No fiat, no KYC off-ramp, no custody of the token itself.
trade → creator vault → RAIL treasury → 80% to recipients · 10% $RAIL holder rewards · 10% $RAIL buyback & burn
Supported venues
Pump (Solana). Tokens launched on pump.fun, both on the bonding curve and after migration to PumpSwap. Fees from both phases are claimed and paid out in SOL.
Pons (Robinhood Chain). Pons is a launchpad on Robinhood Chain, an EVM chain where the currency is ETH. You launch with an EVM wallet (MetaMask, Rabby…) and recipients are paid in ETH.
- Every Pons trade pays a 1% fee. Pons keeps 30% of it; the remaining 70% are the token's creator fees, and a RAIL launch sets the RAIL EVM treasury as their recipient. RAIL then keeps 20% and credits 80% to the recipients, exactly like on pump.fun. There are no holder rewards or burns on the ETH side: the 20% stays in the ETH treasury.
- Pons lets a token add an extra creator tax of up to 10% on every trade. If you choose one at launch, all of it flows to the creator fees, so it increases recipient payouts (minus the 20%) and makes trading more expensive.
- Pons tokens can pay X, GitHub, Telegram, Twitch, YouTube, Kick and Reddit accounts. They claim on the Claim by signing in as usual, then withdraw ETH to an EVM address they prove with a signature (minimum 0.001 ETH). Wallets, charities, Amplify and Holder share are pump.fun only for now.
- Fees are swept from the token's bonding curve every 15 minutes (after graduation Pons sweeps them from the pool) and credited per token from the on-chain sweep events, so nothing can be counted twice.
- The difference to pump.fun: on pump.fun the fee route is locked forever. On Pons, the Pons team can redirect a token's creator fees after a public notice period. RAIL watches for that, alerts the team and marks the token as not payable if it ever happens.
Directing fees
pump.fun lets a token's creator set up a fee sharing config: a list of shareholders and their share of creator fees in basis points. A RAIL launch creates this config in the same transaction as the token and sets exactly one shareholder: the RAIL treasury, at 100% (10,000 bps). The config's admin authority is then revoked, which locks the route permanently. Nobody, including the deployer and RAIL, can redirect the fees afterwards.
1 create_v2 name, ticker, metadata URI (creator = your wallet)
2 buy optional initial buy
3 create_fee_sharing_config admin = your wallet
4 update_fee_shares [{ RAIL_TREASURY, 10000 bps }]
5 revoke admin locked → route is permanentThe split between recipients is not stored in the pump.fun config. It lives in the RAIL database, which is the source of truth. To make it publicly verifiable, the token description ends with a fee line that anyone can read on pump.fun:
Fees to @alice 50% @bob 30% @carol 20% via RAIL
Fees to @alice via RAIL
The parser is tolerant of spacing and letter case. Every token page shows this line under Fee proof and whether it matches the recorded split.
Registering an existing token
Already launched on pump.fun? Use the Existing token tab on the Launch page. If your wallet is still the admin of the token's fee sharing config, you sign update_fee_shares (treasury 100%) and revoke, then enter the split. The backend checks the config on-chain (a single shareholder, the treasury, 10,000 bps, admin revoked) before registering the token. You also sign the split itself (ed25519 over a JSON message); that signature is shown on the token page as proof that the deployer chose the recipients.
Detection
The indexer subscribes to the Pump Fees program and filters for configs that include the treasury, so new tokens are detected within seconds, without polling. A reconciliation pass re-scans the same accounts every 10 minutes as a backup.
DETECTED config found, not yet verified PAYABLE 100% to treasury + admin revoked + split on record → fees are claimed MIGRATED bonding curve completed; fees now come from PumpSwap (still payable) NOT_PAYABLE a requirement is not met; see "Token not registering"
Naming recipients
A recipient can be any of these kinds. Enter it in its usual form; the launch form recognizes all of them:
- X account
@alice· enter as @alice · x.com/alice. Signs in with X to claim.- GitHub user
gh:octocat· enter as github.com/octocat · gh:octocat. Signs in with GitHub to claim.- Twitch streamer
twitch:name· enter as twitch.tv/name · twitch:name. Signs in with Twitch to claim.- YouTube channel
yt:UC…· enter as youtube.com/@name or the channel link. Signs in with the Google account that owns the channel.- Kick streamer
kick:name· enter as kick.com/name · kick:name. Signs in with Kick to claim.- Reddit user
reddit:name· enter as reddit.com/u/name · reddit:name. Signs in with Reddit to claim.- Solana wallet
sol:<address>· enter as a base58 address. Paid automatically above ◎0.10.- Verified charity
charity:<slug>· enter as picked from the list. Paid automatically above ◎0.10.
Each kind appears in the fee line in the same form, so the split stays readable and verifiable on pump.fun:
Fees to @alice 40% gh:octocat 30% sol:7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU 20% charity:give-well 10% via RAIL
- One to 6 recipients per token, each at least 1%, in whole or half percent steps. Shares must add up to exactly 100%.
- Recipients must be unique within a token and can't be on the opt-out list.
- Percentages are shares of the recipient pool (80% of creator fees). A recipient at 50% therefore receives 40% of all creator fees.
- When a token is registered, each X handle (and each GitHub, Telegram, Twitch, YouTube, Kick or Reddit account) is resolved to its permanent account ID. Credits follow the user ID, so renaming an account keeps the balance, and someone who later grabs an abandoned username doesn't get it. If the lookup fails, the ID is attached the first time the matching username signs in.
- Only charities verified by the RAIL team can be named; their payout address is on record and shown on their profile.
- The split cannot be edited after launch. The fee line in the description is public and permanent.
The 80/20 split
Every claim is divided in integer lamports, with no floating point anywhere. 20% is the protocol cut: half of it funds the nightly holder rewards pool for $RAIL holders, the other half buys back and burns $RAIL. The rest is split between recipients by their basis points. Rounding dust goes to the last recipient, so the parts always add up to the claim, to the lamport.
protocolCut = floor(amount × 2000 / 10000) happyCut = floor((protocolCut − referralCut) / 2) → holder rewards pool buyback = protocolCut − referralCut − happyCut → buyback & burn recipientPool = amount − protocolCut share[i] = floor(recipientPool × bps[i] / 10000) share[last] += recipientPool − Σ share (dust)
holder rewards 0.100000000 SOL → $RAIL holders, 00:00 UTC buyback & burn 0.100000000 SOL → $RAIL burned @alice 50% 0.400000000 SOL @bob 30% 0.240000000 SOL @carol 20% 0.160000000 SOL
Endorsements
Being named as a recipient does not mean you requested the token. Recipients can therefore endorse a token that pays them: sign in on the Claim and press Endorse next to the token. Endorsements can be withdrawn at any time.
- An endorsed token shows a badge on its page and cards, with the endorsing recipients listed.
- Endorsed tokens rank higher in the token directory and can be filtered.
- Only recipients that sign in (X, GitHub, Telegram, Twitch, YouTube, Kick, Reddit) can endorse; wallets and charities have no sign-in.
Addresses ending in RAiL
Every token launched on RAIL gets a contract address that ends in RAiL, the way pump.fun's own tokens end in pump. The addresses are generated ahead of time and each one is used for exactly one token, so you can spot a RAIL token from its CA alone.
Holder rewards
Half of the protocol cut of every claim, from every token on RAIL, goes into one pool. Every day at 00:00 UTC the pool is split between the wallets holding $RAIL, pro rata to their balance, and credited to them in SOL.
- At least 100,000 $RAIL to qualify, up to 1,000 wallets per night.
- Balances are read on-chain at settlement (Helius
getTokenAccounts). Liquidity pools, bonding curves, other program-owned accounts and RAIL's own wallets are excluded. - Payouts are sent to the wallet automatically once they reach ◎0.02. Nothing to claim or sign.
- If there are no eligible holders (or $RAIL is not live yet) the pool rolls over to the next night.
Holder share
Any token can route part of its fees to its own holders. Add holders as a recipient (the Holder share button in the launch studio) and give it a share. That share collects in the token's holders pool, and every night at 00:00 UTC it is split between the token's top 100 wallets by balance and sent to them in SOL, the same way as holder rewards.
Fees to @alice 60% holders 40% via RAIL
RAIL Live
Streamers get a free overlay for OBS or Streamlabs that shows every buy of a token naming them and every payout as it arrives, with a running earnings total. Build the link on RAIL Live and add it as a browser source (1920 × 1080). The overlay requires no sign-in; signing in is only needed to withdraw.
https://userail.fun/overlay/twitch:yourname?pos=br&min=0.1
pospicks the corner (bl,br,tl,tr),minis the smallest buy in SOL that triggers an alert.buys=0shows payouts only,total=0hides the total,sound=0mutes the alert sound,demo=1plays sample alerts during setup.
Amplify
Add Amplify as a recipient and that share of the fees goes to the accounts that promote the token most effectively on X. It can take the whole recipient share or sit next to other recipients, for example Fees to @orangie 50% shillers 50% via RAIL.
- The share collects in the token's Amplify pool. Every day at 00:00 UTC the pool is split between the top 25 accounts of that UTC day, pro rata to their points. No account receives more than 30% of a day's pool.
- A post counts when it contains the token's contract address or a link to it (pump.fun, DexScreener, userail.fun). Reposts don't count, so tokens that share a ticker never mix.
- Points: 1 per like, 3 per repost, 3 per quote, 1 per reply, 2 per bookmark and 1 per 250 views. Only an account's best 3 posts of the day count.
- Engagement is re-checked before the payout and deleted posts drop out. Accounts need 25+ followers and must be at least 14 days old.
- If nobody qualifies, the pool rolls over to the next day.
- Earnings are credited to the poster's RAIL balance, tied to their X account. They withdraw by signing in with X on the Claim.
How claims work
- Every 15 minutes a job checks the creator vault of each payable token. If it holds at least ◎0.01, it calls
distribute_creator_feesand the SOL lands in the treasury. Migrated tokens are claimed through PumpSwap. - Several tokens are batched into one transaction where possible.
- The amount credited is the actual increase of the treasury balance in that transaction (pre/post balances from the transaction meta), not an estimate.
- Each claim is recorded once, keyed by its transaction signature. Re-running the job can't double-count. Failed claims write nothing and retry with exponential backoff.
- Credits are appended to a ledger. A balance is always
Σ credits − Σ debits— it's never stored as a number that could be edited.
Withdrawing
- Go to the Claim page and Sign in with the account that was named. We only read your user ID and username.
- See your balance per token. Connect a Solana wallet (Phantom, Solflare, Backpack).
- Sign a message proving you control the destination address:
RAIL withdraw to <address> for @handle, nonce <n>
- Minimum withdrawal is ◎0.01. One pending withdrawal per account at a time.
- SOL is sent from a dedicated payout wallet, separate from the treasury, which holds only a daily budget. The debit and the withdrawal are written in the same database transaction, and the transaction signature is shown in your history and on Payouts.
- Signing is free; you do not pay network fees to withdraw.
Automatic payouts
Prefer not to withdraw manually? Recipients who sign in can enable automatic payouts once: sign in on the Claim, pick a destination wallet and a threshold, and sign one message with that wallet. From then on, whenever your balance reaches the threshold, it is sent automatically.
RAIL auto-payout to <address> for @handle above <threshold> SOL, nonce <n>
- Default threshold ◎0.10, minimum ◎0.05. You can change or turn it off at any time.
- Wallet and charity recipients can't sign in, so they are always paid automatically once they hold at least ◎0.10.
- Automatic payouts use the same path as manual withdrawals: the same locks, daily cap and kill switch apply, and every payout shows up on Payouts.
Unclaimed balances
Balances never expire. If an account never signs in, its credits stay on the ledger and remain withdrawable at any time. Every public profile shows earned, withdrawn and available amounts, so recipients can see what they are owed.
$RAIL buyback & burn
Half of the 20% protocol cut (after any referral) accumulates in the buyback bucket; the other half funds holder rewards. Once an hour, if the bucket holds at least ◎0.50, it is swapped SOL → $RAIL through Jupiter, and the purchased tokens are burned with an SPL burn instruction. Both the swap and the burn signatures are recorded.
Until $RAIL is live, the bucket simply accumulates. The full history is public on Buyback & burn, and the totals on Stats.
Referral program
Refer launches to RAIL and earn a share of their fees. Share your link; the ref is your X handle:
https://userail.fun/launch?ref=<your X handle>
- You earn 25% of the protocol share of every token you refer (5% of all its creator fees) for the lifetime of the token. It comes out of the 20% protocol cut; recipients' 80% is never touched.
- The referral is stored in a cookie for 30 days. First touch wins: a later link from someone else does not replace it.
- You cannot refer yourself as a recipient. If the referrer is also named in the split, no referral is recorded. Opted-out handles don't earn referrals either.
- Referral earnings are credited to your X account and withdrawn on the Claim page like any other balance.
Featured on X
Tokens that cross $20K market cap are queued to be featured on our main X account, @userail_. Every candidate is reviewed by the team before it's posted, so a feature is not guaranteed. Tokens that appear to be spam, impersonation or fraudulent are skipped. Only payable tokens qualify.
Stopping payments
Do not want fees from tokens you did not request? Sign in on the Claim and press Stop payments to me (or contact us through the official channels). Your account goes on the do-not-pay list and:
- it is hidden across the site and can't be named in new launches;
- your share of future claims is redirected: 50% to the protocol treasury, 50% to the $RAIL buyback;
- you can still withdraw the balance you already have for 30 days. After that, the remainder is redirected the same way.
Token not registering
A token only earns once it's PAYABLE. Tokens marked “Not payable” show the reason on their page. Common causes:
- Config is not 100% to the treasury: another shareholder exists, or the treasury has fewer than 10,000 bps.
- Admin not locked:
revokewas not signed, so the route could still change. - Split missing: the config points to us, but there is no split on record (e.g. the Register flow was not completed).
- More than 6 recipients, shares that don't add up to 100%, or an invalid handle.
- Handle opted out: a recipient is on the do-not-pay list.
- Not detected yet: detection is near-instant, with a full reconciliation every 10 minutes.
Still stuck? Reach us on X at @userail_ with the mint address.
Glossary
- bps
- Basis points. 10,000 bps = 100%.
- Creator vault
- The account where pump.fun accumulates a token's creator fees until they are claimed.
- Fee sharing config
- pump.fun account listing who receives a token's creator fees. Ours: treasury at 10,000 bps, admin revoked.
- Recipient key
- How a recipient is written: @alice, gh:octocat, twitch:name, sol:<address>, charity:<slug> and so on.
- Fee line
- The "Fees to @… via RAIL" line in the token description: the public copy of the split.
- Treasury
- The RAIL wallet that receives claimed fees.
- Payout wallet
- A separate hot wallet that sends withdrawals, topped up from the treasury within a daily cap.
- Recipient pool
- The 80% of each claim shared by the recipients.
- Ledger
- Append-only list of credits and debits per recipient. Balance = credits − debits.
- Referrer
- The X account whose link brought a launch; earns 25% of the protocol share.
- Buyback bucket
- The 10% of each claim (after referrals) waiting to be swapped into $RAIL and burned.
- Holder rewards
- The 10% of each claim (after referrals) distributed nightly to $RAIL holders.
- Dust
- Lamports left over from integer rounding; always credited to the last recipient.
- Lamport
- The smallest unit of SOL. 1 SOL = 1,000,000,000 lamports.
- Migration
- When a token completes its bonding curve and moves to PumpSwap.