Paper stage · simulated portfolios, no deposits · not an offer

Performance · Conservative

realized · paper
4.9% annualised drawdown −0.04%
Measured 2026-10-13 · 113 evidenced days · paper, not live money · not a guarantee
Evidenced days: days for which a complete, checkable daily record of the portfolio exists.
research target up to 6% — a goal, not a result or a forecast.
Why the target differs from the result: the target is what the research tries to reach under good conditions; the result is what actually happened, after modelled costs.

Paper stage. Live capital is not open; opening it requires a decision by the project owner and a legal review — not just a day count.

Track reset — honestly

We reset our own track

We audited our own paper track and reset it. Only days backed by a real daily-cycle log count. Right now that is 112 honest days (anchor 2026-06-22), not 15 padded ones. Every equity point and its source label is public.

static snapshot as of 2026-10-13 · updates live from api.earn-defi.com

Provable honesty

We publish 112 real days, not 15 padded ones

Auditing our own track found the earlier days were a flat-rate backfill — not the output of a real daily cycle. We don't count them. A day now counts only if it has a genuine daily-cycle log behind it. We would rather show 112 honest days than 15 padded ones. The reset itself is the trust signal.

Evidence anchor

2026-06-22

Evidenced / needed

112 / 30 days

Live capital

not open

Paper / research track on a virtual $100k portfolio. Not investment advice, not a forecast. Per-bar source labels are shown below — you can see which days are real.

Equity

$101,634

virtual $100k base

Max drawdown

−0.04%

since track start

Evidenced days

112 / 30

cycle-logged days only

Equity curve (paper)

source: static fallback

Curve loads from the live evidence feed. When offline, the last static snapshot is shown.

Bar ledger — what counts

source: static fallback

Each bar is tagged with its source. Only cycle bars are evidenced by a log and count toward the evidenced history. Backfill and warmup bars are dimmed — shown for transparency, but not counted.

2026-10-14 $101,648 cycle
2026-10-13 $101,634 cycle
2026-10-12 $101,621 cycle
2026-10-11 $101,605 cycle
2026-10-10 $101,591 cycle
2026-10-09 $101,578 cycle
2026-10-08 $101,564 cycle
2026-10-07 $101,550 cycle
2026-10-06 $101,538 cycle
2026-10-05 $101,526 cycle
2026-10-04 $101,514 cycle
2026-10-03 $101,502 cycle
2026-10-02 $101,491 cycle
2026-10-01 $101,477 cycle
2026-09-30 $101,462 cycle
2026-09-29 $101,447 cycle
2026-09-28 $101,435 cycle
2026-09-27 $101,423 cycle
2026-09-26 $101,412 cycle
2026-09-25 $101,401 cycle
2026-09-24 $101,390 cycle
2026-09-23 $101,379 cycle
2026-09-22 $101,364 cycle
2026-09-21 $101,353 cycle
2026-09-20 $101,341 cycle
2026-09-19 $101,328 cycle
2026-09-18 $101,315 cycle
2026-09-17 $101,303 cycle
2026-09-16 $101,290 cycle
2026-09-15 $101,279 cycle
2026-09-14 $101,267 cycle
2026-09-13 $101,256 cycle
2026-09-12 $101,246 cycle
2026-09-11 $101,234 cycle
2026-09-10 $101,274 cycle
2026-09-09 $101,265 cycle
2026-09-08 $101,251 cycle
2026-09-07 $101,237 cycle
2026-09-06 $101,224 cycle
2026-09-05 $101,211 cycle
2026-09-04 $101,200 cycle
2026-09-03 $101,188 cycle
2026-09-02 $101,178 cycle
2026-09-01 $101,166 cycle
2026-08-31 $101,151 cycle
2026-08-30 $101,135 cycle
2026-08-29 $101,120 cycle
2026-08-28 $101,112 cycle
2026-08-27 $101,095 cycle
2026-08-26 $101,079 cycle
2026-08-25 $101,062 cycle
2026-08-24 $101,042 cycle
2026-08-23 $101,025 cycle
2026-08-22 $101,008 cycle
2026-08-21 $100,991 cycle
2026-08-20 $100,977 cycle
2026-08-19 $100,958 cycle
2026-08-18 $100,943 cycle
2026-08-17 $100,926 cycle
2026-08-16 $100,911 cycle
2026-08-15 $100,894 cycle
2026-08-14 $100,880 cycle
2026-08-13 $100,863 cycle
2026-08-12 $100,848 cycle
2026-08-11 $100,832 cycle
2026-08-10 $100,817 cycle
2026-08-09 $100,803 cycle
2026-08-08 $100,788 cycle
2026-08-07 $100,775 cycle
2026-08-06 $100,763 cycle
2026-08-05 $100,746 cycle
2026-08-04 $100,729 cycle
2026-08-03 $100,713 cycle
2026-08-02 $100,697 cycle
2026-08-01 $100,681 cycle
2026-07-31 $100,663 cycle
2026-07-30 $100,646 cycle
2026-07-29 $100,629 cycle
2026-07-28 $100,629 cycle
2026-07-27 — no bar recorded
2026-07-26 $100,629 cycle
2026-07-25 $100,611 cycle
2026-07-24 $100,589 cycle
2026-07-23 $100,568 cycle
2026-07-22 $100,550 cycle
2026-07-21 $100,540 cycle
2026-07-20 $100,522 cycle
2026-07-19 — no bar recorded
2026-07-18 $100,505 cycle
2026-07-17 $100,483 cycle
2026-07-16 $100,471 cycle
2026-07-15 $100,456 cycle
2026-07-14 $100,438 cycle
2026-07-13 $100,417 cycle
2026-07-12 $100,398 cycle
2026-07-11 $100,380 cycle
2026-07-10 $100,361 cycle
2026-07-09 $100,341 cycle
2026-07-08 $100,324 cycle
2026-07-07 $100,301 cycle
2026-07-06 $100,292 cycle
2026-07-05 $100,283 cycle
2026-07-04 $100,274 cycle
2026-07-03 $100,265 cycle
2026-07-02 $100,256 cycle
2026-07-01 $100,246 cycle
2026-06-30 $100,233 cycle
2026-06-29 $100,224 cycle
2026-06-28 $100,213 cycle
2026-06-27 $100,202 cycle
2026-06-26 $100,190 cycle
2026-06-25 $100,180 cycle
2026-06-24 $100,170 cycle
2026-06-23 $100,166 cycle
2026-06-22 $100,151 cycle
2026-06-21 $100,135 reconstructed
2026-06-20 $100,119 backfill
2026-06-19 $100,108 backfill
2026-06-18 $100,097 backfill
2026-06-17 $100,086 backfill
2026-06-16 $100,076 backfill
2026-06-15 $100,065 backfill
2026-06-14 $100,054 backfill
2026-06-13 $100,043 backfill
2026-06-12 $100,032 backfill
2026-06-11 $100,022 backfill
2026-06-10 $100,011 backfill
2026-06-09 $100,216 warmup
2026-06-08 $100,205 warmup
2026-06-07 $100,194 warmup
2026-06-06 $100,184 warmup
2026-06-05 $100,173 warmup
2026-06-04 $100,162 warmup
2026-06-03 $100,151 warmup
2026-06-02 $100,140 warmup
2026-06-01 $100,130 warmup
2026-05-31 $100,119 warmup
2026-05-30 $100,108 warmup
2026-05-29 $100,097 warmup
2026-05-28 $100,086 warmup
2026-05-27 $100,076 warmup
2026-05-26 $100,065 warmup
2026-05-25 $100,054 warmup
2026-05-24 $100,043 warmup
2026-05-23 $100,032 warmup
2026-05-22 $100,022 warmup
2026-05-21 $100,011 warmup
cycle · evidenced · counts reconstructed · flagged backfill/warmup · not counted

The chart plots only evidenced and reconstructed bars (from 2026-06-21 onward), so there is no seam. The synthetic warmup and backfill series (before 06-21) are independent, not part of the evidenced track; they remain in the ledger below and the downloadable data, but not on the curve.

Why positions don't move daily

This is not staleness. The daily cycle makes a decision every day — but most days that decision is a deliberate HOLD: the deterministic risk rules and the allocator keep positions when the target allocation hasn't moved past its thresholds (low turnover by design — fewer fees and less slippage on stablecoin yield). Every hold decision is logged and hash-chained in decision_log, so you can verify the cycle actually ran and chose to hold — not that it silently stalled.

Check the decision chain →

NAV reconciliation (paper)

source: static fallback

What the NAV is made of — parts reconciled against equity

The NAV is recomputed from its parts (deployed + cash + accrued) and reconciled against the reported equity. This is a paper proof-of-reserves: the verifiable methodology on the virtual $100k portfolio, not real custody.

loads when JavaScript runs — published snapshot does not include reconciliation fields

Deployed

—

Cash

—

Accrued

—

NAV (= equity)

$101,634

Reconciliation delta

—

Positions

—

Last verified

—

Verification hash (NAV)

verifiable · tamper-evident

—

components: —

Portfolio value = positions in the protocols + cash + accrued yield. Every published value carries a fingerprint of what it is made of and when, so anyone can recompute it and check the figure was not edited.

Technical detail
components_hash = sha256 of the canonical JSON of the sorted positions; nav_hash binds the value to its components and timestamp; recompute with nav_proof.verify_proof().

Status

Live capital

Paper stage. Live capital is not open; opening it requires a decision by the project owner and a legal review — not just a day count.

Evidenced track days
112 / 30 days

Evidence anchor 2026-06-22

How we count honesty

Evidenced days, not raw bars. Each bar in the equity file is tagged with a source (warmup / backfill / reconstructed / cycle) and evidenced flag. Only cycle bars — those with a real daily-cycle log behind them — count. The earlier bars were a flat-rate backfill; we don't count them, though we still show them for transparency.

Reconstructed-day note. If the autonomous cycle missed a day (e.g. during a host restart), the gap is recorded by the gap monitor and the hole is usually filled with a reconstructed bar — which is flagged, not passed off as live; where it is not, the day is shown as missing.

Paper, variable, not a forecast. All figures reflect simulated trading on a virtual $100,000 USDC portfolio. The simulation does not account for live slippage, liquidity impact, or smart-contract execution risk. Past paper performance guarantees nothing.

Live watchdog & its honest scorecard

Verify this track yourself

The track is not just a chart — it is a verifiable artifact. The evidenced equity series itself is committed to a single-genesis hash chain (equity_track.jsonl); the decisions behind it are committed to their own chain (decision_log, head-checkpoint anchors), and each day's NAV reconciles (see NAV reconciliation above). Don't trust us — check us: one zero-dependency verifier (it does not import our code) re-derives every hash of both chains and reports the exact broken_at if a single byte of history — an evidenced equity value, a reordered or back-dated day — was altered. No backfill claims: only days with a real cycle log enter the equity chain.

Command

python3 verify_spa.py data/

Verifier: scripts/verify_spa.py (how to verify + in-browser demo, pinned verifier-v1.0) · equity chain: data/rates_desk/equity_track.jsonl · recipe: docs/PROOF_CHAIN_SPEC.md · checkable case: docs/DD_PACK.md

Go deeper

Personal research project in paper validation — not investment advice, not a regulated service, not raising capital; results are simulated. Full disclaimer & risk disclosure →