How the launch becomes an intent.
nearlaunch is a pump.fun launchpad with the launch transaction turned inside out. Instead of your wallet signing create_v2, you state an outcome: a coin with these details, funded with this much SOL, paid for in this asset on this chain. NEAR Intents delivers the SOL to a wallet that did not exist a minute ago, and that wallet mints the coin.
Overview
Every coin launched here mints on pump.fun's bonding curve exactly like any other pump coin. It trades on pump.fun, on aggregators, and on the AMM after migration. Nothing about the token is different.
What is different is who launched it. On pump.fun the launcher's wallet is the fee payer and the creator, visible forever. On nearlaunch the fee payer and creator is a launch wallet that receives its SOL through a NEAR Intent and has no other history. The payment that funded it happened on whatever chain you chose, to a one-time deposit address, and is joined to the mint only inside the intent.
Why intents
A bridge moves an asset. An intent moves an outcome. That distinction is what makes the launch private and what makes it work from anywhere.
1Click, the distribution API on top of intents.near, takes a request of the form "deliver exactly N SOL to this Solana address, paid in X on chain Y" and returns a one-time deposit address. A network of solvers competes to fill it. The best fill settles on Solana. The deposit on chain Y and the delivery on Solana are separate transactions from separate parties; the only record that ties them together is the intent itself.
For a launchpad that means: pay from a Bitcoin wallet, from an exchange withdrawal, from a shielded Zcash pool, from USDC on Base. It also means the SOL that mints the coin was never in your Solana wallet, because you do not need one.
The flow
Six steps, all visible on the session page as they happen.
If you close the tab, nothing stops. A keeper process watches every open launch and runs the mint the moment a wallet is funded. Return to the session link at any time; it is the only key to the session.
Paying from any chain
The form lists the assets 1Click can move. The catalogue is reconciled with the live token list, so anything solvers stop supporting drops off automatically.
| Asset | Chain | Privacy | Note |
|---|---|---|---|
| SOL | Solana | pseudonymous | SOL from any wallet. Routed through the intent: you pay a one-time address and a solver funds the launch wallet. |
| ZEC | Zcash | shielded | Pay from a shielded pool. The strongest option: the deposit has no visible sender. |
| BTC | Bitcoin | pseudonymous | Slow but universal. Allow an hour for confirmations. |
| ETH | Ethereum | pseudonymous | Mainnet ETH. A few minutes. |
| ETH | Base | pseudonymous | ETH on Base. Cheap and quick. |
| ETH | Arbitrum | pseudonymous | ETH on Arbitrum One. |
| USDC | Ethereum | pseudonymous | USDC on Ethereum mainnet. |
| USDC | Base | pseudonymous | USDC on Base. |
| USDC | Arbitrum | pseudonymous | USDC on Arbitrum One. |
| USDT | Ethereum | pseudonymous | USDT on Ethereum mainnet. |
| USDC | Solana | pseudonymous | USDC on Solana. Fast, but the deposit is on the same chain as the launch. |
| NEAR | NEAR | pseudonymous | Native NEAR. Settles in seconds. |
| DOGE | Dogecoin | pseudonymous | Because of course. |
| XRP | XRP Ledger | pseudonymous | XRP. The deposit needs the memo shown with the address. |
Shielded Zcash is the strongest option: a payment from the shielded pool has no visible sender at all. Bitcoin and EVM chains are pseudonymous; the deposit is visible on that chain but unconnected to Solana. SOL from another wallet also goes through the intent: you pay a one-time deposit address and a solver, not your wallet, funds the launch wallet. Solvers do quote SOL for SOL, at roughly one percent all in. Only if that quote is refused does the site fall back to a direct deposit into the launch wallet, and the session page says so.
Every quote needs a refund address on the paying chain. If solvers cannot fill within the window, or you sent less than quoted, the deposit is returned there.
The launch wallet
Each launch derives a keypair from the operator's keeper secret and a random per-launch salt. The salt lives on the launch row and never leaves the server; the keypair is recomputed whenever it has to sign. No private key per launch is ever written anywhere.
The launch wallet plays every role a launcher's wallet would:
| Role | Held by |
|---|---|
| Recipient of the funding intent | launch wallet |
| Fee payer of create_v2 | launch wallet |
| Creator (30 bps of every trade) | launch wallet |
| Holder of the initial buy | launch wallet |
| Signer of fee collection and payouts | launch wallet, on presentation of the claim secret |
It is your wallet. If a wallet was connected when the launch was opened, that wallet owns the launch: sign a short message on the session page and the launch wallet's private key is shown to you, once. Import it into Phantom or any Solana wallet and the dev buy and the creator fees are yours to move directly. Without a connected wallet, the claim secret exports the key the same way.
Privacy model
Be precise about what this does and does not hide.
- The launch wallet, its mint transaction, and the SOL that arrived in it.
- That the SOL came from a solver, not from an exchange or a known wallet.
- The coin's metadata, which names nearlaunch and the paying chain.
- The payer:
- A Solana wallet of yours. There is none in the flow.
- Where creator fees go when you route them out.
What the operator holds: the launch row, including the deposit address and the refund address you typed, and the keeper secret that derives every launch wallet. That is the trust in the system. The operator can see which chain paid and where refunds would go; they cannot see a shielded Zcash sender either. The claim secret is stored only as a hash.
What 1Click holds: the intent, the deposit and the delivery. Read their documentation for their data practices.
Creator fees
pump.fun credits 30 basis points of every buy and sell to the coin's creator, on the curve and on the AMM after migration. Here the creator is the launch wallet, so the fees accrue to a vault only that wallet can claim.
At launch you are shown a claim secret, once. It looks like nl_…. Presenting it on the creator fees page is the whole proof of ownership. A payout:
- 1. Collects the vault into the launch wallet (
collect_creator_fee). - 2. Quotes an EXACT_INPUT intent: that SOL, to the asset and address you name.
- 3. Sends the SOL from the launch wallet to the one-time deposit address.
- 4. Marks the payout settled when the destination chain confirms.
Costs
The launch wallet must receive enough SOL for the mint, the network, a small reserve for later fee collection, and the initial buy. The funding intent is EXACT_OUTPUT on this total.
| Item | SOL | Notes |
|---|---|---|
| Mint, curve, metadata accounts | 0.022 | Rent, set by Solana |
| Priority fee | 0.00004 | 300k CU at 100k micro-lamports |
| Reserve | 0.004 | Left in the wallet to sign fee collections |
| Fixed total | 0.02604 | A launch with no initial buy |
| Initial buy | your choice | Up to 50 SOL, at the opening price |
| pump buy fee | 1.25% | Of the initial buy: 95 bps protocol + 30 bps creator |
| Token account | 0.0021 | Only with an initial buy |
| 1Click fee | 0.1% | Waived when the operator sets a JWT |
| Slippage | 1% | On the funding quote |
If solvers deliver slightly less than the total, the initial buy shrinks to fit rather than failing the launch. If they deliver less than the fixed total, the launch waits as funded for the keeper or an operator to resolve it.
Statuses
| Status | Meaning |
|---|---|
| awaiting_deposit | Quote open. Nothing received. |
| processing | 1Click saw the deposit. Solvers are filling. |
| funded | SOL is in the launch wallet. Mint not yet sent. |
| launching | create_v2 in flight. |
| live | The coin exists on pump.fun. |
| failed | The mint failed. SOL is still in the launch wallet; retried by the keeper. |
| refunded | The intent refunded the deposit to your refund address. |
| expired | 45 minutes passed with no deposit. |
For operators
The repository is a Next.js app plus one keeper process. Copy .env.example, run supabase/schema.sql, generate a keeper key with pnpm keeper:init, and run pnpm keeper next to the site. The README covers each variable.
The keeper secret is the root of custody. Every launch wallet, every funded-but-unlaunched balance, and every coin's creator fees derive from it. Back it up before the first launch, and never reuse it across deployments.
/admin lists every launch in every status with its wallet balance and unclaimed fees, and can retry a failed mint, hide a coin, or sweep a wallet to a Solana address.
FAQ
No. Not to launch, not to collect fees.
Yes, from any Solana wallet or exchange. It still goes through the intent: a one-time deposit address on Solana, then a solver delivers fresh SOL to the launch wallet. Your wallet and the launch wallet never touch.
Less than quoted: 1Click refunds it to your refund address. More: the excess is refunded. Either way, the session page tells you.
It is held by the launch wallet. Route it out later with the claim secret, the same way as creator fees.
Nothing changes. Creator fees keep accruing to the launch wallet and can still be routed out.
Between deposit and mint, and for creator fees, yes: the operator's keeper secret derives the launch wallet. That is the trade for having no wallet of your own in the flow. The operator cannot see who you are; they can see the launch.