---
title: "Submit input proof verification."
method: POST
path: "/v2/input-proof"
tags: ["Input Proof"]
---

# Submit input proof verification.

`POST /v2/input-proof`

## Request body

- InputProofRequestJson
  - `ciphertextWithInputVerification` string, required — ABI-encoded ciphertext with its ZKPoK input verification data. Raw hex, no `0x` prefix.
  - `contractAddress` string, required
  - `contractChainId` union, required — Chain Id It does support an ID as an integer or a 0x prefixed hex string
    - string
    - integer
  - `extraData` string, required — Extra data forwarded to the gateway contract. Always `"0x00"` in the current protocol version.
  - `userAddress` string, required

## Response `202`

Request accepted for processing.

- InputProofPostResponseJson
  - `requestId` string, required
  - `result` InputProofQueuedResult, 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`
- `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)
