---
title: "Generate arbitrary transaction from array of requests."
method: POST
path: "/wallet/transaction/generate"
tags: ["wallet"]
---

# Generate arbitrary transaction from array of requests.

`POST /wallet/transaction/generate`

## Request body

- RequestsHolder — Holds many transaction requests and transaction fee
  - `requests` union[], required — Sequence of transaction requests
    - union
      - PaymentRequest — Request for generation of payment transaction to a given address
        - `address` string, required — Encoded Ergo Address
        - `value` integer, required — Payment amount
        - `assets` Asset[] — Assets list in the transaction
          - `tokenId` string, base16, required — Base16-encoded 32 byte digest
          - `amount` integer, required — Amount of the token
        - `registers` Registers — Ergo box registers
      - BurnTokensRequest — Request for burning tokens in wallet
        - `assetsToBurn` Asset[], required — Assets list to burn in the transaction
          - `tokenId` string, base16, required — Base16-encoded 32 byte digest
          - `amount` integer, required — Amount of the token
      - AssetIssueRequest — Request for generation of asset issue transaction
        - `address` string — Encoded Ergo Address
        - `ergValue` integer — Optional, amount of ergs to be put into box with issued assets
        - `amount` integer, required — Supply amount
        - `name` string, required — Assets name
        - `description` string, required — Assets description
        - `decimals` integer, required — Number of decimal places
        - `registers` Registers — Ergo box registers
  - `fee` integer — Transaction fee
  - `inputsRaw` string[] — List of inputs to be used in serialized form
  - `dataInputsRaw` string[] — List of data inputs to be used in serialized form

## Response `200`

Generated Ergo transaction

- ErgoTransaction — ErgoTransaction is an atomic operation which changes UTXO state.
  - `id` string, base16 — Base16-encoded transaction id bytes
  - `inputs` ErgoTransactionInput[], required — Inputs, that will be spent by this transaction
    - `boxId` string, base16, required — Base16-encoded transaction box id bytes. Should be 32 bytes long
    - `spendingProof` SpendingProof, required — Spending proof for transaction input
      - `proofBytes` string, base16, required — Base16-encoded spending proofs
      - `extension` object, required — Variables to be put into context
  - `dataInputs` ErgoTransactionDataInput[], required — Read-only inputs, that are not going to be spent by transaction.
    - `boxId` string, base16, required — Base16-encoded transaction box id bytes. Should be 32 bytes long
  - `outputs` ErgoTransactionOutput[], required — Outputs of the transaction, i.e. box candidates to be created by this transaction.
    - `boxId` string, base16 — Base16-encoded transaction box id bytes. Should be 32 bytes long
    - `value` integer, required — Amount of Ergo token
    - `ergoTree` string, base16, required — Base16-encoded ergo tree bytes
    - `creationHeight` integer, required — Height the output was created at
    - `assets` Asset[] — Assets list in the transaction
      - `tokenId` string, base16, required — Base16-encoded 32 byte digest
      - `amount` integer, required — Amount of the token
    - `additionalRegisters` Registers, required — Ergo box registers
    - `transactionId` string, base16 — Base16-encoded transaction id bytes
    - `index` integer — Index in the transaction outputs
  - `size` integer — Size of ErgoTransaction in bytes

## Other responses

- `400` — Bad transaction request
- `default` — Error

---

[API](https://skmtc.net/ergoplatform/apis/ergo-node-api.md) · [All operations](https://skmtc.net/ergoplatform/apis/ergo-node-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/ergoplatform/ergo-node-api/revisions/ef97e678f020/schema)
