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

BRC-103 serialiser for internalize_action (call byte 5).

Wire layout (port of go-sdk/wallet/serializer/internalize_action.go):
    [varint + bytes] tx (BEEF) — length-prefixed raw bytes
    [varint]         outputs count
    For each output:
      [varint]       output_index
      [1 byte]       protocol: 0x01=wallet_payment, 0x02=basket_insertion
      If wallet_payment:
        [33 bytes]   sender_identity_key (compressed pubkey)
        [int_bytes]  derivation_prefix
        [int_bytes]  derivation_suffix
      If basket_insertion:
        [string]     basket
        [optional_string] custom_instructions
        [string_slice] tags
    [string_slice]   labels
    [string]         description
    [optional_bool] seek_permission

Result wire layout: empty (success is implicit from the frame error byte).

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

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

### `PUBKEY_SIZE` <a id="constant-PUBKEY_SIZE"></a> <a id="PUBKEY_SIZE-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
- **@return** [Hash]

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