Docs & FAQ
How Sapling works
Short answers, real numbers. Every figure on this page comes from the app's live configuration.
New here? Start with a short guide: Start with your Zcash wallet·Start with Phantom or Solflare
What Sapling is
Sapling is the first zcash-native launchpad & terminal: launch, trade and cash out coins straight from your Zcash wallet, shielded, or from Phantom or Solflare. Raydium LaunchLab coins start on its curve; older coins are pump.fun coins. Holder rewards are paid in ZEC, a share of every trade buys and burns $SAPLING, and a slice goes into one shared $SAPLING/ZEC pool on PumpSwap whose LP tokens are burned, so that liquidity can never be pulled by anyone.
How launching works
Add a name, a ticker and an image, pick a pair and pick what your coin pays: ZEC to holders, a basket to holders, ZEC to a wallet, or no tax. Then launch with your Zcash wallet, or with Phantom or Solflare. The coin starts on a Raydium LaunchLab curve and graduates to its own Raydium pool.
Raydium LaunchLab coins pay Sapling 2.00% of every trade, in ZEC: 0.50% each to buying and burning $SAPLING, the $SAPLING/ZEC pool, the flywheel and the treasury. The deployer adds their own share on top, from none to 3%, paid where they choose, the coin's holders included. Raydium's own fee is on top: 0.25% on the curve, 0.30% on the pool.
Older coins, launched on pump.fun, worked like this:
Your wallet asks you once, for one transaction that does two things:
- The coin: created on pump.fun, paired to SAPLING, ZEC or hSOL (see Pairs), with a 2.00% creator fee, and the launch fee of 0.01 SOL paid to the Sapling treasury. On pump.fun the deployer's wallet shows as creator; the creator fee itself goes to Sapling's program (A9zF…5UxF; each coin's own fee account is linked on its page), which splits it on chain.
- The declaration: where your 0.80% of every trade goes (you, another wallet, or holder rewards). The new coin's own key signs it after you, so only the page launching the coin can write it, once.
Both are one transaction: they land together, or neither lands and nothing is spent but the network fee. Your wallet can show exactly what it does before you approve, and it may add its own safety checks to it. Launching again after an attempt that was sent uses a new coin address. A coin without the declaration, or without the launch fee, is not registered.
The name can be up to 32 bytes, as on pump.fun: letters outside A–Z take 2–4 bytes each. The description shown on pump.fun and explorers ends with “Launched on sapling.cash”, and an empty website links to the coin's page here.
You can add a first buy in the same transaction, paid in ZEC. If you only hold SOL, the app swaps SOL to ZEC through Jupiter first, as its own approval; the swap is simulated and refused if it would cost more than the SOL swapped plus 0.003 SOL, and the launch is asked for once the swap is final (if you then stop, you keep the ZEC). With a first buy the launch is near the network's size limit, so it may carry no priority fee and take a little longer to land when the network is busy. Launch a coin.
Pairs
You choose a coin's pair when you launch: SAPLING, ZEC, or hSOL (see below). SAPLING comes first.
A coin paired with SAPLING trades through the $SAPLING/ZEC pool in one route: you pay ZEC or SOL and receive ZEC or SOL, and you never hold $SAPLING. SOL goes to ZEC through Jupiter first, as for a ZEC coin. The trade box shows the route's price impact and fees before you confirm, and its price and market cap read in ZEC.
Its 2.00% creator fee arrives in $SAPLING and is split in kind. The rootstock share (0.50% of each trade) is burned directly in $SAPLING. The liquidity share (0.50%) is added to $SAPLING/ZEC liquidity with ZEC Sapling already holds, and its LP tokens are burned. The deployer's choice (0.80%) and Sapling's share (0.20%) are converted to ZEC on chain and paid in ZEC; holder rewards and payouts stay in ZEC.
A conversion never sells below a floor the program sets from its own record of the $SAPLING/ZEC price: the higher of the last half hour's and the last six hours' medians, less a small band. A price pushed down for a moment does not move it; a conversion below it is refused.
pump.fun can switch off new coins paired with another pump.fun coin. If it does, new SAPLING launches stop; coins already paired keep trading and their fees keep being split.
A Zcash wallet launches and trades a coin paired with SAPLING the same way: ZEC in, ZEC out.
You choose a coin's pair when you launch: ZEC, or hSOL. Whatever the pair, every trade goes in and comes out as SOL or ZEC: Sapling does the exchange inside the same transaction, and refuses the trade if it cannot. A Zcash wallet trades and launches either pair the same way: ZEC in, ZEC out, the exchange made on the way, never below Pyth's price less 1%. hSOL is Helius staked SOL: the pool's liquidity earns staking yield on its own, every epoch, with nothing for traders to do. The 2% creator fee is turned into ZEC on chain, with a minimum price the program checks against Pyth and the stake pool, then split exactly as for every other coin. Holder rewards and payouts are always ZEC; the rootstock always burns $SAPLING; the liquidity always goes to $SAPLING/ZEC.
You can pair a coin with a tokenized stock, like NVDAx. Trades still go in and come out as SOL or ZEC. Sapling does the exchange inside the trade and refuses the trade if it cannot. Tokenized stocks come with controls held by their issuer: it can pause the token, freeze an account that holds it, or move it from any account. If it does, the coin cannot trade until it stops. Sapling turns its own fees in the stock into ZEC every few minutes, so it holds very little of it.
Stages
The split works the same at every stage, on the curve and on the pool.
Where the sap goes
Raydium LaunchLab coins pay Sapling 2.00% of every trade, in ZEC: 0.50% each to buying and burning $SAPLING, the $SAPLING/ZEC pool, the flywheel and the treasury. The deployer adds their own share on top, from none to 3%, paid where they choose, the coin's holders included. The rest of this section is the older pump.fun coins' split. Every trade on an older coin pays a 2.00% creator fee, in ZEC or turned into ZEC on chain (a coin paired with $SAPLING, hSOL or a stock). It splits four ways.
The liquidity share of every trade goes into $SAPLING/ZEC liquidity whose LP tokens are burned, so nobody can pull it. pump.fun takes its own protocol fee on top: 0.95% on the curve, 0.25% after graduation. None of it reaches Sapling. The split can change within the program's bounds: liquidity never below 0.50%, Sapling never above 0.40%.
- Liquidity. Into $SAPLING/ZEC liquidity on PumpSwap, its LP tokens burned: the liquidity every coin shares. See Liquidity.
- Rootstock. The keeper buys $SAPLING, the pad's own coin, and burns it.
- Sapling. The operator's share. It pays for the keeper, the indexer and the people running the pad.
- The deployer's choice. Chosen when the coin is planted: the deployer's wallet, another wallet, or holder rewards. See below.
The split can change within bounds the program enforces: liquidity never gets less than 0.50% of a trade and Sapling never more than 0.40%. A change applies to every coin, from the next split on. $SAPLING itself is the exception: all of its creator fee goes to the Sapling treasury.
The deployer's share
Whoever launches a coin chooses where this share goes. It is paid in ZEC, or in a basket's tokens. On Raydium LaunchLab coins the deployer sets it, from none to 3%; on older pump.fun coins it is 0.80%.
- Me. The planting wallet. The default.
- Another wallet. Any address. That wallet controls the share from the start; the deployer has none.
- Holders. Holder rewards: 0.80% of every trade paid to holders in ZEC, or in a basket's tokens, min $20 holding. Permanent.
Sapling is not affiliated with the Zcash Foundation.
Only the current payee controls it. The payee can redirect it to another wallet, which then controls it, or turn it into holder rewards, which nobody controls afterwards. Redirecting hands over control. You can't take it back. Nobody else can change it: not the deployer after a handover, not Sapling, not the admin.
Keep your ZEC account yours. Payouts, a redirect and the switch to holder rewards all pay into the payee's own ZEC account. The token program lets a wallet hand that account to another owner; a payee who does so stops all three, and the share waits in the coin's account until the new owner hands it back. It affects only that payee's share, and only the payee can cause it.
What the program enforces, and what it does not. The pot can only move to Sapling's rewards wallet, one run at a time, at most once an hour per coin, and only after the snapshot's fingerprint (its sha256) is written on chain. Who gets how much is computed by the keeper and is not enforced on chain; every snapshot, share and transfer is published with its payout on the coin page (Paid to holders, then Proof) so anyone can check it. Sapling pays the transaction fees.
Liquidity
Sapling's liquidity is one shared pool: protocol-owned $SAPLING/ZEC liquidity on PumpSwap. 0.50% of every trade on every coin ($SAPLING's own fee goes to the treasury) goes into it, and its LP tokens are burned the moment they are minted, so nobody can ever pull it: not a holder, not a coin, not Sapling.
- The LP pot. Each split pays the liquidity share into the LP pot, a ZEC account the vault program owns. Only the LP wallet can draw from it, and each run puts what it draws into the pool in the same transaction.
- Each run, one transaction. The LP wallet draws from the pot, buys about half of it in $SAPLING on the pool, deposits both sides and burns exactly the LP tokens the deposit minted. If any step fails, nothing moves and the ZEC stays in the pot.
- Bounded draws. The program lets the LP wallet draw at most 0.5 ZEC at a time, at least 300 seconds apart. No other key can draw at all.
- Why burned LP stays. PumpSwap counts every share against the pool's own LP supply. A burned LP token's share stays in the pool for good, and nobody can withdraw it.
- The floor. Liquidity never gets less than 0.50% of a trade. The program enforces it on every split change.
Anyone can check it. Every draw, deposit and LP burn is on chain with its signature. Sapling's runs never add to the LP mint's supply: each one burns what it minted.
Zcash stamps
Stamps come from payouts to Zcash. When a sale or a send is paid out through a shielded exit, its shielded note carries the receipt in its memo, and that note is the stamp. Its certificate is at sapling.cash/zec/exit/<signature>, the address written in the memo itself.
- Harvest stamps stay valid. Stamps issued for harvests stay valid and checkable forever by the same public rules: each one can be rebuilt from public chain data alone, and its certificate and proof keep working.
A stamp is a permanent record on Zcash. It is not a token and has no promised value. Nothing about it converts into anything later.
ZEC from and to Zcash
Sapling trades in ZEC. If your ZEC is on Zcash (in Noir, Zodl or any Zcash wallet), you can bring it in, and you can have a sale or a harvest paid out to a Zcash address. NEAR Intents (its 1Click service) moves it between the two chains. Sapling never holds it, except a shielded payout, which it holds for the few minutes it takes to send it on (below).
- Transparent: NEAR Intents pays your address directly, and Sapling never holds your funds.
- Shielded: Sapling holds your ZEC for a few minutes and sends it on to your wallet, shielded.
- The bridge can delay or hold a transfer. NEAR Intents can delay a transfer or hold it (for example for a compliance review). Sapling cannot speed it up or release it.
- Check the full address. Compare every character with your own wallet, not only the start and the end. Scammers send tiny amounts from look-alike addresses so they show up in your history: never copy an address from a transaction history or an explorer.
- Bringing ZEC in. On Bring ZEC from Zcash, connect Phantom or Solflare, enter the amount and a Zcash refund address. You get a one-time deposit address of NEAR Intents and the exact amount to send, as text and as a QR code (Zodl and other wallets scan it); with Noir, the page can ask Noir to send it. The ZEC arrives in your wallet, usually within 10 minutes of your send.
- The deadlines. Each deposit address is good for one quote, which has two times. The first, about 80 minutes after the quote, is when NEAR Intents starts refunding instead of swapping; the page shows the time to send by in bold and hides the address 20 minutes before it. The second is NEAR Intents' own deadline, days later (the page shows it): the address then goes inactive, and ZEC sent after it may be lost. Never reuse an old address.
- Refunds, coming in. If less than the quoted amount arrives, or nothing arrives before the refund time, NEAR Intents sends what it received back to your Zcash refund address, minus its refund fee (about 0.0003 ZEC). A refund can take until NEAR Intents' own deadline. A refund address is required, and it is transparent, so the refund is public.
- Paying out. In the sell tab or in Harvest, tick “Receive as native ZEC on Zcash” and enter your Zcash address. In the same transaction as the sale or harvest, your wallet sends NEAR Intents exactly the sale's guaranteed minimum, the same number written into the sale itself on the curve and on PumpSwap (anything above it stays in your wallet as ZEC), or your harvested share (less the stamp fee, if you add a stamp). Nothing is sent unless the trade itself goes through. If NEAR Intents cannot deliver, the ZEC comes back to your wallet.
- Sending ZEC you hold. On Move ZEC, Send to Zcash, send ZEC in your wallet to your Zcash address without selling a coin. It is the same payout as a sale's or a harvest's: one transaction from your wallet to NEAR Intents' one-time deposit address, the same checks, fees and minimum, and its own page to follow it. On a coin page, “Buy with native $ZEC” opens Bring from Zcash and, once the ZEC is in your wallet, takes you back to that coin to buy with it.
- Which Zcash addresses. Shielded payouts go to any unified address with an Orchard part; Zodl's shielded address works. Transparent payouts go to a t1… address, or a unified address with a transparent part.
- Costs. NEAR Intents charges a flat fee per transfer, whatever the amount. Coming in, it is about 0.00001 ZEC when your wallet already has a ZEC account, and about 0.0002 ZEC when NEAR Intents has to open one for it. Going out, NEAR Intents quotes about 0.0003 ZEC and has been taking about 0.00025; the page shows the fee from its quote and, once it is done, what it took. These are the figures at the time of writing. There is a minimum of about 0.0013 ZEC. A payout may also open NEAR Intents' ZEC account once, up to 0.00204 SOL, and your Zcash wallet adds its own network fee. Sapling's fee: none. Every screen shows the exact figures before you confirm.
- What Sapling checks. Before it shows a deposit address or builds a payout, your browser checks NEAR Intents' own signature on a fresh quote it asked for itself, and asks NEAR Intents directly that the address pays your wallet or your Zcash address, exactly as you typed them in this browser, with no fee Sapling did not ask for. A transfer started in another browser is only followed there, never shown with an address to send to. Addresses come only from what you type or from that signed quote, never from any transaction history.
- Following a transfer. Every transfer has its own page (/zec/…) that reads its state from NEAR Intents. You can close it and come back to the link. In the browser you started it in, the page shows everything; in any other browser it only shows where the transfer stands, never a deposit address or a Zcash address from NEAR Intents' record (a link can come from someone else).
New to Zcash?
From a Zcash wallet you trade with native ZEC. In Phantom or Solflare, the ZEC you hold is bridged ZEC, not native Zcash: to use Zcash's privacy, move it to a shielded Zcash wallet. ZecHub explains how.
Terminal
The Terminal buys and sells any token Jupiter trades, with ZEC from your Zcash wallet, from the same Sapling account as Sapling coins.
A buy: your ZEC arrives at the order's own address, and sapling_accounts (the guard) swaps it through Jupiter itself. Jupiter's only signer is that order address, which holds just that order's ZEC; the guard checks that your account received at least the amount you signed, or nothing moves and the ZEC comes back to your Zcash wallet.
The tokens are held by your account's holding, an address of the guard tied to your account. A sale (one passkey approval tap) moves exactly the amount you sell into an address made for that sale alone, sells it through Jupiter, and pays the ZEC to your registered Zcash wallet through NEAR Intents. Payouts are not shielded. Exporting your account's key moves every Terminal token into the key first, in the same tap.
The terminal fee is 1% of the ZEC side of each trade: 0.25% to the rootstock ($SAPLING bought and burned) and 0.75% to Sapling, both paid in the trade's own transaction. Network costs and the route's own pool fees are separate.
The guard does not buy a token whose mint lets someone take, freeze, pause or block it (a permanent delegate, a transfer hook, a pausable or non-transferable mint, frozen new accounts) or charges more than 5% per transfer. Everything else is shown with what Sapling found: whether Jupiter verifies it, who can still mint or freeze it, its liquidity, whether a real holder's sale goes through, and whether its name looks like a verified token's. Sapling never calls a token safe.
Who holds the keys
sapling_vault (the vault program) is an on-chain program. It splits every coin's creator fee on chain and holds the LP pot in an account only the program can move: only the LP wallet can draw from it, within the bounds above. Nobody has to trust the keeper, the web app or the operator for the split.
- Anyone can settle a coin's claimed fees and move any coin's remaining roots to the LP pot.
The program's liquidity instructions. settle pays the liquidity share into the LP pot; roots_to_pot moves a coin's remaining roots there (anyone); draw_lp moves ZEC from the pot to the LP wallet within the limits (the LP wallet only); retire_roots and set_lp are signed by the upgrade authority. Harvest, deposits into a coin's roots and overflow sweeps are refused since the switch.
The admin can pause a coin, and only while it is paused move ZEC left in its own vault to a fixed recovery address.
Official links
These are Sapling's only channels. Sapling never DMs you first and never asks for your seed phrase or keys.
$SAPLING (rootstock)
$SAPLING is the pad's own coin, launched through the same flow as every other coin. 25% of every coin's creator fee (0.50% of each trade) buys $SAPLING and burns it. That is the rootstock. $SAPLING is also one side of the shared liquidity: the liquidity share of every other coin's trades (0.50%) goes into $SAPLING/ZEC liquidity whose LP tokens are burned. All of $SAPLING's own creator fee goes to the Sapling treasury.
FAQ
Do I need ZEC?
What happens at graduation?
Is trading on Sapling private?
Can I use the ZEC in my Zcash wallet?
Can the operator take my coins?
Developer API
Build on Sapling from your own app, bot or terminal: read coins, prices and trades, and launch, buy, sell and claim with your users' own Phantom or Solflare wallets. Every transaction comes back unsigned, and pays exactly the split above. Developer API docs.
DEX fund
Sapling covers the DEX Screener fee for graduated coins with an active community: their logo, header, description and links on DEX Screener. The deployer, a CTO team or a community member asks with the coin's X or Telegram, the listing images and a short description; a person reviews every request, and approval isn't guaranteed. Sapling places the order itself. Sapling never asks you to pay or send anything. Request DEX funding.
Risks
Memecoins can go to zero. The $SAPLING/ZEC liquidity is shared by every coin and backs none of them. Sapling depends on Raydium, pump.fun, on a bridged ZEC, and on a few programs. Read the full risk disclosure before trading.