Docs
How a Tipr launch works, end to end — the same calls the app makes.
What Tipr is
Tipr launches a token around an X account and records a creator fee route for it. A defined share of the token's trading fees is directed to that creator's public tip destination. Tipr is a client: it never takes custody of tokens, fees or private keys.
Tokens are launched through pump.fun on Solana. Your Solana wallet signs the launch transaction directly — Tipr only builds it and records the creator pairing.
Honest by default
Market data — volume, market caps, settled tips — requires an indexer, which is not connected yet. Those surfaces stay empty on purpose rather than showing example figures.
Architecture
Hover a node to follow the path a launch takes.
Tipr never holds tokens or fees. It composes the launch transaction, and pump.fun pays creator rewards to the launch wallet, which Tipr forwards to the creator.
| Piece | Responsibility |
|---|---|
| Tipr client | Resolves the creator, validates inputs, builds the pump.fun launch transaction and reports honest state. |
| pump.fun | Deploys the token and its bonding curve on Solana, and pays creator rewards to the launch wallet. |
| Tip destination | Either the X Tips router or an address you confirm belongs to the creator. |
| Indexer (pending) | Will supply tokens, routes, tips and activity to the read surfaces. |
Fee math
Every Tipr launch records a flat 2% creator fee (200 basis points). pump.fun pays creator rewards to the launch wallet, and Tipr forwards them to the creator's tip destination.
50% of eligible fees · recorded at 500 bps
Curve, liquidity and protocol terms set by pump.fun
Tipr launch fee
2% flat (200 bps)
Paid via
pump.fun creator rewards
Forwarded
To the creator's tip destination
Tipr launches record a flat 2% creator fee. pump.fun pays creator rewards to the launch wallet, and Tipr forwards them to the creator. The slider above is illustrative only.
Launch lifecycle
Each step below is a real call the launch flow performs in order.
Step 1 of 5
Resolve the creator
Enter an X handle. Tipr records the tip destination: the X Tips router, or an address you confirm yourself.
Network reference
| Field | Value |
|---|---|
| Network | Solana (mainnet-beta) |
| Venue | pump.fun |
| Explorer | https://solscan.io |
| Native asset | SOL |
| Wallet | Phantom, Solflare or any injected Solana wallet |
Launch reference
| Field | Value |
|---|---|
| Venue | pump.fun (Solana mainnet) |
| X Tips router | 0x869c6a92d9140c679d9b566671e140d807bbd8fb |
| Creator fee | 2% flat (200 bps), paid via pump.fun creator rewards |
| Logo storage | Uploaded to Tipr and served from usetipr.app so pump.fun can read it |
| Metadata | Name, symbol, description and image uploaded as public JSON before launch |
How a launch is built:
// 1. Upload the coin logo and metadata (served from usetipr.app)
const { transaction, metadataUri } = await createPumpLaunchTx({
name, symbol, description,
imageBase64, imageType, // your uploaded logo
twitter: handle, // the creator's X account
publicKey: wallet.publicKey, // your Solana wallet
mint: mintKeypair.publicKey, // fresh mint for the coin
})
// 2. Your wallet signs the pump.fun create transaction
const signed = await wallet.signTransaction(VersionedTransaction.deserialize(txBytes))
// 3. Tipr submits it to Solana mainnet and records the creator route
const signature = await connection.sendRawTransaction(signed.serialize())After confirmation, the launch is recorded on Tipr:
recordLaunch({
token: mintAddress, // the new coin's mint
handle, // creator's X account
recipient: tipDestination, // X Tips router or confirmed address
creatorTaxBps: 200, // 2% creator fee
chain: "solana",
hash: signature, // Solana transaction signature
})Data layer
Components never hold content. Every read goes through one typed service module, so an indexer or API can be attached in one place. Until then each service resolves to an empty, non-fabricated result.
// src/lib/tipr-data.ts
getTokens(): Promise<LoadState<Token[]>>
getToken(address): Promise<LoadState<Token | null>>
getCreators(): Promise<LoadState<Creator[]>>
getCreator(handle): Promise<LoadState<Creator | null>>
getRoutes(): Promise<LoadState<FeeRoute[]>>
getTips(): Promise<LoadState<Tip[]>>
getRecentActivity(): Promise<LoadState<Activity[]>>
getPlatformStats(): Promise<LoadState<PlatformStats>>
searchTipr(query): Promise<LoadState<SearchResult>>type LoadState<T> = {
status: "loading" | "ready" | "error" | "empty"
data?: T
error?: string
}States and errors
| Condition | What you see |
|---|---|
| Wallet not connected | “Connect wallet to continue.” Launch stays disabled. |
| No Solana wallet found | Tipr asks you to install Phantom or Solflare. |
| Wallet request cancelled | “The wallet request was cancelled.” Nothing was sent. |
| Logo upload fails | “The coin logo could not be read for the pump.fun listing.” Nothing was sent. |
| Transaction rejected | The wallet or network error is shown; nothing was sent. |
| X profile unresolved | “Creator data unavailable.” No profile is invented. |
| No indexer | “Waiting for indexer.” Charts and lists render empty shells. |
Questions
+Does Tipr hold the creator’s fees?
No. pump.fun pays creator rewards to the launch wallet, and Tipr forwards them to the creator's tip destination. Tipr never takes custody of tokens or fees.
+What if the creator has X Tips enabled?
Leave the checkbox on and the share routes through the X Tips router (0x869c6a92…). Unchecking it asks you to confirm an address yourself — Tipr never guesses one.
+Can a creator claim or change a route later?
Not from Tipr. The route is recorded at launch. Changes would require a new launch.
+Why are the dashboards empty?
No indexer is connected. Showing example volume or tips would be dishonest, so the surfaces state their status instead.
+Which costs apply?
Solana network fees for the launch transaction, plus pump.fun's own terms. Tipr adds no fee of its own.
+What happened to PONS launches?
PONS has been discontinued. Tipr supports pump.fun launches on Solana only; historical PONS coins remain visible on Explore for reference.