Kerne Logo
Transparency

Prove it yourself. Every four hours.

Continuous on-chain transparency for institutional capital. Proof of reserves and protocol health metrics attested every four hours.

0%

Performance Fee • During Genesis Phase

Early adopter incentive

All yield retained by depositors

1

Chain:

Base

Multi-chain expansion planned

chain logo

4h

Attestation Cycle

Continuous reserve verification

Automated on-chain proof

Genesis Window: 0% protocol fee, permanent for first depositors

Mint kUSD now and the kUSD you mint carries permanent 0% protocol fee treatment when later staked into skUSD, for the lifetime of that position. Live values from the PSM contract. The Window closes when cumulative kUSD minted crosses $250,000 or on August 5, 2026, whichever is first.

Cumulative kUSD minted

$0.00

of $250,000 cap

Cap progress

0.00%

Days until time bound

78

closes 2026-08-05

/Two Yield Sources. Zero Directional Risk

Ethereum Staking Rewards

Deposited collateral continues earning Ethereum proof-of-stake consensus rewards. This yield is highly reliable and flows directly from Ethereum's economic model to kUSD holders.

Perpetual Funding Rates

A matching short perpetual futures position collects funding rate payments from leveraged long traders. This captures the structural long bias in crypto markets to provide a consistent, additive yield stream.

Deposit → Yield Flow

01

Deposit

User deposits ETH or supported LST/LRT assets

02

Convert

Assets are converted to optimal LST/LRT mix

03

Hedge

Matching short perp position opened automatically

04

Dual Yield

Staking rewards + funding rates accrue continuously

05

kLP Issued

Yield-bearing ERC-4626 vault shares minted to your wallet

/Proof of Reserves

The vault is fully backed. Always

Live Transparency Dashboard

Real-time backing ratio, APY history, and asset allocation, verified on-chain.

View Live Dashboard →
≥100%Backing Ratio

Every kLP share is backed by equal or greater collateral value, verified on-chain every 4 hours

Every Four Hours

The Sentinel system runs automated solvency checks every 4 hours. Each check verifies total collateral value against outstanding vault liabilities and publishes a signed attestation on-chain.

What We Verify

  • Total vault collateral vs. outstanding shares
  • Hedge position health and margin levels
  • Insurance fund balance adequacy
  • Oracle price feed accuracy

On-chain Proof

Every attestation is a signed transaction on Base. Anyone can read the attestation contract to verify the current backing ratio, collateral breakdown, and hedge position status.

Insurance Fund

A dedicated insurance fund absorbs temporary losses from negative funding rates or market dislocations. The fund is capitalized from protocol revenue and serves as first-loss capital to protect depositors.

/Verify the signature yourself

Three lines of code. One signer to match.

The bot writes a fresh signed Proof of Reserves every hour. The signing key is the strategist EOA 0x09a2780ac8Be6D5d2d1F85A8D92b09D40C9CA37e. Fetch the latest signed JSON, recover the signer from attestation_hash and signature, and confirm it matches.

Latest signed attestation

Hourly cadence, EIP-191 personal_sign, freshness surfaced in the response _meta.

View /api/por/signed →

Read these fields first

The signed JSON now ships both the legacy vault-share solvency fields and the corrected PSM and USD-aggregate primitives. For a clean read of protocol solvency, look at psm_solvent, psm_solvency_ratio, and aggregate_solvency_usd_ratio. The _meta.v2_summary block in the response surfaces them as a headline, and the _meta.degraded_state_explanation field documents why the legacy fields look alarming while the protocol is structurally solvent. Schema version is exposed as schema_version, currently 2.

JavaScript (ethers v6)

import { verifyMessage, getBytes } from "ethers";

const j = await (await
  fetch("https://kerne.fi/api/por/signed")
).json();

const recovered = verifyMessage(
  getBytes(j.attestation_hash),
  j.signature,
);
console.assert(
  recovered.toLowerCase()
    === j.signer.toLowerCase(),
);

Python (eth_account)

import requests
from eth_account import Account
from eth_account.messages import encode_defunct

j = requests.get(
  "https://kerne.fi/api/por/signed"
).json()

msg = encode_defunct(hexstr=j["attestation_hash"])
recovered = Account.recover_message(
  msg, signature=j["signature"],
)
assert recovered.lower() == j["signer"].lower()

CLI (foundry cast)

curl -s https://kerne.fi/api/por/signed > por.json

HASH=$(jq -r .attestation_hash por.json)
SIG=$(jq -r .signature  por.json)
SIGNER=$(jq -r .signer  por.json)

cast wallet verify-message \
  --address $SIGNER $HASH $SIG

The route response embeds the same three snippets under _meta.verify, a freshness flag at _meta.is_fresh, and an expected-signer check at _meta.signer_matches_expected. On a key rotation the expected-signer constant is updated in the route handler and the boolean reflects the new state on the next deploy.

/Live Risk Status

The runbook, audited live

Every threshold in the runbook is wired to the contract or the Sentinel risk engine, and surfaced here in real time.

/Source Verification

Verified

(8)
Base

KerneVault

Verified on BaseScan + Sourcify

ERC-4626 vault that holds collateral and routes positions to the delta-neutral strategy

BaseScanView on BaseScan
0x8005bc7A86AD904C20fd62788ABED7546c1cF2AC
Base

kUSD

Verified on BaseScan + Sourcify

Yield-bearing synthetic dollar, AccessControl model, MINTER_ROLE held by KerneVault

BaseScanView on BaseScan
0x5C2EfdF0D8D286959b42308966bc2B97f5680AA3
Base

KUSDPSM

Verified on BaseScan + Sourcify

Peg Stability Module, USDC to kUSD swap path

BaseScanView on BaseScan
0xFf3025ec18e301855aB0f36Ec6ECa115a29A5Fbc
Base

esKERNE

Verified on BaseScan + Sourcify

Escrowed KERNE rewards token with linear vesting

BaseScanView on BaseScan
0x29c1d396A35aB75a8Bb8dC3949f98edFa5f25b34
Base

KerneYieldOracle

Verified on BaseScan + Sourcify

On-chain yield rate oracle backing the displayed APY

BaseScanView on BaseScan
0x8DE2d5ac5aBc7331a6E1d450a5c021db18599CdB
Base

KerneYieldDistributor

Verified on BaseScan + Sourcify

Merkle-root yield distribution to vault depositors

BaseScanView on BaseScan
0x096e38a04B632D28E017f86836225E0956CaD878
Base

KerneReferral

Verified on BaseScan + Sourcify

Permissionless referral registry, no admin surface

BaseScanView on BaseScan
0x1A04AF62baFc84b08b19d2aF7285eD5f8dAe4D9f
Base

KerneToken

Verified on BaseScan + Sourcify

ERC20Votes + Permit + Burnable + Pausable governance token. Current on-chain supply 100,000,000 KERNE. DEFAULT_ADMIN_ROLE held by the 2-of-3 Safe; MINTER_ROLE present in the contract but currently granted to zero addresses.

BaseScanView on BaseScan
0xfEA3D217F5f2304C8551dc9F5B5169F2c2d87340