Skip to content

feat(rwa-yield-accuracy): bench 089 scaffold + USDY rebase probe (Sprint 1/3) - #1324

Merged
Flotapponnier merged 1 commit into
devfrom
feat/rwa-yield-accuracy
Jul 23, 2026
Merged

feat(rwa-yield-accuracy): bench 089 scaffold + USDY rebase probe (Sprint 1/3)#1324
Flotapponnier merged 1 commit into
devfrom
feat/rwa-yield-accuracy

Conversation

@Flotapponnier

Copy link
Copy Markdown
Collaborator

First sprint of the killer signature bench that measures on-chain delivered yield vs advertised APY for the top 5 tokenized U.S. Treasuries.

What ships now (Sprint 1)

  • Full spec YAML with 5 providers declared (BUIDL, BENJI, USDY, USTB, OUSG)
  • Harness scaffold : config, metrics, loghub, promised-yield loader, IssuerProbe interface
  • USDY probe fully implemented (rebase model, simplest)
  • promised-yields.yml with all 5 tokens (curated APY + source URLs + dates)

Deferred to Sprint 2 (next PR)

  • BUIDL + USTB probes (dividend model : sum USDC Transfer events from treasury wallet)
  • BENJI + OUSG probes (NAV appreciation model : fetch daily NAV from issuer + cross-check on-chain oracle)

Deferred to Sprint 3

  • Deploy to VPS ocb-par-main
  • Cross-check each measurement against issuer's own fund fact sheets
  • Content : whitepaper draft + launch tweet + press outreach

Design decisions

  • V1 = Ethereum only for all 5 tokens. Multi-chain (BUIDL 6 chains, USDY 4 chains) in V2.
  • Rebase model measured via totalSupply(t=now) vs totalSupply(t=window ago). Block-by-timestamp uses linear approximation (post-merge 12s block time), accurate to ~10 blocks over 30d = well below yield noise floor.
  • Dividend model will use eth_getLogs on USDC Transfer events filtered by from=treasury_wallet, summed over the window.
  • NAV model relies on issuer's public daily NAV endpoint, cross-checked with the smart contract's own price oracle (Chainlink PoR for BUIDL, native oracle for BENJI).
  • Promised APY hot-reloaded from promised-yields.yml every 60s so a manual weekly edit lands within one scrape cycle.

Metrics contract (Prometheus)

rwa_yield_promised_bps{issuer, token, chain}
rwa_yield_delivered_bps_30d / _7d / _lifetime
rwa_yield_deviation_bps_30d / _7d / _lifetime
rwa_yield_total_supply_units
rwa_yield_aum_usd
rwa_yield_probe_ok
rwa_yield_last_measured_unix
rwa_yield_probe_errors_total{error_type}
rwa_yield_distributions_usd_total

Test plan

  • bun run validate — 76 specs valid (was 75)
  • go build in harness — clean
  • go vet — clean
  • Local run against public RPC (defer until Sprint 2 when other probes shipped)
  • Deploy to VPS + Prom scrape config (Sprint 3)
  • Cross-check USDY 30d delivered vs Ondo dashboard (Sprint 3)

Sprint 1 of the bench that measures on-chain delivered yield vs
advertised APY across the top 5 tokenized U.S. Treasuries (BUIDL,
BENJI, USDY, USTB, OUSG).
This commit ships:
- benchmarks/rwa-yield-accuracy.yml (full spec, 5 provider blocks)
- harnesses/rwa-yield-accuracy/ (Go harness scaffold + USDY probe)
- promised-yields.yml (curated APY per token with source URLs)
USDY is the simplest of the five (rebase-only, totalSupply growth
directly). It's shipped as the proof-of-concept for the whole
pipeline: config → RPC read → windowed yield computation → metrics
export → deviation vs promised.
Sprint 2 (subsequent PR) adds BUIDL, USTB (dividend USDC transfers)
and BENJI, OUSG (NAV appreciation). Deploy to VPS ocb-par-main comes
after the full cohort ships and per-issuer measurements are
cross-checked against the fund's own disclosures.
@Flotapponnier
Flotapponnier merged commit 5fe1000 into devJul 23, 2026
1 check failed
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@Flotapponnier