# Execute Custom Transaction

## Overview

{% hint style="success" %}

### Endpoint

* **Method:** POST
* **URL:** `/wallet/{address}/{chain}/transaction`
  {% endhint %}

### Parameters

* **`address`**: (Path Parameter): Sender's wallet address (string).
* **`chain`**: (Path Parameter): Blockchain (string). Available values: `polygon`.

### Request Body

* **Media Type:** application/json
* **Example Value:**

```json
{
        "type": "CONTRACT_EXECUTION",
        "to": "0xdc71b72db51e227e65a45004ab2798d31e8934c9",
        "functionName": "transfer",
        "value": 0,
        "inputs": [{
            "type": "address",
            "value": "0x80cbb6c4342948e5be81987dce8251dbedd69138"
        }, {
            "type": "uint256",
            "value": 73680000
        }],
}
```

### Responses

#### Success (Code 200)

```json
{
  "transactionHash": "0xe2e830fcc13af572c0cbe970e69c2ebd...b9984099a072709f1ee62305b"
}
```

* **Media Type**: application/json
* **Example Value**: An object containing the transaction hash for the successful custom transaction.
* **Media Type**: application/json
* **Example Value**: An error response indicating an internal server error.

### Usage

1. **Send a POST request** to the `/api/wallet/{address}/{chain}/transaction` endpoint to initiate a custom transaction.
2. **Include the required parameters and request body** in the request.
3. **Handle the response accordingly** based on success, unauthorized access, forbidden access, not found, method not allowed, or internal server error.

**Note:** Ensure the sender's wallet address and blockchain chain are valid. Verify the user's authentication status and permissions before initiating the custom transaction.
