> ## 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 Signer

> Check whether the instance wallet may sign prices on the market oracle

Reads from the chain whether this instance's wallet can push and sign prices on the market's oracle, as an authorized signer or as the oracle owner. The wallet checked is the instance's first verified wallet, primary wallet first.

It answers one question only. It does not check the price signer the lender of record declared, which is usually a different key: read `priceSigner` and `priceSignerAuthorized` on [Get Oracle Status](/endpoints/lending/get-oracle-status) for that. To check any other address, use [Get Access Role](/endpoints/lending/get-access-role) with `role=ORACLE_SIGNER`.

<Warning>
  A failed chain read returns `isAuthorized: false`, exactly like a wallet that lacks authorization. Retry before acting on a `false`.
</Warning>

The call also refreshes the `signerAuthorized` flag on the market record that [Get Market](/endpoints/lending/get-market) returns. On an `ORACLE`-priced market the oracle reads an external feed and refuses every attested price, so an authorized wallet still cannot push there.

## Path Parameters

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

## Response Fields

<ResponseField name="data" type="object">
  <Expandable>
    <ResponseField name="signerAddress" type="string">The wallet checked, or `null` when this instance has no verified wallet.</ResponseField>
    <ResponseField name="oracleAddress" type="string">The market's oracle.</ResponseField>
    <ResponseField name="isAuthorized" type="boolean">Whether the wallet is an authorized signer or the oracle owner. `false` when no wallet is verified or the read failed.</ResponseField>
  </Expandable>
</ResponseField>

<RequestExample>
  ```bash cURL theme={null}
  curl "https://api.trusset.org/lending-external-securities-v2/api/markets/{marketId}/verify-signer" \
    -H "X-API-Key: trusset_your_key_here"
  ```

  ```typescript TypeScript theme={null}
  const res = await fetch(
    `https://api.trusset.org/lending-external-securities-v2/api/markets/${marketId}/verify-signer`,
    { headers: { 'X-API-Key': 'trusset_your_key_here' } }
  );
  const { data } = await res.json();
  ```
</RequestExample>

<ResponseExample>
  ```json Response theme={null}
  {
    "success": true,
    "data": {
      "signerAddress": "0x1234f9a07c6b53d81e2a4f70c9b385d6014a7e52",
      "oracleAddress": "0x3b25752c1459c5cf1b0bfcfdf0d56883c8047423",
      "isAuthorized": true
    }
  }
  ```

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

## Error Codes

| Code                | HTTP  | Cause                                    |
| ------------------- | ----- | ---------------------------------------- |
| `NO_ORACLE`         | `400` | The market records no oracle address     |
| `MISSING_MARKET_ID` | `400` | `marketId` is longer than 100 characters |
| `MARKET_NOT_FOUND`  | `404` | No market with this ID on your instance  |
