---
title: "Parse High-Level Construction Operations"
method: POST
path: "/construction/preprocess-operations"
tags: ["Construction"]
---

# Parse High-Level Construction Operations

`POST /construction/preprocess-operations`

PreprocessOperations is called to parse and validate high-level
transaction construction operations into Rosetta operations. This
endpoint allows the Rosetta implementation to handle operation
parsing that might not be supported by local client-side parsers.

This endpoint is OPTIONAL and implementations can return HTTP 501
(Not Implemented) if they don't support this functionality.

The input format matches TransactionConstructOpInput used by chainstdio,
and the output format matches the return values of ParseTransactionConstructOp
to maintain compatibility with existing operation parsing workflows.

## Request body

- ConstructionPreprocessOperationsRequest — ConstructionPreprocessOperationsRequest is passed to the `/construction/preprocess-operations` endpoint so that a Rosetta implementation can parse high-level transaction construction operations into Rosetta operations. This endpoint allows the Rosetta API to handle operation parsing that might not be supported by the local OperationSelector.
  - `network_identifier` NetworkIdentifier, required — unresolved $ref
  - `from_address` string — The address that will be the source of the transaction. This is optional and may not be required for all construct operations.
  - `construct_op` string, required — The high-level operation type to be parsed (e.g. "transfer", "stake", "delegate").
  - `options` object — Operation-specific parameters as a JSON object. The format of this object is specific to the construct_op type and the blockchain implementation.

## Response `200`

Expected response to a valid request

- ConstructionPreprocessOperationsResponse — ConstructionPreprocessOperationsResponse contains the parsed operations and related information returned by the Rosetta implementation after processing the high-level transaction construction request. This response mirrors the return values of ParseTransactionConstructOp method to maintain compatibility.
  - `operations` Operation[], required — The parsed operations that result from processing the construct_op. — unresolved $ref
  - `max_fee` Amount — unresolved $ref
  - `metadata` string, byte — Metadata as raw JSON bytes, matching ParseTransactionConstructOp return format for compatibility with existing workflows.

## Other responses

- `500` — unexpected error
- `501` — Not Implemented - This endpoint is optional

## Changes

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

- **2020-08-07** `97f3c6540212` — 1 breaking
  - api path removed without deprecation

[Change history](https://skmtc.dev/coinbase/apis/rosetta/changes/construction/preprocess-operations/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)
