# 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="https://2142133889-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FiSr34hy8pChMmzuLcDiU%2Fuploads%2F6W4lBm4QIB7AOEPseZWZ%2Fimage.png?alt=media&#x26;token=d3891373-cf4d-43e0-878d-b536c35933e7" 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).
