Phantom is a digital wallet which makes it easy to store, send, receive, collect, and swap tokens on Solana, Ethereum and Polygon.
To use Phantom with expand.network SDK , follow these steps:-
Step 2: Wallet Initialisation
Copy const { WalletPhantom, prepareTransaction } = require('expand-network');
const wallet = new WalletPhantom({ privateKey:'YOUR_PRIVATE_KEY', xApiKey:xApiKey});
Step 3: Prepare Transaction
Copy const preparedTx = await prepareTransaction('https://api.expand.network/fungibletoken/approve', {
"from": "OWNER_WALLET_ADDRESS",
"tokenAddress": "0x6B175474E89094C44Da98b954EedeAC495271d0F",
"amount": "1000000000000",
"to": "SPENDER_WALLET_ADDRESS", //For approve
"gas": "100000",
"chainId": "1",
"xApiKey":xApiKey
});
Copy // Sign the transaction locally using sdk client
const signedTx = await wallet.signTransaction(preparedTx);
console.log(signedTx);
Copy // Send the signed transaction
const tx = await wallet.sendTransaction(signedTx);
console.log(tx);
Sample code to approve a fungible token using Phantom:
Copy const { WalletPhantom, prepareTransaction } = require('expand-network');
const xApiKey = 'YOUR_API_KEY'; //Replace this with your API key
async function main() {
const wallet = new WalletPhantom({ privateKey:'YOUR_PRIVATE_KEY', xApiKey:xApiKey});
const preparedTx = await prepareTransaction('https://api.expand.network/fungibletoken/approve', {
"from": "OWNER_WALLET_ADDRESS",
"tokenAddress": "0x6B175474E89094C44Da98b954EedeAC495271d0F",
"amount": "1000000000000",
"to": "SPENDER_WALLET_ADDRESS",
"gas": "100000",
"chainId": "1", // Replace with other chainId to toggle between chains
"xApiKey":xApiKey
});
const signedTx = await wallet.signTransaction(preparedTx);
console.log(signedTx);
const tx = await wallet.sendTransaction(signedTx);
console.log("Transaction Pending....", tx.data);
}
main();