Files
sol-trade-sdk/docs/TRADING_PARAMETERS.md
T
ysq 4907aafead feat: add flexible nonce parameter support
- Add nonce_account and current_nonce to trade parameters
- Remove hardcoded NonceCache dependency from nonce_manager
- Update examples and documentation for new nonce usage
- Fix nonce documentation errors and improve clarity
2025-09-19 18:02:11 +08:00

6.3 KiB

📋 Trading Parameters Reference

This document provides a comprehensive reference for all trading parameters used in the Sol Trade SDK.

📋 Table of Contents

TradeBuyParams

The TradeBuyParams struct contains all parameters required for executing buy orders across different DEX protocols.

Basic Trading Parameters

Parameter Type Required Description
dex_type DexType The trading protocol to use (PumpFun, PumpSwap, Bonk, RaydiumCpmm, RaydiumAmmV4)
mint Pubkey The public key of the token mint to purchase
sol_amount u64 Amount of SOL to spend (in lamports)
slippage_basis_points Option<u64> Slippage tolerance in basis points (e.g., 100 = 1%, 500 = 5%)
recent_blockhash Hash Recent blockhash for transaction validity
extension_params Box<dyn ProtocolParams> Protocol-specific parameters (PumpFunParams, PumpSwapParams, etc.)

Advanced Configuration Parameters

Parameter Type Required Description
lookup_table_key Option<Pubkey> Address lookup table key for transaction optimization
wait_transaction_confirmed bool Whether to wait for transaction confirmation
create_wsol_ata bool Whether to create wSOL Associated Token Account
close_wsol_ata bool Whether to close wSOL ATA after transaction
create_mint_ata bool Whether to create token mint ATA
open_seed_optimize bool Whether to use seed optimization for reduced CU consumption
nonce_account Option<Pubkey> nonce account
current_nonce Option<u64> nonce value

TradeSellParams

The TradeSellParams struct contains all parameters required for executing sell orders across different DEX protocols.

Basic Trading Parameters

Parameter Type Required Description
dex_type DexType The trading protocol to use (PumpFun, PumpSwap, Bonk, RaydiumCpmm, RaydiumAmmV4)
mint Pubkey The public key of the token mint to sell
token_amount u64 Amount of tokens to sell (in smallest token units)
slippage_basis_points Option<u64> Slippage tolerance in basis points (e.g., 100 = 1%, 500 = 5%)
recent_blockhash Hash Recent blockhash for transaction validity
with_tip bool Whether to include tip in the transaction
extension_params Box<dyn ProtocolParams> Protocol-specific parameters (PumpFunParams, PumpSwapParams, etc.)

Advanced Configuration Parameters

Parameter Type Required Description
lookup_table_key Option<Pubkey> Address lookup table key for transaction optimization
wait_transaction_confirmed bool Whether to wait for transaction confirmation
create_wsol_ata bool Whether to create wSOL Associated Token Account
close_wsol_ata bool Whether to close wSOL ATA after transaction
open_seed_optimize bool Whether to use seed optimization for reduced CU consumption
nonce_account Option<Pubkey> nonce account
current_nonce Option<u64> nonce value

Parameter Categories

🎯 Core Trading Parameters

These parameters are essential for defining the basic trading operation:

  • dex_type: Determines which protocol to use for trading
  • mint: Specifies the token to trade
  • sol_amount (buy) / token_amount (sell): Defines the trade size
  • recent_blockhash: Ensures transaction validity

⚙️ Transaction Control Parameters

These parameters control how the transaction is processed:

  • slippage_basis_points: Controls acceptable price slippage
  • wait_transaction_confirmed: Controls whether to wait for confirmation

🔧 Account Management Parameters

These parameters control automatic account creation and management:

  • create_wsol_ata: Automatically wrap SOL to wSOL when needed
  • close_wsol_ata: Automatically unwrap wSOL to SOL after trading
  • create_mint_ata: Automatically create token accounts

🚀 Optimization Parameters

These parameters enable advanced optimizations:

  • lookup_table_key: Use address lookup tables for reduced transaction size
  • open_seed_optimize: Use seed-based account creation for lower CU consumption

🔄 Optional Parameters

When you need to use durable nonce, you need to fill in these two parameters:

  • nonce_account: nonce account
  • current_nonce: nonce value

Important Notes

🌱 Seed Optimization

When open_seed_optimize: true:

  • ⚠️ Warning: Tokens purchased with seed optimization must be sold through this SDK
  • ⚠️ Warning: Official platform selling methods may fail
  • 📝 Note: Use get_associated_token_address_with_program_id_fast_use_seed to get ATA addresses

💰 wSOL Account Management

The create_wsol_ata and close_wsol_ata parameters provide granular control:

  • Independent Control: Create and close operations can be controlled separately
  • Batch Operations: Create once, trade multiple times, then close
  • Rent Optimization: Automatic rent reclamation when closing accounts

🔍 Address Lookup Tables

Before using lookup_table_key:

  • Initialize AddressLookupTableCache to manage cached lookup tables
  • Lookup tables reduce transaction size and improve success rates
  • Particularly beneficial for complex transactions with many account references

📊 Slippage Configuration

Recommended slippage settings:

  • Conservative: 100-300 basis points (1-3%)
  • Moderate: 300-500 basis points (3-5%)
  • Aggressive: 500-1000 basis points (5-10%)

🎯 Protocol-Specific Parameters

Each DEX protocol requires specific extension_params:

  • PumpFun: PumpFunParams
  • PumpSwap: PumpSwapParams
  • Bonk: BonkParams
  • Raydium CPMM: RaydiumCpmmParams
  • Raydium AMM V4: RaydiumAmmV4Params

Refer to the respective protocol documentation for detailed parameter specifications.