HD Wallets

A hierarchical deterministic wallet is a digital wallet commonly used to store the keys for holders of cryptocurrencies.

To use an hd wallet with expand.network SDK, follow these steps:-

Step 1: Installation

User needs to install the expand.network SDK using the following command:

npm i expand-network

Step 2: Wallet Initialisation

const { Wallet, prepareTransaction } = require('expand-network');
const wallet  = new Wallet({ privateKey:'SENDER_PRIVATE_KEY', xApiKey:xApiKey});

Step 3: Prepare Transaction

const chainId = '1';        // Replace with other chainId to toggle between chains
const preparedTx = {
        "from": "SENDER_WALLET_ADDRESS",
        "value": "10000",
        "to": "RECEIVER_WALLET_ADDRESS",
        "chainId": "1",
        "gas": "25000",
        "xApiKey": "YOUR_API_KEY"  
    };

Step 4: Sign Transaction

const signedTx = await wallet.signTransaction(preparedTx);
signedTx.chainId = '1';
console.log(signedTx);

Step 5: Send Transaction

const tx = await wallet.sendTransaction(signedTx);
console.log(tx.data);

Sample code to approve a fungible token using any HD wallet:

const { Wallet, prepareTransaction } = require('expand-network');
const xApiKey = 'YOUR_API_KEY';    //Replace this with your API key
async function main() {
    const chainId = '1';
    const preparedTx = await prepareTransaction('https://api.expand.network/fungibletoken/approve', {
        "from": "OWNER_WALLET_ADDRESS",
        "value": "10000",
        "to": "SPENDER_WALLET_ADDRESS",
        "chainId": "1",
        "gas": "25000",
        "xApiKey": xApiKey  
    };
    const wallet  = new Wallet({ privateKey:'SENDER_PRIVATE_KEY', xApiKey:xApiKey});
    const signedTx = await wallet.signTransaction(preparedTx);
    signedTx.chainId = '1';
    console.log(signedTx);
    const tx = await wallet.sendTransaction(signedTx);
    console.log(tx.data);
}
main();

Last updated

#553: ENC-2526-LIDO

Change request updated