Personal research project — paper-testing & tuning, not raising capital.
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 53 honest days (anchor 2026-06-22), not 15 padded ones. Every equity point and its source label is public.

static snapshot as of 2026-08-15 · updates live from api.earn-defi.com

Provable honesty

We publish 53 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 53 honest days than 15 padded ones. The reset itself is the trust signal.

Evidence anchor

2026-06-22

Evidenced / needed

53 / 30 days

Go-live target

2026-07-21

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

live data temporarily unavailable — verify against the raw chain at api.earn-defi.com. We hide the number rather than show a wrong one (refusal-first).

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 go-live. Backfill and warmup bars are dimmed — shown for transparency, but not counted.

2026-08-15 $100,899 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-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-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 RiskPolicy + 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 →

Proof of Reserves

source: static fallback

Every dollar accounted for, cryptographically verifiable

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 book, not real custody.

static snapshot — connecting to live…

Deployed

Cash

Accrued

NAV (= equity)

$100,899

Reconciliation delta

Positions

Last verified

Verification hash (NAV)

verifiable · tamper-evident

components:

NAV = Σ(per-protocol positions) + cash + accrued yield. components_hash = sha256 of the canonical JSON of the sorted positions; nav_hash binds the NAV to its components and timestamp. Anyone can recompute the published NAV from its components via nav_proof.verify_proof().

Go-live progress

GoLiveChecker criteria
/ 29

deterministic criteria (ADR-002) — all must pass before go-live

Evidenced track days
53 / 30 days

Evidence anchor 2026-06-22 · go-live target 2026-07-21

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 gap_monitor and the hole is filled with a reconstructed bar — which is flagged, not passed off as live. 30-day continuity is itself a separate go-live criterion.

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 Proof of Reserves 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 →