Underwrite onchain borrowers on their record.

Score a wallet when it applies, read its credit file for the decision, and set terms by band. Built for credit lines and undercollateralized lending, where a borrower's repayment history is worth more than a snapshot of their balance.

credit_policy.yamlexample · your terms
rangefromterms
excellent920+line up to 50k · 110% collateral
very_good840line up to 25k · 125% collateral
good750line up to 10k · 140% collateral
fair640manual review
low300decline

From application to funded line.

Three calls cover the decision. The score and the report read the same lending record, so the number and the file never disagree.

  1. Step 1

    Score the applicant

    A 300 to 1000 score, its decile and range band, and six factor ratings that say why. One Cred Unit.

    GET /score/address/{address}?include_factors=true

  2. Step 2

    Read the file

    Debt against collateral, every borrow, repayment and liquidation on Aave and Compound, and which chains, if any, could not be read.

    GET /report/address/{address}

  3. Step 3

    Watch the funded wallet

    Signed webhooks when it is liquidated, borrows elsewhere or repays, 5 to 10 minutes after the block.

    liquidation · borrow · repay

What makes a decision you can defend.

  • A reason for every numberFactor ratings explain an approval or a decline to your committee and to the borrower, without publishing weights a borrower could work.
  • ReproducibleEvery response names the model version that produced it, and a new version only adds inputs, so a past decision can be explained later.
  • No history, no top bandA wallet that has never borrowed is still scored from how it behaves, but cannot score above 839 until it shows a borrowing record.
  • Gaps are not good newsWhen a chain cannot be read, the report says so and the score is marked provisional, instead of treating missing data as a clean record.

Questions

Can you score a wallet that has never borrowed?

Yes, from its onchain behaviour: holdings, activity, attestations and age. Without a borrowing record it is capped at 839, the top of the Good band, so a strong but untested wallet never looks like a proven borrower.

How do I explain a decline?

Ask for the score with include_factors=true. Each of the six factors (Borrowing History, Wallet Composition, Wallet Health, Interactions, Trust, New Credit) comes back rated from Low to Excellent with a plain-language description.

Does this replace KYC?

No. Cred scores wallets, not people. Use it alongside your own identity checks; the sanctions endpoint screens a wallet against the OFAC lists for one Cred Unit.

How has the score been validated?

Every model release has to rank a fixed set of borrower archetypes the way a credit analyst would before it ships (a defaulter below a clean profile, a recovered defaulter above a serial one), and new inputs run in shadow first. We do not publish default rates; on the demo call we score wallets whose outcomes you already know, so you can judge it on your own book.

See your own wallets scored.

A 30-minute call with live scoring on wallets you choose, and the factor reasons behind every number. No commitment.

Building an AI agent? Get an API key