Kamino Finance
kamino.com · DeFi · Solana · data checked 2026-10-20 13:16 (Stockholm)
Contact route: on-chain security.txt (program) ↗
Not claimed Automated from public data
Produced automatically from public data on 2026-10-20 (method v0.2.6). It shows how much of this project’s control structure, code and contact information could be checked from public sources. No person selected or adjusted it, and nothing a project does or pays changes it. It is not a security audit.
Beta: the method is still being calibrated, so this automated score may contain errors. Send a correction.
Transparency score, not a security audit. Scores are generated automatically from public data (Solana RPC, OtterSec build registry, GitHub, project websites). Projects are not involved unless a page is marked “Claimed”, and claiming never changes a score. Nothing here says a project is safe. How scores are made → · Corrections, right of reply & opt-out →
- Onchain: strongest Contract control; weakest Onchain history; missing data in Contract control, Legal documents.
Something wrong on this page? Dispute a check or send a correction · opt-out. We re-run the check and correct the page.
What was checked: addresses & sources
KLend2g3cP87fffoy8q1mQqGKjrxjC8boSyAYavgmjD(program) — source: https://github.com/kamino-finance/klendKvauGMspG5k6rtzrqqn7WNn3oZdyKqLKwK2XWQ8FLjd(program) — source: https://kamino.com/docs/build/developers/earn/operations/deposit- KMNO token mint: not found on an official page → not checked
Website kamino.com · GitHub Kamino-Finance/klend. Addresses are used only if they appear verbatim on an official project page.
Onchain track
Contract control weight 30 · 1 not read30/30
- ✓ Met
Upgrade authority KLend2…
Upgrade authority is GzFgdRJXmawPhGeBsyRCDLx4jAKPsvbUqoqitzppkzkW: Squads v4 multisig 6hhBGCtm… with threshold 5 of 10 voting member(s) (10 total), time lock 86400 s (established by re-deriving the vault address from the multisig; found in authority history tx ARdyuSCr…). Member independence not established. Address taken from official source: https://github.com/kamino-finance/klend - ✓ Met
Build matches source (OtterSec registry) KLend2…
OtterSec registry reports a build from public source that matches the on-chain program (https://github.com/Kamino-Finance/klend/tree/e921c648765fc2343c87614a00f4b39b640f0510). - ✓ Met
Upgrade authority KvauGM…
Upgrade authority is GzFgdRJXmawPhGeBsyRCDLx4jAKPsvbUqoqitzppkzkW: Squads v4 multisig 6hhBGCtm… with threshold 5 of 10 voting member(s) (10 total), time lock 86400 s (established by re-deriving the vault address from the multisig; found in upgrade history tx 5QV1Tnc2…). Member independence not established. Address taken from official source: https://kamino.com/docs/build/developers/earn/operations/depositkamino.com ↗Explorer ↗Explorer ↗Explorer ↗ checked 2026-10-20sha256 173a83dd61af…sha256 9753730804ca… - ✓ Met
Build matches source (OtterSec registry) KvauGM…
OtterSec registry reports a build from public source that matches the on-chain program (https://github.com/Kamino-Finance/kvault/tree/2dadf9449d32cfaa2ad5d1540c8edff378512c8c). - ⊘ Not read
Mint/freeze authority (KMNO token mint)
Not read: KMNO token mint — no official page stating the address could be machine-confirmed, so the address was not used. This is not a finding about the project (method 0.2.4: an unreadable mint is Not read, no points lost, lower coverage). (reason: mint_unconfirmed)source: calculated from the other checks checked 2026-10-20What would show up as met
Nothing for the project to do. Our checker could not read the source this time, so the check is “Not read”: no points are lost. It is tried again at the next run. If you think the data behind it is wrong, send a correction.
Audits weight 1515/15
- ✓ Met
Linked audit
Document reachable; hosted by the project (own GitHub org or domain) and names an auditor (ottersec, sec3, offside), but the program ID is not in the page text (PDF text not parsed). Date vs. last upgrade not checked. Quality not assessed. Counted as Met (method 0.2.4): audits by at least 2 distinct firms (offside, ottersec, sec3) were found at official sources of the project; the program ID is not required in that case. Quality, scope and date still not assessed.
Code openness weight 1513.1/15
- ✓ Met
Public repository
Kamino-Finance/klend public, created 2023-11-17, 9 contributor(s) (count only).GitHub ↗api.github.com ↗api.github.com ↗ checked 2026-10-20sha256 ba8a87d97630…sha256 c26aaaf43c06… - ◐ Partial
Licence
SPDX: NOASSERTION. A licence file exists but GitHub could not match it to a standard licence (custom/source-available terms); not assessed.GitHub ↗api.github.com ↗api.github.com ↗ checked 2026-10-20sha256 ba8a87d97630…sha256 c26aaaf43c06…What would show up as met
- Add a standard licence file (for example Apache-2.0 or MIT) that GitHub recognises.
- Custom or source-available terms are shown as partial: we do not judge them.
How we check: We read the licence field GitHub detects. This is what the check looks for. It makes no promise about a score or grade, and claiming or paying never changes a score.
- ✓ Met
Activity last 90 days
Last push 2026-10-19 (1 d ago).GitHub ↗api.github.com ↗api.github.com ↗ checked 2026-10-20sha256 ba8a87d97630…sha256 c26aaaf43c06… - ✓ Met
On-chain program source public
2/2 own program ID(s) found in public source: KLend2… in https://github.com/Kamino-Finance/klend; KvauGM… in https://github.com/Kamino-Finance/klend. Repos searched (shallow clone, text search for the program ID): https://github.com/Kamino-Finance/klend. Does not prove the deployed binary matches (see the build check).
Onchain history weight 105/10
- ◐ Partial
Last deploy KLend2…
Last deploy 2026-10-19 (0 d ago). Upgraded within the last 30 days.Explorer ↗RPC call (getAccountInfo)RPC call (getSignaturesForAddress)RPC call (getTransaction) checked 2026-10-20sha256 66694edd225b…sha256 5af1c960225d…What would show up as met
- Nothing to configure: a deploy more than 30 days ago reads as met, a more recent deploy as partial because the code changed recently.
How we check: We read the last deploy time on Solana. This is what the check looks for. It makes no promise about a score or grade, and claiming or paying never changes a score.
- ○ Not built
Program age / upgrade count KLend2…
Full history scan (first deploy, upgrades in 30 d, authority changes) needs an indexer (e.g. Helius); not available on public RPC.Explorer ↗RPC call (getAccountInfo)RPC call (getSignaturesForAddress)RPC call (getTransaction) checked 2026-10-20sha256 66694edd225b…sha256 5af1c960225d… - ◐ Partial
Last deploy KvauGM…
Last deploy 2026-10-13 (6 d ago). Upgraded within the last 30 days.Explorer ↗RPC call (getAccountInfo)RPC call (getSignaturesForAddress)RPC call (getTransaction) checked 2026-10-20sha256 173a83dd61af…sha256 9753730804ca…What would show up as met
- Nothing to configure: a deploy more than 30 days ago reads as met, a more recent deploy as partial because the code changed recently.
How we check: We read the last deploy time on Solana. This is what the check looks for. It makes no promise about a score or grade, and claiming or paying never changes a score.
- ○ Not built
Program age / upgrade count KvauGM…
Full history scan (first deploy, upgrades in 30 d, authority changes) needs an indexer (e.g. Helius); not available on public RPC.Explorer ↗RPC call (getAccountInfo)RPC call (getSignaturesForAddress)RPC call (getTransaction) checked 2026-10-20sha256 173a83dd61af…sha256 9753730804ca…
Team & contact weight 159.4/15
- ✕ Not met
Security contact (security.txt)
No valid security.txt at /.well-known/security.txt or /security.txt (200).What would show up as met
- Publish a text file at https://your-domain/.well-known/security.txt (or /security.txt) with a
Contact:line, for exampleContact: mailto:security@your-domain. - RFC 9116 also asks for an
Expires:line. We look only forContact:, but addExpires:too so the file stays correct.
How we check: We fetch the two standard locations over HTTPS. This is what the check looks for. It makes no promise about a score or grade, and claiming or paying never changes a score.
- Publish a text file at https://your-domain/.well-known/security.txt (or /security.txt) with a
- ✓ Met
Bug bounty programme linked
Program KLend2… embeds security.txt; its policy page (https://github.com/Kamino-Finance/audits/blob/master/docs/SECURITY.md) describes a bug bounty / reward.GitHub ↗kamino.com ↗kamino.com ↗kamino.com ↗ checked 2026-10-20sha256 8826e840c92b…sha256 8826e840c92b… - ℹ Status only
Claimed / not claimed
Status only, not scored: claiming proves control of an authority, domain or GitHub organisation and never changes a score. The status is shown in the page header.source: calculated from the other checks checked 2026-10-20 - ○ Not built
Team declared (voluntary, with consent)
Team declaration + consent flow not built — excluded.source: calculated from the other checks checked 2026-10-20 - ℹ Status only
Components declared complete by the project
Status only, not scored (it used to be scored, which made pages that are not claimed systematically lower; removed 2026-10-15). Other programs/packages may exist that were not submitted.source: calculated from the other checks checked 2026-10-20 - ✓ Met
Program embeds security.txt
2/2 own program(s) embed a solana-security-txt block with contacts (KLend2…, KvauGM…). - ◐ Partial
Official program address list
KLend2… published on project GitHub only (https://github.com/kamino-finance/klend); KvauGM… published on project domain (https://kamino.com/docs/build/developers/earn/operations/deposit).What would show up as met
- List your official program addresses on a page of your own domain (for example a docs page called “Addresses”). A list only on GitHub reads as partial, and one only on a third-party page as not met.
How we check: We use the pages the project itself publishes. This is what the check looks for. It makes no promise about a score or grade, and claiming or paying never changes a score.
Legal documents weight 10 · 1 unknown5/10
- ◐ Partial
Terms & privacy policy present
Terms: https://kamino.com/terms; privacy: not found (homepage links, sitemap.xml, common paths, headless-Chromium render). Content not assessed.What would show up as met
- Link both a Terms page and a Privacy Policy page from the homepage, or list them in sitemap.xml.
- We check that the pages exist. We do not read or assess their content.
How we check: We look at homepage links, sitemap.xml and common paths. This is what the check looks for. It makes no promise about a score or grade, and claiming or paying never changes a score.
- ○ Not built
Registered legal entity
Not stated.source: calculated from the other checks checked 2026-10-20 - ? Unknown
Legal entity named in terms
No legal-entity name (Inc/Ltd/LLC/GmbH/AG/Foundation …) recognised in the terms/privacy text. May be phrased differently — counted as unknown.What would show up as met
- Name the legal entity behind the project in the terms or privacy text, for example “Example Labs Ltd” or “Example Foundation”.
- We do not check a company registry.
How we check: We read the terms and privacy text and look for a company-style name. This is what the check looks for. It makes no promise about a score or grade, and claiming or paying never changes a score.
Domain weight 54.4/5
- ✓ Met
HTTPS
https://kamino.com answered HTTP 200 over TLS.kamino.com ↗kamino.com ↗kamino.com ↗kamino.com ↗ checked 2026-10-20sha256 8826e840c92b…sha256 8826e840c92b… - ◐ Partial
Security headers
Present: CSP, X-Content-Type-Options, X-Frame-Options. Missing: HSTS.kamino.com ↗kamino.com ↗kamino.com ↗kamino.com ↗ checked 2026-10-20sha256 8826e840c92b…sha256 8826e840c92b…What would show up as met
- Send these four response headers on your homepage: Strict-Transport-Security, Content-Security-Policy, X-Content-Type-Options and X-Frame-Options.
- The check looks only at whether each header is present, not how strict it is.
How we check: We read the headers of one homepage request. This is what the check looks for. It makes no promise about a score or grade, and claiming or paying never changes a score.
- ✓ Met
Domain age
Registered 1996-04-09 (~11151 d), source: RDAP (rdap.org). Registrant data ignored. - ✓ Met
Domain ↔ components consistency
Linked: address KvauGM… published on kamino.com (https://kamino.com/docs/build/developers/earn/operations/deposit); homepage links to github.com/kamino-finance; GitHub org name matches domain (weak)source: calculated from the other checks checked 2026-10-20
Snapshot hash of monitored fields: 0611565e7d6592ac
AI summaries
Generated with Grok 4.7 (xAI), Claude sonnet-5-5 (Anthropic) and GPT-6.1-sol (OpenAI) via their APIs. xAI, Anthropic and OpenAI have not reviewed, approved or sponsored Recheckable. AI-generated text; models see only extracted check results, never project-supplied text or personal names. They do not affect the score. Some text on this site (summaries and reports) is AI-generated and labelled where it appears. Scores and check results come from fixed code, not from AI. Scores are produced automatically from public data and are not reviewed by hand before they are shown; cases that the automatic checks flag are held for a person.
Template summary (deterministic)
Onchain track: band B (80/100, coverage 91 %, onchain v0.2.6). Strongest: Contract control, Audits, Code openness, Domain. Weakest: —. 1 check(s) unknown (each costs 1.5 points); 1 not read (no points lost, lowers coverage); 4 not built yet (excluded).
Grok (xAI)
Placeholder — no API key configured for this model in the PoC.
Claude (Anthropic)
Placeholder — no API key configured for this model in the PoC.
GPT (OpenAI)
Placeholder — no API key configured for this model in the PoC.
Regulatory information
The project has not declared any regulated-activity types, so no rules are listed.
Law firms (free listing, alphabetical, no ranking)
- Delphi — Stockholm, Blockchain law (self-described)
- Gernandt & Danielsson — Stockholm, Fintech (self-described)
- Magnusson — Stockholm, Fintech (self-described)
- Mannheimer Swartling — Stockholm, Fintech (own practice page to be confirmed) (self-described)
- Setterwalls — Stockholm, Fintech (self-described)
- Vinge — Stockholm, MiCA (own practice page to be confirmed) (self-described)
Recheckable has no financial relationship with the listed firms and receives no fee per contact. Paid placements, if ever introduced, are marked “Ad” and never shown next to low scores.
Score history
Automated score at each published review, newest on the right. The line steps at the date of a review; between reviews the score is unchanged.
◆ 2026-10-19: the scoring method changed from v0.2.5 to v0.2.6. A score change at that point can come from the method and not from the project.
Data table
| Review | Track | Score | Grade | Coverage | Method |
|---|---|---|---|---|---|
| 2026-10-15 | onchain | 83/100 | B | 91 % | v0.2.5 |
| 2026-10-19 | onchain | 83/100 | B | 91 % | v0.2.6 |
| 2026-10-20 | onchain | 80/100 | B | 91 % | v0.2.6 |
Check changes between reviews
- 2026-10-19 · onchain Last deploy KLend2…: Partial → Met method changed Explorer ↗
History
- 2026-10-20 13:16Nightly re-run: onchain B (80, coverage 91 %)
- 2026-10-19 13:04Forced fresh run (same result; fresh evidence snapshots): onchain B (83, coverage 91 %)
- 2026-10-18 08:10Method 0.2.4: audits by 2+ distinct firms at official sources count as Met; an unreadable token mint is Not read. Re-scored from the stored checks, no new data.
- 2026-10-15 10:16Method 0.2.1: the scope declaration and claim status are status-only (never scored). Re-scored from the stored checks, no new fetch. Before: B 72 (cov 87 %); after: B 74 (cov 91 %).
- 2026-10-15 07:37Initial review (operator-run): onchain B (72, coverage 87 %)
Project's own statements and reply
Does your team control the upgrade authority, official domain or GitHub organisation of this project? Claim this page (free, about a minute; it never changes a score).
For project owners: badge
Status: Active. The badge says “no changes since review”, never “safe”.
Badges are for claimed projects. The embed code is available after the page has been claimed (free, about a minute; claiming never changes the score). Claim this page
Re-checks are rate-limited (once per 10 minutes). Restoring a grey badge requires a full review.