> ## Documentation Index
> Fetch the complete documentation index at: https://docs.trusset.org/llms.txt
> Use this file to discover all available pages before exploring further.

# Verify Signed Price

> Check an EIP-712 signed price against the market oracle without executing

Validates a signed price against the market's oracle contract and returns the recovered signer. Nothing is submitted and no gas is spent.

Use it to confirm a signature before handing it to a borrower, or to diagnose a transaction that reverted on a price signature.

## Path Parameters

<ParamField path="marketId" type="string" required>Market ID.</ParamField>

## Body Parameters

<ParamField body="price" type="string" required>
  Price in base units as an integer string, exactly as returned by [Sign Price](/endpoints/external-securities-lending/sign-price). Decimal points are rejected.
</ParamField>

<ParamField body="timestamp" type="integer" required>
  Signing timestamp in unix seconds. Must be a positive integer.
</ParamField>

<ParamField body="validUntil" type="integer" required>
  Expiry in unix seconds. Must be a positive integer.
</ParamField>

<ParamField body="signature" type="string" required>
  0x-prefixed hex signature.
</ParamField>

## Response Fields

<ResponseField name="data" type="object">
  <Expandable>
    <ResponseField name="valid" type="boolean">Whether the oracle accepts the signature.</ResponseField>
    <ResponseField name="signer" type="string">Recovered signer address, or null when verification could not run.</ResponseField>
    <ResponseField name="error" type="string">Reason the verification call failed, or null on a completed check.</ResponseField>
  </Expandable>
</ResponseField>

<Note>
  `valid: false` with `error: null` means the oracle evaluated the signature and rejected it. `valid: false` with a populated `error` means the check itself could not run, usually an RPC failure. These are different conditions and should be surfaced differently.
</Note>

<Warning>
  A signature the oracle considers valid can still be rejected at execution time if it has expired between verification and submission. Verification is a point-in-time check against `validUntil`.
</Warning>

<RequestExample>
  ```bash cURL theme={null}
  curl -X POST "https://api.trusset.org/lending-external-securities/api/markets/{marketId}/verify-price" \
    -H "X-API-Key: trusset_your_key_here" \
    -H "Content-Type: application/json" \
    -d '{
      "price": "105400000",
      "timestamp": 1718445600,
      "validUntil": 1718445900,
      "signature": "0xabc...def"
    }'
  ```
</RequestExample>

<ResponseExample>
  ```json Response - Valid theme={null}
  {
    "success": true,
    "data": {
      "valid": true,
      "signer": "0x123...456",
      "error": null
    }
  }
  ```

  ```json Response - Rejected theme={null}
  {
    "success": true,
    "data": {
      "valid": false,
      "signer": "0x0000000000000000000000000000000000000000",
      "error": null
    }
  }
  ```

  ```json Error - No Oracle theme={null}
  {
    "success": false,
    "error": {
      "code": "NO_ORACLE",
      "message": "No oracle configured"
    }
  }
  ```
</ResponseExample>
