# Loan Process

Solvers must obtain a threshold of signatures from validators in order to borrow capital from an Inventory Pool. This diagram illustrates the process:

<figure><img src="/files/kT3lUtoMtUvckVKs6rym" alt=""><figcaption></figcaption></figure>

**Step 1:** Solver submits a request to the API service to borrow from an Inventory Pool on a specific chain

**Step 2:** The API service sends this request to the set of validators for the Inventory Pool

**Step 3:** Validators check on-chain state:

1. Solver's requested loan amount plus their current debt does not exceed the solver's collateral value
2. Solver has not initiated a collateral withdraw
3. Solver does not have any overdue repayments (incurring penalties)

**Step 4:** If validators determine that the borrow request is valid, they respond by providing a signature for the reqeust.

**Step 5:** The API service constructs a transaction for the borrow request which includes validator signatures

**Step 6:** Solver executes the borrow transaction to the Access Control contract for the Inventory Pool

**Step 7:** If access control signature checks pass, the `borrow()` function is executed on the Inventory Pool

## Important Notes

* Access Control for different inventory pools can define different validator sets and implement additional security around borrowing (e.g. enforcing borrower whitelists)
* The Nomial API service exists to provide a convenient interaction point, but is not required for the protocol to function. It is possible for solvers to bypass the API and request to validators directly.
* The access controller sets the rules around required validator signature thresholds. Default access control requires a majority (e.g. 2/3).


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.nomial.io/loan-process.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
