Docs
Pair deploys two memecoins and pairs them to each other on pump.fun and on Stonks. This page is the product, written against the pump public docs and the Stonks protocol docs.
Overview
A pair is two memecoins. Call them LEFT and RIGHT. Pair mints both, then opens a market on pump.fun and the same market on Stonks. On both venues, LEFT is quoted in RIGHT, and RIGHT is quoted in LEFT.
There is no SOL in the middle of the pair. A buy of LEFT spends RIGHT. A buy of RIGHT spends LEFT. Dollar value only appears if you mark one of the coins against something outside the pair.
Forked from Intertwined
Intertwined launches one coin onto two venues and tries to keep those two markets near each other. Pair keeps the dual-venue launch and changes the object.
Pair launches two coins, not one coin twice. It does not run a market maker to pull the prices together. The relationship is the quote itself: each coin is the pair asset of the other, on pump.fun and on Stonks.
What a pair is
- LEFT
- A Token-2022 memecoin. Its pump.fun curve and its Stonks curve both take RIGHT as the quote.
- RIGHT
- The other memecoin. Its curves take LEFT as the quote.
- pump.fun
- A custom pair. The sibling mint is passed as
quote_mintoncreate_v2. - Stonks
- A bonding curve whose reserve is the sibling coin, in the slot Stonks uses for an xStock.
On pump.fun
pump.fun prices a coin against a quote mint. SOL-paired coins leave that field empty. Pair does not. Each coin is created with create_v2, and the other coin is the quote.
Creation
create_v2 takes the name (32 characters), symbol (13), metadata URI (200), creator, and mayhem flag. Cashback is rejected: is_cashback_enabled must be omitted or false. is_holder_reward can be set if the creator fee should go to holders instead of a creator wallet. That choice is permanent.
A non-SOL quote is three extra accounts, in this order, or not at all: quote_mint, the bonding curve's associated account for that mint, and the quote mint's token program. Passing wrapped SOL (So11111111111111111111111111111111111111112), or passing nothing, stores quote_mint as the default pubkey and the coin trades in native SOL. Pair always passes the sibling.
Pump only accepts a quote mint from its supported pair list. A fresh memecoin is not on that list until Pump adds it. Creation against an unlisted mint fails. The list already includes SOL, USDC, xStocks, and at least one memecoin, so the interface can price a coin in another coin. Pair still depends on the sibling being enabled.
Trading
Non-SOL quotes trade through buy_v2, sell_v2, and buy_exact_quote_in_v2. The older buy and sell instructions do not trade them. Every v2 trade passes user_volume_accumulator and sharing_config, plus the quote mint and its associated accounts.
SOL-paired curves start their virtual quote reserves at initial_virtual_sol_reserves. Every other quote, including a Pair coin, starts at initial_virtual_quote_reserves. On the account, real_sol_reserves and virtual_sol_reserves are now real_quote_reserves and virtual_quote_reserves.
After the curve
When the curve completes, liquidity migrates to a PumpSwap pool quoted in the same sibling coin. Quote that pool off effective quote reserves: the quote vault balance plus virtual_quote_reserves. That virtual field is 0 on pools today, and quotes that ignore it will be wrong if it is ever set.
On Stonks
A Stonk is a memecoin whose bonding curve is denominated in a reserve asset. Stonks itself uses a tokenized US equity, an xStock issued by Backed, so the curve is priced in something with a market outside the coin. Stonks does not issue or custody those shares. It only points the curve at the on-chain mint.
Pair uses that same reserve slot and points it at the partner memecoin. LEFT's Stonk reserve is RIGHT. RIGHT's Stonk reserve is LEFT. The two Stonks are the same pair as the two pump.fun curves, not a second unrelated launch.
What Stonks itself reserves
These are the equity reserves Stonks publishes. They are Token-2022 mints on Solana. Pair's reserve is the sibling coin, not one of these. They matter because they are the shape Pair is forking: a curve whose unit of account is a chosen mint.
Lifecycle
Each Stonk curve moves through three states. The same words apply to a Pair coin on Stonks.
- Curve
- Buys and sells hit the bonding curve. Price comes from the reserve, which for Pair is the partner coin.
- Graduating
- The reserve has crossed Stonks' graduation threshold. Last swaps can still land on the curve while liquidity moves.
- Graduated
- The curve is closed. Liquidity sits in a Raydium concentrated pool. Stonks publishes graduation around a $70k reserve.
Deploying
- Pick two names, two symbols, two metadata URIs.
- Mint both Token-2022 tokens. Decimals are 6, matching a pump coin. Neither curve can point at a mint that does not exist yet, so both mints come first.
- Create LEFT on pump.fun with
create_v2and RIGHT asquote_mint. Create RIGHT the same way, with LEFT as the quote. A first buy can sit in the same transaction viacreate_v2followed bybuy_v2. The spend is in the sibling, not in SOL. - Create the two Stonks curves with the same mints, each reserving the other.
Trading after that is ordinary for the venue, with one difference in the asset you pay. On pump.fun you must use the v2 instructions. On Stonks you trade the curve until it graduates, then the pool.
Fees
On pump.fun, trading fees, creator fees, and any holder rewards are paid in the quote asset. For a Pair coin that asset is the sibling, not SOL.
creator_fee_bps on create_v2 applies to custom pairs, meaning a quote other than SOL or USDC. On SOL and USDC coins the argument is ignored and the standard schedule is used. Omitting it, or passing 0, also keeps the standard schedule. Changing the rate on an existing coin is a pump.fun request, not a Pair instruction.
Holder rewards are optional at creation. If set, the creator fee on each trade is reserved for holders and paid out by pump.fun. The creator pubkey is not the fee recipient. Cashback coins can no longer be created. Old cashback coins still trade and can still be claimed.
Stonks charges through its own curve and, after graduation, through the AMM pool. Pair does not add a second fee on top of either venue.
Risks
- Both coins can go to zero. A pair is two memecoins. The quote relationship is not a floor.
- Price is circular. LEFT is only priced in RIGHT, and RIGHT only in LEFT, until you mark one side against SOL or a stablecoin somewhere else.
- pump.fun can refuse the quote. If the sibling mint is not a supported pair asset,
create_v2will not open that curve. - The two venues are separate pools. A trade on pump.fun does not move the Stonks curve. They can diverge.
- If a launch uses an xStock anywhere in the path, that token is someone else's product. Issuers can restrict transfers, and equity quotes go stale when the US market is closed.
- The programs can fail. Read the pump public docs and the Stonks docs before sending size.
FAQ
Is this one coin on two sites?
No. That is Intertwined. Pair is two coins. Each site lists both, and each coin is the pair asset of the other.
Can I pay in SOL?
Not inside the pair. The quote mint is the sibling. To enter, you need the other coin, or a separate market where one of them trades against SOL.
Do the old pump buy and sell instructions work?
Not for this. A non-SOL quote only trades with buy_v2, sell_v2, and buy_exact_quote_in_v2.
Who holds the coins?
The curves and, after graduation, the pools. Pair does not custody either mint. On an ordinary Stonk the equity issuer custodies the shares. Pair's reserve is the other memecoin, so there is no share to custody.
Can the two prices differ?
Yes. pump.fun and Stonks are different curves. Nothing in Pair forces them back together.
Sources
- pump.fun public docs. Creation, v2 trades, quote mints, holder rewards, PumpSwap quoting.
- Supported pair assets. The quote mints pump.fun currently allows.
- Stonks protocol docs. Equity reserves, curve lifecycle, graduation to a Raydium pool.
- TypeScript SDK
@pump-fun/pump-sdk. Rust clientpump-rust-client.