---
title: "Submit public decryption."
method: POST
path: "/v2/public-decrypt"
tags: ["Public Decrypt"]
---

# Submit public decryption.

`POST /v2/public-decrypt`

## Request body

- PublicDecryptRequestJson
  - `ciphertextHandles` string[], required — Ciphertext handles to decrypt. Each is `0x` + 64 hex chars, obtained from an on-chain FHE operation.
  - `extraData` string, required — Extra data forwarded verbatim to the gateway contract. Accepts `"0x00"`, version `0x01` (`0x01` + 32-byte contextId), or version `0x02` (`0x02` + 32-byte contextId + 32-byte epochId). contextId must be 0x07-tagged and epochId must be 0x08-tagged (first byte of each).

## Response `202`

Request accepted for processing.

- PublicDecryptPostResponseJson
  - `requestId` string, required
  - `result` PublicDecryptQueuedResult, required
    - `jobId` string, required
  - `status` string, required

## Other responses

- `400` — Invalid request. Error label is one of: `malformed_json`, `missing_fields`, `validation_failed`, `request_error`, `host_chain_id_not_supported`
- `429` — Rate limited. Error label: `rate_limited`
- `500` — Internal server error. Error label: `internal_server_error`

---

[API](https://skmtc.dev/zama-ai/apis/relayer-api.md) · [All operations](https://skmtc.dev/zama-ai/apis/relayer-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/zama-ai/relayer-api/revisions/23ec7991ea5e/schema)
