# TON Raw Transactions

Use the raw transaction format to create arbitrary TON transactions.
For simple transfers, consider using the dedicated higher-level format (see [TON Transfers](/developers/transaction-types/ton-transfers)).

To invoke a call to a smart contract using the Fordefi platform, pass the `transaction_payload` with the relevant information, as described here:

- `valid_until`: The transaction’s expiration time
- `network`: The transaction’s network. Currently only -239 is supported (TON mainnet).
- `messages`: The transaction’s messages. Each message should have the following fields:
  - `address`: The receiver of the message
  - `payload`: The payload of the message
  - `state_init`: The `state_init` structure contains all the necessary information required to create the initial state of a smart contract.


Here’s an example:


```jsx
{
  "vault_id": "432b199b-1f71-42bf-ba0b-33d512afa9de",
  "note": "string",
  "signer_type": "initiator",
  "sign_mode": "auto",
  "type": "ton_transaction",
  "details": {
    "type": "raw_transaction",
    "fail_on_prediction_failure": true,
    "push_mode": "auto",
    "transaction_payload": {
      "valid_until": "value",
      "network": "1000000000000000000",
      "messages": [
	      {
		     "address": "UQAouB_61QHD91MifxjhbQmBNwulJ9_AA0cUEydZIAcfq52c",
		     "amount": "1000000000000000000",
		     "payload": "te6cckEBAgEAhwABbQ+KfqUAAAC7KyChSkC+vCAIAO87mQKicbKgHIk4pSPP4k5xhHqutq…",
		     state_init: "",
	      },
      ]
    },
    "chain": "ton_mainnet",
    "skip_prediction": false
  }
}
```