# Chain Specific Fields

## ChainSpecificFields

### **Ethereum**

When executing **Ethereum** transaction you can specify `gasLimit` or `gasPrice` by using chain specific fields

| Field name | Field value                                            | Type      | Example  |
| ---------- | ------------------------------------------------------ | --------- | -------- |
| `gasLimit` | Gas limit, will be used for the contract call          | `Integer` | 300000   |
| `gasPrice` | Gas price, will be used for the contract call (in WEI) | `Integer` | 50000000 |

### **Polygon (MATIC)**

When executing **Matic** transaction you can specify `gasLimit` or `gasPrice` by using chain specific fields

| Field name | Field value                                            | Type      | Example  |
| ---------- | ------------------------------------------------------ | --------- | -------- |
| `gasLimit` | Gas limit, will be used for the contract call          | `Integer` | 300000   |
| `gasPrice` | Gas price, will be used for the contract call (in WEI) | `Integer` | 50000000 |

### **Vechain**

When executing **Vechain** transaction you can specify `gasLimit` or `gasPriceCoef` by using chain specific fields

| Field name     | Field value                                               | Type      | Example |
| -------------- | --------------------------------------------------------- | --------- | ------- |
| `gasLimit`     | Gas limit, will be used for the contract call             | `Integer` | 300000  |
| `gasPriceCoef` | Gas price coefficient, will be used for the contract call | `Integer` | 1       |

### **Neo**

When executing **Vechain** transaction you can specify `networkFee, systemFee or outputs`by using chain specific fields

| Field name   | Field value                                                                                                                                                                                                                                                                                                  | Type     | Example                                                       |
| ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------- | ------------------------------------------------------------- |
| `networkFee` | Network fee used for the contract call. By default, 0.1 is used                                                                                                                                                                                                                                              | `Number` | 0.1                                                           |
| `systemFee`  | System fee used for the contract call                                                                                                                                                                                                                                                                        | `Number` | 0.1                                                           |
| `outputs`    | It is possible to add additional asset transfers together with a contract call by attaching additional outputs. This is a JSON object containing "to", "amount" and "assetId" with json types respectively string, number and string. If "to" is a script hash, it will be translated to a valid NEO address | `JSON`   | { "to": "AKJrLM5Q…​", "amount": 1, "assetId": "602c79718…​" } |

### **Binance Smart Chain (BSC)**

When executing **BSC** transaction you can specify `gasLimit` or `gasPrice` by using chain specific fields

| Field name | Field value                                            | Type      | Example  |
| ---------- | ------------------------------------------------------ | --------- | -------- |
| `gasLimit` | Gas limit, will be used for the contract call          | `Integer` | 300000   |
| `gasPrice` | Gas price, will be used for the contract call (in WEI) | `Integer` | 50000000 |

### **Hedera**

When executing Hedera transaction you can specify a memo by using a chain specific field

| Field name        | Field value                                | Type     | Example         |
| ----------------- | ------------------------------------------ | -------- | --------------- |
| `transactionMemo` | A memo that can be used with a transaction | `String` | `"0.0.2810009"` |

### Examples

#### Request Endpoint: [reference](https://docs.venly.io/reference/executetransaction_1)

HTTP

```http
POST /api/transactions/execute
```

| Parameter        | Param Type | Value      | Description                                                                                                                 |
| ---------------- | ---------- | ---------- | --------------------------------------------------------------------------------------------------------------------------- |
| `Signing-Method` | Header     | `id:value` | <p><code>id</code>: This is the ID of the signing method<br><code>value</code>: This is the value of the signing method</p> |

#### Request body

```
{
	"transactionRequest": {

		"type": "CONTRACT_EXECUTION",
		"walletId": "adc4c08a-b8fa-4e4c-z5a2-92c87b80f174",
		"to": "0xdc71b72db51e227e65a45004ab2798d31e8934c9",
		"alias": null,
		"secretType": "ETHEREUM",
		"functionName": "transfer",
		"value": 0,
		"inputs": [{
			"type": "address",
			"value": "0x80cbb6c4342948e5be81987dce8251dbedd69138"
		}, {
			"type": "uint256",
			"value": 73680000
		}],
		"chainSpecificFields": {
			"gasLimit": "300000"
		}
	}
}
```

> ### 📘
>
> The request structure of`chainSpecificFields`is similar for other chains and use-cases as well.
