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
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
Deposit
User deposits ETH or supported LST/LRT assets
Convert
Assets are converted to optimal LST/LRT mix
Hedge
Matching short perp position opened automatically
Dual Yield
Staking rewards + funding rates accrue continuously
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.
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.
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)KerneVault
Verified on BaseScan + SourcifyERC-4626 vault that holds collateral and routes positions to the delta-neutral strategy
0x8005bc7A86AD904C20fd62788ABED7546c1cF2ACkUSD
Verified on BaseScan + SourcifyYield-bearing synthetic dollar, AccessControl model, MINTER_ROLE held by KerneVault
0x5C2EfdF0D8D286959b42308966bc2B97f5680AA3KUSDPSM
Verified on BaseScan + SourcifyPeg Stability Module, USDC to kUSD swap path
0xFf3025ec18e301855aB0f36Ec6ECa115a29A5FbcesKERNE
Verified on BaseScan + SourcifyEscrowed KERNE rewards token with linear vesting
0x29c1d396A35aB75a8Bb8dC3949f98edFa5f25b34KerneYieldOracle
Verified on BaseScan + SourcifyOn-chain yield rate oracle backing the displayed APY
0x8DE2d5ac5aBc7331a6E1d450a5c021db18599CdBKerneYieldDistributor
Verified on BaseScan + SourcifyMerkle-root yield distribution to vault depositors
0x096e38a04B632D28E017f86836225E0956CaD878KerneReferral
Verified on BaseScan + SourcifyPermissionless referral registry, no admin surface
0x1A04AF62baFc84b08b19d2aF7285eD5f8dAe4D9fKerneToken
Verified on BaseScan + SourcifyERC20Votes + 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.
0xfEA3D217F5f2304C8551dc9F5B5169F2c2d87340