Send funds#

Once you have a wallet and some funds (tutorial), another common task is sending Dash to an address. (Sending Dash to a contact or a DPNS identity requires the Dashpay app, which has not been registered yet.)

Code#

📘 Wallet Sync

Since the SDK does not cache wallet information, lengthy re-syncs (5+ minutes) may be required for some Core chain wallet operations. See Wallet Operations for options.

const setupDashClient = require('../setupDashClient');

const client = setupDashClient();

const sendFunds = async () => {
  const account = await client.getWalletAccount();

  const transaction = account.createTransaction({
    recipient: 'yP8A3cbdxRtLRduy5mXDsBnJtMzHWs6ZXr', // Testnet2 faucet
    satoshis: 100000000, // 1 Dash
  });
  return account.broadcastTransaction(transaction);
};

sendFunds()
  .then((d) => console.log('Transaction broadcast!\nTransaction ID:', d))
  .catch((e) => console.error('Something went wrong:\n', e))
  .finally(() => client.disconnect());

// Handle wallet async errors
client.on('error', (error, context) => {
  console.error(`Client error: ${error.name}`);
  console.error(context);
});

What’s Happening#

After initializing the Client, we build a new transaction with account.createTransaction. It requires a recipient and an amount in satoshis (often called “duffs” in Dash). 100 million satoshis equals one Dash. We pass the transaction to account.broadcastTransaction and wait for it to return. Then we output the result, which is a transaction ID. After that we disconnect from the Client so node can exit.