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:

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).

Last updated