Nomial Docs
  • Concepts
    • What is Nomial
    • Why use Nomial
  • Protocol
    • Architecture Overview
  • Smart Contracts
  • Loan Process
  • Interest Rate Model
  • Solvers
    • Take out a loan
  • View loan status
  • Repay a loan
  • Security
    • Security Model Overview
  • Resources
    • Terminology
    • Connect with us
Powered by GitBook
On this page
  • Loan Validation Flow
  • Important Notes

Loan Process

This diagram illustrates how the Nomial validation architecture works, showing the interaction between solvers, validators, and the API across different chains:

PreviousSmart ContractsNextInterest Rate Model

Last updated 1 month ago

Loan Validation Flow

The following steps are required for a Solver to obtain signed approval from validators for a loan. This process happens instantaneously and is automated by the Solver, API, and Validator clients.

Step 1: Solver submits a request to the API service (operated by Nomial) to borrow from an InventoryPool on a specific Orbit Chain

Step 2: The API service verifies that:

  1. Solver is whitelisted

  2. Solver's requested loan amount plus their outstanding loan amount does not exceed the solver's collateral amount

  3. Solver has not initiated a collateral withdraw

  4. Solver does not have any overdue repayments (incurring penalties)

Step 3: If API service determines that the solver loan request is valid, it requests signatures from all validator clients. This request includes the solver's borrow request, collateral amount, and total outstanding loan amount

For V1, validator clients will trust that the API service is providing accurate data. This simplifies the client implementation significantly, as the clients do not need to reach consensus around shared state or depend on RPC connections. After V1, clients can be upgraded to include their own independent state verification

Step 4: Validators respond with signatures

For V1, 1/3 signatures will be required, so the protocol can function with a Nomial operated validator. Once additional validators are running this threshold can be increased to 2/3

Step 5: API service responds to solver with signatures from validator clients

Step 6: Solver executes the borrow transaction

  1. Solver submits a tx with valid signatures directly to a multisig on the target Orbit Chain

  2. Multisig calls borrow() on InventoryPool. This function is only callable by the multisig

  3. InventoryPool transfers funds to the approved recipient address

Important Notes

  • In Nomial V1, liquidation is manual via Safe UI

  • Future versions will implement automated liquidation with cross-chain proof

  • The DataStore component tracks pending borrows, inventory pool debt, penalties, and collateral state

  • All inventory pools on different chains maintain index state linked to the central data store

Loan Flow on Nomial