feat(rwa-yield-accuracy): Sprint 2 — 4 remaining probes (BUIDL, USTB, BENJI, OUSG) - #1325
Merged
Merged
Conversation
… NAV probes
Ships the 4 remaining probes needed for the full V1 cohort:
Dividend model (share price fixed at 1 USD, monthly USDC dividends):
- buidl.go BlackRock BUIDL
- ustb.go Superstate USTB
- dividend.go Shared eth_getLogs helper for USDC Transfer events
from a specified treasury wallet across a windowed
block range, chunked in 10k-block slices.
NAV appreciation model (share price grows daily, no dividend transfers):
- benji.go Franklin BENJI
- ousg.go Ondo OUSG
- nav.go Shared JSON HTTP helper + in-memory NAV ring so the
probe can compute windowed yield without waiting for
issuers to expose historical NAV via API.
Also promotes all 5 probes into main.go's cohort so the harness
starts producing full deviation gauges on next run.
Known gaps closed in Sprint 3:
- Treasury wallet addresses for BUIDL/USTB are placeholders. Sprint 3
verifies against Securitize/Superstate docs on Etherscan.
- BENJI/OUSG NAV endpoint URLs are best-guess; Sprint 3 verifies the
actual public JSON endpoints and the field path within the response.
- Lifetime yield (since inception) is a placeholder zero across all
probes. Sprint 3 wires the contract deployment block for each.
- BENJI Ethereum wrapper address is TBD; primary chain is Stellar.
V1 measures via NAV endpoint only; wrapper supply is 'when known'.
Test plan:
- Build + vet clean (no output).
- Local RPC smoke run + cross-check against issuer dashboards deferred
to Sprint 3 (deploy + verification pass).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Sprint 2 of the rwa-yield-accuracy bench. Ships the 4 remaining probes needed for the full V1 cohort.
Dividend-model probes (BUIDL, USTB)
Share price fixed at 1 USD by design; yield materializes as monthly USDC dividends distributed from a specific issuer treasury wallet to token holders. The probes:
Transferevents withfrom = treasury_walletacross the window (dividend.goshared helper, chunked in 10k-block slices to stay within eth_getLogs limits)NAV-appreciation probes (BENJI, OUSG)
Share price grows daily; no on-chain dividend transfers. The probes:
nav.goshared HTTP helper)navRing, 72 slots) so windowed yield becomes computable after the ring is warmprobe_oklabel distinguishes this from a real zeroKnown Sprint 3 verification items
The addresses and endpoint URLs are best-known-values in V1. Each is flagged as
TODO(Sprint 3)in the code:The harness will run and emit metrics with the placeholders; sprint 3 verifies against each issuer's dashboard and adjusts.
Test plan
go buildcleango vetclean