---
title: "Preview Transaction"
method: POST
path: "/transaction/preview"
tags: ["Transaction"]
---

# Preview Transaction

`POST /transaction/preview`

Preview a transaction against the latest network state, and returns the preview receipt.
If the node has enabled it, you may be able to also preview against recent network state.

For V2 transactions (and beyond) the `/preview-v2` endpoint should be used instead.

This endpoint is effectively a proxy towards the Core API `/transaction/preview` endpoint. See the Core API documentation for more details.

## Request body

- TransactionPreviewRequest
  - `opt_ins` TransactionPreviewOptIns — A set of flags to configure the response of the transaction preview.
    - `radix_engine_toolkit_receipt` boolean — This flag controls whether the preview response will include a Radix Engine Toolkit serializable receipt or not. If not provided, this defaults to `false` and no toolkit receipt is provided in the response.
  - `manifest` string, required — A text-representation of a transaction manifest
  - `blobs_hex` string[] — An array of hex-encoded blob data, if referenced by the manifest.
  - `start_epoch_inclusive` integer — An integer between `0` and `10^10`, marking the epoch at which the transaction startsbeing valid. If omitted, the current epoch will be used.
  - `end_epoch_exclusive` integer — An integer between `0` and `10^10`, marking the epoch at which the transaction is no longer valid. If omitted, a maximum epoch (relative to the `start_epoch_inclusive`) will be used.
  - `notary_public_key` PublicKey
    - `key_type` 'EcdsaSecp256k1' | 'EddsaEd25519', required
  - `notary_is_signatory` boolean — Whether the notary should be used as a signer (optional). If not provided, this defaults to false.
  - `tip_percentage` integer — An integer between `0` and `65535`, giving the validator tip as a percentage amount. A value of `1` corresponds to a 1% fee. If not provided, this defaults to 0.
  - `nonce` integer — An integer between `0` and `2^32 - 1`, chosen to allow a unique intent to be created (to enable submitting an otherwise identical/duplicate intent). If not provided, this defaults to 0.
  - `signer_public_keys` PublicKey[] — A list of public keys to be used as transaction signers. If not provided, this defaults to an empty array.
    - `key_type` 'EcdsaSecp256k1' | 'EddsaEd25519', required
  - `message` object — An optional transaction message. Only affects the costing. This type is defined in the Core API as `TransactionMessage`. See the Core API documentation for more details.
  - `flags` PreviewFlags
    - `use_free_credit` boolean — If enabled, a large simulated pool of XRD is marked as locked. This mode can be used to estimate fees. To get a reliable estimate, we recommend that your transaction is as close as possible to the real transaction. For example: - You should still use a lock fee command, but you can set it to lock a fee of 0. - You should include the public keys that will sign the transaction, so the cost of signature verification and payload size can be accounted for.
    - `assume_all_signature_proofs` boolean — If enabled, each manifest processor's auth zone will be given a simulated proof of every signature, which can be used to pass signature access rules. This can be used to preview transactions even if the required signatures are not known ahead of time. See the documentation on [advanced access rules](https://docs.radixdlt.com/docs/advanced-accessrules#signature-requirements) for more information.
    - `skip_epoch_check` boolean — If enabled, the various runtime epoch-related verifications are skipped: - The `start_epoch_inclusive` and `end_epoch_exclusive` parameters, if specified, are ignored. - The duplicate intent checks (which rely on the expiry epoch) are also ignored. However, if the start and end epoch are provided, they must still be statically valid. We recommend using a value of `start_epoch_inclusive = 1` and `end_epoch_exclusive = 2` in this case.
    - `disable_auth_checks` boolean — If enabled, all authorization checks are skipped during execution. This could be used to e.g.: * Preview protocol update style transactions. * Mint resources for previewing trades with resources you don't own. If doing this, be warned: only resources which were potentially mintable/burnable at creation time will be mintable/burnable, due to feature flags on the resource. Warning: this mode of operation is quite a departure from normal operation: * Calculated fees will likely be lower than a standard execution. * This mode can subtly break invariants some dApp code might rely on, or result in unexpected behaviour, so the execution result might not be valid for your needs. For example, if this flag was used to mint pool units to preview a redemption (or some dApp interaction which behind the scenes redeemed them), they'd redeem for less than they're currently worth, because the blueprint code relies on the total supply of the pool units to calculate their redemption worth, and you've just inflated the total supply through the mint operation.

## Response `200`

Successful Preview

- TransactionPreviewResponse
  - `encoded_receipt` string, required — Hex-encoded binary blob.
  - `radix_engine_toolkit_receipt` object — An optional field which is only provided if the `radix_engine_toolkit_receipt` flag is set to true when requesting a transaction preview from the API. This receipt is primarily intended for use with the toolkit and may contain information that is already available in the receipt provided in the `receipt` field of this response. A typical client of this API is not expected to use this receipt. The primary clients this receipt is intended for is the Radix wallet or any client that needs to perform execution summaries on their transactions.
  - `receipt` object, required — This type is defined in the Core API as `TransactionReceipt`. See the Core API documentation for more details.
  - `resource_changes` object[], required
  - `logs` object[], required
    - `level` string, required
    - `message` string, required

## Other responses

- `4XX` — Client-originated request error

---

[API](https://skmtc.net/radixdlt/apis/radix-gateway-api-babylon.md) · [All operations](https://skmtc.net/radixdlt/apis/radix-gateway-api-babylon/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/radixdlt/radix-gateway-api-babylon/versions/153aecf74342/schema)
