# Module BSV::Wallet::Serializer::CreateActionArgs <a id="module-BSV-Wallet-Serializer-CreateActionArgs"></a>

BRC-103 serialiser for create_action args (call byte 1).

Wire layout (port of go-sdk/wallet/serializer/create_action_args.go):
    [string]          description
    [optional_bytes]  input_beef (NegativeOne = nil)
    [inputs]          NegativeOne | varint_count + input_record…
    [outputs]         NegativeOne | varint_count + output_record…
    [optional_uint32] lock_time
    [optional_uint32] version
    [string_slice]    labels
    [options_block]   0x00 = absent | 0x01 + fields

Input record:
    [32 bytes] outpoint txid (wire order)
    [varint]   outpoint vout
    [int_bytes or NegativeOne + varint] unlocking_script or length placeholder
    [string]   input_description
    [optional_uint32] sequence_number

Output record:
    [int_bytes] locking_script
    [varint]    satoshis
    [string]    output_description
    [optional_string] basket
    [optional_string] custom_instructions
    [string_slice] tags

Options block (after 0x01 presence byte):
    [optional_bool] sign_and_process
    [optional_bool] accept_delayed_broadcast
    [0x01 or 0xFF]     trust_self (1=known, 0xFF=absent)
    [txid_slice]       known_txids
    [optional_bool] return_txid_only
    [optional_bool] no_send
    [optional_bytes]   no_send_change (encoded outpoints, NegativeOne = nil)
    [txid_slice]       send_with
    [optional_bool] randomize_outputs

## Constants
### `TRUST_SELF_KNOWN` <a id="constant-TRUST_SELF_KNOWN"></a> <a id="TRUST_SELF_KNOWN-constant"></a>
Not documented.

## Public Class Methods
### `deserialize(bytes)` <a id="method-c-deserialize"></a> <a id="deserialize-class_method"></a>
- **@param** `bytes` [String] binary
- **@raise** [ArgumentError]
- **@return** [Hash]

### `serialize(args)` <a id="method-c-serialize"></a> <a id="serialize-class_method"></a>
- **@param** `args` [Hash]
- **@return** [String] binary
