Connect your launchpad.
The website and 15-minute reconciliation worker run separately. Enter private connection details directly in Railway.
Open Railway Variables ↗- Set
SOLANA_RPC_URLto your HTTPS Solana mainnet RPC endpoint. - Set
GFM_OPERATOR_WALLETto the public Solana address you will use to sign in. This field takes only a public address. - Set
GFM_KAST_DEPOSIT_ADDRESSto the public SOL deposit address shown in KAST. This prefills the donation destination until you save Operator settings. Saved settings and existing project destinations take precedence over this variable. - Apply the variable changes in Railway and deploy them. Return here, connect that wallet, and sign in.
- Open Operator settings. Set the KAST SOL deposit address (90% for new coins), country, and currency. The other 10% funds GFM buybacks and burns. The worker creates the shared launch address table automatically when the local claim signer is the operator wallet. Keep at least 0.01 SOL available for setup; its verified cost is capped at 0.01 SOL.
- Creators add a direct GoFundMe link, coin details and image, then approve the launch in their wallet. Fundraiser URL validation is automatic; there is no manual operator review.
What runs every 15 minutes
The worker checks submitted transactions and updates the ledger. Pump fee distribution is permissionless: neither the creator nor the receiving wallet needs to approve it. Automatic submission still needs a network-fee payer. The Railway worker has a built-in signer. It can also use an external signing service. The operator pays network fees separately and forwards the 90% fundraiser allocation for new projects to KAST.
Railway automation settings
Use the GFM_* settings below. There is no separate Pump.fun API private key: the operator co-signs launches while the launcher funds launch costs and any optional dev buy.
Enter secrets directly in Railway’s Variables page; never in chat, Git, or public frontend settings. Dedicated automation wallets should hold only the funds needed for their role.
GFM_OPERATOR_WALLET: public address of your Pump.fun dev wallet, used as the operator and claim fee payer.GFM_OPERATOR_PRIVATE_KEY: the operator’s base58 or JSON 64-byte wallet secret, stored only as a private Railway variable.GFM_AUTO_CLAIM_ENABLED=true: enables claims every 15 minutes. Fund that wallet for network fees.- The operator key also signs buybacks from its recorded allocations. No second server signing key is needed. Track GFM’s own 100% fundraiser allocation separately from launched-coin fees.
JUPITER_API_KEY: API key for swap quotes and instructions.GFM_AUTO_BUYBACK_ENABLED=true: enables purchases and burns for recorded project allocations using the verified GFM mint saved in Operator setup.
For an external claim signer, use GFM_SIGNER_URL and GFM_SIGNER_TOKEN instead of the local claim secret. Both modes need the public fee-payer address and claim enable flag.
New coins route 100% of creator fees to the operator. Each confirmed claim uses the project’s saved allocation: for new projects, 90% to KAST for the linked fundraiser and 10% to GFM buybacks and burns. Confirm the actual spendable KAST credit before checkout. Keep the reserve at 0 for the full settled amount after provider costs. GoFundMe checkout remains manual.
Buybacks spend only their recorded allocation. GFM’s own 100% fundraiser policy is managed separately. Keep an additional 0.01 SOL fee buffer in that wallet; fees and token-account rent are not taken from the donation share. Default limits are 1 SOL per buyback and 1% slippage. Pending confirmations and burns are checked every minute; claims are attempted every 15 minutes.
Confirmed public links appear in the header; the GFM CA is pending confirmation. Existing GFM_* server variable names remain unchanged. GFM’s separate 100% fundraiser dev-wallet policy is managed manually; the project buyback worker does not execute that policy.
The payment queue includes a copyable checklist and a checkout desk with fundraiser links and exact donation amounts. It refreshes every minute while open. Check for an existing receipt before paying a reserved batch again.