Pre-launch · planner works today
Fee route planner
Plan a route for a coin you already launched: convert its creator fees into your coin within fixed limits and pay up to six permanent recipients, or plan a bigger route and export it.
- Recipients1 to 6, fixed
- ConvertsSOL into your coin
- VEYDUCT feenone
- Plannerworks today
With your wallet
Your fee route
Choose a token and fixed recipients. Supported Pump coins can receive SOL, convert it through their canonical PumpSwap pool and pay out the bought tokens. Each token has its own policy and balance.
Choose the token
Find a policy you operate, or start a new one.
Your coin’s contract address, from its Pump page. Each token has its own policy.
Keep 1 for your first policy for this token; use 2, 3… for another.
Only if someone else created it. Otherwise Find policy works it out from the token and number.
Set permanent recipients
Recipients are permanent. Enter one wallet and percentage per line, for example: wallet, 60. Up to six wallets; the total must be 100%.
For example your wallet, 60 on one line and a teammate’s wallet, 40 on the next. Why it matters: nobody can change these later, so paste addresses rather than typing them.
The wallet allowed to convert and pay out, for example a scheduled service you trust. It can never pay itself.
Why limits matter: they cap how much SOL can ever be converted and how fast, so a bad price or a busy operator cannot spend it all at once. Set the minimum a little below today’s rate to allow normal price moves; a higher floor refuses more trades. Slot duration varies. 150 slots is roughly one minute; 216,000 is roughly one day. The exchange-rate floor is fixed and allows 1% slippage. Conversion is only supported for restricted Token-2022 Pump assets with canonical pools.
Run an action
Recipients are fixed; every action is checked on mainnet before your wallet approves it.
For four to six recipients, prepare both batches of payout wallets before distributing. Ending conversions cannot be undone. Unused SOL goes to the same fixed recipients. Small refunds require existing SOL-funded recipient wallets; the review checks rent requirements. Previously purchased tokens can still be distributed.
Review, then approve
The review re-reads the token and the program on mainnet and lists every recipient, limit, rent and network fee. Nothing is signed until you approve in your wallet.
Choose a token and its recipients.
What happens next: after approval the saved receipt appears beside the form with the policy and vault addresses. Check them, then send creator fees to the vault (for example with Share fees). If a request times out, use Check confirmation before trying again.
Planner · works today, no wallet
Plan a fee route
Build and export a bigger route than one policy can hold: up to eight conversions, each split across up to ten recipients. No automation runs for you, and this export planner never signs or sends funds. An export is a proposal only: creator ownership and every destination still need checking before anything is set up on chain.
Bind your fee source
Pump native SOL creator fees. The source stays attached to this token and creator in the exported proposal.
The route reserves a fixed 1% service fee and both layers split the remaining 99%. It is part of the proposal; this page charges nothing.
Convert and distribute
Up to eight conversions. Each conversion supports up to ten destinations.
Check and export
Each layer must total exactly 100%.
Start with your token and creator wallet.
More details
Token checks read confirmed mainnet mint facts; they do not certify liquidity, ownership or execution compatibility.
Airdrop and raffle addresses name a future distribution contract, liquidity addresses name a future pool, and treasury addresses name a future treasury. Exporting does not create or fund any of them. Stock routes are unavailable until a reviewed asset registry exists.
Practice run · simulated · nothing is sent
Practice run
The practice run loads with the page. It needs JavaScript; nothing is signed or sent.
Everything the asset router does, and does not do
Checked against the program’s source and this page’s own code.
- Recipients
- 1 to 6 wallets, fixed for good
- Conversion
- SOL into your Pump coin, capped per trade and for life, 1% slippage at most
- VEYDUCT fee
- None. You pay rent and network fees only
- Wallet actions
- Wallet actions open later. The planner works now
The example is a two-layer route made in the Plan tab. Plans reserve a 1% service-fee line; routing policies on chain take no fee.
Accounts involved
Every program account has an address derived from fixed seeds (a Program derived address: an account address worked out from fixed words and keys. Only the program can sign for it; nobody holds a private key to it.), so the page finds it from the owner, the token and a policy number, and nobody can swap in a look-alike.
Policy
The permanent terms: owner, token, operator, recipients and shares, conversion limits, and every counter (SOL converted, tokens paid, SOL shared, sequence numbers).
- Seeds
- "vey-asset", owner, token, number
- Size
- 560 bytes
- Created by
- Create
SOL vault
A plain SOL account only the program can sign for. Creator fees are sent here; conversions and SOL sharing spend from it.
- Seeds
- "vey-asset-vault", policy
- Size
- 0 bytes (holds SOL only)
- Created by
- The first SOL sent to it
Policy token account
The vault’s token account for your coin. Bought tokens land here and wait until they are paid out.
- Kind
- Associated token account
- Size
- 170 bytes (Token-2022), 165 classic
- Created by
- The first conversion
Recipient token accounts
Each recipient’s own token account for the coin. Payouts go only to these, for the fixed recipients.
- Kind
- Associated token account
- Size
- 170 bytes (Token-2022), 165 classic
- Created by
- The first payout, or “Prepare payout wallets”
Each conversion also opens a temporary SOL held in a token account so a swap pool can trade it like any other token. Closing the account turns it back into plain SOL. account for the vault and closes it again in the same transaction, so SOL never sits outside the vault between trades.
Who can do what
- ActionWho signsRules the program enforces
- Create a policyAny wallet; it becomes the owner and names an operator1 to 6 distinct recipients totalling exactly 100%, never the vault itself. The program must have no upgrade authority. Conversion terms only for Pump (Token-2022) coins.
- Convert SOLThe owner or the named operatorNot paused or ended, before the end slot, at least the spacing after the last one, within the per-trade and lifetime limits, through the coin’s canonical PumpSwap pool, at or above the rate floor.
- Pay out tokensThe owner or the named operatorOnly to the fixed recipients’ own token accounts, each exactly what it is owed. Works while paused and after conversions end.
- Pause or resumeThe owner onlyStops or restarts conversions. Nothing else changes.
- End conversions and share SOLThe owner onlySends the vault’s SOL above its rent reserve to the same fixed recipients by share. Conversions stay off for good.
- Change recipients or limits, or withdraw elsewhereNobodyNo instruction edits a policy’s terms or sends tokens or SOL to anyone but its fixed recipients. The operator cannot pay itself.
An The one wallet a policy names, besides its owner, that may convert SOL and pay out. It cannot change recipients, limits or where money goes. is a convenience for running conversions and payouts, for example a scheduled service you trust. It cannot redirect money, but it can choose when to convert within your limits, so name one you trust.
The math, with a worked example
Token amounts on chain are whole units: 1 DEMO with 6 decimals is 1,000,000 units, and 1 SOL is 1,000,000,000 The smallest unit of SOL. 1 SOL is 1,000,000,000 lamports, so the 0.000005 SOL network fee is 5,000 lamports..
- The rate floor
minimum tokens = SOL in lamports × minimum units per SOL × (10,000 − 100) ÷ 10¹³The How far a trade’s result may fall below the expected rate before it is refused. Here it is fixed at 1% below your minimum rate. allowance is fixed at 1%. If PumpSwap would return less, the trade and the whole transaction are refused. - Payouts are cumulative
owed = (tokens held + tokens already paid) × share ÷ 10,000 − already paid to this recipientRounded down. However often you pay out, everyone ends up with the same totals; the dust waits in the policy until it adds up. - Sharing SOL works the same way
owed = (vault SOL − 650,240 lamports reserve + SOL already shared) × share ÷ 10,000 − already sharedThe reserve keeps the vault account alive. The first time this runs, conversions end for good.
Example (the practice run’s defaults)
- Create a policy: you 50%, Team 30%, Community 20%; up to 0.5 SOL per conversion, 1.5 SOL for life; at least 3,000,000 DEMO per SOL; 150 slots apart.Costs 0.00349504 SOL of rent plus the network fee.
- 1.2 SOL of creator fees reach the vault. Convert 0.5 SOL.
minimum = 0.5 SOL × 3,000,000 × 99% = 1,485,000 DEMOThe practice pool (85 SOL / 280,000,000 DEMO) returns 1,632,543.260992 DEMO. The vault keeps 0.70148844 SOL: 1.2 − 0.5, plus the temporary account’s rent that closes into it. - Convert again right away.Refused: the next conversion is allowed 150 slots (about a minute) later. After that, 0.5 SOL returns 1,613,588.343801 DEMO.
- Pay out 3,246,131.604793 DEMO.You get 1,623,065.802396, Team 973,839.481437, Community 649,226.320958. 0.000002 DEMO of rounding waits for later.
- Someone else buys with 40 SOL, then you try 0.2 SOL.
minimum = 0.2 × 3,000,000 × 99% = 594,000 DEMOThe pool would now return less, so the trade is refused and nothing is spent. - End conversions and share the SOL.The vault holds 0.20297688 SOL; 0.20232664 SOL above the reserve is shared: you 0.10116332, Team 0.060697992, Community 0.040465328.
Run the same steps in the Practice tab: it uses the program’s rules and the page SDK’s floor and payout functions, so you will see these numbers. The practice pool and its 0.30% fee are examples; real prices and fees come from PumpSwap.
Costs
- VEYDUCT feeThe asset router has no fee setting and VEYDUCT adds no site fee to policies.
- None
- Policy account SOL every Solana account must hold to exist, set by its size. It stays in the account; these programs have no instruction that closes one, so it is not refunded.560 bytes at mainnet rent of 5,080 lamports per byte plus 128 bytes per account. Paid once by the owner.
- 0.00349504 SOL
- Each conversionA temporary wrapped-SOL account (165 bytes), paid by the signer. Its rent lands in the vault when it closes and is later shared out with the rest of the SOL.
- 0.00148844 SOL + network fee
- First conversionOpens the policy’s token account (170 bytes for a Pump coin).
- + 0.00151384 SOL
- First payout to each recipientOpens their token account (170 bytes), paid by the signer.
- 0.00151384 SOL each
- Network feePer transaction, one signature.
- 0.000005 SOL
Policy rent is not refunded: the program has no instruction that closes a policy. PumpSwap charges its own trading fee inside each conversion; the rate floor already counts it, because it is checked on what actually arrives.
Timing and limits
Lifetime limit1 of 1.5 SOL converted
- Spacing. After a conversion, the next one waits at least the set number of slots. Solana makes a slot roughly every 0.4 seconds, so 150 slots is about a minute.
- End slot. The page sets it to the current slot plus your conversion window (216,000 slots is about a day). After it, conversions stop; payouts and SOL sharing still work.
- Sequence numbers. Every conversion, payout and SOL share names the next sequence number, so an old or repeated transaction is refused.
- No lockup on payouts. Owed tokens can be paid out any time, also while paused or after conversions end.
Edge cases and what can go wrong
The price moved
If the pool returns less than the floor, the conversion is refused and undone. Try again when the price recovers; the floor scales with the amount, so a smaller conversion does not help.
Too soon, too much, too late
Before the spacing, above the per-trade or lifetime limit, or after the end slot, the program refuses the conversion.
Ending is permanent
Sharing out the SOL switches conversions off for good, even if more SOL arrives later. More SOL can still be shared again.
An empty vault
A new vault must first receive at least 0.00065024 SOL, its rent minimum, or the network refuses the transfer.
New recipient wallets
A small SOL share to a wallet that holds no SOL can fail the network’s rent rule. The review checks this before you sign.
Four or more recipients
Their token accounts must be prepared first, in two small transactions, so the payout fits in one Solana transaction.
Unsupported tokens
Conversions need a graduated Pump coin (Token-2022, metadata only) and its The one PumpSwap pool Pump itself creates when a coin graduates from its bonding curve. The program refuses look-alike pools.. Direct payouts also accept classic SPL coins. Freeze authorities, transfer fees, hooks and other extensions are refused.
Rounding
Each payout rounds down. The remainder stays in the policy and becomes payable as more arrives; it is never lost.
The planner and the policy
The planner works today without a wallet. It plans a two-layer route: up to eight conversions (SOL, your coin or other SPL tokens), each split across up to ten destinations, both layers totalling exactly 100%. It checks the token addresses against confirmed mainnet mint data and exports the terms as canonical JSON with a SHA-256 digest. Its export format reserves a fixed 1% service-fee line in the proposal; nothing is charged and nothing is deployed, signed or funded.
The routing policy is what runs on chain: one token per policy, up to six recipients, SOL into that token only. A planned route with several assets becomes several policies, one per token, each with its own vault and limits.
FAQ
Can the operator or VEYDUCT take the money?
No. Tokens and SOL can only leave a policy to its fixed recipients, in their shares. No one, including the owner, can send them anywhere else.
Can I change the recipients later?
No. Recipients, shares and limits are permanent. Create a new policy with another policy number and point your fees there instead.
Does creating a policy redirect my Pump creator fees?
No. Set up Pump fee sharing to send SOL to the policy vault separately, on Share fees, after you have checked the created policy.
Why was my conversion refused?
Usually the price moved below your floor, it was sooner than the spacing, a limit was reached, the policy is paused, or the end slot passed. Nothing is spent when a conversion is refused.
What happens to SOL left in the vault?
The owner can end conversions and share it out to the recipients by share. The 0.00065024 SOL rent reserve stays so the account keeps existing.
Can the program be changed after launch?
Creating a policy checks on chain that the program has no upgrade authority, so its rules cannot change. The page also checks the exact program bytes before every wallet action.
What does the planner export prove?
That these exact terms were written down: the SHA-256 digest changes if any field changes. It does not create, deploy or fund anything.
Tested in this release
Test results are published with each release
Every release build runs the asset router’s exact pinned program bytes and this page’s own code in an isolated Solana runtime (LiteSVM), with Pump, PumpSwap and the token programs captured read-only from mainnet. This copy of the site has no build results attached; Release status lists the latest release.
- Real Pump creator fees sent to a policy, converted through the captured PumpSwap pool and paid out to fixed recipients in exact cumulative shares.
- A changeable program, low output, replayed or too-early conversions, pausing, swapped recipients and read-only accounts all refused.
- Separate policies for two classic SPL coins, tiny payout batches that keep rounding exact, a fixed SOL refund, and an operator’s refund refused.