kaffahevents/onchain Base mainnet · 8453

Kaffa Events · Onchain Proof · Base Mainnet

A losing position was paid its contractual floor in USDC on Base mainnet.

Kaffa's Insurance Loss Coverage primitive executed its full lifecycle on Base mainnet on 8 September 2026 — premium collected, market resolved, winner settled, and the losing position paid its published 80% floor out of the ILC pool. Afterwards the pool's own accounting and its custodied USDC balance were read independently and agree to the unit. Everything below is verifiable on BaseScan without contacting us.

8453
Base mainnet chain ID
0.76USDC
Paid from the pool on an adverse resolution
1.34USDC
Held by the pool after settlement
static · verified 8 Sep 2026
0
Variance between custody and contract accounting
static · verified 8 Sep 2026

Reading live from Base mainnet…

01

Deployed contracts

Verified on BaseScan
Deployed contracts on Base mainnet
ContractAddressExplorer
Market 0x8F46Ecd5aCB145EeD1133061EEcDDd78d60A9b67
ILCPool 0x95cc5Fde34Dab9CbE9fdae0828B2A063a33B8ccB
CollateralVault 0xBf52c5F9a40F2BFDc96cb58B3E3b0c33c62c9169
USDCCircle, native 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913
02

The transactions

8 September 2026

Primary evidence

Adverse-resolution coverage payment

The ILC pool paid the losing position its contractual floor. This is the transaction that matters.

0x0c9f356070a31c716cdfaa51b0e2167cb2a53296daeacc960c25ab9ce277c640

Block51039778 Value0.76 USDC Floor80% of a 0.95 stake ExplorerView on BaseScan ↗

Supporting

Winning position settlement

The winning side claimed both stakes, 145 blocks earlier.

0x6396dd08356f9ec178def4a15f80be08aaedc310f42bcaf95b189de993128692

Block51039635 Value1.90 USDC ExplorerView on BaseScan ↗
03

Pool arithmetic

ILC pool movement
Pool seeded2.00 USDC
ILC premiums collected (500 bps of two 1.00 stakes)+ 0.10 USDC
Coverage paid on adverse resolution− 0.76 USDC
Closing balance1.34 USDC
04

Reconciliation

Custody vs accounting

Two independent sources of truth, read after settlement. The ERC-20 token contract's record of what the pool actually custodies, and the pool contract's own internal accounting. For a solvency-dependent instrument, this agreement is the substantive claim.

USDC.balanceOf(ILCPool)1,340,000 raw = 1.34 USDC
ILCPool.balance()1,340,000 raw = 1.34 USDC
Variance0

USDC carries six decimals, so a raw contract return of 1,340,000 is 1.34 USDC.

05

Verify it yourself

Four steps, no account needed
  1. Open the USDC contract on BaseScan and select Read as Proxy.
  2. Find balanceOf and pass the ILCPool address 0x95cc5Fde34Dab9CbE9fdae0828B2A063a33B8ccB. It returns the raw balance at six decimals.
  3. Open the ILCPool contract, select Read Contract, and call balance().
  4. The two figures should match exactly. That is the whole claim.
06

What this does not claim

Stated in full
Audit

The contracts have not been audited. The notional on mainnet is deliberately nominal for that reason — the deployment was sized so a defect would cost a few dollars rather than user funds. Commissioning the audit is the first use of our next capital.

User funds

No user funds are held on Base mainnet. Both positions above were opened from operator-controlled addresses.

Resolution

Resolution is currently owner-set. That is adequate for a controlled validation of the settlement mechanism and is not adequate for production.

Treasury

The KES-to-USDC treasury bridge runs end to end in test against interchangeable conversion providers, with no live counterparty and no real money. What has been proven here is the onchain segment.

Parameters

The mainnet contracts publish a fixed floor of 8000 bps and a fixed premium of 500 bps. The wider floor and premium ranges in our commercial materials are the intended production parameter space, not the constants deployed here.