private/transfer_spot_debug
Takes the same params as private/transfer_spot and rebuilds the transfer Action without executing anything, returning the EIP-712 encoded_data, encoded_data_hashed, action_hash, typed_data_hash, domain_separator, action_typehash, module, owner and expected_signer, plus the decoded transfer action data. Byte-compare these against your local computation to find why a signature is rejected. Requires a logged-in session; no transfer scope needed.
Body
Transfer amount in units of the asset, as a decimal string (e.g. "1.5") or JSON number.
Maximum sequencer fee the signer authorises, in USD, as a decimal string (e.g. "1.5") or a JSON number.
Non-zero → create a new sender-owned subaccount under this manager id.
x >= 0x >= 0x >= 0x >= 0Existing destination subaccount. Ignored when new_subaccount_manager != 0.
x >= 0Response
Success
Debug-route payload for one rebuilt action: the EIP-712 hashes plus the action input fields.
EIP-712 struct hash of the Action: keccak256(abi.encode(action_typehash, …, encoded_data_hashed, …)).
ACTION_TYPEHASH — keccak of the Action struct type string; invariant across deployments.
EIP-712 domain separator of the Matching contract for this deployment.
ABI-encoded, module-specific action payload (the data bytes), 0x-hex.
keccak256(encoded_data) — the value packed into the struct hash.
The signer the signature is checked against.
The rebuilt Action envelope and its decoded module-specific data.
Per-action module contract address bound into the signed struct.
Wallet that owns the subaccount the action applies to.
Final EIP-712 digest the client signs: keccak256(0x1901 || domain_separator || action_hash).
null on the debug routes (no signature is checked there); on a signature-mismatch error this is the address actually recovered.
