mirror of
https://github.com/XRPLF/xrpl-dev-portal.git
synced 2025-11-25 14:15:50 +00:00
282 lines
8.6 KiB
Markdown
282 lines
8.6 KiB
Markdown
# Send a Batch Transaction
|
|
|
|
Code samples showing how to create and submit a [Batch transaction](https://xrpl.org/docs/concepts/transactions/batch-transactions) with Javascript.
|
|
|
|
Both for single and multi account batch transactions.
|
|
|
|
## Single Account Batch Transaction
|
|
|
|
Quick setup and usage:
|
|
|
|
```sh
|
|
npm install xrpl
|
|
node singleAccountBatch.js
|
|
```
|
|
|
|
The script should output the following:
|
|
|
|
```sh
|
|
Funding new wallets from faucet...
|
|
Sender: raNwujquxJ7QTLhfbkKN6sZa7RBPHV671e, Balance: 100 XRP
|
|
Wallet1: r4JMmKToZRMVT3mGWPnKHFEHsSMQEWigLC, Balance: 100 XRP
|
|
Wallet2: rKfPgHASYuttoF1HfU56V31WbJvZn3w8xn, Balance: 100 XRP
|
|
|
|
Creating batch transaction:
|
|
{
|
|
"TransactionType": "Batch",
|
|
"Account": "raNwujquxJ7QTLhfbkKN6sZa7RBPHV671e",
|
|
"Flags": 65536,
|
|
"RawTransactions": [
|
|
{
|
|
"RawTransaction": {
|
|
"TransactionType": "Payment",
|
|
"Account": "raNwujquxJ7QTLhfbkKN6sZa7RBPHV671e",
|
|
"Destination": "r4JMmKToZRMVT3mGWPnKHFEHsSMQEWigLC",
|
|
"Amount": "2000000",
|
|
"Flags": 1073741824
|
|
}
|
|
},
|
|
{
|
|
"RawTransaction": {
|
|
"TransactionType": "Payment",
|
|
"Account": "raNwujquxJ7QTLhfbkKN6sZa7RBPHV671e",
|
|
"Destination": "rKfPgHASYuttoF1HfU56V31WbJvZn3w8xn",
|
|
"Amount": "5000000",
|
|
"Flags": 1073741824
|
|
}
|
|
}
|
|
]
|
|
}
|
|
|
|
Submitting batch transaction...
|
|
|
|
Batch transaction submitted successfully!
|
|
Result:
|
|
{
|
|
"close_time_iso": "2025-11-03T14:16:21Z",
|
|
"ctid": "C00D458B00020002",
|
|
"hash": "A93D3C2BDB5D600E592B64B84E66D789237D029267129EBC659EE483E532DD95",
|
|
"ledger_hash": "BE6B7C12E551305F09E942D6FA3FC8546F024AE5C53FC495DA6ABF78461E7019",
|
|
"ledger_index": 869771,
|
|
"meta": {
|
|
"AffectedNodes": [
|
|
{
|
|
"ModifiedNode": {
|
|
"FinalFields": {
|
|
"Account": "raNwujquxJ7QTLhfbkKN6sZa7RBPHV671e",
|
|
"Balance": "99999996",
|
|
"Flags": 0,
|
|
"OwnerCount": 0,
|
|
"Sequence": 869767
|
|
},
|
|
"LedgerEntryType": "AccountRoot",
|
|
"LedgerIndex": "6238B6901FEBD1492C03546C7965A01F184C4E37B696304B86F78F4ADB7831B1",
|
|
"PreviousFields": {
|
|
"Balance": "100000000",
|
|
"Sequence": 869766
|
|
},
|
|
"PreviousTxnID": "559F102041D84FF9DA17483355C3C96A0F8923D9C9C7971BBB15C972DD1F37D6",
|
|
"PreviousTxnLgrSeq": 869766
|
|
}
|
|
}
|
|
],
|
|
"TransactionIndex": 2,
|
|
"TransactionResult": "tesSUCCESS"
|
|
},
|
|
"tx_json": {
|
|
"Account": "raNwujquxJ7QTLhfbkKN6sZa7RBPHV671e",
|
|
"Fee": "4",
|
|
"Flags": 65536,
|
|
"LastLedgerSequence": 869789,
|
|
"RawTransactions": [
|
|
{
|
|
"RawTransaction": {
|
|
"Account": "raNwujquxJ7QTLhfbkKN6sZa7RBPHV671e",
|
|
"Amount": "2000000",
|
|
"Destination": "r4JMmKToZRMVT3mGWPnKHFEHsSMQEWigLC",
|
|
"Fee": "0",
|
|
"Flags": 1073741824,
|
|
"Sequence": 869767,
|
|
"SigningPubKey": "",
|
|
"TransactionType": "Payment"
|
|
}
|
|
},
|
|
{
|
|
"RawTransaction": {
|
|
"Account": "raNwujquxJ7QTLhfbkKN6sZa7RBPHV671e",
|
|
"Amount": "5000000",
|
|
"Destination": "rKfPgHASYuttoF1HfU56V31WbJvZn3w8xn",
|
|
"Fee": "0",
|
|
"Flags": 1073741824,
|
|
"Sequence": 869768,
|
|
"SigningPubKey": "",
|
|
"TransactionType": "Payment"
|
|
}
|
|
}
|
|
],
|
|
"Sequence": 869766,
|
|
"SigningPubKey": "EDFECFB87A29F93E52BBA0BA5A14A59B520BB0E39F33943A2FDC1101D34349270D",
|
|
"TransactionType": "Batch",
|
|
"TxnSignature": "E08E300BDE1700C7CC27F3DA9B784907F637518E1C7E0978E57BFE5D1511A3B6A4269235FC2D9EAA550182A5F2B59415A442CE59555B9B9A0A79AB4030C9F701",
|
|
"ctid": "C00D458B00020002",
|
|
"date": 815494581,
|
|
"ledger_index": 869771
|
|
},
|
|
"validated": true
|
|
}
|
|
|
|
Final balances after batch transaction:
|
|
Sender: raNwujquxJ7QTLhfbkKN6sZa7RBPHV671e, Balance: 92.999996 XRP
|
|
Wallet1: r4JMmKToZRMVT3mGWPnKHFEHsSMQEWigLC, Balance: 102 XRP
|
|
Wallet2: rKfPgHASYuttoF1HfU56V31WbJvZn3w8xn, Balance: 105 XRP
|
|
|
|
Transaction URL:
|
|
https://devnet.xrpl.org/transactions/A93D3C2BDB5D600E592B64B84E66D789237D029267129EBC659EE483E532DD95
|
|
```
|
|
|
|
## Multi-Account Batch Transaction
|
|
|
|
```sh
|
|
npm install xrpl
|
|
node multiAccountBatch.js
|
|
```
|
|
|
|
The script should output the following:
|
|
|
|
```sh
|
|
Funding new wallets from faucet...
|
|
Alice: rfCBfRGpcGJLwdbfz1M6HYoAL8nZyHRHHa, Balance: 100 XRP
|
|
Bob: rKPUDuS2jQNpAMhkNncqC9rKJDpL2gXDN7, Balance: 100 XRP
|
|
Charlie: rnz3Da7phfR6tgTZoPYF5psYTiHTshTB8K, Balance: 100 XRP
|
|
Third-party wallet: rU8LsCmVjSdf7hSmiGBtBDtt2WhHxp7Zpc, Balance: 100 XRP
|
|
|
|
Creating batch transaction:
|
|
{
|
|
"TransactionType": "Batch",
|
|
"Account": "rU8LsCmVjSdf7hSmiGBtBDtt2WhHxp7Zpc",
|
|
"Flags": 65536,
|
|
"RawTransactions": [
|
|
{
|
|
"RawTransaction": {
|
|
"TransactionType": "Payment",
|
|
"Account": "rnz3Da7phfR6tgTZoPYF5psYTiHTshTB8K",
|
|
"Destination": "rfCBfRGpcGJLwdbfz1M6HYoAL8nZyHRHHa",
|
|
"Amount": "50000000",
|
|
"Flags": 1073741824
|
|
}
|
|
},
|
|
{
|
|
"RawTransaction": {
|
|
"TransactionType": "Payment",
|
|
"Account": "rKPUDuS2jQNpAMhkNncqC9rKJDpL2gXDN7",
|
|
"Destination": "rfCBfRGpcGJLwdbfz1M6HYoAL8nZyHRHHa",
|
|
"Amount": "50000000",
|
|
"Flags": 1073741824
|
|
}
|
|
}
|
|
]
|
|
}
|
|
|
|
Submitting batch transaction...
|
|
|
|
Batch transaction submitted successfully!
|
|
Result:
|
|
{
|
|
"close_time_iso": "2025-11-03T14:15:00Z",
|
|
"ctid": "C00D457000000002",
|
|
"hash": "8CBCCD88B8ABC248797B84ABB92066961C1CB5FE75ACE2115ADCA6B74C85993A",
|
|
"ledger_hash": "2217A0DBB38B870187B412533B939724095359A050B21E071A2A114BF57CFB60",
|
|
"ledger_index": 869744,
|
|
"meta": {
|
|
"AffectedNodes": [
|
|
{
|
|
"ModifiedNode": {
|
|
"FinalFields": {
|
|
"Account": "rU8LsCmVjSdf7hSmiGBtBDtt2WhHxp7Zpc",
|
|
"Balance": "99999994",
|
|
"Flags": 0,
|
|
"OwnerCount": 0,
|
|
"Sequence": 869743
|
|
},
|
|
"LedgerEntryType": "AccountRoot",
|
|
"LedgerIndex": "1E9BA043B9C6518582D0FF73A08DCD8B6958195735086CF7295E5EB6433FB453",
|
|
"PreviousFields": {
|
|
"Balance": "100000000",
|
|
"Sequence": 869742
|
|
},
|
|
"PreviousTxnID": "F7019BC55D80438FDDB01C2549CCC3F7DAF9791F8645E0269D63979EAEC5BBA6",
|
|
"PreviousTxnLgrSeq": 869742
|
|
}
|
|
}
|
|
],
|
|
"TransactionIndex": 0,
|
|
"TransactionResult": "tesSUCCESS"
|
|
},
|
|
"tx_json": {
|
|
"Account": "rU8LsCmVjSdf7hSmiGBtBDtt2WhHxp7Zpc",
|
|
"BatchSigners": [
|
|
{
|
|
"BatchSigner": {
|
|
"Account": "rnz3Da7phfR6tgTZoPYF5psYTiHTshTB8K",
|
|
"SigningPubKey": "EDC566D7DA8186BBD30DDAE1FB770FCE7F248949194E1A2E70B18CFA060B140B59",
|
|
"TxnSignature": "31639BFA1359DD24345776EAEEACCF61C1CDC792988679263D113E80A22D837E20ACD2B25E482FCA769990C004D747836370C6BAD14524559639BBEBA5813002"
|
|
}
|
|
},
|
|
{
|
|
"BatchSigner": {
|
|
"Account": "rKPUDuS2jQNpAMhkNncqC9rKJDpL2gXDN7",
|
|
"SigningPubKey": "EDEF1966B325000407940E4C0792E3CCC3E27F51D132BDC53DCC2B1998E7C32A34",
|
|
"TxnSignature": "6BF9860B0E2E134FB302329D711BAA7B6314395D39523982DBBC037E84FB17AB5E8E736DB3DB0019B4477686AF2D91E5D2B49409698A95219376B2E318D3E501"
|
|
}
|
|
}
|
|
],
|
|
"Fee": "6",
|
|
"Flags": 65536,
|
|
"LastLedgerSequence": 869762,
|
|
"RawTransactions": [
|
|
{
|
|
"RawTransaction": {
|
|
"Account": "rnz3Da7phfR6tgTZoPYF5psYTiHTshTB8K",
|
|
"Amount": "50000000",
|
|
"Destination": "rfCBfRGpcGJLwdbfz1M6HYoAL8nZyHRHHa",
|
|
"Fee": "0",
|
|
"Flags": 1073741824,
|
|
"Sequence": 869740,
|
|
"SigningPubKey": "",
|
|
"TransactionType": "Payment"
|
|
}
|
|
},
|
|
{
|
|
"RawTransaction": {
|
|
"Account": "rKPUDuS2jQNpAMhkNncqC9rKJDpL2gXDN7",
|
|
"Amount": "50000000",
|
|
"Destination": "rfCBfRGpcGJLwdbfz1M6HYoAL8nZyHRHHa",
|
|
"Fee": "0",
|
|
"Flags": 1073741824,
|
|
"Sequence": 869738,
|
|
"SigningPubKey": "",
|
|
"TransactionType": "Payment"
|
|
}
|
|
}
|
|
],
|
|
"Sequence": 869742,
|
|
"SigningPubKey": "ED2B56D6FB4E8C236A6B07E8D8AD9A4938606144E31779918F99525CA6B3C56664",
|
|
"TransactionType": "Batch",
|
|
"TxnSignature": "9C51C1F2CB0E8BCEA1FADD3992249DE72AC46FC86AB2FB023A597FBD5C4CCB3337967E9AAFFB5F1C0CBC91128F3FD194F78F207E461BE1FF906C496B94EC410E",
|
|
"ctid": "C00D457000000002",
|
|
"date": 815494500,
|
|
"ledger_index": 869744
|
|
},
|
|
"validated": true
|
|
}
|
|
|
|
Final balances after batch transaction:
|
|
Alice: rfCBfRGpcGJLwdbfz1M6HYoAL8nZyHRHHa, Balance: 200 XRP
|
|
Bob: rKPUDuS2jQNpAMhkNncqC9rKJDpL2gXDN7, Balance: 50 XRP
|
|
Charlie: rnz3Da7phfR6tgTZoPYF5psYTiHTshTB8K, Balance: 50 XRP
|
|
Third-party wallet: rU8LsCmVjSdf7hSmiGBtBDtt2WhHxp7Zpc, Balance: 99.999994 XRP
|
|
|
|
Transaction URL:
|
|
https://devnet.xrpl.org/transactions/8CBCCD88B8ABC248797B84ABB92066961C1CB5FE75ACE2115ADCA6B74C85993A
|
|
```
|