KredoFi docs
Privacy & the enclave
What the TEE does, what leaves it, and who can open what.
#The enclave
On mainnet the scorer runs on OutLayer inside Intel TDX, a trusted execution environment: memory is encrypted and the operator can't read it. The contract asks OutLayer for one exact program, identified by its SHA-256 (the pinned version). OutLayer releases the scorer's secrets (the Plaid keys and the sealing key) only to that program and only for requests that come from the KredoFi contract.
#What leaves the scorer
Exactly one short line (under 900 bytes), checked field by field by the contract:
| Field | What it is |
|---|---|
band, score | A to D, 0 to 1,000 |
income_cap | the cap on your limit, in USDC |
fingerprint | a keyed hash of your bank identity (institution, owner name, account mask). Without the scorer's key it can't be reversed or linked to a bank |
sealed_identity | your name, encrypted to a key only the scorer holds |
caller | your NEAR account (from the request, never from input) |
reply (optional) | the five rule results, encrypted to a key your browser made for this request |
No transactions, balances, account numbers or names. The bank connection is removed at Plaid after the fetch.
#Who can open what
| Data | Who can read it |
|---|---|
| Band, score, income cap, loans | everyone (public chain) |
Rule results (reply) | only the browser that asked for the score |
Your name (sealed_identity) | nobody, until a default; then the scorer re-seals it to the recovery partner's key, and only the partner can open it. No contract view ever returns it. |
#What we can't promise
- Plaid sees what any Plaid connection sees.
- The enclave relies on Intel TDX and OutLayer's operations.
- On the testnet demo the scorer runs on our server, not in an enclave, so that server sees the data while it scores (it keeps only the public output).
Details: Security.
#The AI summary (testnet only)
On the testnet demo, a short plain-English summary is generated by NEAR AI Cloud, Qwen with a NEAR AI fallback (Qwen/Qwen3.8-27B first; if it hasn't answered in 8 seconds, Qwen/Qwen3.6-35B-A3B-FP8, also hosted by NEAR AI Cloud), after your score is set: your browser sends our server only the band and the five rule results (described in words, no numbers), never transactions, and our server asks NEAR AI and keeps nothing. It is a separate request, so it can't delay or change the score; if it fails, nothing is shown, and the page hides it if it contains numbers (models sometimes get them wrong). The mainnet scorer has no AI.