Swaps from Tron
Connecting a Web3 Wallet and Executing a Transaction through Rubic API
This page explains how to connect a Web3 wallet, retrieve token quotes, approve tokens, and execute a transaction using Rubic API, with examples using ethers.js, web3.js, and viem
Connecting a Web3 Wallet
To interact with the blockchain, we first need to connect a wallet. Here are examples using tronWeb.
const TronWeb = require('tronweb');
async function connectWallet() {
if (window.tronLink) {
const response = await window.tronLink.request({ method: 'tron_requestAccounts' });
return window.tronLink.tronWeb.defaultAddress.base58;
} else {
console.error("Tron provider not found. Please install TronLink.");
}
}Retrieving Token Quotes
Now that the wallet is connected, we can request token quotes from Rubic API.
Endpoint: POST https://api-v2.rubic.exchange/api/routes/quoteBest
async function quoteBest() {
const response = await fetch("https://api-v2.rubic.exchange/api/routes/quoteBest", {
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: {
"srcTokenAddress": "0x0000000000000000000000000000000000000000",
"srcTokenAmount": "1000.05",
"srcTokenBlockchain": "TRON",
"dstTokenAddress": "0x0000000000000000000000000000000000000000",
"dstTokenBlockchain": "ETH",
"referrer": "rubic.exchange"
}
});
const data = await response.json();
const { estimate, transaction, id } = data;
console.log(estimate);
// {
// This is an estimated amount you will get after the swap.
// "destinationTokenAmount": "8248.453781656313882666",
// "destinationTokenMinAmount": "8001.000168206624466186",
//
// "destinationUsdAmount": 2637.13,
// "destinationUsdMinAmount": 2558.02,
//
// "destinationWeiAmount": "8248453781656313882666",
// "destinationWeiMinAmount": "8001000168206624466186",
//
// "durationInMinutes": 5,
// "priceImpact": 0.14,
// "slippage": 0.03
// }
console.log(transaction.approvalAddress);
// This is the address you need to give approve to spend tokens.
// See next section for details.
// TMmBsvNipjm4VTqt5gydp72i7Facbzk1Ee
console.log(id);
// This is the swap ID. It will be needed later for swap request.
return data;
}You get more information about quote endpoint here:
Request QuoteApproving Tokens for Transaction
Before sending a transaction, you need to approve the token. Approve allows a user to authorize a contract or application to manage a specified amount of their tokens, which is necessary for secure interaction with decentralized applications such as exchanges or DeFi protocols. This gives users control over how many tokens can be used, providing an additional layer of security.
Below are examples for different libraries.
Retrieving Data to Execute a Transaction
To perform a token swap through Rubic API, we need to get the necessary data for the transaction.
Endpoint: POST https://api-v2.rubic.exchange/api/routes/swap
You get more information about swap endpoint here:
Request DataExecuting a Transaction with the API Response Data
Using the data obtained from the Rubic API, you can now execute the transaction.
Track your transaction
Now you can track your transaction status
Endpoint: GET https://api-v2.rubic.exchange/api/routes/status
You get more information about status endpoint here:
Get Cross-Chain StatusLast updated