You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Both internal links added (/features/fee-sponsorship, /features/deposit-addresses) resolve to real pages, the fixedRate: "1:1" param matches the curl sample at line 722, and the 1:1.0005 → "5 bps of pricing" claim at line 14 is consistent with the worked examples at lines 700–702. Findings below, most significant first.
1. Arbitrage direction looks inverted (features/price-stabilization.mdx:46)
When your fixed rate is above the market rate, monitor for arbitrage
Under the notation this page establishes, the rate is input:output (line 698) and a higher second number means less output for the user — at 1:1.0005 the user gets 99.95 USDT and "you earn" in 2 of 3 scenarios (lines 700–702). Arbitrage risk arises when you're sponsoring the spread, i.e. paying out more than market — which in this notation is when your fixed rate is below the market rate.
Compare the existing prose it's summarizing (line 691, and the <Warning> at 693–696): "during periods you are sponsoring, you need to be careful that it's not being arbitraged." Safest fix is to drop the direction claim and mirror the existing wording rather than introduce a comparison that has to be reasoned through.
2. Supported-stablecoin list is presented as a closed set (features/price-stabilization.mdx:46)
Fixed rates are supported between major stablecoins (USDC, USDC.e, USDT, USDe, USDH, mUSD, and DAI).
Line 704 on the same page says the opposite in kind: that list is "common examples," support is driven by whichever stablecoins Relay holds as solver currencies, it varies by chain, and readers should call the chains API and inspect solverCurrencies — with MegaETH (USDT + USDm, neither fully covered by the intro list) as the counterexample. A reader who stops at the intro will conclude USDm isn't supported and DAI universally is. Add "vary by chain" and the chains-API pointer, or soften to "common examples include."
3. Structure and voice diverge from AGENTS.md §3.1 / §2.4 / §2.9
AGENTS.md puts features/*.mdx on the feature guide profile: the one required element is an intro paragraph with definitional framing (<FeatureName> is a feature that …), tone "practical, task-oriented," and optional sections in the order Requirements → How to use it? → Caveats. The positioning-first, marketing-adjacent register is explicitly the use-case profile (§3.2). This PR moves the page toward the latter:
Line 6 — **Price Stabilization: set the rate. 1:1, exactly.** is a bolded standalone tagline. §2.9 reserves bold for parameter names, values the reader types, and UI element names. The definitional intro the profile requires got replaced by a slogan; consider keeping the tagline but restoring a one-sentence definitional opener under it.
Lines 25–42 — ## Why It Matters / ### For Integrators / ### For Your Users / ## Who It's For have no precedent anywhere in the repo (I grepped all .mdx; these three headings appear only in this file). features/ pages use task-shaped headings: Requirements, How to use it?, Caveats, Best Practices, Supported Transaction Types. The audience-benefit blocks read like landing-page copy on a reference-adjacent page.
## How It Works and ## What to Watch are fine — features/deposit-addresses.mdx:12 already uses ## How It Works, and What to Watch is a reasonable stand-in for the profile's Caveats. Renaming it to ## Caveats would match the profile exactly.
Not a blocker if this is a deliberate product-marketing direction for features/, but if so AGENTS.md §3.1 should be updated in the same PR so the next agent-generated page doesn't get flagged for the same thing.
4. New intro duplicates two sections further down the page
Line 16 — "swap impact between major stablecoins is typically under 1 bps, so what you absorb is small and predictable" restates ## Why This Works for Stablecoins (lines 1329–1331) almost claim-for-claim. One of the two should go, or line 16 should link down to it.
Lines 44–46 — the arbitrage guidance duplicates the <Warning> at lines 693–696. Two statements of the same caution, ~650 lines apart, with the newer one phrased differently (see finding 1) — that's how they drift out of sync.
5. "alongside fee sponsorship" reads as a requirement (features/price-stabilization.mdx:20)
Set the rate on the quote (fixedRate: "1:1") alongside fee sponsorship.
Step 2 then promises "sends 100 and receives exactly 100." The sample request at 713–723 does send both subsidizeFees: true and fixedRate: "1:1", but the ### Fixed Rates section never says sponsorship is required, and line 16 frames them as two complementary mechanisms. Worth stating explicitly whether fixedRate alone yields exactly-100 output or whether subsidizeFees is needed for that guarantee — readers will copy step 1 literally.
6. Lost in-page anchors
The removed intro linked [fee sponsorship](#fee-sponsorship) and [fixed rates](#fixed-rates) — the two ### sections at lines 56 and 684 on this page. Line 16 now sends readers to /features/fee-sponsorship instead, and there's no longer any link to the Fixed Rates section. Both sections still exist below, so a reader who wants the mechanics has to scroll past a 600-line JSON block to find them. Line 46's "in the guide below" is the only pointer and it's vague — an explicit [fixed rates](#fixed-rates) anchor would fix both.
Unescaped $ (lines 10, 41) — every other dollar amount in this file is escaped (\$100, \$0.02, \$0.03). Line 41 has two unescaped $ on one line (quoted at $100 should credit as $100). Other live pages do this unescaped (features/fee-sponsorship.mdx:94) so it likely renders fine, but worth confirming on the preview and matching the file's own convention either way.
Em dash without spaces (line 12) — market—sometimes / them—with is the only such instance in features/. Cosmetic, but inconsistent with the surrounding pages, which use spaced —.
Dropped baseline example — the removed lines showed what a plain swap yields with no stabilization (If 1 USDT = 1.0000 USDC, that's 99.97 USDT) plus the \$0.02 + 1bps cost. The PR description says it preserves the existing technical examples; the sponsorship and fixed-rate examples are indeed intact, but this no-option baseline is now gone from the page entirely. If that was intentional, fine — flagging since it's the one thing a reader can no longer compare against.
No changes pushed — this is review feedback only. Findings 1 and 2 are the ones I'd treat as blocking, since both put the new intro in conflict with content still live further down the same page.
· sian/mar-1430-price-stabilization-feature-page-intro
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
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.
Summary
Verification
git diff --checkMAR-1430