---
title: "Generate an Unsigned Transaction and Signing Payloads"
method: POST
path: "/construction/payloads"
tags: ["Construction"]
---

# Generate an Unsigned Transaction and Signing Payloads

`POST /construction/payloads`

Payloads is called with an array of operations
and the response from `/construction/metadata`. It returns an
unsigned transaction blob and a collection of payloads that must
be signed by particular AccountIdentifiers using a certain SignatureType.

The array of operations provided in transaction construction often times
can not specify all "effects" of a transaction (consider invoked transactions
in Ethereum). However, they can deterministically specify the "intent"
of the transaction, which is sufficient for construction. For this reason,
parsing the corresponding transaction in the Data API (when it lands on chain)
will contain a superset of whatever operations were provided during construction.

## Request body

- ConstructionPayloadsRequest — ConstructionPayloadsRequest is the request to `/construction/payloads`. It contains the network, a slice of operations, and arbitrary metadata that was returned by the call to `/construction/metadata`. Optionally, the request can also include an array of PublicKeys associated with the AccountIdentifiers returned in ConstructionPreprocessResponse.
  - `network_identifier` NetworkIdentifier, required — unresolved $ref
  - `operations` Operation[], required — unresolved $ref
  - `metadata` object
  - `public_keys` PublicKey[] — unresolved $ref

## Response `200`

Expected response to a valid request

- ConstructionPayloadsResponse — ConstructionTransactionResponse is returned by `/construction/payloads`. It contains an unsigned transaction blob (that is usually needed to construct the a network transaction from a collection of signatures) and an array of payloads that must be signed by the caller.
  - `unsigned_transaction` string, required
  - `payloads` SigningPayload[], required — unresolved $ref

## Other responses

- `500` — unexpected error

## Changes

> 50 revisions in range; 1 could not be searched.

- **2020-08-31** `7d9d8566ba65` — 1 info
  - added the new optional request property `public_keys`
- **2020-08-07** `97f3c6540212` — 1 warning
  - removed the request property `public_keys`

[Change history](https://skmtc.dev/coinbase/apis/rosetta/changes/construction/payloads/post.md)

---

[API](https://skmtc.dev/coinbase/apis/rosetta.md) · [All operations](https://skmtc.dev/coinbase/apis/rosetta/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/coinbase/rosetta/revisions/758497aacc08/schema)
