Documentation Index
Fetch the complete documentation index at: https://core.vanish.trade/llms.txt
Use this file to discover all available pages before exploring further.
Getting Started
How do we get an API key?
How do we get an API key?
What tokens are supported?
What tokens are supported?
11111111111111111111111111111111 for native SOL. For SPL tokens, pass the token mint address. Token support is not restricted by Vanish - any token tradeable on Titan or Jupiter can be used.What DEX aggregators can we use to build the swap route?
What DEX aggregators can we use to build the swap route?
What fee does Vanish Core charge?
What fee does Vanish Core charge?
Deposits
Do I need to deposit before trading?
Do I need to deposit before trading?
GET /deposit_address to get the deposit address for the token you want to fund with, transfer on-chain, then call POST /commit with the confirmed transaction signature. Once the commit returns completed, your balance is available for trading.See Fund Your Account in the Quickstart for a full code example.How do deposit addresses work?
How do deposit addresses work?
GET /deposit_address returns the current deposit address for a given token. Always fetch a fresh address before each deposit - addresses may rotate based on the token and Vanish’s routing to ensure maximum privacy.What happens after I transfer funds on-chain?
What happens after I transfer funds on-chain?
POST /commit with the transaction signature. Vanish will verify the transaction and update your balance.completed- balance updated, ready to tradepending- compliance screening in progress, check back shortlyrejected- deposit failed screening, funds will be refunded automatically to the originating wallet
How do I know if a deposit was rejected?
How do I know if a deposit was rejected?
status field in the /commit response. A rejected status means the deposit failed compliance or risk screening. Do not re-attempt the deposit - funds will be refunded to the originating wallet automatically after extended screening is completed.Creating a Trade
How do we create a one-time wallet?
How do we create a one-time wallet?
GET /trade/one-time-wallet - Vanish Core returns a fresh single-use Solana wallet address. You do not generate this yourself. Set the returned address as the signer for all swap instructions in your transaction before submitting.Can I reuse a one-time wallet?
Can I reuse a one-time wallet?
GET /trade/one-time-wallet is single-use. Fetch a fresh one for every trade - reusing a one-time wallet will cause the trade to fail.Should I sign the transaction before sending it to /trade/create?
Should I sign the transaction before sending it to /trade/create?
swap_transaction. Vanish Core signs and wraps it. Sending a pre-signed transaction will cause it to fail.What format does swap_transaction need to be in?
What format does swap_transaction need to be in?
How does Vanish wrap my swap transaction?
How does Vanish wrap my swap transaction?
What does Vanish Core return after /trade/create?
What does Vanish Core return after /trade/create?
tx_id + jito_bundle_id. No broadcast is required - Vanish handles it.On the non-Jito route, Vanish Core returns a fully signed transaction payload. Broadcast this through your own RPC.What value should I use for split_repay?
What value should I use for split_repay?
1 for most trades. Only increase it if amount_out exceeds 0.5% of the token’s total supply, which may require spreading holdings across multiple Trading Accounts. Maximum is 9.On the non-Jito route, always use 1 - higher values add more account metas and instructions, increasing the risk of exceeding Solana’s transaction size limit.What happens if the trade fails on-chain?
What happens if the trade fails on-chain?
POST /commit with the failed transaction’s tx_id to release the user’s balance from its pending state.Can we verify the transaction before broadcasting?
Can we verify the transaction before broadcasting?
- Your original swap instructions are present and unchanged
- Only Vanish’s injected instructions were added
- No unauthorised modifications were made
Routing
What is the difference between Jito and non-Jito routing?
What is the difference between Jito and non-Jito routing?
tx_id and jito_bundle_id - no broadcast needed before committing. Best for most trades and high-value amounts where MEV protection matters.Non-Jito: Vanish returns a fully-signed transaction that you broadcast yourself via your own RPC. Use this if you want custom retry logic, a low-latency node, or full control over submission.How do I use the non-Jito route?
How do I use the non-Jito route?
prefer_non_jito object in your /trade/create request body. Set compute_unit_price and compute_unit_limit inside it. Omitting prefer_non_jito entirely routes via Jito by default.See the Non-Jito Variant in the Quickstart for a full code example.What Jito tip should I set?
What Jito tip should I set?
1,000,000 lamports (0.001 SOL). Higher tips increase the likelihood of bundle inclusion during periods of network congestion.How do priority fees work on the non-Jito route?
How do priority fees work on the non-Jito route?
compute_unit_price and compute_unit_limit inside the prefer_non_jito object. Vanish Core preserves your compute budget settings when wrapping the transaction.Withdrawals
Can a user withdraw to a different wallet than the one they deposited from?
Can a user withdraw to a different wallet than the one they deposited from?
What is additional_sol in the withdraw request?
What is additional_sol in the withdraw request?
Authentication & Signing
How do we authenticate API calls?
How do we authenticate API calls?
x-api-key header. Keys are provisioned during onboarding and should never be exposed in client-side code.How does request signing work?
How does request signing work?
/trade/create, /withdraw/create) and read operations (/account/balances, /account/pending, etc.) require a user-signed message proving ownership of user_address.Sign with the user’s Solana keypair (Ed25519) and base64-encode the result. The message format varies by endpoint - see Signing Requests for the exact format for each operation.Timestamps must be Unix time in milliseconds. Stale timestamps are rejected to prevent replay attacks.What is the most common cause of 401 errors?
What is the most common cause of 401 errors?
- Using seconds instead of milliseconds for the timestamp
- Missing or incorrect newlines in the message string
- Base58 or hex encoding instead of base64
- Signing with the wrong keypair
Commit & Balances
Why must /commit be called even for failed transactions?
Why must /commit be called even for failed transactions?
/commit - with any outcome - tells Vanish Core to resolve that balance, either applying the change or reverting it. Without a commit, the balance remains in a pending state indefinitely.What happens if I never call /commit?
What happens if I never call /commit?
POST /account/pending on startup to detect any transactions awaiting commit - for example, after a crash or timeout. Call /commit with each returned tx_id to resolve them. /commit is idempotent and safe to retry.What statuses can /commit return?
What statuses can /commit return?
| Status | Meaning |
|---|---|
completed | Action processed successfully: the user’s Vanish balance has been updated |
rejected | Deposit failed compliance or risk screening: funds will be refunded to the originating wallet after extended screening is completed |
pending | Waiting for the transaction to land on-chain or undergo compliance screening: check back shortly |
failed | The transaction was rejected on-chain: the user’s balance is no longer in a pending state |
expired | The transaction was not confirmed within the required window: the user’s balance is no longer in a pending state |
What does already_processed mean in the commit response?
What does already_processed mean in the commit response?
already_processed: true, this tx_id was already committed in a previous call. The response still contains the correct status and balance_changes. This is by design - /commit is idempotent and safe to retry.Fees & Network
What is loan_additional_sol and how should we set it?
What is loan_additional_sol and how should we set it?
12000000 lamports (0.012 SOL) for loan_additional_sol - this covers ATA creation costs during the trade. Any unused amount is automatically refunded after settlement.If the target token’s ATA already exists in the user’s wallet, a lower value may work - but the recommended value is safe for all cases.How does platform fee sharing work?
How does platform fee sharing work?
What is the expected latency overhead?
What is the expected latency overhead?
How do I convert between SOL and lamports?
How do I convert between SOL and lamports?
Compliance
What is the same-wallet-in, same-wallet-out rule?
What is the same-wallet-in, same-wallet-out rule?
What happens when a deposit is rejected?
What happens when a deposit is rejected?
rejected commit status means the deposit failed compliance or risk screening. Funds will be refunded to the originating wallet after extended screening is completed. Do not re-attempt the deposit until the refund is confirmed.