SolvaDocs

For lenders and risk teams

Use coverage as an input to collateral rules, apply haircuts to short or stale records, and plan for is_covered.

A lending pool, credit desk or risk team that accepts tokens as collateral, or carries exposure to an institution, can turn a coverage record into a collateral rule. The rule still needs your own judgement in a few places, set out below.

Coverage as a collateral input

A record tells you, for one ledger, that reserves were at least what the institution owed its customers. For collateral, it shows the token was backed at that time. It does not price the token or measure the institution's other risks, so use it as one input beside your other checks.

Read three things from each record:

InputWhere it comes fromWhy it matters
StatusCovered, short or stale, worked out by you todayIf you accept the token at all
CoverageReserves divided by what is owedHow much room there is before the next cycle is short
AgeThe current time minus the record's timestampHow far you are relying on an old answer

To read them from Stellar, see Check a record on Stellar. The registry stores no status. Public record pages Coming soon report it for you.

A collateral rule

The website's partners page shows a lending pool rule. The pool accepts deposits of an asset while it is covered, and waits while it is short or stale until a new record shows it covered again.

StatusNew deposits as collateralNew borrowing against existing collateral
CoveredAcceptAllow
ShortRefusePause until a record shows it covered
StaleRefusePause until the next record lands

Record the ledger or the record's time with each decision, so you can show later which record a decision rested on.

Haircuts on short or stale records

A haircut is the discount you apply to collateral's value when you lend against it. Coverage gives you a reason to vary it, and the values are your policy, not Solva's. A rule can:

  • apply your normal haircut while the record is covered and recent,
  • raise the haircut as coverage approaches 100 percent, since a small move then turns the next cycle short,
  • raise it further, or stop counting the collateral, once the record is older than your limit,
  • stop counting the collateral while the asset is short.

Set the age limit from the institution's schedule. Solva is designed for a record every day. Today cycles run on request, and the orchestrator's scheduler, when turned on, runs them daily or hourly. A gap of more than 26 hours after a daily cycle is a sign worth acting on.

A short day leaves no new record on chain, because a cycle with reserves below what is owed is refused. From the contract alone, a short day looks like a stale one, so your rule handles both the same way until a new record arrives.

What a record does not cover

A record proves the arithmetic of coverage at one ledger. It rests on the reserve figure from the institution's reserve source, and it does not show whether the same reserves also back something else. See What a record shows and Where reserve figures come from before you set how much weight a record carries.

is_covered for contracts

is_covered Coming soon is a read-only call on the registry that a lending contract makes before accepting collateral. It takes the issuer and the asset and returns covered, short or stale, with the ledger the asset was checked at. A contract can then enforce the rule above on chain, with no back-end job in between.

SEP-40, the Stellar standard for oracles, covers price feeds only. is_covered follows its read-only pattern for a coverage answer.

Without is_covered, a contract or a back-end job reads get_latest_proof and applies its own age limit.

Next: For auditors.

On this page