Docs

Text Pad documentation.

What happens to a text, what a launch sends to pump.fun, how wallets and keys are kept, and what the service stores.

Reference

Number
+1 (857) 294-3858
Chain
Solana mainnet
Launchpad
pump.fun (create_v2, buy_v2, sell_v2)
Launch cost
about 0.006 SOL; about 0.009 SOL plus the buy
Text Pad fee
None
Confirmation
4-digit code, 10 minutes, 3 tries
Key storage
AES-256-GCM, bound to the wallet address
Key export
One-time link, 10 minutes, shown once
Wallets
Up to 10 per number
Deposit alerts
Within 20 seconds
Sign-in
Text APP; one-time link, 30-day session, no password
Transport
SMS, through a gateway phone we run (textbee)
Site
textpad.fun

Overview

Text Pad launches pump.fun coins by text message. You text START to +1 (857) 294-3858; a Solana wallet is made for your number. You fund it, text LAUNCH, answer a few questions and reply a code. The coin is created on pump.fun by your wallet, in one transaction with your first buy.

Everything is a text: buying, selling, withdrawing, exporting your key, collecting creator fees. A web app, opened by a link you get by texting APP, does the same things with a screen.

How texts reach us

The number is an ordinary SIM in an Android phone running textbee, an SMS gateway. A worker process reads the texts it receives every couple of seconds and answers through the same phone. Nothing about the conversation needs the internet to reach the worker, so there's no webhook to attack.

Each text you send is claimed by its gateway id before it's answered, so a restart can never answer it twice. One person's texts are handled strictly in order (a launch's reply comes before the next answer); different people are handled side by side.

Wallets and keys

Each wallet is an ordinary Solana keypair. Its secret key is sealed the moment it's made: AES-256-GCM under a key that lives only in the server's environment, with the wallet's address bound in as authenticated data so a sealed key can't be moved onto another wallet's row.

A key is opened only inside the request that signs for its owner, and only for a transaction Text Pad built. The signer checks every instruction first: ComputeBudget, pump.fun, the associated-token program, and a token CloseAccount that pays the wallet back. A transfer out is allowed only on the withdrawal path, after the code.

lib/wallets.ts
refuse(tx, wallet)
  fee payer must be the wallet
  each instruction: ComputeBudget | pump.fun | AssociatedToken
                    | Token CloseAccount -> back to the wallet
  System transfer, TransferChecked   # only on a confirmed withdrawal

Confirmation codes

Anything that moves money is two texts. The first says exactly what will happen and carries a 4-digit code; replying the code runs it. Codes work once, for 10 minutes (15 for a launch summary), and 3 wrong tries cancel the request. Only one request waits at a time; a new one replaces it.

The reason is spoofing: the sender of a text can be faked, but a faker never sees our reply. Only a hash of each code is stored.

What a launch does

The coin's metadata is written in pump.fun's own JSON shape (name, symbol, description, image, links) and stored on Vercel Blob, so the coin renders the same on pump.fun, in wallets and on explorers. Then one transaction: pump.fun's create_v2 and, if you asked for one, its buy_v2 for your first buy. pump.fun's address lookup table lets both fit.

Before it's signed, the transaction is simulated against mainnet; a launch that would fail costs nothing and says why. After it lands, the coin's bonding curve is read back from chain and checked to name your wallet as creator. Only then is it marked live.

text
create_v2(name, symbol, uri, creator = your wallet)
buy_v2(amount, max_cost = buy x (1 + slippage))   # optional, same tx
-> bonding curve read back, creator checked, live

Pairs

A coin's curve can trade against anything pump.fun quotes: SOL, USDC, tokenized stocks (TSLAx, NVDAx and friends), majors and memecoins. The list comes from pump.fun's own accounts. A first buy on a token pair is paid in that token, so the wallet needs some first.

Pairs pump.fun admits through its QuoteControl list may set their own creator fee, up to 3%.

Pictures

A picture can come from a link to an image, a post on X, TikTok, Instagram or YouTube (we read the post and take its picture), an upload page, or be made for you. Links are fetched with every redirect checked against private addresses and a size cap; the image is squared and sized for pump.fun. Animated GIFs stay animated.

A made picture is your ticker in Text Pad's glass speech bubble on the brand's purple, turned a little differently for every coin.

Fees and creator fees

Text Pad charges nothing. Solana charges rent and network fees (a launch is about 0.006 SOL, about 0.009 SOL plus the buy with a first buy). pump.fun charges 1.25% on trades today, part of which goes to the coin's creator.

Creator fees build up in a pump.fun vault for your wallet. FEES shows them; CLAIM moves them into the wallet. Coins paired with a token keep their fees in that token, claimable on pump.fun with your exported key.

Deposit alerts

Every 20 seconds the worker reads every active wallet's balance (a hundred per request). A rise of 0.001 SOL or more gets a text. While Text Pad itself is moving a wallet's money (a sell, a launch) the wallet is skipped, so a sale never reads as a deposit. ALERTS OFF stops them.

The web app

Text APP and the reply is a link that works once, for 15 minutes, and opens the app signed in as you; the session lasts 30 days. It does what the texts do, with a screen: launch with an uploaded picture and a pair picker, see every wallet and coin, sell, claim, withdraw, export. Withdrawals and exports from the web still need the phone: a code or a link, texted to you.

Links in texts are opened by a button press, not on load, because phones fetch link previews and a preview must not use a one-time link.

Data and privacy

Stored: your phone number, your wallets (addresses, and the sealed keys), your settings, your launches, and the texts you've exchanged with the number, so you can see them in the app. No names, no contacts, no tracking.

Public: your coins and your wallets' addresses, because they're on chain. Your phone number is never shown anywhere.

Changelog

1.0: Launch. Wallets by text, launches with a same-transaction first buy, any pump.fun pair, pictures from links, posts, uploads or made for you, buys and sells on the curve, creator fees, withdrawals, key export, deposit alerts, the web app.