XChain Platform Action - BATCH
This action batch executes multiple ACTION commands in a single transaction.
PARAMS
| Name | Type | Description |
|---|---|---|
VERSION |
String | Format Version |
COMMAND |
String | Any valid ACTION with PARAMS |
Formats
Version 0
VERSION|COMMAND;COMMAND
Examples
BATCH|0|MINT|0|XCHAIN|100;ISSUE|0|JDOG
This example mints 100 XCHAIN tokens and issues the JDOG token
Rules
- Can only use one
MINTaction in aBATCHaction - Can only use one
ISSUEaction in aBATCHaction - Can not use
BATCHas a action in aBATCHaction
Notes
COMMANDSare separated by a semi-colon;- Sub-action normalization (flag-day gated): until the
BATCH_SUBACTION_NORMALIZATIONactivation (mainnet: the coordinated contract-era flag day; testnet/regtest active from genesis), sub-actions inside aBATCHare NOT normalized the way top-level actions are.ACTIONaliases (TRANSFER,ADDR,DROP,CAST,MSG) invalidate the wholeBATCH(invalid: ACTION (unknown)), and legacyISSUE/MINT/SENDparams that omit theVERSIONfield are misparsed (the first param is read as the format version). Until activation, always use canonicalACTIONnames and an explicitVERSIONin everyBATCHcommand on mainnet. At/after activation, sub-actions get the same alias rewrite and legacy VERSION-0 injection as top-level actions. - A
BATCHmay contain at most oneFILEaction. The decoder stores oneraw_datapayload per transaction, so a secondFILEin the sameBATCHwould fail at theFILEhandler rather than theBATCHvalidator. This is an architectural limit of the wire format, not an explicitactionLimitsrule inbatch.js. - A
FILEmay be batched with other actions, most commonly aMESSAGEv2 (ECIES) carrying the file’s symmetric key, so that publishing a token-gated file and committing the key happen atomically in one transaction. BATCH(SEND, MESSAGE)is the canonical composition for transferring a token that has active gated content, theMESSAGEis required and re-encrypts the content keys to the recipient.
Copyright © 2025–2026 Dankest, LLC
Based on XChain Platform by Dankest, LLC – https://dankest.llc
Licensed under the GNU Affero General Public License v3.0 (AGPL-3.0-or-later) with a commercial license available for proprietary use.
You may use, modify, and distribute this material under the terms of the License. See LICENSE and NOTICE for full terms. See the licensing overview.