Mark Mercatali

All notes

Data breakdownOnchain creditsample3 min

Onchain credit without a bureau file

A public trail is not a credit file, and an address is not a person. Separate the observation from the rule that turns it into a limit.

Sample note, written to show the format. The bands and the rule below are illustrative. They are not a score and not anyone’s current policy.

Credit on a public chain does not come with a bureau file. What you have is a trail: addresses, positions, liquidations, repayments, and the gaps between them. A data note is a decision about which parts of that trail are allowed to count.

The temptation is to treat an address like a person. It is not. One person has many addresses. One address has many people, if it is a treasury, an exchange or a bot. Any feature built on “this address” has to say which of those it assumes. For a consumer product the honest label is: this describes the address you connected, not you.

What usually gets counted

The families below show up again and again. The bands are a teaching grid, not a fitted model. A real book would replace them with its own loss history, which this sample does not have and will not invent.

FamilyExample of a raw inputIllustrative bandHow it misleads
AgeFirst transaction of the addressUnder 30 days is thinOld dust is not a history of borrowing
RepaymentLoans closed without a liquidationMost close, or they do notOne protocol’s flag is not another’s
ProximityCollateral ratio at a snapshotNear the line, or notStale within a block
ConcentrationShare of collateral in one assetSingle asset, or mixedMixed assets can still move together
BehaviourBridges and rapid in-and-outStable, or churnyChurn can be a market maker

Observation, then a rule

Separate the observation from the judgment. An observation is “this address was liquidated twice in ninety days on the protocols in the sample”. A judgment is “therefore the next loan should be smaller”. The first can be shown to a user and to a risk committee. The second is a policy, and it should sit in a table someone can edit, not in a weight nobody can read.

An illustrative rule, round on purpose:

if liquidations_90d >= 2 then max_ltv = base_ltv - 15 points
if address_age_days < 30 then max_ltv = min(max_ltv, base_ltv - 20 points)
else max_ltv = base_ltv

Fifteen and twenty are not a result. They are placeholders so the shape of the rule is easy to read. Publishing a fake loss curve would be worse than publishing the rule with the numbers marked as made up.

Coverage is the quiet problem. A feature that exists for one lending protocol and not the three others will look precise and be biased toward whichever chain was indexed first. A breakdown should say which protocols are in the sample, which chains, and the date of the pull. Without that box it is a mood.

What belongs on one page: the feature, the raw value, the band, the protocols included, and the rule that turns the band into a limit. Five columns. If a column is missing, the note is not finished, however nice the chart.