Transaction Output
Overview
Purpose
Basic Usage
import { Transaction, P2PKH, Script, OP } from '@bsv/sdk';
const tx = new Transaction();
// Add a standard P2PKH payment output
tx.addOutput({
lockingScript: new P2PKH().lock('1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa'),
satoshis: 10000
});
// Add a change output (amount calculated automatically)
tx.addOutput({
lockingScript: new P2PKH().lock(changeAddress),
change: true
});
// Add an OP_RETURN data output
tx.addOutput({
lockingScript: new Script()
.writeOpCode(OP.OP_FALSE)
.writeOpCode(OP.OP_RETURN)
.writeBin(Buffer.from('Hello BSV')),
satoshis: 0
});
console.log('Outputs:', tx.outputs.length);
console.log('Total output value:', tx.outputs.reduce((sum, o) => sum + o.satoshis, 0));Key Features
1. Standard Payment Outputs
2. Change Outputs
3. OP_RETURN Data Outputs
4. Custom Locking Scripts
API Reference
TransactionOutput Interface
Creating Outputs
Output Properties
Serialization
Common Patterns
Pattern 1: Payment Distribution
Pattern 2: Data and Payment Combined
Pattern 3: Atomic Swap Output Structure
Security Considerations
Performance Considerations
Related Components
Code Examples
Best Practices
Troubleshooting
Issue: Output value exceeds input value
Issue: Dust output rejected
Issue: Change output has negative value
Issue: OP_RETURN too large
Further Reading
Status
Last updated
