Arcobaleno Research · published 30 October 2026 · MIT licence (LICENSE.txt)
KPK manages the ENS Endowment. Its H1 2026 review reports $1,370,722 of gross yield for January to June, and compares it with the benchmark in the ENS investment policy.
These scripts rebuild that yield using only public blockchain data: what the Endowment’s wallet
(endowment.ensdao.eth) held, day by day, and how much each holding grew. The test for “does it match” was written and
committed before the first result existed: see PREREG.md.
| Jan | Feb | Mar | Apr | May | Jun | H1 | |
|---|---|---|---|---|---|---|---|
| Gross yield rebuilt from the chain ($k) | 313.5 | 223.6 | 245.3 | 210.0 | 223.9 | 182.2 | 1,398.7 |
| KPK H1 review ($k) | 294.3 | 201.5 | 199.5 | 260.3 | 229.4 | 185.7 | 1,370.7 |
| KPK monthly forum updates ($k) | 280.2 | 218.0 | 245.8 | 209.0 | 215.6 | 175.2 | 1,343.9 |
| Rebuilt APY, KPK’s method | 3.68 | 3.01 | 3.20 | 2.70 | 3.10 | 3.20 | 3.15 |
| Rebuilt APY, on daily balances | 3.17 | 3.16 | 3.14 | 2.67 | 2.87 | 2.87 | 2.98 |
| KPK gross APY | 3.48 | 2.74 | 2.66 | 3.37 | 3.19 | 3.29 | 3.12 |
| Investment policy benchmark | 2.93 | 2.93 | 2.71 | 2.64 | 2.75 | 2.81 | 2.80 |
Against the rule in PREREG.md:
April’s idle cash. After the precautionary exits on 18 April, $15.6M of plain USDS and about 3,470 ETH sat uninvested
in the Endowment. On 23 April, $4.9M of the USDS was swapped to USDC and sent to wallet.ensdao.eth; on 24 April, 513 ETH
went back to KPK’s ETH vault; the rest went back on 30 April, about 7 hours before the month ended. At what sUSDS and that
ETH vault paid over those days, the missed yield comes to about $36,000 (python3 idle.py). That figure depends on the
rates assumed, and it is a little high because the last day counts in full. Exiting was a risk decision, and this does
not say it was wrong.
Download everything: ens-h1-2026.tar.gz (sha256, signature, signed with our release key).
Python 3.10 or later, plus requests. No keys needed; it uses free public endpoints.
python3 blend.py # print the table from the data/ folder shipped here, with no network
python3 idle.py # print the April idle-cash figure, with no network
./run_all.sh # rebuild everything from the chain (slow on free endpoints), then print both
| File | What it does |
|---|---|
transfers.py |
Every token transfer in and out of the Endowment. This is how the list of positions was found, rather than from KPK’s tables |
daily.py |
Holdings and each position’s share price, every day from 1 Jan to 1 Jul |
aave_rewards.py |
Aave incentives earned, read from Aave’s rewards contract |
rewards.py |
COMP, MORPHO and FLUID claims and sales |
blend.py |
The table above, with KPK’s figures beside it |
idle.py |
April’s idle cash and the yield missed |
resolve.py |
Confirms the ENS names point to the addresses used here |
ocrpc.py, keccak.py |
Reading the chain, with no other libraries |
data/: daily, transfers, Aave incentives, rewards, result, idle cash |
What the scripts wrote, so blend.py and idle.py can run offline |
Address: Endowment 0x4F2083f5fBede34C2714aFfb3105539775f7FE64. The venues and their contract addresses are listed at
the top of daily.py.
Arcobaleno Research checks investment numbers independently: https://arcobaleno.cloud. We don’t work for KPK or for ENS. In early October we sent KPK a LinkedIn note about our service; nothing came of it. Questions or corrections: dvt@arcobaleno.cloud.