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

# FAQ

> Common questions from solvers running against Iris RFQ.

## I'm registered but receive no requests

Every cause is on the eligibility path, which runs before your endpoint is ever called:

* **Chain mismatch**: you declared `chainIds` that exclude the requests being made. Omitting the field entirely means "every chain".
* **Debt token mismatch**: `supportedTokens` filters on the request's **debt** token only. A solver scoped to collateral assets it likes will silently match nothing.
* **Borrower blocked**: a per-endpoint compliance blocklist excludes that borrower for your endpoint.
* **Registry not refreshed yet**: changes take up to 5 minutes to propagate.

If none of those apply, there may simply be no borrower demand matching your scope in that window.

## I changed my registry entry and nothing happened

The coordinator caches the registry and refreshes it on a **5-minute** interval. A new endpoint, a changed timeout, or widened token scope will not apply immediately. Wait out the interval before investigating further.

## My quotes are being dropped and I get no error

Validation failures are never returned to your endpoint: the quote is dropped and the round proceeds. Work through [Validation](/rfq/running-a-solver/validation) in order; the most common causes are a signature over terms that diverged from the response, a `deadline` outside the two-minute window, and `venueId` sent as a bitmask instead of an index.

## What does the signature actually cover?

The on-chain `Quote` struct, which mixes fields from the borrower's request with fields from your quote. If you rebuild the request side from anything other than the request you were handed, recovery will produce a different address and the quote is dropped. Fields are listed in [Get Started](/rfq/running-a-solver/get-started#the-quote-signature).

## Why are two signatures required?

`Iris.take()` pulls your bond in the debt token, and you are not in the call path at that moment to approve it. The Permit2 signature travels with the quote so the taker can stage the pull. The `Quote` signature is what binds you to the terms.

## Can I reuse a Permit2 signature?

No. It authorises exactly one quote's bond amount, and Permit2 allowance nonces are sequential, so it is single-use by construction. If you quote concurrently in the same debt token, keep a standing ERC-20 approval to `Iris`; `take()` tries that first and only falls back to Permit2.

## Can I use a smart contract wallet?

Not yet. Signature verification is EOA-only: ERC-1271 signatures cannot currently be verified and will be rejected. Signatures must be 65-byte `r || s || v`; 64-byte EIP-2098 compact signatures are deliberately rejected because they cannot be recovered.

## How long do I have to respond?

5 seconds by default, measured to your last byte. A higher budget can be configured per solver during onboarding. Exceeding it abandons your quote for that round.

## Is it better to decline or to stay silent?

Decline explicitly: HTTP `404` or `bond: "0"`. Both are recorded as non-quotes rather than failures. Timing out or returning a malformed body counts against your endpoint's health, while declining does not.

## How is the winner chosen?

Lowest `fixedRate` among quotes that survive validation. Nothing else is scored: not bond size, not latency, not response order.

## Do I find out whether I won?

Not from the coordinator; it returns the result to the borrower, not to solvers. The winning quote is settled when the borrower calls `Iris.take()`, so on-chain activity against your solver address is the signal. Loans you have underwritten are queryable by solver address; see [Solver Book](/api/iris-core#solver-book).

## My quote won but `take()` reverted

Expected in some cases. Coordinator validation is convenience-grade: it drops definitively-unsubmittable quotes but skips checks it cannot run, and the contract is the real authority. The usual causes are an expired `deadline`, an insufficient bond that skipped validation, or your bond allowance no longer being available at settlement.

## How do I get onboarded?

Reach out through [Telegram](https://t.me/+549-WHvSTztiZTI1) or the team contact links in the docs header. Solvers are whitelisted rather than self-enrolled, and endpoint URLs and credentials are shared directly during onboarding.
