Chainworks
Documentation

SVM Transaction Fees & Send Routes

Fee Parameters

Solana transactions support two types of fees:

Priority Fees (prioFees)

Priority fees are paid to validators to prioritize your transaction in the block.

PropertyTypeDefaultDescription
prioFeesstring"0"Amount in lamports to pay as priority fees

Example:

typescript
socket.emit("/svm/buy/transaction", {
  chain: "sol",
  token: "DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263",
  swapMode: "ExactIn",
  amountIn: "1000000000",
  wallet: "YourSolanaWalletPublicKey",
  prioFees: "100000", // 0.0001 SOL in lamports
});

Notes:

  • Higher priority fees increase the likelihood of faster inclusion
  • Paid regardless of transaction success or failure
  • Optional - defaults to "0" if not specified

Bribe Fees (bribeFees)

Bribe fees (also called MEV tips) are paid to MEV protection providers (e.g., Jito) to include your transaction in their bundles.

PropertyTypeMinimumDescription
bribeFeesstring"1000000"Amount in lamports to pay as bribe/tip fees

Example:

typescript
socket.emit("/svm/buy/transaction", {
  chain: "sol",
  token: "DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263",
  swapMode: "ExactIn",
  amountIn: "1000000000",
  wallet: "YourSolanaWalletPublicKey",
  sendRoute: "Antimev",
  prioFees: "100000",
  bribeFees: "1000000", // 0.001 SOL (minimum)
});

Notes:

  • Required for PublicWithNonce, Antimev, and AntimevWithNonce routes
  • Minimum value is 1,000,000 lamports (0.001 SOL)
  • Provides MEV protection by routing through specialized providers
  • Only paid if the transaction lands successfully (for revert-protected routes)

Send Routes

The sendRoute parameter determines how your transaction is submitted to the network.

RouteDefaultRequires bribeFeesRequires nonceAccountDescription
Public✅ Yes❌ No❌ NoStandard RPC submission only
PublicWithNonce❌ No✅ Yes✅ YesRPC + all MEV providers with tip
Antimev❌ No✅ Yes❌ NoRevert-protected MEV providers only
AntimevWithNonce❌ No✅ Yes✅ YesAll MEV providers (revert-protected + others)

Public (Default)

The simplest route - sends your transaction through the standard public RPC only.

typescript
socket.emit("/svm/buy/transaction", {
  chain: "sol",
  token: "DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263",
  swapMode: "ExactIn",
  amountIn: "1000000000",
  wallet: "YourSolanaWalletPublicKey",
  sendRoute: "Public",
  prioFees: "100000",
});

PublicWithNonce

Sends through both public RPC and all MEV providers with a tip.

typescript
socket.emit("/svm/buy/transaction", {
  chain: "sol",
  token: "DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263",
  swapMode: "ExactIn",
  amountIn: "1000000000",
  wallet: "YourSolanaWalletPublicKey",
  sendRoute: "PublicWithNonce",
  prioFees: "100000",
  bribeFees: "1000000",
  nonceAccount: "YourNonceAccountPublicKey",
});

Antimev

Sends exclusively through revert-protected MEV providers (e.g., Jito bundles).

typescript
socket.emit("/svm/buy/transaction", {
  chain: "sol",
  token: "DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263",
  swapMode: "ExactIn",
  amountIn: "1000000000",
  wallet: "YourSolanaWalletPublicKey",
  sendRoute: "Antimev",
  prioFees: "100000",
  bribeFees: "1000000",
});

Best for: High-value swaps where you want MEV protection and bribe fees only paid on success.

AntimevWithNonce

Sends through all MEV providers (both revert-protected and non-revert-protected).

typescript
socket.emit("/svm/buy/transaction", {
  chain: "sol",
  token: "DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263",
  swapMode: "ExactIn",
  amountIn: "1000000000",
  wallet: "YourSolanaWalletPublicKey",
  sendRoute: "AntimevWithNonce",
  prioFees: "100000",
  bribeFees: "1000000",
  nonceAccount: "YourNonceAccountPublicKey",
});

Best for: Maximizing MEV protection coverage across all providers.