# Executes
## Overview
All executes go through the following endpoint; the exact details of the execution are specified by the JSON payload.
* **Websocket**: `WEBSOCKET [GATEWAY_WEBSOCKET_ENDPOINT]`
* **REST**: `POST [GATEWAY_REST_ENDPOINT]/execute`
### **Signing**
All executes are signed using [EIP712](https://eips.ethereum.org/EIPS/eip-712). Each execute request contains:
1. A piece of structured data that includes the sender address
2. A signature of the hash of that structured data, signed by the sender
You can check the SDK for some examples of how to generate these signatures.
{% hint style="info" %}
See more info in the [signing](https://docs.nado.xyz/developer-resources/api/gateway/signing) page.
{% endhint %}
### **Sender Field Structure**
The sender field is a solidity `bytes32` . There are two components:
* an `address` that is a `bytes20`
* a subaccount identifier that is a `bytes12`
For example, if your address was `0x7a5ec2748e9065794491a8d29dcf3f9edb8d7c43`, and you wanted to use the default subaccount identifier (i.e: the word `default`) you can set `sender` to `0x7a5ec2748e9065794491a8d29dcf3f9edb8d7c4364656661756c740000000000` , which sets the subaccount identifier to `64656661756c740000000000`.
### **Amounts**
For `DepositCollateral` and `WithdrawCollateral`, the amount specifies the physical token amount that you want to receive. `i.e.` if USDT0 has 6 decimals, and you want to deposit or withdraw 1 USDT0, you specify `amount = 1e6`.
For all other transactions, amount is normalized to 18 decimals, so `1e18` == one unit of the underlying asset. For example, if you want to buy 1 wETH, regardless of the amount of decimals the wETH contract has on chain, you specify `1e18` in the amount field of the order.
## API Response
All `Execute` messages return the following information:
#### Success
```json
{
"status": "success",
"signature": "{signature}",
"data"?: {data_obj},
"request_type": "{request_type}"
}
```
#### Failure
```json
{
"status": "failure",
"signature": "{signature}",
"error": "{error_msg}",
"error_code": {error_code},
"request_type": "{request_type}"
}
```