Coinbase Wallet is a self-custody wallet, giving you complete control of your crypto. It allows you to store and manage all of your crypto, NFTs, and multiple wallets in one place
Step 2: Wallet Initialisation
Copy const { WalletCoinbase, prepareTransaction } = require('expand-network');
const wallet = new WalletCoinbase({ privateKey:'YOUR_PRIVATE_KEY', xApiKey:xApiKey});
Step 3: Prepare Transaction
Copy // Preparing the approve transaction from expand.network
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 Coinbase Wallet:
Copy const { WalletCoinbase, prepareTransaction } = require('expand-network');
const xApiKey = 'YOUR_API_KEY'; //Replace this with your API key
async function main() {
const wallet = new WalletCoinbase({ 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();