sponsorTransaction

Constructs and signs a sponsored transaction as the sponsor. Takes an origin-signed transaction and adds the sponsor's authorization, paying the transaction fee on behalf of the original sender.


Usage

import {
  makeSTXTokenTransfer,
  sponsorTransaction,
  broadcastTransaction,
} from '@stacks/transactions';

// Step 1: The origin creates a sponsored transaction
const transaction = await makeSTXTokenTransfer({
  recipient: 'ST1SJ3DTE5DN7X54YDH5D64R3BCB6A2AG2ZQ8YPD5',
  amount: 1000000n,
  senderKey: 'origin-private-key-here',
  network: 'testnet',
  sponsored: true, // Mark as sponsored
});

// Step 2: The sponsor signs the transaction
const sponsoredTx = await sponsorTransaction({
  transaction,
  sponsorPrivateKey: 'sponsor-private-key-here',
  fee: 10000n,
  sponsorNonce: 0n,
  network: 'testnet',
});

// Step 3: Broadcast the sponsored transaction
const result = await broadcastTransaction({ transaction: sponsoredTx, network: 'testnet' });

Notes

  • The original transaction must have sponsored: true set when it was created.

  • If fee is omitted, the fee is estimated automatically.

  • If sponsorNonce is omitted, the sponsor's nonce is fetched automatically.

  • Supported transaction types: token transfers, smart contract deploys, and contract calls.

Reference Linkarrow-up-right


Signature


Returns

Promise<StacksTransactionWire>

A promise that resolves to a fully-signed sponsored StacksTransactionWire object, ready to be broadcast.


Parameters

sponsorOptions (required)

  • Type: SponsorOptionsOpts

Last updated

Was this helpful?