ttxd-alpha
v2.2.0
Published
An SDK for building applications on top of V2,V3 and Solana exchanges
Downloads
73
Readme
TTXD-Alpha SDK
The latest version of the SDK is used in production in the DEX Interfaces, but it is considered Alpha testing software and may contain bugs or change significantly between patch versions.
Features
- Multi-chain & multi-DEX support: Currently supports Ethereum, BNB Chain, Polygon, and Base, with more chains coming soon.
- Modular architecture: Add additional DEXes and blockchains without refactoring core logic.
- Lightweight: Designed for high performance, the SDK offers minimal overhead.
Learn more about these features and how to use them in our Medium article:
📚 Read our Ultimate Guide to Cross-Chain to learn about:
This ttxd-alpha SDK provides a unified way to interact with Uniswap V2, Uniswap V3, PancakeSwap, QuickSwap, SushiSwap, and Raydium V2 exchanges across multiple blockchains. With simple functions, you can swap tokens and manage liquidity seamlessly across Ethereum, BSC, Polygon, Base, and Solana.
Installation
Make sure you have Node.js installed. To install the SDK, run:
npm install ttxd-alphaExamples of Using the SDK
1. V2 Exchanges: Uniswap V2
This example demonstrates a swap on Uniswap V2, but the same code works for other V2 exchanges by simply changing the exchange name and chainId.
import { swapV2 } from 'ttxd-alpha';
const provider = new ethers.providers.JsonRpcProvider('RPC URL'); // JsonRpcProvider instance
const signer = new ethers.Wallet('YOUR_PRIVATE_KEY', provider); // Wallet instance
(async () => {
await swapV2({
chainId: ChainId.Base, // Chain ID
exchange: "uniswapv2", // Exchange name
token1: new Token(), // Token to swap from
token2: new Token(), // Token to swap to
amount: '1000000', // 1 USDC (raw amount)
provider, // Blockchain provider
signer, // Transaction signer
gasLimit, // Optional gas limit (default: 300,000)
maxFeePerGas, // Optional max fee per gas (default: Dynamic per chain)
maxPriorityFeePerGas, // Optional max priority fee per gas (default: Dynamic per chain)
});
})();
Supported V2 Exchanges
| Exchange | Supported Networks | |-----------------|-----------------------------------| | "uniswapv2" | Ethereum, BSC, Polygon, Base | | "pancakeswapv2" | Ethereum, BSC, Base | | "quickswapv2" | Polygon | | "sushiswapv2" | Ethereum, BSC, Polygon |
2. V3 Exchanges: Uniswap V3
The following example demonstrates a swap using Uniswap V3. Similarly, it works for other V3 exchanges with minor changes.
import { swapV3 } from 'ttxd-alpha';
const provider = new ethers.providers.JsonRpcProvider('RPC URL'); // JsonRpcProvider instance
const signer = new ethers.Wallet('YOUR_PRIVATE_KEY', provider); // Wallet instance
(async () => {
await swapV3({
chainId: ChainId.BASE, // Chain ID
exchange: "uniswapv3", // Exchange name
tokenIn: new Token(), // Token to swap from
tokenOut: new Token(), // Token to swap to
fee: 500, // Pool fee (default: 0.05%)
amountIn: '1000000', // 1 USDC (raw amount)
provider, // Blockchain provider
signer, // Transaction signer
gasLimit, // Optional gas limit (default: 300,000)
maxFeePerGas, // Optional max fee per gas (default: Dynamic per chain)
maxPriorityFeePerGas, // Optional max priority fee per gas (default: Dynamic per chain)
});
})();
Supported V3 Exchanges
| Exchange | Supported Networks | |-----------------|-----------------------------------| | "uniswapv3" | Ethereum, BSC, Polygon, Base | | "pancakeswapv3" | BSC, Base |
3. Solana : Raydium V2
This example demonstrates a swap using Raydium V2 on Solana. Raydium works with Pool IDs, so you must provide a specific pool ID and amount for the swap.
import { swapRaydium } from 'ttxd-alpha';
(async () => {
const result = await swapRaydium({
poolId: 'AMM POOL_ID', // Example pool ID
amountIn: 0.005, // Amount in SOL
privateKey: 'YOUR_PRIVATE_KEY', // Wallet private key
slippage: 0.01, // Optional | Default: 0.05 (5%)
rpcUrl: 'https://api.mainnet-beta.solana.com', // Optional: Custom RPC URL | Default: Mainnet
poolType: "amm", // Pool type: "amm" for AMM, "clmm" for CLMM
priorityFeeSol: 0.0001, // Optional: Priority fee in SOL
tipFeeSol: 0.00005 // Optional: Tip fee in SOL
});
console.log(`Swap successful! Transaction ID: ${result.txId}`);
})();
Supported Solana Exchanges "raydiumv2" - Solana
New Feature: Swap Across Different Pool Types
- AMM (Automated Market Maker)
- CLMM (Concentrated Liquidity Market Maker)
License
This project is licensed under the MIT License.
