---
title: "Create an Unsigned Transaction"
method: POST
path: "/{blockchain_id}/create"
---

# Create an Unsigned Transaction

`POST /{blockchain_id}/create`

Creates an unsigned transaction for the specified blockchain. The output is raw transaction data ready for signing.

## Request body

- union
  - ApiTxCreateRequestEVM
    - `from` string, required — The account ID for the originating funds.
    - `to` string — The recipient of the transaction. Required unless call is contract deployment.
    - `value` union, required — A value can either be a decimal string or the lowest unit of the currency as an integer
      - integer — Value as an integer in the lowest unit of the currency (for example Wei or Satoshi)
      - string — Value as a string in human readable format. This is in the highest unit of the currecy (for example Eth or BTC)
    - `gas` integer — Gas of transaction. If omitted, the gas will be estimated using eth_estimateGas.
    - `maxPriorityFeePerGas` integer — The max priority fee per gas. Also referred to as the miner tip. When omitted an estimate will be used.
    - `maxFeePerGas` integer — The max fee per gas, this includes the base fee and max priority fee per gas. When omitted an estimate will be used.
    - `nonce` integer — The account Nonce.
    - `data` string — A hex string specifying the input data of the message call
  - ApiTxCreateRequestStellar
    - `from` string, required — The account ID for the originating funds.
    - `to` string, required — The recipient of the transaction.
    - `value` union, required — A value can either be a decimal string or the lowest unit of the currency as an integer
      - integer — Value as an integer in the lowest unit of the currency (for example Wei or Satoshi)
      - string — Value as a string in human readable format. This is in the highest unit of the currecy (for example Eth or BTC)
    - `fee` union — A value can either be a decimal string or the lowest unit of the currency as an integer
      - integer — Value as an integer in the lowest unit of the currency (for example Wei or Satoshi)
      - string — Value as a string in human readable format. This is in the highest unit of the currecy (for example Eth or BTC)
    - `expiration_seconds` integer — Time the transaction will expire in seconds. Default is 30 minutes.
  - ApiTxCreateRequestSubstrate
    - `from` string, required — The account ID for the originating funds.
    - `to` string, required — The recipient of the transaction.
    - `value` union, required — A value can either be a decimal string or the lowest unit of the currency as an integer
      - integer — Value as an integer in the lowest unit of the currency (for example Wei or Satoshi)
      - string — Value as a string in human readable format. This is in the highest unit of the currecy (for example Eth or BTC)
    - `tip` integer — The extrinsic tip in planck (optional)
    - `nonce` integer — The account index (nonce). Will be retrieved from chain when omitted.
    - `mortal_period` integer
  - ApiTxCreateRequestBTC
    - `from` ApiTxSourceBTC[], required — The source UTXOs.
      - `tx_id` string, required — UTXO's transaction ID
      - `index` integer, required — UTXO's index in source transaction
    - `to` ApiTxDestinationCreateBTC[], required — The recipient of the transaction.
      - `destination` string, required — The destination address.
      - `value` union, required — A value can either be a decimal string or the lowest unit of the currency as an integer
        - integer — Value as an integer in the lowest unit of the currency (for example Wei or Satoshi)
        - string — Value as a string in human readable format. This is in the highest unit of the currecy (for example Eth or BTC)
  - ApiTxCreateRequestTron
    - `from` string, required — The account ID for the originating funds.
    - `to` string — The recipient of the transaction.
    - `value` union, required — A value can either be a decimal string or the lowest unit of the currency as an integer
      - integer — Value as an integer in the lowest unit of the currency (for example Wei or Satoshi)
      - string — Value as a string in human readable format. This is in the highest unit of the currecy (for example Eth or BTC)
    - `contract` ApiTxCreateRequestTronContract
      - `address` string
      - `parameter` string
      - `function_selector` string
      - `data` string
      - `fee_limit` union — A value can either be a decimal string or the lowest unit of the currency as an integer
        - integer — Value as an integer in the lowest unit of the currency (for example Wei or Satoshi)
        - string — Value as a string in human readable format. This is in the highest unit of the currecy (for example Eth or BTC)
    - `expiration_seconds` integer — Time in seconds the transaction will expire after creation. (Default 30 minutes)
  - ApiTxCreateRequestSolana
    - `from` string, required — The account ID for the originating funds.
    - `to` string, required — The recipient of the transaction.
    - `value` union, required — A value can either be a decimal string or the lowest unit of the currency as an integer
      - integer — Value as an integer in the lowest unit of the currency (for example Wei or Satoshi)
      - string — Value as a string in human readable format. This is in the highest unit of the currecy (for example Eth or BTC)
    - `nonce_account` string — The nonce account used for the transfer.
    - `fee` integer — The prioritization fee.
  - ApiTxCreateRequestNear
    - `from` object, required
      - `account_id` string, required — The Near account ID.
      - `public_key` string, required — The Near public key.
    - `to` string, required — The Near recipient account ID.
    - `value` union, required — A value can either be a decimal string or the lowest unit of the currency as an integer
      - integer — Value as an integer in the lowest unit of the currency (for example Wei or Satoshi)
      - string — Value as a string in human readable format. This is in the highest unit of the currecy (for example Eth or BTC)
  - ApiTxCreateRequestCosmos
    - `from` string, required — The account ID for the originating funds.
    - `to` string, required — The recipient of the transaction.
    - `value` union, required — A value can either be a decimal string or the lowest unit of the currency as an integer
      - integer — Value as an integer in the lowest unit of the currency (for example Wei or Satoshi)
      - string — Value as a string in human readable format. This is in the highest unit of the currecy (for example Eth or BTC)
    - `gas_limit` integer — The maximum amount of gas the user is willing to use for the transaction.
    - `fee_amount` integer — The maximum amount in uatom the user is willing to pay in fees.
    - `gas_price` number — The gas price in uatom the user is willing to pay per unit of gas. This will be used with the gas_used estimate returned from simulating the transaction.
    - `gas_adjustment` number — The multiplier used for gas estimates as they are not consistently accurate.
    - `sign_mode` integer — The sign mode to be used for the transaction. This will be used in the simulated transaction to estimate gas.

## Response `200`

An unsigned transaction

- union
  - ApiTxCreateResponseEVM
    - `id` string — The transaction ID.
    - `unsigned_tx` string, required — The unsigned transaction.
  - ApiTxCreateResponseStellar
    - `id` string, required — The transaction ID.
    - `unsigned_tx` string, required — The base64 encoded tx
  - ApiTxCreateResponseSubstrate
    - `unsigned_tx` string, required — The unsigned transaction.
    - `signing_payload` string, required — The signing payload (hex encoded)
  - ApiTxCreateResponseBTC
    - `unsigned_tx` string, required — The transaction data needed to sign.
  - ApiTxCreateResponseTron
    - `id` string, required — The transaction ID.
    - `unsigned_tx` string, required — The hex encoded protobuf unsigned transaction.
  - ApiTxCreateResponseSolana
    - `unsigned_tx` string, required — The base64 encoded unsigned transaction.
    - `fee` union — A value can either be a decimal string or the lowest unit of the currency as an integer
      - integer — Value as an integer in the lowest unit of the currency (for example Wei or Satoshi)
      - string — Value as a string in human readable format. This is in the highest unit of the currecy (for example Eth or BTC)
    - `recent_block_hash` string — The recent block hash used in the transaction.
  - ApiTxCreateResponseNear
    - `id` string, required — The transaction ID base58 encoded
    - `unsigned_tx` string, required — The unsigned transaction base64 encoded
  - ApiTxCreateResponseCosmos
    - `unsigned_tx` string, required — The base64 encoded unsigned transaction.
    - `gas_wanted` integer — The gas limit estimate returned when simulating the transaction.
    - `gas_used` integer — The gas estimate returned when simulating the transaction.
    - `account_sequence` integer — The account sequence number.
    - `account_number` integer — The account number.

## Other responses

- `400` — Bad request
- `401` — Invalid or expired token
- `429` — Rate limit exceeded
- `500` — An internal server error happened
- `501` — The request endpoint is not implemented
- `503` — The resource you are trying to access is currently unavailable

---

[API](https://skmtc.net/blockdaemon/apis/staking-api.md) · [All operations](https://skmtc.net/blockdaemon/apis/staking-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/blockdaemon/staking-api/versions/f94e296a08a3/schema)
